)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b39009dae74ef9e9c6f2a959b7363c49987e9c47","unresolved":false,"context_lines":[{"line_number":7,"context_line":"pci: Allow to update pci_requests in instance_extra"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch allow to update the pci_requests for instance."},{"line_number":10,"context_line":"This is usefull when resize/migrate a vm and we want to"},{"line_number":11,"context_line":"update the pci_requests of the new instance"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I0a55dcbbd1c4444998d861a01271ad1438d47da1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"7aa08908_05d29634","line":10,"range":{"start_line":10,"start_character":8,"end_line":10,"end_character":15},"updated":"2016-06-09 15:02:29.000000000","message":"\"useful\"","commit_id":"e513a59435db9999cafbda9c69885ae3f4658764"}],"nova/objects/instance.py":[{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"f47ceeadbfcaade97cf0eaad42acd4ac993be80a","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                    context, self.uuid)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def _save_pci_requests(self, context):"},{"line_number":533,"context_line":"        if not self.pci_requests:"},{"line_number":534,"context_line":"            self.pci_requests \u003d object.InstancePCIRequests()"},{"line_number":535,"context_line":"        self.pci_requests.instance_uuid \u003d self.uuid"},{"line_number":536,"context_line":"        with self.pci_requests.obj_alternate_context(context):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_4b79b0c7","line":533,"updated":"2016-05-10 18:42:34.000000000","message":"The unit test included in this patch only tests the changes in InstancePCIRequests.  I think it would make things more robust if we test this change as well.","commit_id":"15d9d1e78b1c55a2f05f0955a286091666868d76"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"309dd5b0207e4a58c0cbc3a5627a6d75f28ac9ec","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                    context, self.uuid)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def _save_pci_requests(self, context):"},{"line_number":533,"context_line":"        if not self.pci_requests:"},{"line_number":534,"context_line":"            self.pci_requests \u003d object.InstancePCIRequests()"},{"line_number":535,"context_line":"        self.pci_requests.instance_uuid \u003d self.uuid"},{"line_number":536,"context_line":"        with self.pci_requests.obj_alternate_context(context):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_a1206f4a","line":533,"in_reply_to":"dab17558_4b79b0c7","updated":"2016-05-15 16:25:42.000000000","message":"Done","commit_id":"15d9d1e78b1c55a2f05f0955a286091666868d76"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3521de452bd39ba1362457b4ef87786e8f8f2866","unresolved":false,"context_lines":[{"line_number":534,"context_line":"            self.pci_requests \u003d object.InstancePCIRequests()"},{"line_number":535,"context_line":"        self.pci_requests.instance_uuid \u003d self.uuid"},{"line_number":536,"context_line":"        with self.pci_requests.obj_alternate_context(context):"},{"line_number":537,"context_line":"            self.pci_requests._save()"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"    def _save_pci_devices(self, context):"},{"line_number":540,"context_line":"        # NOTE(yjiang5): All devices held by PCI tracker, only PCI tracker"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_1a01af05","line":537,"updated":"2016-05-10 20:40:24.000000000","message":"I know you are just copying the _save_numa_topology() method above, but really, we should never be calling a private method from outside of the target module/class. Since InstancePCIRequests actually should never be saved to the database (instance_extra.pci_requests column) by itself and should always be saved in the context of an Instance.save() call, I actually do NOT think there should be an InstancePCIRequests.save() (or _save()) method and instead you should just call db.instance_extra_update_by_uuid() directly from here, similar to the _save_flavor() method below.","commit_id":"15d9d1e78b1c55a2f05f0955a286091666868d76"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"309dd5b0207e4a58c0cbc3a5627a6d75f28ac9ec","unresolved":false,"context_lines":[{"line_number":534,"context_line":"            self.pci_requests \u003d object.InstancePCIRequests()"},{"line_number":535,"context_line":"        self.pci_requests.instance_uuid \u003d self.uuid"},{"line_number":536,"context_line":"        with self.pci_requests.obj_alternate_context(context):"},{"line_number":537,"context_line":"            self.pci_requests._save()"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"    def _save_pci_devices(self, context):"},{"line_number":540,"context_line":"        # NOTE(yjiang5): All devices held by PCI tracker, only PCI tracker"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_4129c336","line":537,"in_reply_to":"dab17558_1a01af05","updated":"2016-05-15 16:25:42.000000000","message":"Done","commit_id":"15d9d1e78b1c55a2f05f0955a286091666868d76"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"19a37d08412158c2e8fda6942bd4ea437c68ba47","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            values \u003d {\u0027pci_requests\u0027: []}"},{"line_number":551,"context_line":"            if self.pci_requests:"},{"line_number":552,"context_line":"                values \u003d {\u0027pci_requests\u0027: self.pci_requests.to_json()}"},{"line_number":553,"context_line":"            db.instance_extra_update_by_uuid(context, self.uuid, values)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def _save_pci_devices(self, context):"},{"line_number":556,"context_line":"        # NOTE(yjiang5): All devices held by PCI tracker, only PCI tracker"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_7261b7d2","line":553,"updated":"2016-05-23 18:42:03.000000000","message":"How often are these updated? Per my comment below, we really need to fix our naive approach to saving these. However, if it\u0027s once per instance lifetime or something then it\u0027s not worth holding up this patch. If it\u0027s more often, then maybe so.","commit_id":"7082ec0b7a5c2da237c26c6703aa4dca004286e2"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"044d5f23e77aa8b65c149348654f97b7dee618db","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            values \u003d {\u0027pci_requests\u0027: []}"},{"line_number":551,"context_line":"            if self.pci_requests:"},{"line_number":552,"context_line":"                values \u003d {\u0027pci_requests\u0027: self.pci_requests.to_json()}"},{"line_number":553,"context_line":"            db.instance_extra_update_by_uuid(context, self.uuid, values)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def _save_pci_devices(self, context):"},{"line_number":556,"context_line":"        # NOTE(yjiang5): All devices held by PCI tracker, only PCI tracker"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_94015207","line":553,"in_reply_to":"bab6814e_2e201949","updated":"2016-05-25 07:58:19.000000000","message":"The work is already done in https://review.openstack.org/305437 so I abandoned my changes","commit_id":"7082ec0b7a5c2da237c26c6703aa4dca004286e2"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"7044a09fcdc95d00ab355c13c2c4f2b754987e67","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            values \u003d {\u0027pci_requests\u0027: []}"},{"line_number":551,"context_line":"            if self.pci_requests:"},{"line_number":552,"context_line":"                values \u003d {\u0027pci_requests\u0027: self.pci_requests.to_json()}"},{"line_number":553,"context_line":"            db.instance_extra_update_by_uuid(context, self.uuid, values)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def _save_pci_devices(self, context):"},{"line_number":556,"context_line":"        # NOTE(yjiang5): All devices held by PCI tracker, only PCI tracker"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_f6c3b136","line":553,"in_reply_to":"bab6814e_7261b7d2","updated":"2016-05-24 18:28:53.000000000","message":"pci_requests may change when user do resize. \n\nAnd this patch allow to keep the updated pci_requests after that operation.\n\nso if we don\u0027t update it the pci_requests won\u0027t match the new flavor number of pci devices.\n\ndo you want to do call one db.instance_extra_update_by_uuid call that update all the instance_exta table? \nI can do such refactoring (except for the numa_topology which call for","commit_id":"7082ec0b7a5c2da237c26c6703aa4dca004286e2"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"9f0bdccc4802a9992df78d15ba861e8156e4f93c","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            values \u003d {\u0027pci_requests\u0027: []}"},{"line_number":551,"context_line":"            if self.pci_requests:"},{"line_number":552,"context_line":"                values \u003d {\u0027pci_requests\u0027: self.pci_requests.to_json()}"},{"line_number":553,"context_line":"            db.instance_extra_update_by_uuid(context, self.uuid, values)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def _save_pci_devices(self, context):"},{"line_number":556,"context_line":"        # NOTE(yjiang5): All devices held by PCI tracker, only PCI tracker"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_2e201949","line":553,"in_reply_to":"bab6814e_f6c3b136","updated":"2016-05-25 07:17:28.000000000","message":"I create patches to update in one DB call\nsee \nhttps://review.openstack.org/#/c/320677/\nhttps://review.openstack.org/#/c/320678/\nhttps://review.openstack.org/#/c/320679/","commit_id":"7082ec0b7a5c2da237c26c6703aa4dca004286e2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b39009dae74ef9e9c6f2a959b7363c49987e9c47","unresolved":false,"context_lines":[{"line_number":580,"context_line":"            obj \u003d getattr(self, field)"},{"line_number":581,"context_line":"            value \u003d None"},{"line_number":582,"context_line":"            if obj is not None:"},{"line_number":583,"context_line":"                value \u003d obj.to_json()"},{"line_number":584,"context_line":"            self._extra_values_to_save[field] \u003d value"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @base.remotable"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_c59ece62","line":583,"updated":"2016-06-09 15:02:29.000000000","message":"FWIW, I don\u0027t like this change (and I don\u0027t like that numa_topology kinda had it already).","commit_id":"e513a59435db9999cafbda9c69885ae3f4658764"}],"nova/tests/unit/objects/test_instance_pci_requests.py":[{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"f47ceeadbfcaade97cf0eaad42acd4ac993be80a","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                spec\u003d[{\u0027vendor_id\u0027: \u00278086\u0027, \u0027device_id\u0027: \u00271502\u0027}])])"},{"line_number":149,"context_line":"        requests_obj.instance_uuid \u003d FAKE_UUID"},{"line_number":150,"context_line":"        requests_obj._save()"},{"line_number":151,"context_line":"        self.assertEqual(1, len(mock_update.call_args_list))"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def test_from_request_spec_instance_props(self):"},{"line_number":154,"context_line":"        requests \u003d objects.InstancePCIRequests("}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_0be688af","line":151,"updated":"2016-05-10 18:42:34.000000000","message":"It would be preferable to not just test the length of mock_update.call_args_list but to also verify that it is called with the right arguments (db update).","commit_id":"15d9d1e78b1c55a2f05f0955a286091666868d76"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"309dd5b0207e4a58c0cbc3a5627a6d75f28ac9ec","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                spec\u003d[{\u0027vendor_id\u0027: \u00278086\u0027, \u0027device_id\u0027: \u00271502\u0027}])])"},{"line_number":149,"context_line":"        requests_obj.instance_uuid \u003d FAKE_UUID"},{"line_number":150,"context_line":"        requests_obj._save()"},{"line_number":151,"context_line":"        self.assertEqual(1, len(mock_update.call_args_list))"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def test_from_request_spec_instance_props(self):"},{"line_number":154,"context_line":"        requests \u003d objects.InstancePCIRequests("}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_811bab1b","line":151,"in_reply_to":"dab17558_0be688af","updated":"2016-05-15 16:25:42.000000000","message":"Done","commit_id":"15d9d1e78b1c55a2f05f0955a286091666868d76"}]}
