)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd8e373637cc8b4ecdcd252e84965a6fef777e9e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"pointed to objects.InstanceV2 now."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This patch corrects all the Instance type check to make sure the"},{"line_number":16,"context_line":"upgrade works."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ib431c08dc6934631a71ef55c564fbbf4bde22642"},{"line_number":19,"context_line":"Closes-bug: #1500289"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a1a9d01_da9478e3","line":16,"updated":"2015-09-28 13:24:51.000000000","message":"I\u0027m not super fan of checking now against base.NovaObject instead of checking against _BaseInstance...","commit_id":"a41da0b521b9acd15cfbe7120dc38d565de6b29a"}],"nova/compute/manager.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"7e8b50ac1438072708262edde7e400196f70028f","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"            return"},{"line_number":1772,"context_line":"        # TODO(alex_xu): Use Instance instead of _BaseInstance after InstanceV1"},{"line_number":1773,"context_line":"        # removed."},{"line_number":1774,"context_line":"        if isinstance(instance, obj_instance._BaseInstance):"},{"line_number":1775,"context_line":"            instance \u003d objects.InstanceList(objects\u003d[instance])"},{"line_number":1776,"context_line":"        context \u003d context.elevated()"},{"line_number":1777,"context_line":"        self.scheduler_client.update_instance_info(context, self.host,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_3303710f","line":1774,"updated":"2015-09-28 07:17:18.000000000","message":"If changed to\n\n if not isinstance(instance, obj_base.ObjectListBase):\n\nthis will not need to change again when InstanceV1 is removed.\n\nBtw. I wonder if this ever can get InstanceV1 objects (local compute manager method). If that were to happen, wouldn\u0027t this break anyway when trying to fit a InstanceV1 object in a InstanceListV2?","commit_id":"36db8d584bd4d32191f013698d95679cfdf10dee"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"62a5f061a1c2a16c8386ff0c4aff008a9136fb45","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"            return"},{"line_number":1772,"context_line":"        # TODO(alex_xu): Use Instance instead of _BaseInstance after InstanceV1"},{"line_number":1773,"context_line":"        # removed."},{"line_number":1774,"context_line":"        if isinstance(instance, obj_instance._BaseInstance):"},{"line_number":1775,"context_line":"            instance \u003d objects.InstanceList(objects\u003d[instance])"},{"line_number":1776,"context_line":"        context \u003d context.elevated()"},{"line_number":1777,"context_line":"        self.scheduler_client.update_instance_info(context, self.host,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_534f05bd","line":1774,"in_reply_to":"9a1a9d01_3303710f","updated":"2015-09-28 07:36:34.000000000","message":"@Hans, thanks, use obj_base.ObjectListBase is better.\n\nI think there won\u0027t happened the case InstanceV1 fit into InstanceListV2. As Instance and InstanceList all come the code in the same node, so they always use same version object.","commit_id":"36db8d584bd4d32191f013698d95679cfdf10dee"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f32ade96785992c8ee63c8646aead98918a9bf6d","unresolved":false,"context_lines":[{"line_number":1768,"context_line":"        \"\"\""},{"line_number":1769,"context_line":"        if not self.send_instance_updates:"},{"line_number":1770,"context_line":"            return"},{"line_number":1771,"context_line":"        if not isinstance(instance, obj_base.ObjectListBase):"},{"line_number":1772,"context_line":"            instance \u003d objects.InstanceList(objects\u003d[instance])"},{"line_number":1773,"context_line":"        context \u003d context.elevated()"},{"line_number":1774,"context_line":"        self.scheduler_client.update_instance_info(context, self.host,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_5fc0642a","line":1771,"updated":"2015-09-28 09:16:46.000000000","message":"should still be ObjectBase here, I think.","commit_id":"059dd399cdd225a1ba5573a49eadd93dbd97968b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"56047dbcdb07a660659ca6311cedff456bb217ef","unresolved":false,"context_lines":[{"line_number":1768,"context_line":"        \"\"\""},{"line_number":1769,"context_line":"        if not self.send_instance_updates:"},{"line_number":1770,"context_line":"            return"},{"line_number":1771,"context_line":"        if not isinstance(instance, obj_base.ObjectListBase):"},{"line_number":1772,"context_line":"            instance \u003d objects.InstanceList(objects\u003d[instance])"},{"line_number":1773,"context_line":"        context \u003d context.elevated()"},{"line_number":1774,"context_line":"        self.scheduler_client.update_instance_info(context, self.host,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_fb35cbd9","line":1771,"in_reply_to":"9a1a9d01_5fc0642a","updated":"2015-09-28 09:23:48.000000000","message":"oops, now I see what you mean. its a not in there.","commit_id":"059dd399cdd225a1ba5573a49eadd93dbd97968b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"55f5efaa50af708781fda92067a0222a65b82366","unresolved":false,"context_lines":[{"line_number":1769,"context_line":"        if not self.send_instance_updates:"},{"line_number":1770,"context_line":"            return"},{"line_number":1771,"context_line":"        if not isinstance(instance, obj_base.ObjectListBase):"},{"line_number":1772,"context_line":"            instance \u003d objects.InstanceList(objects\u003d[instance])"},{"line_number":1773,"context_line":"        context \u003d context.elevated()"},{"line_number":1774,"context_line":"        self.scheduler_client.update_instance_info(context, self.host,"},{"line_number":1775,"context_line":"                                                   instance)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_9f735ce7","line":1772,"updated":"2015-09-28 09:20:51.000000000","message":"Nit: tempting to change this to instances or instance_list","commit_id":"059dd399cdd225a1ba5573a49eadd93dbd97968b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ee20d42b38dac0fb0dff14cca5e6ae3b77e8aaf1","unresolved":false,"context_lines":[{"line_number":1768,"context_line":"        \"\"\""},{"line_number":1769,"context_line":"        if not self.send_instance_updates:"},{"line_number":1770,"context_line":"            return"},{"line_number":1771,"context_line":"        if not isinstance(instance, obj_base.ObjectListBase):"},{"line_number":1772,"context_line":"            instance \u003d objects.InstanceList(objects\u003d[instance])"},{"line_number":1773,"context_line":"        context \u003d context.elevated()"},{"line_number":1774,"context_line":"        self.scheduler_client.update_instance_info(context, self.host,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_d86240ad","line":1771,"updated":"2015-09-28 13:53:52.000000000","message":"This is too general. This should be:\n\n if is instance(instance, obj_base._BaseInstance)","commit_id":"a41da0b521b9acd15cfbe7120dc38d565de6b29a"}],"nova/conductor/manager.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"7e8b50ac1438072708262edde7e400196f70028f","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    # NOTE(hanlind): This can be removed in version 3.0 of the RPC API"},{"line_number":247,"context_line":"    def instance_destroy(self, context, instance):"},{"line_number":248,"context_line":"        if not isinstance(instance, nova_object.NovaObject):"},{"line_number":249,"context_line":"            instance \u003d objects.Instance._from_db_object(context,"},{"line_number":250,"context_line":"                                                        objects.Instance(),"},{"line_number":251,"context_line":"                                                        instance)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_30cb6720","line":248,"updated":"2015-09-28 07:17:18.000000000","message":"No need to fix this since it is unused and scheduled for removal, see above note.\n\nRemoval is in https://review.openstack.org/168858","commit_id":"36db8d584bd4d32191f013698d95679cfdf10dee"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"62a5f061a1c2a16c8386ff0c4aff008a9136fb45","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    # NOTE(hanlind): This can be removed in version 3.0 of the RPC API"},{"line_number":247,"context_line":"    def instance_destroy(self, context, instance):"},{"line_number":248,"context_line":"        if not isinstance(instance, nova_object.NovaObject):"},{"line_number":249,"context_line":"            instance \u003d objects.Instance._from_db_object(context,"},{"line_number":250,"context_line":"                                                        objects.Instance(),"},{"line_number":251,"context_line":"                                                        instance)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_5307051c","line":248,"in_reply_to":"9a1a9d01_30cb6720","updated":"2015-09-28 07:36:34.000000000","message":"thanks","commit_id":"36db8d584bd4d32191f013698d95679cfdf10dee"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"7e8b50ac1438072708262edde7e400196f70028f","unresolved":false,"context_lines":[{"line_number":374,"context_line":"    def notify_usage_exists(self, context, instance, current_period,"},{"line_number":375,"context_line":"                            ignore_missing_network_data,"},{"line_number":376,"context_line":"                            system_metadata, extra_usage_info):"},{"line_number":377,"context_line":"        if not isinstance(instance, nova_object.NovaObject):"},{"line_number":378,"context_line":"            attrs \u003d [\u0027metadata\u0027, \u0027system_metadata\u0027]"},{"line_number":379,"context_line":"            instance \u003d objects.Instance._from_db_object(context,"},{"line_number":380,"context_line":"                                                        objects.Instance(),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_f0d40fbe","line":377,"updated":"2015-09-28 07:17:18.000000000","message":"ditto","commit_id":"36db8d584bd4d32191f013698d95679cfdf10dee"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"62a5f061a1c2a16c8386ff0c4aff008a9136fb45","unresolved":false,"context_lines":[{"line_number":374,"context_line":"    def notify_usage_exists(self, context, instance, current_period,"},{"line_number":375,"context_line":"                            ignore_missing_network_data,"},{"line_number":376,"context_line":"                            system_metadata, extra_usage_info):"},{"line_number":377,"context_line":"        if not isinstance(instance, nova_object.NovaObject):"},{"line_number":378,"context_line":"            attrs \u003d [\u0027metadata\u0027, \u0027system_metadata\u0027]"},{"line_number":379,"context_line":"            instance \u003d objects.Instance._from_db_object(context,"},{"line_number":380,"context_line":"                                                        objects.Instance(),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_7302490d","line":377,"in_reply_to":"9a1a9d01_f0d40fbe","updated":"2015-09-28 07:36:34.000000000","message":"Done","commit_id":"36db8d584bd4d32191f013698d95679cfdf10dee"}],"nova/objects/request_spec.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd8e373637cc8b4ecdcd252e84965a6fef777e9e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            self.image \u003d None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def _from_instance(self, instance):"},{"line_number":99,"context_line":"        if isinstance(instance, base.NovaObject):"},{"line_number":100,"context_line":"            # NOTE(sbauza): Instance should normally be a NovaObject..."},{"line_number":101,"context_line":"            getter \u003d getattr"},{"line_number":102,"context_line":"        elif isinstance(instance, dict):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_da823894","line":99,"range":{"start_line":99,"start_character":31,"end_line":99,"end_character":47},"updated":"2015-09-28 13:24:51.000000000","message":"see, that is worrying me. Why not :\n\n  if isinstance(instance, instance_obj._BaseInstance)","commit_id":"a41da0b521b9acd15cfbe7120dc38d565de6b29a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ee20d42b38dac0fb0dff14cca5e6ae3b77e8aaf1","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            self.image \u003d None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def _from_instance(self, instance):"},{"line_number":99,"context_line":"        if isinstance(instance, base.NovaObject):"},{"line_number":100,"context_line":"            # NOTE(sbauza): Instance should normally be a NovaObject..."},{"line_number":101,"context_line":"            getter \u003d getattr"},{"line_number":102,"context_line":"        elif isinstance(instance, dict):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_38fb3cc3","line":99,"range":{"start_line":99,"start_character":31,"end_line":99,"end_character":47},"in_reply_to":"9a1a9d01_da823894","updated":"2015-09-28 13:53:52.000000000","message":"Yes, exactly.","commit_id":"a41da0b521b9acd15cfbe7120dc38d565de6b29a"}],"nova/scheduler/utils.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ee20d42b38dac0fb0dff14cca5e6ae3b77e8aaf1","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            instance_type \u003d flavors.extract_flavor(instance)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    if isinstance(instance, obj_base.NovaObject):"},{"line_number":65,"context_line":"        instance \u003d obj_base.obj_to_primitive(instance)"},{"line_number":66,"context_line":"        # obj_to_primitive doesn\u0027t copy this enough, so be sure"},{"line_number":67,"context_line":"        # to detach our metadata blob because we modify it below."}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_f804e4c0","line":64,"updated":"2015-09-28 13:53:52.000000000","message":"Please do not make these less specific. Use the base class.","commit_id":"a41da0b521b9acd15cfbe7120dc38d565de6b29a"}],"nova/virt/hardware.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ee20d42b38dac0fb0dff14cca5e6ae3b77e8aaf1","unresolved":false,"context_lines":[{"line_number":1175,"context_line":"    Instance object, this makes sure we get beck either None, or an instance"},{"line_number":1176,"context_line":"    of objects.InstanceNUMATopology class."},{"line_number":1177,"context_line":"    \"\"\""},{"line_number":1178,"context_line":"    if isinstance(instance, obj_base.NovaObject):"},{"line_number":1179,"context_line":"        # NOTE (ndipanov): This may cause a lazy-load of the attribute"},{"line_number":1180,"context_line":"        instance_numa_topology \u003d instance.numa_topology"},{"line_number":1181,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_982a882b","line":1178,"updated":"2015-09-28 13:53:52.000000000","message":"Same here.","commit_id":"a41da0b521b9acd15cfbe7120dc38d565de6b29a"}]}
