)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9b07d14fdc923aa2a11d84fa92c06750f67aea36","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enable start/stop of instances with accelerators."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":". Do not delete accelerator requests in stop code paths."},{"line_number":10,"context_line":". In the start code path, get the list of accelerator requests from"},{"line_number":11,"context_line":"  Cyborg in the compute manager \u0027power_on\u0027."},{"line_number":12,"context_line":". Pass accel_info (said list) to the virt driver power_on."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"1fa4df85_a85eaa73","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":2},"updated":"2020-03-23 16:47:42.000000000","message":"What is up with the dots in front of these lines?","commit_id":"41379c70d6053ea5ed445550f0fec3bc06e19572"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"750abf6b4f545e4df33f07fa35b93cc4b2fd17d1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enable start/stop of instances with accelerators."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":". Do not delete accelerator requests in stop code paths."},{"line_number":10,"context_line":". In the start code path, get the list of accelerator requests from"},{"line_number":11,"context_line":"  Cyborg in the compute manager \u0027power_on\u0027."},{"line_number":12,"context_line":". Pass accel_info (said list) to the virt driver power_on."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"df33271e_c892c8f6","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":2},"in_reply_to":"1fa4df85_a85eaa73","updated":"2020-03-25 07:01:06.000000000","message":"Bullet points.","commit_id":"41379c70d6053ea5ed445550f0fec3bc06e19572"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0cdcc1bcbb388f19f96202b04b8c006bb7d1c4f8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sundar Nadathur \u003csundar.nadathur@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-03-21 12:03:39 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enable start/stop of instances with accelerators."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":". Do not delete accelerator requests in stop code paths."},{"line_number":10,"context_line":". In the start code path, get the list of accelerator requests from"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"df33271e_9dc5bf3f","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":49},"updated":"2020-03-23 20:40:33.000000000","message":"it may seam weird to enable start stop after reboot but in the libvirt driver at least power_on calls hard reboot because reasons so this order does actually make sense.","commit_id":"10500d682b61d3769e56958d3697ff1bc6da2eff"}],"nova/compute/manager.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"18e07c8672930471c165839ef0f45fc6199d4b17","unresolved":false,"context_lines":[{"line_number":3055,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context, instance)"},{"line_number":3056,"context_line":"        block_device_info \u003d self._get_instance_block_device_info(context,"},{"line_number":3057,"context_line":"                                                                 instance)"},{"line_number":3058,"context_line":"        dp_name \u003d instance.flavor.extra_specs.get(\u0027accel:device_profile\u0027)"},{"line_number":3059,"context_line":"        if dp_name:"},{"line_number":3060,"context_line":"            cyclient \u003d cyborg.get_client(context)"},{"line_number":3061,"context_line":"            accel_info \u003d cyclient.get_arqs_for_instance(instance.uuid)"},{"line_number":3062,"context_line":"        else:"},{"line_number":3063,"context_line":"            accel_info \u003d []"},{"line_number":3064,"context_line":"        self.driver.power_on(context, instance,"},{"line_number":3065,"context_line":"                             network_info,"},{"line_number":3066,"context_line":"                             block_device_info, accel_info)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_1039e5a2","line":3063,"range":{"start_line":3058,"start_character":0,"end_line":3063,"end_character":27},"updated":"2020-03-03 17:08:05.000000000","message":"It seems like you do this in many places. Maybe we should just have a compute utils method for getting these, if appropriate, instead of spreading this everywhere?","commit_id":"dfe9ba7b8c9a287812ac232fded91eeab651504d"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"ef6425562b045e9f11ed3dbfb0b42d1694e2cd2d","unresolved":false,"context_lines":[{"line_number":3055,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context, instance)"},{"line_number":3056,"context_line":"        block_device_info \u003d self._get_instance_block_device_info(context,"},{"line_number":3057,"context_line":"                                                                 instance)"},{"line_number":3058,"context_line":"        dp_name \u003d instance.flavor.extra_specs.get(\u0027accel:device_profile\u0027)"},{"line_number":3059,"context_line":"        if dp_name:"},{"line_number":3060,"context_line":"            cyclient \u003d cyborg.get_client(context)"},{"line_number":3061,"context_line":"            accel_info \u003d cyclient.get_arqs_for_instance(instance.uuid)"},{"line_number":3062,"context_line":"        else:"},{"line_number":3063,"context_line":"            accel_info \u003d []"},{"line_number":3064,"context_line":"        self.driver.power_on(context, instance,"},{"line_number":3065,"context_line":"                             network_info,"},{"line_number":3066,"context_line":"                             block_device_info, accel_info)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_8cb1f449","line":3063,"range":{"start_line":3058,"start_character":0,"end_line":3063,"end_character":27},"in_reply_to":"1fa4df85_1039e5a2","updated":"2020-03-09 04:50:39.000000000","message":"I see this pattern in only two places: here and there [1]. Will make it a private method within ComputeManager class.\n\n[1] https://review.opendev.org/#/c/697940/22/nova/compute/manager.py@3717","commit_id":"dfe9ba7b8c9a287812ac232fded91eeab651504d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a3fe6f7257d89aaaa3ab42ff2264c57e8c52087a","unresolved":false,"context_lines":[{"line_number":3099,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context, instance)"},{"line_number":3100,"context_line":"        block_device_info \u003d self._get_instance_block_device_info(context,"},{"line_number":3101,"context_line":"                                                                 instance)"},{"line_number":3102,"context_line":"        accel_info \u003d self._get_accel_info(context, instance)"},{"line_number":3103,"context_line":"        self.driver.power_on(context, instance,"},{"line_number":3104,"context_line":"                             network_info,"},{"line_number":3105,"context_line":"                             block_device_info, accel_info)"}],"source_content_type":"text/x-python","patch_set":22,"id":"df33271e_91c2c832","line":3102,"updated":"2020-03-24 01:17:21.000000000","message":"We need error handling at here also","commit_id":"10500d682b61d3769e56958d3697ff1bc6da2eff"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3ef4e63ce46adb1d5f52c404bfdbc5d75a8cc746","unresolved":false,"context_lines":[{"line_number":3099,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context, instance)"},{"line_number":3100,"context_line":"        block_device_info \u003d self._get_instance_block_device_info(context,"},{"line_number":3101,"context_line":"                                                                 instance)"},{"line_number":3102,"context_line":"        accel_info \u003d self._get_accel_info(context, instance)"},{"line_number":3103,"context_line":"        self.driver.power_on(context, instance,"},{"line_number":3104,"context_line":"                             network_info,"},{"line_number":3105,"context_line":"                             block_device_info, accel_info)"}],"source_content_type":"text/x-python","patch_set":22,"id":"df33271e_8766dd28","line":3102,"in_reply_to":"df33271e_91c2c832","updated":"2020-03-26 01:09:45.000000000","message":"I get the answer from the previous patch. We will have action event records the failure.","commit_id":"10500d682b61d3769e56958d3697ff1bc6da2eff"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0cdcc1bcbb388f19f96202b04b8c006bb7d1c4f8","unresolved":false,"context_lines":[{"line_number":7969,"context_line":"        self.cyborg.mock_del_arqs.assert_called_once_with(server_uuid)"},{"line_number":7970,"context_line":"        self._check_no_allocs_usage(server_uuid)"},{"line_number":7971,"context_line":""},{"line_number":7972,"context_line":"        # Restart the compute service to see if anything fails."},{"line_number":7973,"context_line":"        self.admin_api.put_service(compute_id, {\u0027forced_down\u0027: \u0027false\u0027})"},{"line_number":7974,"context_line":"        self.compute_services[0].start()"},{"line_number":7975,"context_line":""},{"line_number":7976,"context_line":""},{"line_number":7977,"context_line":"class AcceleratorServerReschedTest(AcceleratorServerBase):"}],"source_content_type":"text/x-python","patch_set":22,"id":"df33271e_1d840f0c","line":7974,"range":{"start_line":7972,"start_character":9,"end_line":7974,"end_character":40},"updated":"2020-03-23 20:40:33.000000000","message":"we might be able to improve this.\n\ni dont think we have the capablity to assert this in the fake driver but before we start the agent here the instance should be deleted in the db but the instance would still be present on the compute node.\n\nso for example the domain xml/disk/vswitch ports would still be present on the compute node and then after this call they shoudl be cleaned up when the periodic task runs.\n\nim not sure if there is anything we can do using the fake driver to assert that but it is something we could try instead of just seeing if anything fails.\n\n\nan alternative would be to assert the present of a log message to ensure the local cleanup happens of wait for the instance detelete notification\n\nhttps://github.com/openstack/nova/blob/0f81adfaa3f493b4397fcea9339ab14dfeb3ef45/nova/compute/manager.py#L849-L852\n\ni cant see any log we could use looking quickly so the delete.end notification would likely be the best we could do.","commit_id":"10500d682b61d3769e56958d3697ff1bc6da2eff"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b30c8450ed249d97aa8ff266fbda16fa01de8973","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3fa7e38b_cb6d5731","updated":"2020-02-18 12:13:08.000000000","message":"this unit test change does not cover the real change happened in the compute/manager. That is having a call-out to cyborg during power_on","commit_id":"88ae582881c8228df345bc90bb3138a74ca06bd3"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"27dad1a58ae50dac99ec0f29a38784559cf82712","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3fa7e38b_58602239","in_reply_to":"3fa7e38b_cb6d5731","updated":"2020-02-21 11:52:53.000000000","message":"Done","commit_id":"88ae582881c8228df345bc90bb3138a74ca06bd3"}],"nova/virt/driver.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b30c8450ed249d97aa8ff266fbda16fa01de8973","unresolved":false,"context_lines":[{"line_number":873,"context_line":"                 block_device_info\u003dNone, accel_info\u003dNone):"},{"line_number":874,"context_line":"        \"\"\"Power on the specified instance."},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":877,"context_line":"        \"\"\""},{"line_number":878,"context_line":"        raise NotImplementedError()"},{"line_number":879,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_cb18f7cf","line":876,"updated":"2020-02-18 12:13:08.000000000","message":"missing param doc","commit_id":"88ae582881c8228df345bc90bb3138a74ca06bd3"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"27dad1a58ae50dac99ec0f29a38784559cf82712","unresolved":false,"context_lines":[{"line_number":873,"context_line":"                 block_device_info\u003dNone, accel_info\u003dNone):"},{"line_number":874,"context_line":"        \"\"\"Power on the specified instance."},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":877,"context_line":"        \"\"\""},{"line_number":878,"context_line":"        raise NotImplementedError()"},{"line_number":879,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_3890c697","line":876,"in_reply_to":"3fa7e38b_cb18f7cf","updated":"2020-02-21 11:52:53.000000000","message":"Done","commit_id":"88ae582881c8228df345bc90bb3138a74ca06bd3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9b07d14fdc923aa2a11d84fa92c06750f67aea36","unresolved":false,"context_lines":[{"line_number":887,"context_line":"        raise NotImplementedError()"},{"line_number":888,"context_line":""},{"line_number":889,"context_line":"    def power_on(self, context, instance, network_info,"},{"line_number":890,"context_line":"                 block_device_info\u003dNone, accel_info\u003dNone):"},{"line_number":891,"context_line":"        \"\"\"Power on the specified instance."},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"        :param instance: nova.objects.instance.Instance"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_a8d30ad5","line":890,"range":{"start_line":890,"start_character":17,"end_line":890,"end_character":56},"updated":"2020-03-23 16:47:42.000000000","message":"neither of these should be kwargs. They\u0027re not tested this way nor called this way.","commit_id":"41379c70d6053ea5ed445550f0fec3bc06e19572"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"750abf6b4f545e4df33f07fa35b93cc4b2fd17d1","unresolved":false,"context_lines":[{"line_number":887,"context_line":"        raise NotImplementedError()"},{"line_number":888,"context_line":""},{"line_number":889,"context_line":"    def power_on(self, context, instance, network_info,"},{"line_number":890,"context_line":"                 block_device_info\u003dNone, accel_info\u003dNone):"},{"line_number":891,"context_line":"        \"\"\"Power on the specified instance."},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"        :param instance: nova.objects.instance.Instance"}],"source_content_type":"text/x-python","patch_set":21,"id":"df33271e_e867cc24","line":890,"range":{"start_line":890,"start_character":17,"end_line":890,"end_character":56},"in_reply_to":"1fa4df85_a8d30ad5","updated":"2020-03-25 07:01:06.000000000","message":"Hmm, but block_device_info was already a kwarg and I can add a new one only as a kwarg, right?","commit_id":"41379c70d6053ea5ed445550f0fec3bc06e19572"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0cdcc1bcbb388f19f96202b04b8c006bb7d1c4f8","unresolved":false,"context_lines":[{"line_number":895,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":896,"context_line":"        :param network_info: instance network information"},{"line_number":897,"context_line":"        :param block_device_info: instance volume block device info"},{"line_number":898,"context_line":"        :param accel_info: List of accelerator request dicts. The exact"},{"line_number":899,"context_line":"            data struct is doc\u0027d in nova/virt/driver.py::spawn()."},{"line_number":900,"context_line":"        \"\"\""},{"line_number":901,"context_line":"        raise NotImplementedError()"},{"line_number":902,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"df33271e_1d46cf7d","line":899,"range":{"start_line":898,"start_character":61,"end_line":899,"end_character":65},"updated":"2020-03-23 20:40:33.000000000","message":"nit: delete this","commit_id":"10500d682b61d3769e56958d3697ff1bc6da2eff"}]}
