)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c809da66d98acdf6fee1e37806fa80ca76bdd97","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yongli He \u003cyongli.he@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-08-03 15:21:42 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Load expected attr pci_devices while migrate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Load \u0027pci_requests\u0027 explicitly otherwise the request_spec missed it,"},{"line_number":10,"context_line":"NUMATopologyFilter and PciPassthroughFilter then return True for any"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_9bcc416b","line":7,"range":{"start_line":7,"start_character":19,"end_line":7,"end_character":30},"updated":"2018-08-09 17:11:18.000000000","message":"pci_devices or pci_requests? Because the Instance object has both, and can lazy-load both, see:\n\nhttp://logs.openstack.org/27/590327/1/check/tempest-full-py3/7f05bc3/controller/logs/screen-n-cpu.txt.gz#_Aug_09_13_57_03_372187\n\nhttp://logs.openstack.org/27/590327/1/check/tempest-full-py3/7f05bc3/controller/logs/screen-n-cpu.txt.gz#_Aug_09_13_57_03_388580\n\nRequestSpec has a pci_requests field but not a pci_devices field.","commit_id":"2c2f8796ec4dfc4c734af0742937418436c9a1eb"}],"nova/api/openstack/compute/migrate_server.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5f30c149f6384d5e8c43a1a1903762764ae26959","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            body[\u0027migrate\u0027] is not None):"},{"line_number":51,"context_line":"            host_name \u003d body[\u0027migrate\u0027].get(\u0027host\u0027)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # Load \u0027pci_requests\u0027 explicitly or the request_spec won\u0027t"},{"line_number":54,"context_line":"        # have it and NUMATopologyFilter and PciPassthroughFilter then return"},{"line_number":55,"context_line":"        # True for any hosts."},{"line_number":56,"context_line":"        expected_attrs \u003d [\u0027pci_requests\u0027]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id,"},{"line_number":59,"context_line":"                                       expected_attrs\u003dexpected_attrs)"},{"line_number":60,"context_line":"        try:"},{"line_number":61,"context_line":"            self.compute_api.resize(req.environ[\u0027nova.context\u0027], instance,"},{"line_number":62,"context_line":"                                    host_name\u003dhost_name)"},{"line_number":63,"context_line":"        except (exception.TooManyInstances, exception.QuotaError) as e:"},{"line_number":64,"context_line":"            raise exc.HTTPForbidden(explanation\u003de.format_message())"},{"line_number":65,"context_line":"        except (exception.InstanceIsLocked,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_a284a25f","line":62,"range":{"start_line":53,"start_character":8,"end_line":62,"end_character":56},"updated":"2018-08-08 00:19:26.000000000","message":"I don\u0027t understand how this is related because the resize API will lookup the request spec here:\n\nhttps://github.com/openstack/nova/blob/681cb7f21f2ecab7b6c0451b746ab6f45c5a515c/nova/compute/api.py#L3493\n\nIs the problem that there is no request spec for this instance (is it really old?) and then conductor has to create the request spec from the instance?\n\nhttps://github.com/openstack/nova/blob/681cb7f21f2ecab7b6c0451b746ab6f45c5a515c/nova/conductor/manager.py#L306\n\nBut why doesn\u0027t that work? We lazy-load the instance.pci_requests:\n\nhttps://github.com/openstack/nova/blob/681cb7f21f2ecab7b6c0451b746ab6f45c5a515c/nova/objects/instance.py#L942","commit_id":"2c2f8796ec4dfc4c734af0742937418436c9a1eb"}]}
