)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"aa1c7a345639ad5b2694d79ec841913b3f566754","unresolved":false,"context_lines":[{"line_number":2696,"context_line":"                arqs \u003d cyclient.get_arqs_for_instance(instance.uuid)"},{"line_number":2697,"context_line":"            else:"},{"line_number":2698,"context_line":"                arqs \u003d resolved_arqs"},{"line_number":2699,"context_line":"            return arqs"},{"line_number":2700,"context_line":"        except (Exception, eventlet.timeout.Timeout) as exc:"},{"line_number":2701,"context_line":"            LOG.exception(exc)"},{"line_number":2702,"context_line":"            self._build_resources_cleanup(instance, network_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_30d77552","line":2699,"updated":"2020-08-31 16:41:29.000000000","message":"question: how much of this needs to be inside the try block? All of it, or just some steps that we\u0027ll want to reverse?","commit_id":"26b8cdac3969f2f4907047d5de5c1457b293f780"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"56c1d7bd842206c2ef9cb1ecb4f662c403cedb13","unresolved":false,"context_lines":[{"line_number":2696,"context_line":"                arqs \u003d cyclient.get_arqs_for_instance(instance.uuid)"},{"line_number":2697,"context_line":"            else:"},{"line_number":2698,"context_line":"                arqs \u003d resolved_arqs"},{"line_number":2699,"context_line":"            return arqs"},{"line_number":2700,"context_line":"        except (Exception, eventlet.timeout.Timeout) as exc:"},{"line_number":2701,"context_line":"            LOG.exception(exc)"},{"line_number":2702,"context_line":"            self._build_resources_cleanup(instance, network_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_fabaefbd","line":2699,"in_reply_to":"9f560f44_30d77552","updated":"2020-09-01 11:31:38.000000000","message":"We have to block all of it because every step may raise exception and be processed.","commit_id":"26b8cdac3969f2f4907047d5de5c1457b293f780"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2ddddfe9b89091e6ef83c2d71738bf07568cf2af","unresolved":false,"context_lines":[{"line_number":3271,"context_line":"        if evacuate:"},{"line_number":3272,"context_line":"            if instance.flavor.extra_specs.get(\u0027accel:device_profile\u0027):"},{"line_number":3273,"context_line":"                try:"},{"line_number":3274,"context_line":"                    accel_info \u003d self._get_bound_arq_resources("},{"line_number":3275,"context_line":"                        context, instance, accel_uuids or [])"},{"line_number":3276,"context_line":"                except (Exception, eventlet.timeout.Timeout) as exc:"},{"line_number":3277,"context_line":"                    LOG.exception(exc)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_d4fd326f","side":"PARENT","line":3274,"range":{"start_line":3274,"start_character":38,"end_line":3274,"end_character":62},"updated":"2020-09-17 09:08:19.000000000","message":"Why do we use this function here, yet we use the simpler \u0027_get_accel_info\u0027 in the non-evacuate case? Are we actually waiting for an \u0027accelerator-request-bound\u0027 event here?","commit_id":"6bb1639ef511777d5b036833b4865476d7de233b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"4233e97ff60d2f7148b28cfd23fe2438a1c6ab11","unresolved":false,"context_lines":[{"line_number":3271,"context_line":"        if evacuate:"},{"line_number":3272,"context_line":"            if instance.flavor.extra_specs.get(\u0027accel:device_profile\u0027):"},{"line_number":3273,"context_line":"                try:"},{"line_number":3274,"context_line":"                    accel_info \u003d self._get_bound_arq_resources("},{"line_number":3275,"context_line":"                        context, instance, accel_uuids or [])"},{"line_number":3276,"context_line":"                except (Exception, eventlet.timeout.Timeout) as exc:"},{"line_number":3277,"context_line":"                    LOG.exception(exc)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_4765c848","side":"PARENT","line":3274,"range":{"start_line":3274,"start_character":38,"end_line":3274,"end_character":62},"in_reply_to":"9f560f44_d4fd326f","updated":"2020-09-21 03:03:16.000000000","message":"If not evacuate, then it\u0027s rebuild. we didn\u0027t delete arqs when rebuild, so for rebuild we just get accel info. but for evacuate, as we recreate and rebind arq for vm, we should use this function to get the bind status.\nActually, we can wait for the \u0027accelerator-request-bound\u0027 event, but it\u0027s better to use this function.","commit_id":"6bb1639ef511777d5b036833b4865476d7de233b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2ddddfe9b89091e6ef83c2d71738bf07568cf2af","unresolved":false,"context_lines":[{"line_number":3275,"context_line":"                        context, instance, accel_uuids or [])"},{"line_number":3276,"context_line":"                except (Exception, eventlet.timeout.Timeout) as exc:"},{"line_number":3277,"context_line":"                    LOG.exception(exc)"},{"line_number":3278,"context_line":"                    self._build_resources_cleanup(instance, network_info)"},{"line_number":3279,"context_line":"                    msg \u003d _(\u0027Failure getting accelerator resources.\u0027)"},{"line_number":3280,"context_line":"                    raise exception.BuildAbortException("},{"line_number":3281,"context_line":"                        instance_uuid\u003dinstance.uuid, reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_14c96a59","side":"PARENT","line":3278,"range":{"start_line":3278,"start_character":0,"end_line":3278,"end_character":73},"updated":"2020-09-17 09:08:19.000000000","message":"I should have raised this in the original review. Is this what we actually want to do? At this point, we haven\u0027t actually done anything destructive, right? From what I can tell, \u0027_get_bound_arq_resources\u0027 is idempotent (it\u0027s only making GET requests to the cyborg API). Could we not log the exception and return from here, rather than cleaning up?","commit_id":"6bb1639ef511777d5b036833b4865476d7de233b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"4233e97ff60d2f7148b28cfd23fe2438a1c6ab11","unresolved":false,"context_lines":[{"line_number":3275,"context_line":"                        context, instance, accel_uuids or [])"},{"line_number":3276,"context_line":"                except (Exception, eventlet.timeout.Timeout) as exc:"},{"line_number":3277,"context_line":"                    LOG.exception(exc)"},{"line_number":3278,"context_line":"                    self._build_resources_cleanup(instance, network_info)"},{"line_number":3279,"context_line":"                    msg \u003d _(\u0027Failure getting accelerator resources.\u0027)"},{"line_number":3280,"context_line":"                    raise exception.BuildAbortException("},{"line_number":3281,"context_line":"                        instance_uuid\u003dinstance.uuid, reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_27cff429","side":"PARENT","line":3278,"range":{"start_line":3278,"start_character":0,"end_line":3278,"end_character":73},"in_reply_to":"9f560f44_14c96a59","updated":"2020-09-21 03:03:16.000000000","message":"IMHO, if the arq bound fails, then evacuate fails and the vm is error, so we should delete the arq and other resources created, such as network resources.","commit_id":"6bb1639ef511777d5b036833b4865476d7de233b"}]}
