)]}'
{"nova/api/openstack/compute/attach_interfaces.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ea799524eb71af82a440f9ef8b5e7c5c67facb2","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        port_id \u003d id"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id,"},{"line_number":207,"context_line":"                                       expected_attrs\u003d[\u0027device_metadata\u0027])"},{"line_number":208,"context_line":"        network_info \u003d instance.info_cache.network_info"},{"line_number":209,"context_line":"        condemned \u003d None"},{"line_number":210,"context_line":"        for vif in network_info:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_1ed64129","line":207,"updated":"2019-08-08 17:18:36.000000000","message":"expected_attrsshould include info_cache.","commit_id":"00a4a1b77b49b95c578d4804d4c02c909f839871"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ea799524eb71af82a440f9ef8b5e7c5c67facb2","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id,"},{"line_number":207,"context_line":"                                       expected_attrs\u003d[\u0027device_metadata\u0027])"},{"line_number":208,"context_line":"        network_info \u003d instance.info_cache.network_info"},{"line_number":209,"context_line":"        condemned \u003d None"},{"line_number":210,"context_line":"        for vif in network_info:"},{"line_number":211,"context_line":"            if vif[\u0027id\u0027] \u003d\u003d port_id:"},{"line_number":212,"context_line":"                condemned \u003d vif"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_dedf4938","line":209,"updated":"2019-08-08 17:18:36.000000000","message":"Could remove this...","commit_id":"00a4a1b77b49b95c578d4804d4c02c909f839871"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ea799524eb71af82a440f9ef8b5e7c5c67facb2","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            if vif[\u0027id\u0027] \u003d\u003d port_id:"},{"line_number":212,"context_line":"                condemned \u003d vif"},{"line_number":213,"context_line":"                break"},{"line_number":214,"context_line":"        if condemned is None:"},{"line_number":215,"context_line":"            raise exc.HTTPNotFound("},{"line_number":216,"context_line":"                explanation\u003d\"Port %s is not attached\" % port_id)"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9ee1d1ff","line":214,"updated":"2019-08-08 17:18:36.000000000","message":"And just change this to an else so if the loop doesn\u0027t break we raise.","commit_id":"00a4a1b77b49b95c578d4804d4c02c909f839871"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ea799524eb71af82a440f9ef8b5e7c5c67facb2","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                break"},{"line_number":214,"context_line":"        if condemned is None:"},{"line_number":215,"context_line":"            raise exc.HTTPNotFound("},{"line_number":216,"context_line":"                explanation\u003d\"Port %s is not attached\" % port_id)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        try:"},{"line_number":219,"context_line":"            self.compute_api.detach_interface(context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_1ebf21d1","line":216,"range":{"start_line":216,"start_character":28,"end_line":216,"end_character":53},"updated":"2019-08-08 17:18:36.000000000","message":"Mark this for translation like the other error was in compute.","commit_id":"00a4a1b77b49b95c578d4804d4c02c909f839871"}],"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ea799524eb71af82a440f9ef8b5e7c5c67facb2","unresolved":false,"context_lines":[{"line_number":6374,"context_line":"            phase\u003dfields.NotificationPhase.START)"},{"line_number":6375,"context_line":""},{"line_number":6376,"context_line":"        try:"},{"line_number":6377,"context_line":"            self.driver.detach_interface(context, instance, port_id)"},{"line_number":6378,"context_line":"        except exception.NovaException as ex:"},{"line_number":6379,"context_line":"            # If the instance was deleted before the interface was detached,"},{"line_number":6380,"context_line":"            # just log it at debug."}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_dead099c","line":6377,"range":{"start_line":6377,"start_character":60,"end_line":6377,"end_character":67},"updated":"2019-08-08 17:18:36.000000000","message":"You\u0027ve changed what this is - it needs to be a VIF object.","commit_id":"00a4a1b77b49b95c578d4804d4c02c909f839871"}]}
