)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"7a3736c8165b964a43715983192df43fa51724d2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added unit tests for vmware cluster driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Patch Set 2: Corrected indentation"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie41b573f9a16a71306b6e2aca34f1d78f4b801c5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPH%2F%2Fhy8%3D","line":9,"updated":"2013-05-31 07:06:58.000000000","message":"nit: please remove this when you remove from wip.","commit_id":"7f6dcf3840dc1f0901fd4dbc4129a5dab62e45d0"}],"nova/tests/virt/vmwareapi/db_fakes.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"aacba293a3a2eb3d51c85c476102af976e110825","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            \u0027vcpus\u0027: type_data[\u0027vcpus\u0027],"},{"line_number":80,"context_line":"            \u0027mac_addresses\u0027: [{\u0027address\u0027: values[\u0027mac_address\u0027]}],"},{"line_number":81,"context_line":"            \u0027root_gb\u0027: type_data[\u0027root_gb\u0027],"},{"line_number":82,"context_line":"            \u0027node\u0027: values[\u0027node\u0027]"},{"line_number":83,"context_line":"            }"},{"line_number":84,"context_line":"        return FakeModel(base_options)"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2Fr5w%3D","line":82,"updated":"2013-06-12 19:56:13.000000000","message":"Add a trailing comma (HACKING.rst § \"Dictionaries/Lists\")","commit_id":"87deab4b538ecb15a07398f5e1f0f32ca95f75dc"}],"nova/tests/virt/vmwareapi/test_vmwareapi.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"aacba293a3a2eb3d51c85c476102af976e110825","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                  \u0027ramdisk_id\u0027: \"1\","},{"line_number":145,"context_line":"                  \u0027mac_address\u0027: \"de:ad:be:ef:be:ef\","},{"line_number":146,"context_line":"                  \u0027instance_type\u0027: \u0027m1.large\u0027,"},{"line_number":147,"context_line":"                  \u0027node\u0027: self.node_name"},{"line_number":148,"context_line":"                  }"},{"line_number":149,"context_line":"        self.instance \u003d db.instance_create(None, values)"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2Fr5o%3D","line":147,"updated":"2013-06-12 19:56:13.000000000","message":"Trailing comma, please…","commit_id":"87deab4b538ecb15a07398f5e1f0f32ca95f75dc"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"228d765132baef991180148445019f84ee175a25","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        self._create_vm()"},{"line_number":506,"context_line":"        vnc_dict \u003d self.conn.get_vnc_console(self.instance)"},{"line_number":507,"context_line":"        self.assertEquals(vnc_dict[\u0027host\u0027], \"test_url\")"},{"line_number":508,"context_line":"        self.assertEquals(vnc_dict[\u0027port\u0027], 6000)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def test_host_ip_addr(self):"},{"line_number":511,"context_line":"        self.assertEquals(self.conn.get_host_ip_addr(), \"test_url\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F4Rk%3D","line":508,"updated":"2013-06-06 20:48:48.000000000","message":"I would have preferred a port between 5900 and 5999\n\nhttp://kb.vmware.com/selfservice/microsites/search.do?language\u003den_US\u0026cmd\u003ddisplayKC\u0026externalId\u003d1246","commit_id":"87deab4b538ecb15a07398f5e1f0f32ca95f75dc"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"b55ebc172199ba583daf735278b18084201906ae","unresolved":false,"context_lines":[{"line_number":595,"context_line":"        self.assertEquals(stats[\u0027memory_mb_used\u0027], 1024 - 524)"},{"line_number":596,"context_line":"        self.assertEquals(stats[\u0027hypervisor_type\u0027], \u0027VMware ESXi\u0027)"},{"line_number":597,"context_line":"        self.assertEquals(stats[\u0027hypervisor_version\u0027], \u00275.0.0\u0027)"},{"line_number":598,"context_line":"        self.assertEquals(stats[\u0027hypervisor_hostname\u0027], \u0027test_url\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPX%2F%2FmHI%3D","line":598,"updated":"2013-06-14 18:21:30.000000000","message":"Actually, assertEquals() is deprecated in preference to assertEqual().  (femtonit)","commit_id":"5af90d7f24b96d7b2b4078079108da77e86fc8d9"}],"nova/tests/vmwareapi/db_fakes.py":[{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"a6cae190f99e7a14e830c3fc26a009657e645c4d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright (c) 2011 Citrix Systems, Inc."},{"line_number":5,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FlZ8%3D","line":3,"updated":"2013-05-29 22:40:47.000000000","message":"I find this amusing.","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"}],"nova/virt/vmwareapi/fake.py":[{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"106950b61039dde2a159a0813389e646764a7e5a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.val \u003d None"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"class Obj(object):"},{"line_number":95,"context_line":"    def __init__(self, name, value):"},{"line_number":96,"context_line":"        self.value \u003d value"},{"line_number":97,"context_line":"        self._type \u003d name"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Flgc%3D","line":94,"updated":"2013-05-29 21:55:23.000000000","message":"I have a patch with this same object in it. Only I called it a ManagedObjectReference","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"a6cae190f99e7a14e830c3fc26a009657e645c4d","unresolved":false,"context_lines":[{"line_number":100,"context_line":"class ManagedObject(object):"},{"line_number":101,"context_line":"    \"\"\"Managed Data Object base class.\"\"\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def __init__(self, name\u003d\"ManagedObject\", obj_ref\u003dNone, value\u003dNone):"},{"line_number":104,"context_line":"        \"\"\"Sets the obj property which acts as a reference to the object.\"\"\""},{"line_number":105,"context_line":"        super(ManagedObject, self).__setattr__(\u0027objName\u0027, name)"},{"line_number":106,"context_line":"        if obj_ref is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FlaM%3D","line":103,"updated":"2013-05-29 22:40:47.000000000","message":"This constructor feels a bit messy now. I will consider that issue out of scope for the time being.","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"a6cae190f99e7a14e830c3fc26a009657e645c4d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        \"\"\"Sets the obj property which acts as a reference to the object.\"\"\""},{"line_number":105,"context_line":"        super(ManagedObject, self).__setattr__(\u0027objName\u0027, name)"},{"line_number":106,"context_line":"        if obj_ref is None:"},{"line_number":107,"context_line":"            obj_ref \u003d Obj(name, value)"},{"line_number":108,"context_line":"        object.__setattr__(self, \u0027obj\u0027, obj_ref)"},{"line_number":109,"context_line":"        object.__setattr__(self, \u0027propSet\u0027, [])"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Flbg%3D","line":107,"updated":"2013-05-29 22:40:47.000000000","message":"this is absolutely the right thing to do here.","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"160fdcccc6a35430466eef07e8f498cdc1a35603","unresolved":false,"context_lines":[{"line_number":263,"context_line":"class ClusterComputeResource(ManagedObject):"},{"line_number":264,"context_line":"    \"\"\"Cluster class.\"\"\""},{"line_number":265,"context_line":"    def __init__(self, **kwargs):"},{"line_number":266,"context_line":"        super(ClusterComputeResource, self).\\"},{"line_number":267,"context_line":"        __init__(\"ClusterComputeResource\", value\u003d\"domain-test\")"},{"line_number":268,"context_line":"        res_pool_ref \u003d\\"},{"line_number":269,"context_line":"        _db_content[\"ResourcePool\"][_db_content[\"ResourcePool\"].keys()[0]].obj"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F0v4%3D","line":266,"updated":"2013-05-22 08:05:58.000000000","message":"nit: it would be nice to avoid using \\ in the future.","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"2297486280d2702110b8b9044c581036e877a3df","unresolved":false,"context_lines":[{"line_number":264,"context_line":"    \"\"\"Cluster class.\"\"\""},{"line_number":265,"context_line":"    def __init__(self, **kwargs):"},{"line_number":266,"context_line":"        super(ClusterComputeResource, self).\\"},{"line_number":267,"context_line":"        __init__(\"ClusterComputeResource\", value\u003d\"domain-test\")"},{"line_number":268,"context_line":"        res_pool_ref \u003d\\"},{"line_number":269,"context_line":"        _db_content[\"ResourcePool\"][_db_content[\"ResourcePool\"].keys()[0]].obj"},{"line_number":270,"context_line":"        r_pool \u003d DataObject()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Fj1c%3D","line":267,"updated":"2013-05-30 15:09:34.000000000","message":"Please indent continuation lines.  I know you\u0027re close to the 80 column limit but it would be better to use more vertical space if needed than to have continued lines that look like regular lines.","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"2297486280d2702110b8b9044c581036e877a3df","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        super(ClusterComputeResource, self).\\"},{"line_number":267,"context_line":"        __init__(\"ClusterComputeResource\", value\u003d\"domain-test\")"},{"line_number":268,"context_line":"        res_pool_ref \u003d\\"},{"line_number":269,"context_line":"        _db_content[\"ResourcePool\"][_db_content[\"ResourcePool\"].keys()[0]].obj"},{"line_number":270,"context_line":"        r_pool \u003d DataObject()"},{"line_number":271,"context_line":"        r_pool.ManagedObjectReference \u003d [res_pool_ref]"},{"line_number":272,"context_line":"        self.set(\"resourcePool\", res_pool_ref)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Fj1Y%3D","line":269,"updated":"2013-05-30 15:09:34.000000000","message":"indent","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"2297486280d2702110b8b9044c581036e877a3df","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        self.set(\"resourcePool\", res_pool_ref)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        host_ref \u003d\\"},{"line_number":275,"context_line":"         _db_content[\"HostSystem\"][_db_content[\"HostSystem\"].keys()[0]].obj"},{"line_number":276,"context_line":"        host_system \u003d DataObject()"},{"line_number":277,"context_line":"        host_system.ManagedObjectReference \u003d [host_ref]"},{"line_number":278,"context_line":"        self.set(\"host\", host_system)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Fj1Q%3D","line":275,"updated":"2013-05-30 15:09:34.000000000","message":"indent more than 1","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"2297486280d2702110b8b9044c581036e877a3df","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        self.set(\"name\", \"test_cluster\")"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        ds_ref \u003d\\"},{"line_number":282,"context_line":"        _db_content[\"Datastore\"][_db_content[\"Datastore\"].keys()[0]].obj"},{"line_number":283,"context_line":"        d_s \u003d DataObject()"},{"line_number":284,"context_line":"        d_s.ManagedObjectReference \u003d [ds_ref]"},{"line_number":285,"context_line":"        self.set(\"datastore\", d_s)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Fj1I%3D","line":282,"updated":"2013-05-30 15:09:34.000000000","message":"indent","commit_id":"d35d21cedad5f888ea81a8d330f45d9a32d0ceeb"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"788c7bf50bb33dfa0bc239d673b04d88eb4b5670","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    def __init__(self, **kwargs):"},{"line_number":267,"context_line":"        super(ClusterComputeResource, self).__init__(\"ClusterComputeResource\","},{"line_number":268,"context_line":"                                                     value\u003d\"domain-test\")"},{"line_number":269,"context_line":"        res_pool_ref \u003d (_db_content[\"ResourcePool\"]"},{"line_number":270,"context_line":"                        [_db_content[\"ResourcePool\"].keys()[0]].obj)"},{"line_number":271,"context_line":"        r_pool \u003d DataObject()"},{"line_number":272,"context_line":"        r_pool.ManagedObjectReference \u003d [res_pool_ref]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F4gs%3D","line":269,"updated":"2013-06-19 02:54:11.000000000","message":"I would prefer if you used \n_get_objects(\"ResourcePool\") instead of _db_content.","commit_id":"2d7e808eeb6bcec85f78c96cecd1c4f3ea444ce3"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"246bc54a7e554d76d8abb953ed41d4ff6453d012","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    def __init__(self, **kwargs):"},{"line_number":267,"context_line":"        super(ClusterComputeResource, self).__init__(\"ClusterComputeResource\","},{"line_number":268,"context_line":"                                                     value\u003d\"domain-test\")"},{"line_number":269,"context_line":"        res_pool_ref \u003d (_db_content[\"ResourcePool\"]"},{"line_number":270,"context_line":"                        [_db_content[\"ResourcePool\"].keys()[0]].obj)"},{"line_number":271,"context_line":"        r_pool \u003d DataObject()"},{"line_number":272,"context_line":"        r_pool.ManagedObjectReference \u003d [res_pool_ref]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F4WA%3D","line":269,"updated":"2013-06-19 05:52:24.000000000","message":"access to _db_content is replaced with get_objects()","commit_id":"2d7e808eeb6bcec85f78c96cecd1c4f3ea444ce3"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"788c7bf50bb33dfa0bc239d673b04d88eb4b5670","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        host_ref \u003d (_db_content[\"HostSystem\"]"},{"line_number":276,"context_line":"                    [_db_content[\"HostSystem\"].keys()[0]].obj)"},{"line_number":277,"context_line":"        host_system \u003d DataObject()"},{"line_number":278,"context_line":"        host_system.ManagedObjectReference \u003d [host_ref]"},{"line_number":279,"context_line":"        self.set(\"host\", host_system)"},{"line_number":280,"context_line":"        self.set(\"name\", \"test_cluster\")"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F4gA%3D","line":278,"updated":"2013-06-19 02:54:11.000000000","message":"ManagedObjectReference is not a property of HostSystem. May be it\u0027s time for us to make the mocking little more realistic. My suggestion would be something like this  :-\n\narray_of_managed_object_reference \u003d DataObject() \n    \narray_of_managed_object_reference.ManagedObjectReference \u003d [ _get_objects(\"HostSystem\")[0].obj]\n\nself.set(\"host\", array_of_managed_object_reference)\n\n# Honestly, ArrayOfManagedObjectReference is not even a DataObject (But that\u0027s all i could think about while writing this comment) But, I hope you get what I mean. Ref :- http://pubs.vmware.com/vsphere-50/index.jsp#com.vmware.wssdk.apiref.doc_50/vim.ComputeResource.html","commit_id":"2d7e808eeb6bcec85f78c96cecd1c4f3ea444ce3"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"246bc54a7e554d76d8abb953ed41d4ff6453d012","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        host_ref \u003d (_db_content[\"HostSystem\"]"},{"line_number":276,"context_line":"                    [_db_content[\"HostSystem\"].keys()[0]].obj)"},{"line_number":277,"context_line":"        host_system \u003d DataObject()"},{"line_number":278,"context_line":"        host_system.ManagedObjectReference \u003d [host_ref]"},{"line_number":279,"context_line":"        self.set(\"host\", host_system)"},{"line_number":280,"context_line":"        self.set(\"name\", \"test_cluster\")"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F4V0%3D","line":278,"updated":"2013-06-19 05:52:24.000000000","message":"Modified to use  get_objects()\nThe change being suggested of not using dataobject will require changing it is all the tests, since most of the objects are in fact array of managed obj refs. This should be done is a separate patchset.","commit_id":"2d7e808eeb6bcec85f78c96cecd1c4f3ea444ce3"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"676cd8d3988c69e0e3bb649403593a828f2a51a9","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        host_ref \u003d (_db_content[\"HostSystem\"]"},{"line_number":276,"context_line":"                    [_db_content[\"HostSystem\"].keys()[0]].obj)"},{"line_number":277,"context_line":"        host_system \u003d DataObject()"},{"line_number":278,"context_line":"        host_system.ManagedObjectReference \u003d [host_ref]"},{"line_number":279,"context_line":"        self.set(\"host\", host_system)"},{"line_number":280,"context_line":"        self.set(\"name\", \"test_cluster\")"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F4VU%3D","line":278,"in_reply_to":"AAAAPn%2F%2F4V0%3D","updated":"2013-06-19 06:00:24.000000000","message":"Okay. That comment can be pushed out for now. But someone should address it. For time being, I will add it to one of my patchset for https://bugs.launchpad.net/nova/+bug/1190515. I was about to create a fake Cluster.","commit_id":"2d7e808eeb6bcec85f78c96cecd1c4f3ea444ce3"}]}
