)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af46f3b456bc70ea4cee5c517a910e4acfa94324","unresolved":false,"context_lines":[{"line_number":18,"context_line":"validates that _load_generic() loads anything else it can from the instance"},{"line_number":19,"context_line":"it fetches from the database, if not already set on the object initiating"},{"line_number":20,"context_line":"the load."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: Id0f4027f1fffefdb90240fc484cf3c0554e576d9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_ad7ca3b5","line":21,"updated":"2018-05-18 18:33:55.000000000","message":"Closes-Bug: #1772088\n\nIf you have to respin.","commit_id":"4888bc064f3e01e6f66dad9e9775eccc63d18ac0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7faf0a27cf89c3d8e7c7a19176c30dea742c4dcd","unresolved":false,"context_lines":[{"line_number":18,"context_line":"validates that _load_generic() loads anything else it can from the instance"},{"line_number":19,"context_line":"it fetches from the database, if not already set on the object initiating"},{"line_number":20,"context_line":"the load."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: Id0f4027f1fffefdb90240fc484cf3c0554e576d9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_8d068720","line":21,"in_reply_to":"5f7c97a3_ad7ca3b5","updated":"2018-05-18 18:38:32.000000000","message":"Sorry wrong patch.","commit_id":"4888bc064f3e01e6f66dad9e9775eccc63d18ac0"}],"nova/objects/instance.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fea4b0438e0d368dfd336511c8f48180a0dce953","unresolved":false,"context_lines":[{"line_number":884,"context_line":"        # NOTE(danms): load anything we don\u0027t already have from the"},{"line_number":885,"context_line":"        # instance we got from the database to make the most of the"},{"line_number":886,"context_line":"        # performance hit."},{"line_number":887,"context_line":"        for field in self.fields:"},{"line_number":888,"context_line":"            if field in instance and field not in self:"},{"line_number":889,"context_line":"                setattr(self, field, getattr(instance, field))"},{"line_number":890,"context_line":""},{"line_number":891,"context_line":"    def _load_fault(self):"},{"line_number":892,"context_line":"        self.fault \u003d objects.InstanceFault.get_latest_for_instance("}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_313fa5b6","line":889,"range":{"start_line":887,"start_character":8,"end_line":889,"end_character":62},"updated":"2018-05-17 21:56:45.000000000","message":"Why not do:\n\nself._from_db_object(self._context, self, instance, expected_attrs\u003d[attrname])\n\n?\n\nI could swear we have some other objects doing generic lazy-loads like that but I\u0027m too *lazy* to *load* that into my brain right now. Get it?!","commit_id":"bf618f91d681fb24b5bc63565668601269025893"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f3d79de27c08eb1ce4002cb75253c1f67a0021fd","unresolved":false,"context_lines":[{"line_number":884,"context_line":"        # NOTE(danms): load anything we don\u0027t already have from the"},{"line_number":885,"context_line":"        # instance we got from the database to make the most of the"},{"line_number":886,"context_line":"        # performance hit."},{"line_number":887,"context_line":"        for field in self.fields:"},{"line_number":888,"context_line":"            if field in instance and field not in self:"},{"line_number":889,"context_line":"                setattr(self, field, getattr(instance, field))"},{"line_number":890,"context_line":""},{"line_number":891,"context_line":"    def _load_fault(self):"},{"line_number":892,"context_line":"        self.fault \u003d objects.InstanceFault.get_latest_for_instance("}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_3172457e","line":889,"range":{"start_line":887,"start_character":8,"end_line":889,"end_character":62},"in_reply_to":"5f7c97a3_313fa5b6","updated":"2018-05-17 22:05:28.000000000","message":"Because instance is way too complicated for that. We do all kinds of stuff in _from_db_object() in instance that applies specifically to database objects.","commit_id":"bf618f91d681fb24b5bc63565668601269025893"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bb905c6ce6edc4c5e2e5264747a1dca4636ef292","unresolved":false,"context_lines":[{"line_number":867,"context_line":"            if self.obj_attr_is_set(field):"},{"line_number":868,"context_line":"                if field \u003d\u003d \u0027info_cache\u0027:"},{"line_number":869,"context_line":"                    self.info_cache.refresh()"},{"line_number":870,"context_line":"                elif self[field] !\u003d current[field]:"},{"line_number":871,"context_line":"                    self[field] \u003d current[field]"},{"line_number":872,"context_line":"        self.obj_reset_changes()"},{"line_number":873,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_87ef48e8","line":870,"range":{"start_line":870,"start_character":16,"end_line":870,"end_character":51},"updated":"2018-05-18 16:23:18.000000000","message":"This is blowing up in the cells v1 job during a refresh() call:\n\nhttp://logs.openstack.org/67/569267/2/check/nova-cells-v1/ce85331/logs/screen-n-cell-child.txt.gz#_May_18_14_02_29_212925\n\nDo we need to check if field is also in current?","commit_id":"2b56bfaa8b975ed2a4fc66f9ba7356f635fc1115"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6cf6ce126d26cdb6ac8fd0ed1033913735c882a1","unresolved":false,"context_lines":[{"line_number":867,"context_line":"            if self.obj_attr_is_set(field):"},{"line_number":868,"context_line":"                if field \u003d\u003d \u0027info_cache\u0027:"},{"line_number":869,"context_line":"                    self.info_cache.refresh()"},{"line_number":870,"context_line":"                elif self[field] !\u003d current[field]:"},{"line_number":871,"context_line":"                    self[field] \u003d current[field]"},{"line_number":872,"context_line":"        self.obj_reset_changes()"},{"line_number":873,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_a79a846b","line":870,"range":{"start_line":870,"start_character":16,"end_line":870,"end_character":51},"in_reply_to":"5f7c97a3_87ef48e8","updated":"2018-05-18 16:23:52.000000000","message":"Although, if that\u0027s the case, I\u0027m not sure why things would be different now.","commit_id":"2b56bfaa8b975ed2a4fc66f9ba7356f635fc1115"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"459306db2fb11c68bb2cfb342e30eaf6b7e4f969","unresolved":false,"context_lines":[{"line_number":867,"context_line":"            if self.obj_attr_is_set(field):"},{"line_number":868,"context_line":"                if field \u003d\u003d \u0027info_cache\u0027:"},{"line_number":869,"context_line":"                    self.info_cache.refresh()"},{"line_number":870,"context_line":"                elif self[field] !\u003d current[field]:"},{"line_number":871,"context_line":"                    self[field] \u003d current[field]"},{"line_number":872,"context_line":"        self.obj_reset_changes()"},{"line_number":873,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_8a62edd7","line":870,"range":{"start_line":870,"start_character":16,"end_line":870,"end_character":51},"in_reply_to":"5f7c97a3_a79a846b","updated":"2018-05-18 16:57:45.000000000","message":"We do need to add that check, yes, but I want to find out what it\u0027s actually choking on as we should, for the most part, have things set on the local object that will come out of the remote one. That might mean we\u0027re not joining something we think we are. I have a testing patch on top of this to barf out some debug.","commit_id":"2b56bfaa8b975ed2a4fc66f9ba7356f635fc1115"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd11bfc8fa7515fee0a1b46d498d6a1d85ecce1f","unresolved":false,"context_lines":[{"line_number":888,"context_line":"        # performance hit."},{"line_number":889,"context_line":"        for field in self.fields:"},{"line_number":890,"context_line":"            if field in instance and field not in self:"},{"line_number":891,"context_line":"                setattr(self, field, getattr(instance, field))"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"    def _load_fault(self):"},{"line_number":894,"context_line":"        self.fault \u003d objects.InstanceFault.get_latest_for_instance("}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_7f8723b8","line":891,"updated":"2018-05-18 03:13:07.000000000","message":"++","commit_id":"2b56bfaa8b975ed2a4fc66f9ba7356f635fc1115"}],"nova/tests/unit/objects/test_instance.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd11bfc8fa7515fee0a1b46d498d6a1d85ecce1f","unresolved":false,"context_lines":[{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"    @mock.patch.object(objects.Instance, \u0027get_by_uuid\u0027)"},{"line_number":1506,"context_line":"    def test_load_something_unspecial(self, mock_get):"},{"line_number":1507,"context_line":"        inst2 \u003d objects.Instance(vm_state\u003dvm_states.ACTIVE,"},{"line_number":1508,"context_line":"                                 task_state\u003dtask_states.SCHEDULING)"},{"line_number":1509,"context_line":"        mock_get.return_value \u003d inst2"},{"line_number":1510,"context_line":"        inst \u003d instance.Instance(context\u003dself.context, uuid\u003duuids.instance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_3ffc4b3d","line":1507,"range":{"start_line":1507,"start_character":8,"end_line":1507,"end_character":13},"updated":"2018-05-18 03:13:07.000000000","message":"inst_in_db","commit_id":"2b56bfaa8b975ed2a4fc66f9ba7356f635fc1115"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4a234299aa278cac620ced778e5159625c77fb8a","unresolved":false,"context_lines":[{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"    @mock.patch.object(objects.Instance, \u0027get_by_uuid\u0027)"},{"line_number":1506,"context_line":"    def test_load_something_unspecial(self, mock_get):"},{"line_number":1507,"context_line":"        inst2 \u003d objects.Instance(vm_state\u003dvm_states.ACTIVE,"},{"line_number":1508,"context_line":"                                 task_state\u003dtask_states.SCHEDULING)"},{"line_number":1509,"context_line":"        mock_get.return_value \u003d inst2"},{"line_number":1510,"context_line":"        inst \u003d instance.Instance(context\u003dself.context, uuid\u003duuids.instance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_f6d03556","line":1507,"range":{"start_line":1507,"start_character":8,"end_line":1507,"end_character":13},"in_reply_to":"5f7c97a3_3ffc4b3d","updated":"2018-05-18 13:30:03.000000000","message":"I was following the patterns above.","commit_id":"2b56bfaa8b975ed2a4fc66f9ba7356f635fc1115"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd11bfc8fa7515fee0a1b46d498d6a1d85ecce1f","unresolved":false,"context_lines":[{"line_number":1512,"context_line":"        self.assertEqual(task_states.SCHEDULING, inst.task_state)"},{"line_number":1513,"context_line":"        mock_get.assert_called_once_with(self.context,"},{"line_number":1514,"context_line":"                                         uuid\u003duuids.instance,"},{"line_number":1515,"context_line":"                                         expected_attrs\u003d[\u0027vm_state\u0027])"},{"line_number":1516,"context_line":""},{"line_number":1517,"context_line":"    @mock.patch(\u0027nova.db.instance_fault_get_by_instance_uuids\u0027)"},{"line_number":1518,"context_line":"    def test_load_fault(self, mock_get):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_dfa2f74b","line":1515,"updated":"2018-05-18 03:13:07.000000000","message":"++ nice test, checks that we only pull the instance from the db once after accessing two non-loaded fields.","commit_id":"2b56bfaa8b975ed2a4fc66f9ba7356f635fc1115"}]}
