)]}'
{"nova/tests/virt/vmwareapi/fake.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ab119f6f1e5aac93d4719989050dbe02cf44c60e","unresolved":false,"context_lines":[{"line_number":1122,"context_line":"        service_content.fileManager \u003d \"FileManager\""},{"line_number":1123,"context_line":"        service_content.rootFolder \u003d \"RootFolder\""},{"line_number":1124,"context_line":"        service_content.sessionManager \u003d \"SessionManager\""},{"line_number":1125,"context_line":"        service_content.extensionManager \u003d \"extensionManager\""},{"line_number":1126,"context_line":"        service_content.searchIndex \u003d \"SearchIndex\""},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"        about_info \u003d DataObject()"}],"source_content_type":"text/x-python","patch_set":20,"id":"baa201ad_c258808c","line":1125,"updated":"2014-10-07 01:18:42.000000000","message":"Why is this name only lower char at the start?\n\ns/extensionManager/ExtensionManager/ ?","commit_id":"c09f50b72b308a744e53c317b84877de55885fae"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9e762ef252cac1da2cdf520dbd283e65476a7fec","unresolved":false,"context_lines":[{"line_number":1122,"context_line":"        service_content.fileManager \u003d \"FileManager\""},{"line_number":1123,"context_line":"        service_content.rootFolder \u003d \"RootFolder\""},{"line_number":1124,"context_line":"        service_content.sessionManager \u003d \"SessionManager\""},{"line_number":1125,"context_line":"        service_content.extensionManager \u003d \"extensionManager\""},{"line_number":1126,"context_line":"        service_content.searchIndex \u003d \"SearchIndex\""},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"        about_info \u003d DataObject()"}],"source_content_type":"text/x-python","patch_set":20,"id":"baa201ad_3b124b09","line":1125,"in_reply_to":"baa201ad_c258808c","updated":"2014-10-07 13:02:52.000000000","message":"This was a typo on my behalf. I will fix it.","commit_id":"c09f50b72b308a744e53c317b84877de55885fae"}],"nova/tests/virt/vmwareapi/test_driver_api.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"275534778c275c76e95ad85433ebe6a6a42c8eb3","unresolved":false,"context_lines":[{"line_number":1968,"context_line":"class VMwareAPIVCDriverTestCase(VMwareAPIVMTestCase):"},{"line_number":1969,"context_line":""},{"line_number":1970,"context_line":"    @mock.patch.object(driver.VMwareVCDriver, \u0027_register_openstack_extension\u0027)"},{"line_number":1971,"context_line":"    def setUp(self, mick_register):"},{"line_number":1972,"context_line":"        super(VMwareAPIVCDriverTestCase, self).setUp()"},{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"        cluster_name \u003d \u0027test_cluster\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_f23f89b3","line":1971,"updated":"2014-06-17 13:56:42.000000000","message":"mock_register?","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":1968,"context_line":"class VMwareAPIVCDriverTestCase(VMwareAPIVMTestCase):"},{"line_number":1969,"context_line":""},{"line_number":1970,"context_line":"    @mock.patch.object(driver.VMwareVCDriver, \u0027_register_openstack_extension\u0027)"},{"line_number":1971,"context_line":"    def setUp(self, mick_register):"},{"line_number":1972,"context_line":"        super(VMwareAPIVCDriverTestCase, self).setUp()"},{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"        cluster_name \u003d \u0027test_cluster\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d0e605e8","line":1971,"in_reply_to":"1ae5cdf2_f23f89b3","updated":"2014-06-17 14:33:45.000000000","message":"Done","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"}],"nova/virt/vmwareapi/constants.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"19361afda76e451e34f39c8889e022f6200475aa","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"EXTENSION_KEY \u003d \u0027org.openstack.nova\u0027"},{"line_number":20,"context_line":"EXTENSION_TYPE_INSTANCE \u003d \u0027instance\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_dae349d6","line":20,"updated":"2014-06-18 13:52:11.000000000","message":"Not quite what I was expecting :) I think they\u0027d be better in vim_util as that\u0027s where their value is important, and I\u0027m not sure there are any other candidates to go in this file. However, I\u0027m in danger of heading into the realms of quibbling and the patch is good.","commit_id":"51e8aead30f651c831d723aa21abc0676d7a7fcb"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"336e373363ea6792bd00d1058bed1d22a5b9276c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"EXTENSION_KEY \u003d \u0027org.openstack.nova\u0027"},{"line_number":20,"context_line":"EXTENSION_TYPE_INSTANCE \u003d \u0027instance\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_ec2f4e87","line":20,"in_reply_to":"1ae5cdf2_dae349d6","updated":"2014-07-07 15:47:15.000000000","message":"the reason this was done here is that vim_util is going to disappear when oslo.vmware is used.","commit_id":"51e8aead30f651c831d723aa21abc0676d7a7fcb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a5a451e5c81c24bfbb30fd8fc31e4f8c51596959","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"SUPPORTED_FLAT_VARIANTS \u003d [\"thin\", \"preallocated\", \"thick\", \"eagerZeroedThick\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"EXTENSION_KEY \u003d \u0027org.openstack.nova\u0027"},{"line_number":42,"context_line":"EXTENSION_TYPE_INSTANCE \u003d \u0027instance\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"baa201ad_53ae042f","line":41,"updated":"2014-10-08 00:12:49.000000000","message":"Sorry for missing here in my previous review.\n\nHow about \u0027org.openstack.compute\u0027 ?\n\nOn doc/api_samples/all_extensions/extensions-get-resp.json , we have published docs under \"http://docs.openstack.org/compute\" as the namespace.\nSo I feel \u0027compute\u0027 would be one option for consistency from external point of view.","commit_id":"372e751d1f04449d2b7905f6d361e5e8a0b6186b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e7b1401782a6717b04ad413fe2386d62167b273a","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"SUPPORTED_FLAT_VARIANTS \u003d [\"thin\", \"preallocated\", \"thick\", \"eagerZeroedThick\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"EXTENSION_KEY \u003d \u0027org.openstack.nova\u0027"},{"line_number":42,"context_line":"EXTENSION_TYPE_INSTANCE \u003d \u0027instance\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"baa201ad_c37c6d75","line":41,"in_reply_to":"baa201ad_53ae042f","updated":"2014-10-13 12:04:02.000000000","message":"Done","commit_id":"372e751d1f04449d2b7905f6d361e5e8a0b6186b"}],"nova/virt/vmwareapi/driver.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"46f4e48e865012c7fc2b3070bdbadc3ef15c580b","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        service_content \u003d vim.get_service_content()"},{"line_number":432,"context_line":"        extension_manager \u003d service_content.extensionManager"},{"line_number":433,"context_line":"        os_extension \u003d vim.client.service.FindExtension(extension_manager,"},{"line_number":434,"context_line":"                                                        \u0027OpenStack\u0027)"},{"line_number":435,"context_line":"        if os_extension is None:"},{"line_number":436,"context_line":"            client_factory \u003d self._session._get_vim().client.factory"},{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_924f256a","line":434,"updated":"2014-06-17 14:26:50.000000000","message":"You\u0027ll want to retry on error for both this and RegisterExtension below.\n\nAlso, see change to key below.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        service_content \u003d vim.get_service_content()"},{"line_number":432,"context_line":"        extension_manager \u003d service_content.extensionManager"},{"line_number":433,"context_line":"        os_extension \u003d vim.client.service.FindExtension(extension_manager,"},{"line_number":434,"context_line":"                                                        \u0027OpenStack\u0027)"},{"line_number":435,"context_line":"        if os_extension is None:"},{"line_number":436,"context_line":"            client_factory \u003d self._session._get_vim().client.factory"},{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_30cba94b","line":434,"in_reply_to":"1ae5cdf2_924f256a","updated":"2014-06-17 14:33:45.000000000","message":"Done","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"46f4e48e865012c7fc2b3070bdbadc3ef15c580b","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        if os_extension is None:"},{"line_number":436,"context_line":"            client_factory \u003d self._session._get_vim().client.factory"},{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"},{"line_number":438,"context_line":"            os_ext.key \u003d \u0027OpenStack\u0027"},{"line_number":439,"context_line":"            entity_info \u003d client_factory.create(\u0027ns0:ExtManagedEntityInfo\u0027)"},{"line_number":440,"context_line":"            entity_info.type \u003d \u0027nova\u0027"},{"line_number":441,"context_line":"            os_ext.managedEntityInfo \u003d [entity_info]"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_1fe15efc","line":438,"updated":"2014-06-17 14:26:50.000000000","message":"According to the docs this should follow java package naming conventions, so this should be \u0027org.openstack\u0027. Except that other projects may also want to register extensions, so I\u0027d suggest \u0027org.openstack.nova\u0027.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        if os_extension is None:"},{"line_number":436,"context_line":"            client_factory \u003d self._session._get_vim().client.factory"},{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"},{"line_number":438,"context_line":"            os_ext.key \u003d \u0027OpenStack\u0027"},{"line_number":439,"context_line":"            entity_info \u003d client_factory.create(\u0027ns0:ExtManagedEntityInfo\u0027)"},{"line_number":440,"context_line":"            entity_info.type \u003d \u0027nova\u0027"},{"line_number":441,"context_line":"            os_ext.managedEntityInfo \u003d [entity_info]"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_b02df9ff","line":438,"in_reply_to":"1ae5cdf2_1fe15efc","updated":"2014-06-17 14:33:45.000000000","message":"i prefer org.openstack - this will be used by the other modules too. that is the purpose of the type below","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"5c18e459a14e8a67f2a9b1a5b216edd30c8a8d89","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        if os_extension is None:"},{"line_number":436,"context_line":"            client_factory \u003d self._session._get_vim().client.factory"},{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"},{"line_number":438,"context_line":"            os_ext.key \u003d \u0027OpenStack\u0027"},{"line_number":439,"context_line":"            entity_info \u003d client_factory.create(\u0027ns0:ExtManagedEntityInfo\u0027)"},{"line_number":440,"context_line":"            entity_info.type \u003d \u0027nova\u0027"},{"line_number":441,"context_line":"            os_ext.managedEntityInfo \u003d [entity_info]"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_0694b742","line":438,"in_reply_to":"1ae5cdf2_b02df9ff","updated":"2014-06-17 15:01:40.000000000","message":"Ok, but let\u0027s understand at this stage that in that case we\u0027re going to want to move this into oslo.vmware at some point. We don\u0027t want multiple projects having to coordinate extension creation. In fact, I\u0027d suggest a comment block making any design decisions explicit.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"46f4e48e865012c7fc2b3070bdbadc3ef15c580b","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            client_factory \u003d self._session._get_vim().client.factory"},{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"},{"line_number":438,"context_line":"            os_ext.key \u003d \u0027OpenStack\u0027"},{"line_number":439,"context_line":"            entity_info \u003d client_factory.create(\u0027ns0:ExtManagedEntityInfo\u0027)"},{"line_number":440,"context_line":"            entity_info.type \u003d \u0027nova\u0027"},{"line_number":441,"context_line":"            os_ext.managedEntityInfo \u003d [entity_info]"},{"line_number":442,"context_line":"            os_ext.version \u003d \u00271\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d58517d0","line":439,"updated":"2014-06-17 14:26:50.000000000","message":"Can you think of any way of adding an OpenStack icon to the entity? Can we reliably determine a URL for Horizon and pluck the icons from there?","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"5c18e459a14e8a67f2a9b1a5b216edd30c8a8d89","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            client_factory \u003d self._session._get_vim().client.factory"},{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"},{"line_number":438,"context_line":"            os_ext.key \u003d \u0027OpenStack\u0027"},{"line_number":439,"context_line":"            entity_info \u003d client_factory.create(\u0027ns0:ExtManagedEntityInfo\u0027)"},{"line_number":440,"context_line":"            entity_info.type \u003d \u0027nova\u0027"},{"line_number":441,"context_line":"            os_ext.managedEntityInfo \u003d [entity_info]"},{"line_number":442,"context_line":"            os_ext.version \u003d \u00271\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_0bda00e9","line":439,"in_reply_to":"1ae5cdf2_504835cc","updated":"2014-06-17 15:01:40.000000000","message":"Agree.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            client_factory \u003d self._session._get_vim().client.factory"},{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"},{"line_number":438,"context_line":"            os_ext.key \u003d \u0027OpenStack\u0027"},{"line_number":439,"context_line":"            entity_info \u003d client_factory.create(\u0027ns0:ExtManagedEntityInfo\u0027)"},{"line_number":440,"context_line":"            entity_info.type \u003d \u0027nova\u0027"},{"line_number":441,"context_line":"            os_ext.managedEntityInfo \u003d [entity_info]"},{"line_number":442,"context_line":"            os_ext.version \u003d \u00271\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_504835cc","line":439,"in_reply_to":"1ae5cdf2_d58517d0","updated":"2014-06-17 14:33:45.000000000","message":"i do not think that is relevant for this patch set and can be added in later. it is a nice to have feature.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"46f4e48e865012c7fc2b3070bdbadc3ef15c580b","unresolved":false,"context_lines":[{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"},{"line_number":438,"context_line":"            os_ext.key \u003d \u0027OpenStack\u0027"},{"line_number":439,"context_line":"            entity_info \u003d client_factory.create(\u0027ns0:ExtManagedEntityInfo\u0027)"},{"line_number":440,"context_line":"            entity_info.type \u003d \u0027nova\u0027"},{"line_number":441,"context_line":"            os_ext.managedEntityInfo \u003d [entity_info]"},{"line_number":442,"context_line":"            os_ext.version \u003d \u00271\u0027"},{"line_number":443,"context_line":"            desc \u003d client_factory.create(\u0027ns0:Description\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_75dc4319","line":440,"updated":"2014-06-17 14:26:50.000000000","message":"This is the type of a managed entity, which would be an instance in our case. Suggest this should be \u0027instance\u0027.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":437,"context_line":"            os_ext \u003d client_factory.create(\u0027ns0:Extension\u0027)"},{"line_number":438,"context_line":"            os_ext.key \u003d \u0027OpenStack\u0027"},{"line_number":439,"context_line":"            entity_info \u003d client_factory.create(\u0027ns0:ExtManagedEntityInfo\u0027)"},{"line_number":440,"context_line":"            entity_info.type \u003d \u0027nova\u0027"},{"line_number":441,"context_line":"            os_ext.managedEntityInfo \u003d [entity_info]"},{"line_number":442,"context_line":"            os_ext.version \u003d \u00271\u0027"},{"line_number":443,"context_line":"            desc \u003d client_factory.create(\u0027ns0:Description\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_b01419a0","line":440,"in_reply_to":"1ae5cdf2_75dc4319","updated":"2014-06-17 14:33:45.000000000","message":"Done","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"46f4e48e865012c7fc2b3070bdbadc3ef15c580b","unresolved":false,"context_lines":[{"line_number":444,"context_line":"            desc.label \u003d \u0027OpenStack\u0027"},{"line_number":445,"context_line":"            desc.summary \u003d \u0027OpenStack services\u0027"},{"line_number":446,"context_line":"            os_ext.description \u003d desc"},{"line_number":447,"context_line":"            os_ext.lastHeartbeatTime \u003d timeutils.strtime()"},{"line_number":448,"context_line":"            vim.client.service.RegisterExtension(extension_manager, os_ext)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def list_instances(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d07b6579","line":447,"updated":"2014-06-17 14:26:50.000000000","message":"I can\u0027t work out what this is for. Any idea?","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":444,"context_line":"            desc.label \u003d \u0027OpenStack\u0027"},{"line_number":445,"context_line":"            desc.summary \u003d \u0027OpenStack services\u0027"},{"line_number":446,"context_line":"            os_ext.description \u003d desc"},{"line_number":447,"context_line":"            os_ext.lastHeartbeatTime \u003d timeutils.strtime()"},{"line_number":448,"context_line":"            vim.client.service.RegisterExtension(extension_manager, os_ext)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def list_instances(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_f085c1cf","line":447,"in_reply_to":"1ae5cdf2_d07b6579","updated":"2014-06-17 14:33:45.000000000","message":"the heartbeat is mandatory - without it the creation does not work","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"5c18e459a14e8a67f2a9b1a5b216edd30c8a8d89","unresolved":false,"context_lines":[{"line_number":444,"context_line":"            desc.label \u003d \u0027OpenStack\u0027"},{"line_number":445,"context_line":"            desc.summary \u003d \u0027OpenStack services\u0027"},{"line_number":446,"context_line":"            os_ext.description \u003d desc"},{"line_number":447,"context_line":"            os_ext.lastHeartbeatTime \u003d timeutils.strtime()"},{"line_number":448,"context_line":"            vim.client.service.RegisterExtension(extension_manager, os_ext)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def list_instances(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_6b48e4b3","line":447,"in_reply_to":"1ae5cdf2_f085c1cf","updated":"2014-06-17 15:01:40.000000000","message":"Yeah, I got that. It just makes me wonder if we need to touch it from time to time or something. Makes me nervous not knowing what it\u0027s for.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"513b42e701ac8c85a4ba48445d33bdcde4c96c0e","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        os_extension \u003d self._session._call_method(vim_util, \u0027find_extension\u0027,"},{"line_number":430,"context_line":"                                                  vm_util.EXTENSION_KEY)"},{"line_number":431,"context_line":"        if os_extension is None:"},{"line_number":432,"context_line":"            self._session._call_method(vim_util, \u0027create_extension\u0027,"},{"line_number":433,"context_line":"                                       vm_util.EXTENSION_KEY,"},{"line_number":434,"context_line":"                                       vm_util.EXTENSION_TYPE)"},{"line_number":435,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_e8e76caa","line":432,"updated":"2014-06-18 09:33:42.000000000","message":"I understand why you had to move this into vim_util, but it highlights a deficiency in the Vim api :(","commit_id":"89a28804311b97641760f2cd3a2390a0e8d97d5a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"361223ffe61429f8ad774085f5a97f53007a2aea","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        os_extension \u003d self._session._call_method(vim_util, \u0027find_extension\u0027,"},{"line_number":430,"context_line":"                                                  vm_util.EXTENSION_KEY)"},{"line_number":431,"context_line":"        if os_extension is None:"},{"line_number":432,"context_line":"            self._session._call_method(vim_util, \u0027create_extension\u0027,"},{"line_number":433,"context_line":"                                       vm_util.EXTENSION_KEY,"},{"line_number":434,"context_line":"                                       vm_util.EXTENSION_TYPE)"},{"line_number":435,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_3409a631","line":432,"in_reply_to":"1ae5cdf2_e8e76caa","updated":"2014-06-18 13:29:44.000000000","message":"lets agree to disagree on that one","commit_id":"89a28804311b97641760f2cd3a2390a0e8d97d5a"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"a9c54f80a700cbd70842c57e3fcd0c3c74cb70ef","unresolved":false,"context_lines":[{"line_number":426,"context_line":"        self._register_openstack_extension()"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    def _register_openstack_extension(self):"},{"line_number":429,"context_line":"        # Register an \u0027OpenStack\u0027 extension in vCenter"},{"line_number":430,"context_line":"        os_extension \u003d self._session._call_method(vim_util, \u0027find_extension\u0027,"},{"line_number":431,"context_line":"                                                  constants.EXTENSION_KEY)"},{"line_number":432,"context_line":"        if os_extension is None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_d7e23fd4","line":429,"updated":"2014-06-18 15:01:32.000000000","message":"nit: a log statement would be nice here","commit_id":"51e8aead30f651c831d723aa21abc0676d7a7fcb"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"336e373363ea6792bd00d1058bed1d22a5b9276c","unresolved":false,"context_lines":[{"line_number":426,"context_line":"        self._register_openstack_extension()"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    def _register_openstack_extension(self):"},{"line_number":429,"context_line":"        # Register an \u0027OpenStack\u0027 extension in vCenter"},{"line_number":430,"context_line":"        os_extension \u003d self._session._call_method(vim_util, \u0027find_extension\u0027,"},{"line_number":431,"context_line":"                                                  constants.EXTENSION_KEY)"},{"line_number":432,"context_line":"        if os_extension is None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_6c533e16","line":429,"in_reply_to":"1ae5cdf2_d7e23fd4","updated":"2014-07-07 15:47:15.000000000","message":"Done","commit_id":"51e8aead30f651c831d723aa21abc0676d7a7fcb"}],"nova/virt/vmwareapi/fake.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"46f4e48e865012c7fc2b3070bdbadc3ef15c580b","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"        service_content.fileManager \u003d \"FileManager\""},{"line_number":1017,"context_line":"        service_content.rootFolder \u003d \"RootFolder\""},{"line_number":1018,"context_line":"        service_content.sessionManager \u003d \"SessionManager\""},{"line_number":1019,"context_line":"        service_content.extensionManager \u003d \"extensionManager\""},{"line_number":1020,"context_line":"        service_content.searchIndex \u003d \"SearchIndex\""},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        about_info \u003d DataObject()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_32c73166","line":1019,"updated":"2014-06-17 14:26:50.000000000","message":"Up to you as they\u0027re both yours, but I\u0027d suggest rebasing this change on top of the fake.py move to avoid churn.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"        service_content.fileManager \u003d \"FileManager\""},{"line_number":1017,"context_line":"        service_content.rootFolder \u003d \"RootFolder\""},{"line_number":1018,"context_line":"        service_content.sessionManager \u003d \"SessionManager\""},{"line_number":1019,"context_line":"        service_content.extensionManager \u003d \"extensionManager\""},{"line_number":1020,"context_line":"        service_content.searchIndex \u003d \"SearchIndex\""},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        about_info \u003d DataObject()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_50767507","line":1019,"in_reply_to":"1ae5cdf2_32c73166","updated":"2014-06-17 14:33:45.000000000","message":"i can do that. the fake code has been in review for a very long time and it is actually getting to be a little depressing","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"}],"nova/virt/vmwareapi/vim_util.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"513b42e701ac8c85a4ba48445d33bdcde4c96c0e","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    service_content \u003d vim.get_service_content()"},{"line_number":310,"context_line":"    extension_manager \u003d service_content.extensionManager"},{"line_number":311,"context_line":"    return vim.client.service.FindExtension(extension_manager,"},{"line_number":312,"context_line":"                                            key)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"def create_extension(vim, key, type):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_0ba812da","line":312,"updated":"2014-06-18 09:33:42.000000000","message":"Nit: this line doesn\u0027t look long enough to be wrapped.","commit_id":"89a28804311b97641760f2cd3a2390a0e8d97d5a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"361223ffe61429f8ad774085f5a97f53007a2aea","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    service_content \u003d vim.get_service_content()"},{"line_number":310,"context_line":"    extension_manager \u003d service_content.extensionManager"},{"line_number":311,"context_line":"    return vim.client.service.FindExtension(extension_manager,"},{"line_number":312,"context_line":"                                            key)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"def create_extension(vim, key, type):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_3f65ffe0","line":312,"in_reply_to":"1ae5cdf2_0ba812da","updated":"2014-06-18 13:29:44.000000000","message":"Done","commit_id":"89a28804311b97641760f2cd3a2390a0e8d97d5a"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"e567ee04b7cf5e8d70f995291b7ef5190c4cf24f","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"def create_extension(vim, key, type):"},{"line_number":315,"context_line":"    \"\"\"Create a new key and type.\"\"\""},{"line_number":316,"context_line":"    service_content \u003d vim.get_service_content()"},{"line_number":317,"context_line":"    extension_manager \u003d service_content.extensionManager"},{"line_number":318,"context_line":"    client_factory \u003d vim.client.factory"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_9e7944ca","line":315,"updated":"2014-07-08 08:33:51.000000000","message":"incorrect docstring","commit_id":"85d0817f2924bd3dd0bf3a0792e4cd20da12803e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c8e091baa8224752529b5f1e1a0a65ee74d35e3f","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"def create_extension(vim, key, type):"},{"line_number":315,"context_line":"    \"\"\"Create a new key and type.\"\"\""},{"line_number":316,"context_line":"    service_content \u003d vim.get_service_content()"},{"line_number":317,"context_line":"    extension_manager \u003d service_content.extensionManager"},{"line_number":318,"context_line":"    client_factory \u003d vim.client.factory"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_2a9b9218","line":315,"in_reply_to":"baada198_9e7944ca","updated":"2014-07-08 10:27:07.000000000","message":"Done","commit_id":"85d0817f2924bd3dd0bf3a0792e4cd20da12803e"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"bae10d95c2477a3b92f25a85025acf3ef637a43f","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    return vim.client.service.FindExtension(extension_manager, key)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"def create_extension(vim, key, type):"},{"line_number":315,"context_line":"    \"\"\"Create a new extention.\"\"\""},{"line_number":316,"context_line":"    service_content \u003d vim.get_service_content()"},{"line_number":317,"context_line":"    extension_manager \u003d service_content.extensionManager"}],"source_content_type":"text/x-python","patch_set":11,"id":"baada198_22220852","line":314,"updated":"2014-07-14 15:58:26.000000000","message":"nit: consider renaming to register_extension","commit_id":"ccd9a951ae7f6454bd011bb090cf1f09d9de954f"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"62f88b1c80a4743fd864a0c9b9bb92af3d05803b","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    return vim.client.service.FindExtension(extension_manager, key)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"def create_extension(vim, key, type):"},{"line_number":315,"context_line":"    \"\"\"Create a new extention.\"\"\""},{"line_number":316,"context_line":"    service_content \u003d vim.get_service_content()"},{"line_number":317,"context_line":"    extension_manager \u003d service_content.extensionManager"}],"source_content_type":"text/x-python","patch_set":11,"id":"baada198_be514465","line":314,"in_reply_to":"baada198_22220852","updated":"2014-07-23 19:08:11.000000000","message":"fixing this nit","commit_id":"ccd9a951ae7f6454bd011bb090cf1f09d9de954f"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"62f88b1c80a4743fd864a0c9b9bb92af3d05803b","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"def create_extension(vim, key, type):"},{"line_number":315,"context_line":"    \"\"\"Create a new extention.\"\"\""},{"line_number":316,"context_line":"    service_content \u003d vim.get_service_content()"},{"line_number":317,"context_line":"    extension_manager \u003d service_content.extensionManager"},{"line_number":318,"context_line":"    client_factory \u003d vim.client.factory"}],"source_content_type":"text/x-python","patch_set":11,"id":"baada198_fe4bbcae","line":315,"updated":"2014-07-23 19:08:11.000000000","message":"and the typo here (extention-\u003eextension)","commit_id":"ccd9a951ae7f6454bd011bb090cf1f09d9de954f"}],"nova/virt/vmwareapi/vm_util.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"46f4e48e865012c7fc2b3070bdbadc3ef15c580b","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    # Set the VM to be \u0027managed\u0027 by \u0027OpenStack\u0027"},{"line_number":155,"context_line":"    managed_by \u003d client_factory.create(\u0027ns0:ManagedByInfo\u0027)"},{"line_number":156,"context_line":"    managed_by.extensionKey \u003d \u0027OpenStack\u0027"},{"line_number":157,"context_line":"    managed_by.type \u003d \u0027nova\u0027"},{"line_number":158,"context_line":"    config_spec.managedBy \u003d managed_by"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_b2aa6183","line":156,"updated":"2014-06-17 14:26:50.000000000","message":"See updated key.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    # Set the VM to be \u0027managed\u0027 by \u0027OpenStack\u0027"},{"line_number":155,"context_line":"    managed_by \u003d client_factory.create(\u0027ns0:ManagedByInfo\u0027)"},{"line_number":156,"context_line":"    managed_by.extensionKey \u003d \u0027OpenStack\u0027"},{"line_number":157,"context_line":"    managed_by.type \u003d \u0027nova\u0027"},{"line_number":158,"context_line":"    config_spec.managedBy \u003d managed_by"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d059a58f","line":156,"in_reply_to":"1ae5cdf2_b2aa6183","updated":"2014-06-17 14:33:45.000000000","message":"Done","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"46f4e48e865012c7fc2b3070bdbadc3ef15c580b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    # Set the VM to be \u0027managed\u0027 by \u0027OpenStack\u0027"},{"line_number":155,"context_line":"    managed_by \u003d client_factory.create(\u0027ns0:ManagedByInfo\u0027)"},{"line_number":156,"context_line":"    managed_by.extensionKey \u003d \u0027OpenStack\u0027"},{"line_number":157,"context_line":"    managed_by.type \u003d \u0027nova\u0027"},{"line_number":158,"context_line":"    config_spec.managedBy \u003d managed_by"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    return config_spec"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_128f952f","line":157,"updated":"2014-06-17 14:26:50.000000000","message":"See updated type. I suggested \u0027instance\u0027.","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a5b98629ff7fbaacf8fcb4256169c75f2e6737fc","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    # Set the VM to be \u0027managed\u0027 by \u0027OpenStack\u0027"},{"line_number":155,"context_line":"    managed_by \u003d client_factory.create(\u0027ns0:ManagedByInfo\u0027)"},{"line_number":156,"context_line":"    managed_by.extensionKey \u003d \u0027OpenStack\u0027"},{"line_number":157,"context_line":"    managed_by.type \u003d \u0027nova\u0027"},{"line_number":158,"context_line":"    config_spec.managedBy \u003d managed_by"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    return config_spec"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_f05ce17f","line":157,"in_reply_to":"1ae5cdf2_128f952f","updated":"2014-06-17 14:33:45.000000000","message":"Done","commit_id":"7c3aa1f79ddfe2c56f86be56a23eab35a23c1712"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"513b42e701ac8c85a4ba48445d33bdcde4c96c0e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                                 \u0027VirtualPCNet32\u0027, \u0027VirtualSriovEthernetCard\u0027,"},{"line_number":41,"context_line":"                                 \u0027VirtualVmxnet\u0027]"},{"line_number":42,"context_line":"EXTENSION_KEY \u003d \u0027org.openstack\u0027"},{"line_number":43,"context_line":"EXTENSION_TYPE \u003d \u0027instance\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"DSRecord \u003d collections.namedtuple("},{"line_number":46,"context_line":"    \u0027DSRecord\u0027, [\u0027datastore\u0027, \u0027name\u0027, \u0027capacity\u0027, \u0027freespace\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_2b122e58","line":43,"updated":"2014-06-18 09:33:42.000000000","message":"I would prefer you change EXTENSION_TYPE to another name. Consider adding a second managed entity: say we wanted to make datastores owned by OpenStack. What would you call that? It\u0027s not the type of the extension, it\u0027s the type of the managed entity.\n\nI\u0027m not going to get hung up on this, though. It has no impact on the extension itself, and updating the constant name in a future patch will be trivial.","commit_id":"89a28804311b97641760f2cd3a2390a0e8d97d5a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"361223ffe61429f8ad774085f5a97f53007a2aea","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                                 \u0027VirtualPCNet32\u0027, \u0027VirtualSriovEthernetCard\u0027,"},{"line_number":41,"context_line":"                                 \u0027VirtualVmxnet\u0027]"},{"line_number":42,"context_line":"EXTENSION_KEY \u003d \u0027org.openstack\u0027"},{"line_number":43,"context_line":"EXTENSION_TYPE \u003d \u0027instance\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"DSRecord \u003d collections.namedtuple("},{"line_number":46,"context_line":"    \u0027DSRecord\u0027, [\u0027datastore\u0027, \u0027name\u0027, \u0027capacity\u0027, \u0027freespace\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_ff7d576e","line":43,"in_reply_to":"1ae5cdf2_2b122e58","updated":"2014-06-18 13:29:44.000000000","message":"Done","commit_id":"89a28804311b97641760f2cd3a2390a0e8d97d5a"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"513b42e701ac8c85a4ba48445d33bdcde4c96c0e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                                 \u0027VirtualVmxnet\u0027]"},{"line_number":42,"context_line":"EXTENSION_KEY \u003d \u0027org.openstack\u0027"},{"line_number":43,"context_line":"EXTENSION_TYPE \u003d \u0027instance\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"DSRecord \u003d collections.namedtuple("},{"line_number":46,"context_line":"    \u0027DSRecord\u0027, [\u0027datastore\u0027, \u0027name\u0027, \u0027capacity\u0027, \u0027freespace\u0027])"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_6b5436ca","line":44,"updated":"2014-06-18 09:33:42.000000000","message":"Not nit: You need to decide where this code lives. It can be in vim_util or vm_util, but it shouldn\u0027t be distributed across both. These constants need to live with the extension creation code, wherever that is.","commit_id":"89a28804311b97641760f2cd3a2390a0e8d97d5a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"361223ffe61429f8ad774085f5a97f53007a2aea","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                                 \u0027VirtualVmxnet\u0027]"},{"line_number":42,"context_line":"EXTENSION_KEY \u003d \u0027org.openstack\u0027"},{"line_number":43,"context_line":"EXTENSION_TYPE \u003d \u0027instance\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"DSRecord \u003d collections.namedtuple("},{"line_number":46,"context_line":"    \u0027DSRecord\u0027, [\u0027datastore\u0027, \u0027name\u0027, \u0027capacity\u0027, \u0027freespace\u0027])"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_7fb78721","line":44,"in_reply_to":"1ae5cdf2_6b5436ca","updated":"2014-06-18 13:29:44.000000000","message":"the implementation of the methods is in vim_util. that is code that is being ported to oslo. the constants have been moved to a more generic file","commit_id":"89a28804311b97641760f2cd3a2390a0e8d97d5a"}]}
