)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"7b06a9a3ff810d2c488aeb785a70128c2d390806","unresolved":false,"context_lines":[{"line_number":1590,"context_line":"            try:"},{"line_number":1591,"context_line":"                self._build_and_run_instance(context, instance, image,"},{"line_number":1592,"context_line":"                        decoded_files, admin_password, requested_networks,"},{"line_number":1593,"context_line":"                        security_groups, block_device_mapping, node, limits)"},{"line_number":1594,"context_line":"            except exception.BuildAbortException as e:"},{"line_number":1595,"context_line":"                LOG.exception(e.format_message(), instance\u003dinstance)"},{"line_number":1596,"context_line":"                self._cleanup_allocated_networks(context, instance,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BnXM%3D","line":1593,"updated":"2013-11-22 13:25:44.000000000","message":"Just nit pick, but since BuildAbortException and UnexpectedTaskStateError are so closely related, could you please keep these two piece of code next to each other?","commit_id":"a463b4562a9b34de393115ff18e6cd70e50a50b9"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"7b06a9a3ff810d2c488aeb785a70128c2d390806","unresolved":false,"context_lines":[{"line_number":1615,"context_line":"                msg \u003d _(\u0027Instance disappeared during build.\u0027)"},{"line_number":1616,"context_line":"                LOG.debug(msg, instance\u003dinstance)"},{"line_number":1617,"context_line":"            except exception.UnexpectedTaskStateError as e:"},{"line_number":1618,"context_line":"                # The instance is deleting, so clean up but don\u0027t error."},{"line_number":1619,"context_line":"                LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1620,"context_line":"                self._cleanup_allocated_networks(context, instance,"},{"line_number":1621,"context_line":"                        requested_networks)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BnWg%3D","line":1618,"updated":"2013-11-22 13:25:44.000000000","message":"Really should still be BuildAbortException and no \"error\" state setting.","commit_id":"a463b4562a9b34de393115ff18e6cd70e50a50b9"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"7b06a9a3ff810d2c488aeb785a70128c2d390806","unresolved":false,"context_lines":[{"line_number":1669,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1670,"context_line":"                msg \u003d e.format_message()"},{"line_number":1671,"context_line":"                self._notify_about_instance_usage(context, instance,"},{"line_number":1672,"context_line":"                        \u0027create.end\u0027, extra_usage_info\u003d{\u0027message\u0027: msg})"},{"line_number":1673,"context_line":"        except exception.ComputeResourcesUnavailable as e:"},{"line_number":1674,"context_line":"            LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1675,"context_line":"            self._notify_about_instance_usage(context, instance,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BnXc%3D","line":1672,"updated":"2013-11-22 13:25:44.000000000","message":"After reversing the logic in _build_resources, \u0027create.error\u0027 should be sent instead of \u0027end\u0027.\n\nPlease check more detail explanation in cover message.","commit_id":"a463b4562a9b34de393115ff18e6cd70e50a50b9"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"7b06a9a3ff810d2c488aeb785a70128c2d390806","unresolved":false,"context_lines":[{"line_number":1721,"context_line":"        except exception.UnexpectedTaskStateError as e:"},{"line_number":1722,"context_line":"            if e.kwargs.get(\u0027actual\u0027) \u003d\u003d task_states.DELETING:"},{"line_number":1723,"context_line":"                # Reraise since this exception won\u0027t set an error state."},{"line_number":1724,"context_line":"                raise"},{"line_number":1725,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance[\u0027uuid\u0027],"},{"line_number":1726,"context_line":"                    reason\u003de.formate_message())"},{"line_number":1727,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BnYc%3D","line":1724,"updated":"2013-11-22 13:25:44.000000000","message":"Better reverse the logic here, to raise BuildAbortException if DELETING, and raise UnexpectedTaskStateError for the others.\n\nPlease check detail explanation in  cover message.","commit_id":"a463b4562a9b34de393115ff18e6cd70e50a50b9"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"7b06a9a3ff810d2c488aeb785a70128c2d390806","unresolved":false,"context_lines":[{"line_number":1744,"context_line":"        except exception.UnexpectedTaskStateError as e:"},{"line_number":1745,"context_line":"            if e.kwargs.get(\u0027actual\u0027) \u003d\u003d task_states.DELETING:"},{"line_number":1746,"context_line":"                # Reraise since this exception won\u0027t set an error state."},{"line_number":1747,"context_line":"                raise"},{"line_number":1748,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance[\u0027uuid\u0027],"},{"line_number":1749,"context_line":"                    reason\u003de.formate_message())"},{"line_number":1750,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BnYY%3D","line":1747,"updated":"2013-11-22 13:25:44.000000000","message":"Same above","commit_id":"a463b4562a9b34de393115ff18e6cd70e50a50b9"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"34339f56b477047024986ac957adaf1abd67ca9a","unresolved":false,"context_lines":[{"line_number":1681,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1682,"context_line":"                LOG.debug(e.format_message, instance\u003dinstance)"},{"line_number":1683,"context_line":"                self._notify_about_instance_usage(context, instance,"},{"line_number":1684,"context_line":"                        \u0027create.end\u0027, extra_usage_info\u003d{\u0027message\u0027:"},{"line_number":1685,"context_line":"                                                        e.format_message()})"},{"line_number":1686,"context_line":"        except (exception.VirtualInterfaceCreateException,"},{"line_number":1687,"context_line":"                exception.VirtualInterfaceMacAddressException,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bbx8%3D","line":1684,"updated":"2013-11-26 05:38:38.000000000","message":"The logic makes sense. However, if we use \"BuildAbortException to mean the build should fail and ERROR\", maybe we should generate \"create.error\" instead of \"create.end\" here?","commit_id":"558b67cc94bc977d77ab0d4a60e396afc3bbf78f"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"7f3134fd6ff456d71dc04156fbbc56cfe99758bd","unresolved":false,"context_lines":[{"line_number":1681,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1682,"context_line":"                LOG.debug(e.format_message, instance\u003dinstance)"},{"line_number":1683,"context_line":"                self._notify_about_instance_usage(context, instance,"},{"line_number":1684,"context_line":"                        \u0027create.end\u0027, extra_usage_info\u003d{\u0027message\u0027:"},{"line_number":1685,"context_line":"                                                        e.format_message()})"},{"line_number":1686,"context_line":"        except (exception.VirtualInterfaceCreateException,"},{"line_number":1687,"context_line":"                exception.VirtualInterfaceMacAddressException,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BZh0%3D","line":1684,"in_reply_to":"AAAATn%2F%2Bbck%3D","updated":"2013-11-26 14:41:47.000000000","message":"Thanks for pointing this out.  It also makes me realize I need a create.error for the network exceptions below.  Realistically I should probably split this patch into multiple ones anyways, but I think it\u0027s small enough and cohesive enough to stay together.  I\u0027ll add it in here but can split if reviewers would like that.","commit_id":"558b67cc94bc977d77ab0d4a60e396afc3bbf78f"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"409b9cde803273dedd3e5f5e07e2afb8b83a0bd3","unresolved":false,"context_lines":[{"line_number":1681,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1682,"context_line":"                LOG.debug(e.format_message, instance\u003dinstance)"},{"line_number":1683,"context_line":"                self._notify_about_instance_usage(context, instance,"},{"line_number":1684,"context_line":"                        \u0027create.end\u0027, extra_usage_info\u003d{\u0027message\u0027:"},{"line_number":1685,"context_line":"                                                        e.format_message()})"},{"line_number":1686,"context_line":"        except (exception.VirtualInterfaceCreateException,"},{"line_number":1687,"context_line":"                exception.VirtualInterfaceMacAddressException,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bbck%3D","line":1684,"in_reply_to":"AAAATn%2F%2BbhY%3D","updated":"2013-11-26 07:46:28.000000000","message":"Well, since this patch is all about exception logic handling for UnexpectedDeletingTaskStateError and BuildAbortException, it make sense to correct the notification behavior accordingly.","commit_id":"558b67cc94bc977d77ab0d4a60e396afc3bbf78f"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6180e250e95aea9315b5c4455d395a304556ea40","unresolved":false,"context_lines":[{"line_number":1681,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1682,"context_line":"                LOG.debug(e.format_message, instance\u003dinstance)"},{"line_number":1683,"context_line":"                self._notify_about_instance_usage(context, instance,"},{"line_number":1684,"context_line":"                        \u0027create.end\u0027, extra_usage_info\u003d{\u0027message\u0027:"},{"line_number":1685,"context_line":"                                                        e.format_message()})"},{"line_number":1686,"context_line":"        except (exception.VirtualInterfaceCreateException,"},{"line_number":1687,"context_line":"                exception.VirtualInterfaceMacAddressException,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BbhY%3D","line":1684,"in_reply_to":"AAAATn%2F%2Bbx8%3D","updated":"2013-11-26 07:00:52.000000000","message":"This might deserve another patch.","commit_id":"558b67cc94bc977d77ab0d4a60e396afc3bbf78f"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6fb6ba3a02efee2e4972f8f0dba7eb5a40459f17","unresolved":false,"context_lines":[{"line_number":1615,"context_line":"                        requested_networks)"},{"line_number":1616,"context_line":"                self._set_instance_error_state(context, instance[\u0027uuid\u0027])"},{"line_number":1617,"context_line":"            except exception.UnexpectedDeletingTaskStateError as e:"},{"line_number":1618,"context_line":"                # The instance is deleting, so clean up but don\u0027t error."},{"line_number":1619,"context_line":"                LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1620,"context_line":"                self._cleanup_allocated_networks(context, instance,"},{"line_number":1621,"context_line":"                        requested_networks)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BXa8%3D","line":1618,"updated":"2013-11-26 21:34:56.000000000","message":"Do we really need to clean up here, won\u0027t the delete operation take care of that?","commit_id":"b587eff720a04ae4715c8aad2d103858243ae6bd"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"555cf97a51ed5c669c36da09ce6f2d9858d644fe","unresolved":false,"context_lines":[{"line_number":1615,"context_line":"                        requested_networks)"},{"line_number":1616,"context_line":"                self._set_instance_error_state(context, instance[\u0027uuid\u0027])"},{"line_number":1617,"context_line":"            except exception.UnexpectedDeletingTaskStateError as e:"},{"line_number":1618,"context_line":"                # The instance is deleting, so clean up but don\u0027t error."},{"line_number":1619,"context_line":"                LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1620,"context_line":"                self._cleanup_allocated_networks(context, instance,"},{"line_number":1621,"context_line":"                        requested_networks)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BXRE%3D","line":1618,"in_reply_to":"AAAATn%2F%2BXa8%3D","updated":"2013-11-26 22:06:03.000000000","message":"It should.  But, this is a copy of the current logic in _build_instance and how it handles deleted instances.  In order to reduce the number of things that can go wrong I would like to retain parity for now and look at removing this later.","commit_id":"b587eff720a04ae4715c8aad2d103858243ae6bd"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6fb6ba3a02efee2e4972f8f0dba7eb5a40459f17","unresolved":false,"context_lines":[{"line_number":1715,"context_line":"        try:"},{"line_number":1716,"context_line":"            network_info \u003d self._build_networks_for_instance(context, instance,"},{"line_number":1717,"context_line":"                    requested_networks, security_groups)"},{"line_number":1718,"context_line":"            resources[\u0027network_info\u0027] \u003d network_info"},{"line_number":1719,"context_line":"        except exception.UnexpectedDeletingTaskStateError:"},{"line_number":1720,"context_line":"            raise"},{"line_number":1721,"context_line":"        except exception.UnexpectedTaskStateError as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BXZY%3D","line":1718,"updated":"2013-11-26 21:34:56.000000000","message":"How about InstanceNotFound? Right now they will cause a BuildAbortException.","commit_id":"b587eff720a04ae4715c8aad2d103858243ae6bd"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"555cf97a51ed5c669c36da09ce6f2d9858d644fe","unresolved":false,"context_lines":[{"line_number":1715,"context_line":"        try:"},{"line_number":1716,"context_line":"            network_info \u003d self._build_networks_for_instance(context, instance,"},{"line_number":1717,"context_line":"                    requested_networks, security_groups)"},{"line_number":1718,"context_line":"            resources[\u0027network_info\u0027] \u003d network_info"},{"line_number":1719,"context_line":"        except exception.UnexpectedDeletingTaskStateError:"},{"line_number":1720,"context_line":"            raise"},{"line_number":1721,"context_line":"        except exception.UnexpectedTaskStateError as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BXP0%3D","line":1718,"in_reply_to":"AAAATn%2F%2BXZY%3D","updated":"2013-11-26 22:06:03.000000000","message":"Good catch, that should be added.","commit_id":"b587eff720a04ae4715c8aad2d103858243ae6bd"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a37ff0cbc6219baa5c6b21bfd1a8a031343f3139","unresolved":false,"context_lines":[{"line_number":1716,"context_line":"            network_info \u003d self._build_networks_for_instance(context, instance,"},{"line_number":1717,"context_line":"                    requested_networks, security_groups)"},{"line_number":1718,"context_line":"            resources[\u0027network_info\u0027] \u003d network_info"},{"line_number":1719,"context_line":"        except exception.UnexpectedDeletingTaskStateError:"},{"line_number":1720,"context_line":"            raise"},{"line_number":1721,"context_line":"        except exception.UnexpectedTaskStateError as e:"},{"line_number":1722,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BXZg%3D","line":1719,"updated":"2013-11-26 21:32:50.000000000","message":"hmmm why we are catching this exception and then just reraising it?\n\nAt least, It looks pretty strange...","commit_id":"b587eff720a04ae4715c8aad2d103858243ae6bd"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"555cf97a51ed5c669c36da09ce6f2d9858d644fe","unresolved":false,"context_lines":[{"line_number":1716,"context_line":"            network_info \u003d self._build_networks_for_instance(context, instance,"},{"line_number":1717,"context_line":"                    requested_networks, security_groups)"},{"line_number":1718,"context_line":"            resources[\u0027network_info\u0027] \u003d network_info"},{"line_number":1719,"context_line":"        except exception.UnexpectedDeletingTaskStateError:"},{"line_number":1720,"context_line":"            raise"},{"line_number":1721,"context_line":"        except exception.UnexpectedTaskStateError as e:"},{"line_number":1722,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BXQE%3D","line":1719,"in_reply_to":"AAAATn%2F%2BXZg%3D","updated":"2013-11-26 22:06:03.000000000","message":"If it\u0027s not handled this way then it gets turn into a BuildAbortException from the block below.  I want this exception to propagate up as it is because it should be handled differently from a BuildAbortException.","commit_id":"b587eff720a04ae4715c8aad2d103858243ae6bd"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6fb6ba3a02efee2e4972f8f0dba7eb5a40459f17","unresolved":false,"context_lines":[{"line_number":1741,"context_line":""},{"line_number":1742,"context_line":"            block_device_info \u003d self._prep_block_device(context, instance,"},{"line_number":1743,"context_line":"                    block_device_mapping)"},{"line_number":1744,"context_line":"            resources[\u0027block_device_info\u0027] \u003d block_device_info"},{"line_number":1745,"context_line":"        except exception.UnexpectedDeletingTaskStateError:"},{"line_number":1746,"context_line":"            raise"},{"line_number":1747,"context_line":"        except exception.UnexpectedTaskStateError as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BXZU%3D","line":1744,"updated":"2013-11-26 21:34:56.000000000","message":"Same here.","commit_id":"b587eff720a04ae4715c8aad2d103858243ae6bd"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"534a75ae76d7b8760f7aa7b12f77dff1726ac47f","unresolved":false,"context_lines":[{"line_number":1744,"context_line":"                exception.UnexpectedDeletingTaskStateError):"},{"line_number":1745,"context_line":"            raise"},{"line_number":1746,"context_line":"        except exception.UnexpectedTaskStateError as e:"},{"line_number":1747,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance[\u0027uuid\u0027],"},{"line_number":1748,"context_line":"                    reason\u003de.format_message())"},{"line_number":1749,"context_line":"        except Exception:"},{"line_number":1750,"context_line":"            # Because this allocation is async any failures are likely to occur"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9%2BHE%3D","line":1747,"updated":"2013-12-03 21:57:44.000000000","message":"s/instance\\[\u0027uuid\u0027\\]/instance.uuid/","commit_id":"7a686746cccc6552d04bb6b8519906bcce8b0f78"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"534a75ae76d7b8760f7aa7b12f77dff1726ac47f","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"                exception.UnexpectedDeletingTaskStateError):"},{"line_number":1772,"context_line":"            raise"},{"line_number":1773,"context_line":"        except exception.UnexpectedTaskStateError as e:"},{"line_number":1774,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance[\u0027uuid\u0027],"},{"line_number":1775,"context_line":"                    reason\u003de.format_message())"},{"line_number":1776,"context_line":"        except Exception:"},{"line_number":1777,"context_line":"            LOG.exception(_(\u0027Failure prepping block device\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9%2BG4%3D","line":1774,"updated":"2013-12-03 21:57:44.000000000","message":"Ditto…","commit_id":"7a686746cccc6552d04bb6b8519906bcce8b0f78"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"22d4e18f8264f5121368e3b8b4b5537f88e66c22","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"                exception.UnexpectedDeletingTaskStateError):"},{"line_number":1772,"context_line":"            raise"},{"line_number":1773,"context_line":"        except exception.UnexpectedTaskStateError as e:"},{"line_number":1774,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance[\u0027uuid\u0027],"},{"line_number":1775,"context_line":"                    reason\u003de.format_message())"},{"line_number":1776,"context_line":"        except Exception:"},{"line_number":1777,"context_line":"            LOG.exception(_(\u0027Failure prepping block device\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F998g%3D","line":1774,"in_reply_to":"AAAATn%2F9%2BG4%3D","updated":"2013-12-03 22:20:06.000000000","message":"Thanks.  Thought I had gotten them all.","commit_id":"7a686746cccc6552d04bb6b8519906bcce8b0f78"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"45067b9a4e92b3697903704723d5adc831e9c4ae","unresolved":false,"context_lines":[{"line_number":1634,"context_line":"                self._set_instance_error_state(context, instance.uuid)"},{"line_number":1635,"context_line":"            except exception.UnexpectedDeletingTaskStateError as e:"},{"line_number":1636,"context_line":"                # The instance is deleting, so clean up but don\u0027t error."},{"line_number":1637,"context_line":"                LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1638,"context_line":"                self._cleanup_allocated_networks(context, instance,"},{"line_number":1639,"context_line":"                        requested_networks)"},{"line_number":1640,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAT3%2F%2F588%3D","line":1637,"updated":"2013-12-27 12:30:04.000000000","message":"If it is an unexpected exception, why using a level debug, may be we can use something higher?","commit_id":"787904a15fee16be49610c21f4939d6c945b4fec"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ae1c7967ed29a91736a45fddd47097d6944bea42","unresolved":false,"context_lines":[{"line_number":1634,"context_line":"                self._set_instance_error_state(context, instance.uuid)"},{"line_number":1635,"context_line":"            except exception.UnexpectedDeletingTaskStateError as e:"},{"line_number":1636,"context_line":"                # The instance is deleting, so clean up but don\u0027t error."},{"line_number":1637,"context_line":"                LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1638,"context_line":"                self._cleanup_allocated_networks(context, instance,"},{"line_number":1639,"context_line":"                        requested_networks)"},{"line_number":1640,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAT3%2F%2F0tM%3D","line":1637,"in_reply_to":"AAAAT3%2F%2F0uk%3D","updated":"2013-12-30 18:52:59.000000000","message":"Done","commit_id":"787904a15fee16be49610c21f4939d6c945b4fec"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5e19a079fb50463d8198de16568a53f56171f97e","unresolved":false,"context_lines":[{"line_number":1634,"context_line":"                self._set_instance_error_state(context, instance.uuid)"},{"line_number":1635,"context_line":"            except exception.UnexpectedDeletingTaskStateError as e:"},{"line_number":1636,"context_line":"                # The instance is deleting, so clean up but don\u0027t error."},{"line_number":1637,"context_line":"                LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1638,"context_line":"                self._cleanup_allocated_networks(context, instance,"},{"line_number":1639,"context_line":"                        requested_networks)"},{"line_number":1640,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAT3%2F%2F0uk%3D","line":1637,"in_reply_to":"AAAAT3%2F%2F588%3D","updated":"2013-12-30 18:43:24.000000000","message":"The name of the exception is a bit misleading.  It is raised because the task state is not set to what we expect it to be, but we know that it can happen if the instance is deleted/deleting so we do expect that it\u0027s a possibility.\n\nA delete occurring during a boot, or any other action, is not considered an error.  So we log that it occurred but only as information, not as an warning or exception.","commit_id":"787904a15fee16be49610c21f4939d6c945b4fec"}],"nova/tests/compute/test_compute_mgr.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"10ca9419493151bcf180bac200df3c4b8bd2d0a5","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"    def test_failed_bdm_prep_from_delete_raises_unexpected(self):"},{"line_number":1261,"context_line":"        with contextlib.nested("},{"line_number":1262,"context_line":"                mock.patch.object(self.compute, \u0027_prep_block_device\u0027,"},{"line_number":1263,"context_line":"                    side_effect\u003dexception.UnexpectedDeletingTaskStateError("},{"line_number":1264,"context_line":"                        actual\u003dtask_states.DELETING, expected\u003d\u0027None\u0027)),"},{"line_number":1265,"context_line":"                mock.patch.object(self.compute,"},{"line_number":1266,"context_line":"                    \u0027_build_networks_for_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAT3%2F%2FrRY%3D","line":1263,"updated":"2014-01-03 17:04:27.000000000","message":"Might be slightly nitpicky in this case - but why have a mock of a call that can not possibly *ever* raise this exception, raise it for testing purposes?\n\ninstance.save() is the method that can raise it - why not make it a sideffect of thatmock and not this one?","commit_id":"787904a15fee16be49610c21f4939d6c945b4fec"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"020495e0302d6499cc9ba9661c2a042304b38059","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"    def test_failed_bdm_prep_from_delete_raises_unexpected(self):"},{"line_number":1261,"context_line":"        with contextlib.nested("},{"line_number":1262,"context_line":"                mock.patch.object(self.compute, \u0027_prep_block_device\u0027,"},{"line_number":1263,"context_line":"                    side_effect\u003dexception.UnexpectedDeletingTaskStateError("},{"line_number":1264,"context_line":"                        actual\u003dtask_states.DELETING, expected\u003d\u0027None\u0027)),"},{"line_number":1265,"context_line":"                mock.patch.object(self.compute,"},{"line_number":1266,"context_line":"                    \u0027_build_networks_for_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUH%2F%2F6%2Bs%3D","line":1263,"in_reply_to":"AAAAT3%2F%2FrRY%3D","updated":"2014-01-06 18:57:19.000000000","message":"Good catch.  I don\u0027t remember why I did it this way, but it could be better.","commit_id":"787904a15fee16be49610c21f4939d6c945b4fec"}]}
