)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0fcfb3072bb1f3d418e3728e73a2d8a04cc64e72","unresolved":true,"context_lines":[{"line_number":2580,"context_line":"        except (Exception, eventlet.timeout.Timeout) as exc:"},{"line_number":2581,"context_line":"            LOG.exception(exc)"},{"line_number":2582,"context_line":"            # ARQs created for instance or ports."},{"line_number":2583,"context_line":"            # Now port do not bound to port yet."},{"line_number":2584,"context_line":"            # unbind port won\u0027t clean port ARQs."},{"line_number":2585,"context_line":"            compute_utils.delete_arqs_if_needed("},{"line_number":2586,"context_line":"                context, instance, accel_uuids)"}],"source_content_type":"text/x-python","patch_set":6,"id":"70ac5828_aece8e0d","line":2583,"range":{"start_line":2583,"start_character":14,"end_line":2583,"end_character":48},"updated":"2021-07-01 07:18:29.000000000","message":"I think I know what you mean, but looks strange. maybe write it as \"the port binding isn\u0027t done yet.\"","commit_id":"93a0c6b35bc5a8bef3b41e5754ce8a227b74882d"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"1b5d595e493920a6dfcd10b5e4fbe9a1f9acc241","unresolved":false,"context_lines":[{"line_number":2580,"context_line":"        except (Exception, eventlet.timeout.Timeout) as exc:"},{"line_number":2581,"context_line":"            LOG.exception(exc)"},{"line_number":2582,"context_line":"            # ARQs created for instance or ports."},{"line_number":2583,"context_line":"            # Now port do not bound to port yet."},{"line_number":2584,"context_line":"            # unbind port won\u0027t clean port ARQs."},{"line_number":2585,"context_line":"            compute_utils.delete_arqs_if_needed("},{"line_number":2586,"context_line":"                context, instance, accel_uuids)"}],"source_content_type":"text/x-python","patch_set":6,"id":"d5640b5c_4ad5d801","line":2583,"range":{"start_line":2583,"start_character":14,"end_line":2583,"end_character":48},"in_reply_to":"70ac5828_aece8e0d","updated":"2021-07-15 12:10:18.000000000","message":"Done","commit_id":"93a0c6b35bc5a8bef3b41e5754ce8a227b74882d"}],"nova/compute/utils.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"853cc99842776b4f73d227d4903b5d35f46a512f","unresolved":true,"context_lines":[{"line_number":1563,"context_line":"               \u0027uuid\u0027: arq_uuids})"},{"line_number":1564,"context_line":"        try:"},{"line_number":1565,"context_line":"            cyclient.delete_arqs_by_uuid(arq_uuids)"},{"line_number":1566,"context_line":"        except exception.AcceleratorRequestOpFailed as e:"},{"line_number":1567,"context_line":"            LOG.exception(\u0027ARQ %s does not exist while deleted for \u0027"},{"line_number":1568,"context_line":"                      \u0027instance %s. Exception: %s\u0027,"},{"line_number":1569,"context_line":"                      arq_uuids, instance.uuid, e)"}],"source_content_type":"text/x-python","patch_set":10,"id":"2deddda4_8f205f6a","line":1566,"updated":"2021-07-14 12:57:55.000000000","message":"I don\u0027t see how delete_arqs_by_uuid can raise AcceleratorRequestOpFailed","commit_id":"8cc12c111dd1229c970603dbc25e9a5d3df07f82"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"1b5d595e493920a6dfcd10b5e4fbe9a1f9acc241","unresolved":false,"context_lines":[{"line_number":1563,"context_line":"               \u0027uuid\u0027: arq_uuids})"},{"line_number":1564,"context_line":"        try:"},{"line_number":1565,"context_line":"            cyclient.delete_arqs_by_uuid(arq_uuids)"},{"line_number":1566,"context_line":"        except exception.AcceleratorRequestOpFailed as e:"},{"line_number":1567,"context_line":"            LOG.exception(\u0027ARQ %s does not exist while deleted for \u0027"},{"line_number":1568,"context_line":"                      \u0027instance %s. Exception: %s\u0027,"},{"line_number":1569,"context_line":"                      arq_uuids, instance.uuid, e)"}],"source_content_type":"text/x-python","patch_set":10,"id":"97c328d0_ce67fc67","line":1566,"in_reply_to":"2deddda4_8f205f6a","updated":"2021-07-15 12:10:18.000000000","message":"If there is both dp_name(from extra spec) and arq_uuids(from port), on failure case, delete_arqs_for_instance would delete all arqs belongs to a instance include the arqs belong ports. And then delete_arqs_by_uuid will find the arq is deleted already, and we cloud ignore this failure safely.","commit_id":"8cc12c111dd1229c970603dbc25e9a5d3df07f82"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e842ff3665b7fde8083bd80369763662786cc7ce","unresolved":true,"context_lines":[{"line_number":1563,"context_line":"               \u0027uuid\u0027: arq_uuids})"},{"line_number":1564,"context_line":"        try:"},{"line_number":1565,"context_line":"            cyclient.delete_arqs_by_uuid(arq_uuids)"},{"line_number":1566,"context_line":"        except exception.AcceleratorRequestOpFailed as e:"},{"line_number":1567,"context_line":"            LOG.exception(\u0027ARQ %s does not exist while deleted for \u0027"},{"line_number":1568,"context_line":"                      \u0027instance %s. Exception: %s\u0027,"},{"line_number":1569,"context_line":"                      arq_uuids, instance.uuid, e)"}],"source_content_type":"text/x-python","patch_set":12,"id":"a11b879c_d78da955","line":1566,"updated":"2021-08-04 10:17:03.000000000","message":"Continuing from PS10\n\u003e \u003e I don\u0027t see how delete_arqs_by_uuid can raise AcceleratorRequestOpFailed\n\u003e If there is both dp_name(from extra spec) and arq_uuids(from port), on failure case, delete_arqs_for_instance would delete all arqs belongs to a instance include the arqs belong ports. And then delete_arqs_by_uuid will find the arq is deleted already, and we cloud ignore this failure safely.\nWhen you try to delete an ARQ that was already deleted with cyclient.delete_arqs_by_uuid(arq_uuids) call then that call will not raise AcceleratorRequestOpFailed exception. It will just log warning. See https://github.com/openstack/nova/blob/39ef1ad774859562183190f74831a115698e6836/nova/accelerator/cyborg.py#L298-L302","commit_id":"96aa8575f4a81699b750303c80efbb3dbefcb302"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d788054fdd68e5226d7f5c26758369283895aa2d","unresolved":false,"context_lines":[{"line_number":1563,"context_line":"               \u0027uuid\u0027: arq_uuids})"},{"line_number":1564,"context_line":"        try:"},{"line_number":1565,"context_line":"            cyclient.delete_arqs_by_uuid(arq_uuids)"},{"line_number":1566,"context_line":"        except exception.AcceleratorRequestOpFailed as e:"},{"line_number":1567,"context_line":"            LOG.exception(\u0027ARQ %s does not exist while deleted for \u0027"},{"line_number":1568,"context_line":"                      \u0027instance %s. Exception: %s\u0027,"},{"line_number":1569,"context_line":"                      arq_uuids, instance.uuid, e)"}],"source_content_type":"text/x-python","patch_set":12,"id":"0b2e54ca_0755f3b5","line":1566,"in_reply_to":"a11b879c_d78da955","updated":"2021-08-05 08:03:38.000000000","message":"good catch.","commit_id":"96aa8575f4a81699b750303c80efbb3dbefcb302"}],"nova/conductor/manager.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"853cc99842776b4f73d227d4903b5d35f46a512f","unresolved":true,"context_lines":[{"line_number":594,"context_line":"            context, instance, requested_networks)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        arq_uuids \u003d None"},{"line_number":597,"context_line":"        # arqs does not bound to port/instance yet"},{"line_number":598,"context_line":"        if requested_networks:"},{"line_number":599,"context_line":"            arq_uuids \u003d [req.arq_uuid"},{"line_number":600,"context_line":"                for req in requested_networks if req.arq_uuid]"}],"source_content_type":"text/x-python","patch_set":10,"id":"602e485e_d3bb9941","line":597,"range":{"start_line":597,"start_character":15,"end_line":597,"end_character":19},"updated":"2021-07-14 12:57:55.000000000","message":"nit: have","commit_id":"8cc12c111dd1229c970603dbc25e9a5d3df07f82"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"1b5d595e493920a6dfcd10b5e4fbe9a1f9acc241","unresolved":false,"context_lines":[{"line_number":594,"context_line":"            context, instance, requested_networks)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        arq_uuids \u003d None"},{"line_number":597,"context_line":"        # arqs does not bound to port/instance yet"},{"line_number":598,"context_line":"        if requested_networks:"},{"line_number":599,"context_line":"            arq_uuids \u003d [req.arq_uuid"},{"line_number":600,"context_line":"                for req in requested_networks if req.arq_uuid]"}],"source_content_type":"text/x-python","patch_set":10,"id":"ca6db3ac_f2c6c1d4","line":597,"range":{"start_line":597,"start_character":15,"end_line":597,"end_character":19},"in_reply_to":"602e485e_d3bb9941","updated":"2021-07-15 12:10:18.000000000","message":"Done","commit_id":"8cc12c111dd1229c970603dbc25e9a5d3df07f82"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0fcfb3072bb1f3d418e3728e73a2d8a04cc64e72","unresolved":true,"context_lines":[{"line_number":6255,"context_line":"                          self._test_accel_build_resources,"},{"line_number":6256,"context_line":"                          arq_uuids, None,"},{"line_number":6257,"context_line":"                          self.requested_networks)"},{"line_number":6258,"context_line":"        mock_clean_arq.assert_called_once()"},{"line_number":6259,"context_line":""},{"line_number":6260,"context_line":"    @mock.patch.object(nova.compute.manager.ComputeManager,"},{"line_number":6261,"context_line":"                       \u0027_get_bound_arq_resources\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"4b06c9d2_e8b1cb7d","line":6258,"range":{"start_line":6258,"start_character":8,"end_line":6258,"end_character":43},"updated":"2021-07-01 07:18:29.000000000","message":"it would be good to assert the calling arguments.","commit_id":"93a0c6b35bc5a8bef3b41e5754ce8a227b74882d"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"1b5d595e493920a6dfcd10b5e4fbe9a1f9acc241","unresolved":false,"context_lines":[{"line_number":6255,"context_line":"                          self._test_accel_build_resources,"},{"line_number":6256,"context_line":"                          arq_uuids, None,"},{"line_number":6257,"context_line":"                          self.requested_networks)"},{"line_number":6258,"context_line":"        mock_clean_arq.assert_called_once()"},{"line_number":6259,"context_line":""},{"line_number":6260,"context_line":"    @mock.patch.object(nova.compute.manager.ComputeManager,"},{"line_number":6261,"context_line":"                       \u0027_get_bound_arq_resources\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"decdc8b9_a38bb519","line":6258,"range":{"start_line":6258,"start_character":8,"end_line":6258,"end_character":43},"in_reply_to":"4b06c9d2_e8b1cb7d","updated":"2021-07-15 12:10:18.000000000","message":"Done","commit_id":"93a0c6b35bc5a8bef3b41e5754ce8a227b74882d"}]}
