)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"4596b8afbae91ab9380f68673be76f1478e7e10d","unresolved":false,"context_lines":[{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"        except exception.OverQuota as ex:"},{"line_number":1460,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1461,"context_line":"                LOG.exception(ex)"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"        except Exception:"},{"line_number":1464,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2BzYc%3D","line":1461,"updated":"2014-02-18 23:00:13.000000000","message":"LOG.exception is supposed to take the string, not the exception, it then also logs the exception as a side effect.","commit_id":"db2cdf07d9ca67b862e3f709f7969735dc8c02fb"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"92b33c9945ffa270175e737d481233af8a9a6b3c","unresolved":false,"context_lines":[{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"        except exception.OverQuota as ex:"},{"line_number":1460,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1461,"context_line":"                LOG.exception(ex)"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"        except Exception:"},{"line_number":1464,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2BxH0%3D","line":1461,"in_reply_to":"AAAAUX%2F%2BzYc%3D","updated":"2014-02-19 07:21:57.000000000","message":"LogRecord can take an exception as the message. LogRecord.getMessage() checks if it\u0027s a basestring type, otherwise it tries str(Exception()) which will give you the message of the exception. http://hg.python.org/cpython/file/63f0a1e95d2b/Lib/logging/__init__.py#l324","commit_id":"db2cdf07d9ca67b862e3f709f7969735dc8c02fb"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"a33293c82b59bb1628a4acf65ccfb2b1a7223dab","unresolved":false,"context_lines":[{"line_number":1459,"context_line":"        except exception.OverQuota as ex:"},{"line_number":1460,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1461,"context_line":"                LOG.exception(ex)"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"        except Exception:"},{"line_number":1464,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1465,"context_line":"                LOG.exception(_(\u0027Instance failed block device setup\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Fcxg%3D","line":1462,"updated":"2014-02-13 05:23:03.000000000","message":"is here a right place to catch the overquota?\n\nAlso, This overquota exception might be too much in the log I think","commit_id":"db2cdf07d9ca67b862e3f709f7969735dc8c02fb"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"5f43792f60adc57cc41d6d96a8d4605994269fe5","unresolved":false,"context_lines":[{"line_number":1459,"context_line":"        except exception.OverQuota as ex:"},{"line_number":1460,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1461,"context_line":"                LOG.exception(ex)"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"        except Exception:"},{"line_number":1464,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1465,"context_line":"                LOG.exception(_(\u0027Instance failed block device setup\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2BtRQ%3D","line":1462,"in_reply_to":"AAAAUX%2F%2FcI0%3D","updated":"2014-02-19 17:02:45.000000000","message":"I get what you\u0027re saying now. Yes you\u0027re right, I\u0027ll see about that change.","commit_id":"db2cdf07d9ca67b862e3f709f7969735dc8c02fb"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"db34009933739a462206362210f176a4555bc8ed","unresolved":false,"context_lines":[{"line_number":1459,"context_line":"        except exception.OverQuota as ex:"},{"line_number":1460,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1461,"context_line":"                LOG.exception(ex)"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"        except Exception:"},{"line_number":1464,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1465,"context_line":"                LOG.exception(_(\u0027Instance failed block device setup\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FcI0%3D","line":1462,"in_reply_to":"AAAAUX%2F%2FcNg%3D","updated":"2014-02-13 07:30:54.000000000","message":"yes, but it will make a exception log in compute log\nmy understanding is \nLOG.debug will print something like \nQuota exceeded for resources: volumes\nand LOG.exception will print all the call stack\n\nthanks for explanation and I will take back my -1","commit_id":"db2cdf07d9ca67b862e3f709f7969735dc8c02fb"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"9737c16fc1e908519754813606cfd7a89411f18a","unresolved":false,"context_lines":[{"line_number":1459,"context_line":"        except exception.OverQuota as ex:"},{"line_number":1460,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1461,"context_line":"                LOG.exception(ex)"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"        except Exception:"},{"line_number":1464,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1465,"context_line":"                LOG.exception(_(\u0027Instance failed block device setup\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FcNg%3D","line":1462,"in_reply_to":"AAAAUX%2F%2FcPg%3D","updated":"2014-02-13 07:20:03.000000000","message":"I\u0027m not sure if this bug is related. 1) The bug is talking about Nova API. This is the manager layer. 2) This is not adding an additional log message. This is providing a more clearer log message that is already being logged. Instead of saying \"Instance failed block device setup\" because of a quota issue, it\u0027ll say \"Quota exceeded for resources: volumes\".","commit_id":"db2cdf07d9ca67b862e3f709f7969735dc8c02fb"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"699df3329c889db555784604b8fff93d320fb643","unresolved":false,"context_lines":[{"line_number":1459,"context_line":"        except exception.OverQuota as ex:"},{"line_number":1460,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1461,"context_line":"                LOG.exception(ex)"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"        except Exception:"},{"line_number":1464,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1465,"context_line":"                LOG.exception(_(\u0027Instance failed block device setup\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FcPg%3D","line":1462,"in_reply_to":"AAAAUX%2F%2FcYw%3D","updated":"2014-02-13 07:13:47.000000000","message":"ok, I missed the logic\n\nfor last sentence, I prefer to remove the \u0027LOG.exception(ex)\u0027 or add minor logs \nplease refer to following defect 1235389\nhttps://bugs.launchpad.net/nova/+bug/12353899\n\nLet me know your opinion, thanks","commit_id":"db2cdf07d9ca67b862e3f709f7969735dc8c02fb"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"a4fe2ad6c9d5553a3564ce3c6fdc4f3a1e33ee25","unresolved":false,"context_lines":[{"line_number":1459,"context_line":"        except exception.OverQuota as ex:"},{"line_number":1460,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1461,"context_line":"                LOG.exception(ex)"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"        except Exception:"},{"line_number":1464,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1465,"context_line":"                LOG.exception(_(\u0027Instance failed block device setup\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FcYw%3D","line":1462,"in_reply_to":"AAAAUX%2F%2Fcxg%3D","updated":"2014-02-13 06:34:51.000000000","message":"I\u0027m placing the exception catch right above the generic exception catch all that is the problem. I don\u0027t understand your last sentence.","commit_id":"db2cdf07d9ca67b862e3f709f7969735dc8c02fb"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"18c57914dd8c080d9594bc1e10a8ebe310856b51","unresolved":false,"context_lines":[{"line_number":1689,"context_line":"                msg \u003d (_(\u0027Failed to create block device for instance \u0027"},{"line_number":1690,"context_line":"                         \u0027%(instance_uuid)s due to being over volume resource \u0027"},{"line_number":1691,"context_line":"                         \u0027quota\u0027) % {\u0027instance_uuid\u0027: instance.uuid})"},{"line_number":1692,"context_line":"                LOG.warn(msg)"},{"line_number":1693,"context_line":""},{"line_number":1694,"context_line":"        except Exception:"},{"line_number":1695,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FCOU%3D","line":1692,"updated":"2014-03-20 19:02:48.000000000","message":"I think you can use instance\u003dinstance here.","commit_id":"e4ab70237c9621feee25571463d7b0a45446dab6"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d3556c85854e8dd9ea1808a47760597a77778f3b","unresolved":false,"context_lines":[{"line_number":1689,"context_line":"                msg \u003d (_(\u0027Failed to create block device for instance \u0027"},{"line_number":1690,"context_line":"                         \u0027%(instance_uuid)s due to being over volume resource \u0027"},{"line_number":1691,"context_line":"                         \u0027quota\u0027) % {\u0027instance_uuid\u0027: instance.uuid})"},{"line_number":1692,"context_line":"                LOG.warn(msg)"},{"line_number":1693,"context_line":""},{"line_number":1694,"context_line":"        except Exception:"},{"line_number":1695,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FA7M%3D","line":1692,"in_reply_to":"AAAAWH%2F%2FCOU%3D","updated":"2014-03-20 22:43:04.000000000","message":"I\u0027d rather be explicit.","commit_id":"e4ab70237c9621feee25571463d7b0a45446dab6"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"4142b8507bd5a3009b5512d66c5675c5c70109f3","unresolved":false,"context_lines":[{"line_number":1736,"context_line":""},{"line_number":1737,"context_line":"        except exception.OverQuota:"},{"line_number":1738,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1739,"context_line":"                msg \u003d (_(\u0027Failed to create block device for instance \u0027"},{"line_number":1740,"context_line":"                         \u0027%(instance_uuid)s due to being over volume resource \u0027"},{"line_number":1741,"context_line":"                         \u0027quota\u0027) % {\u0027instance_uuid\u0027: instance.uuid})"},{"line_number":1742,"context_line":"                LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2Fsew%3D","line":1739,"updated":"2014-04-18 06:35:21.000000000","message":"Could you use the new _LW marker?\n\nhttps://wiki.openstack.org/wiki/LoggingStandards#Guidelines","commit_id":"26629906e814a7e5baf44bc0eeb3be365e2c7069"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"172cd1c37a661c897f85b6db982693b5a70ba362","unresolved":false,"context_lines":[{"line_number":1736,"context_line":""},{"line_number":1737,"context_line":"        except exception.OverQuota:"},{"line_number":1738,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1739,"context_line":"                msg \u003d (_(\u0027Failed to create block device for instance \u0027"},{"line_number":1740,"context_line":"                         \u0027%(instance_uuid)s due to being over volume resource \u0027"},{"line_number":1741,"context_line":"                         \u0027quota\u0027) % {\u0027instance_uuid\u0027: instance.uuid})"},{"line_number":1742,"context_line":"                LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2Foz8%3D","line":1739,"in_reply_to":"AAAAXH%2F%2Fsew%3D","updated":"2014-04-18 16:16:59.000000000","message":"Done","commit_id":"26629906e814a7e5baf44bc0eeb3be365e2c7069"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"3b262adfaf52f43ba3ba50aa836f67ca7f1613f9","unresolved":false,"context_lines":[{"line_number":73,"context_line":"from nova.objects import quotas as quotas_obj"},{"line_number":74,"context_line":"from nova.objects import service as service_obj"},{"line_number":75,"context_line":"from nova.openstack.common import excutils"},{"line_number":76,"context_line":"from nova.openstack.common.gettextutils import _, _LW"},{"line_number":77,"context_line":"from nova.openstack.common import jsonutils"},{"line_number":78,"context_line":"from nova.openstack.common import log as logging"},{"line_number":79,"context_line":"from nova.openstack.common import periodic_task"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FoQI%3D","line":76,"updated":"2014-04-18 17:43:35.000000000","message":"You need to have 1 import per line or pep8 tests will fail","commit_id":"067d89f84a7c951cfec0d835f4add1e712455b5d"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"98837ab9246efbc6cc25ba8027bcafd9655357ab","unresolved":false,"context_lines":[{"line_number":73,"context_line":"from nova.objects import quotas as quotas_obj"},{"line_number":74,"context_line":"from nova.objects import service as service_obj"},{"line_number":75,"context_line":"from nova.openstack.common import excutils"},{"line_number":76,"context_line":"from nova.openstack.common.gettextutils import _, _LW"},{"line_number":77,"context_line":"from nova.openstack.common import jsonutils"},{"line_number":78,"context_line":"from nova.openstack.common import log as logging"},{"line_number":79,"context_line":"from nova.openstack.common import periodic_task"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2Fn2g%3D","line":76,"in_reply_to":"AAAAXH%2F%2FoQI%3D","updated":"2014-04-18 18:46:44.000000000","message":"Joe has a patch to make an exception for this https://review.openstack.org/#/c/88649/ otherwise we get fail 302 since _LW is an object, not a module.","commit_id":"067d89f84a7c951cfec0d835f4add1e712455b5d"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"3b262adfaf52f43ba3ba50aa836f67ca7f1613f9","unresolved":false,"context_lines":[{"line_number":1727,"context_line":"                for bdm_type in (\u0027swap\u0027, \u0027ephemerals\u0027, \u0027block_device_mapping\u0027):"},{"line_number":1728,"context_line":"                    block_device_info[bdm_type] \u003d \\"},{"line_number":1729,"context_line":"                        driver_block_device.legacy_block_devices("},{"line_number":1730,"context_line":"                            block_device_info[bdm_type])"},{"line_number":1731,"context_line":""},{"line_number":1732,"context_line":"            # Get swap out of the list"},{"line_number":1733,"context_line":"            block_device_info[\u0027swap\u0027] \u003d driver_block_device.get_swap("}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2FoPk%3D","line":1730,"updated":"2014-04-18 17:43:35.000000000","message":"I would restore this back to where it keep everything clean.  If we want it clean up, I suggest it be done in another review/commit","commit_id":"067d89f84a7c951cfec0d835f4add1e712455b5d"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"98837ab9246efbc6cc25ba8027bcafd9655357ab","unresolved":false,"context_lines":[{"line_number":1727,"context_line":"                for bdm_type in (\u0027swap\u0027, \u0027ephemerals\u0027, \u0027block_device_mapping\u0027):"},{"line_number":1728,"context_line":"                    block_device_info[bdm_type] \u003d \\"},{"line_number":1729,"context_line":"                        driver_block_device.legacy_block_devices("},{"line_number":1730,"context_line":"                            block_device_info[bdm_type])"},{"line_number":1731,"context_line":""},{"line_number":1732,"context_line":"            # Get swap out of the list"},{"line_number":1733,"context_line":"            block_device_info[\u0027swap\u0027] \u003d driver_block_device.get_swap("}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2Fn2Y%3D","line":1730,"in_reply_to":"AAAAXH%2F%2FoPk%3D","updated":"2014-04-18 18:46:44.000000000","message":"Done","commit_id":"067d89f84a7c951cfec0d835f4add1e712455b5d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067dbf8b199258e33fff0dce27c6ef1f356906a2","unresolved":false,"context_lines":[{"line_number":1738,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1739,"context_line":"                msg \u003d _LW(\u0027Failed to create block device for instance \u0027"},{"line_number":1740,"context_line":"                          \u0027%(instance_uuid)s due to being over volume \u0027"},{"line_number":1741,"context_line":"                          \u0027resource quota\u0027) % {\u0027instance_uuid\u0027: instance.uuid}"},{"line_number":1742,"context_line":"                LOG.warn(msg)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXH%2F%2FnsI%3D","line":1741,"updated":"2014-04-18 19:09:53.000000000","message":"Sure that instance is an object here? It\u0027s not invoked as one on line 1708 or in _build_instance which is calling this method.","commit_id":"a2f19fdc3f17ed254081b738456673b5c085dbc0"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"116ae6716a0e6e5ba7a1db46fbca86833e886df1","unresolved":false,"context_lines":[{"line_number":1738,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1739,"context_line":"                msg \u003d _LW(\u0027Failed to create block device for instance \u0027"},{"line_number":1740,"context_line":"                          \u0027%(instance_uuid)s due to being over volume \u0027"},{"line_number":1741,"context_line":"                          \u0027resource quota\u0027) % {\u0027instance_uuid\u0027: instance.uuid}"},{"line_number":1742,"context_line":"                LOG.warn(msg)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXH%2F%2FOts%3D","line":1741,"in_reply_to":"AAAAXH%2F%2FnsI%3D","updated":"2014-04-23 07:02:05.000000000","message":"Done","commit_id":"a2f19fdc3f17ed254081b738456673b5c085dbc0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067dbf8b199258e33fff0dce27c6ef1f356906a2","unresolved":false,"context_lines":[{"line_number":1739,"context_line":"                msg \u003d _LW(\u0027Failed to create block device for instance \u0027"},{"line_number":1740,"context_line":"                          \u0027%(instance_uuid)s due to being over volume \u0027"},{"line_number":1741,"context_line":"                          \u0027resource quota\u0027) % {\u0027instance_uuid\u0027: instance.uuid}"},{"line_number":1742,"context_line":"                LOG.warn(msg)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"        except Exception:"},{"line_number":1745,"context_line":"            LOG.exception(_(\u0027Instance failed block device setup\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXH%2F%2Fns8%3D","line":1742,"updated":"2014-04-18 19:09:53.000000000","message":"Just pass instance\u003dinstance as a kwarg to the warn method and the instance uuid will get logged automatically, then we don\u0027t need the variable in the Message object.","commit_id":"a2f19fdc3f17ed254081b738456673b5c085dbc0"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"116ae6716a0e6e5ba7a1db46fbca86833e886df1","unresolved":false,"context_lines":[{"line_number":1739,"context_line":"                msg \u003d _LW(\u0027Failed to create block device for instance \u0027"},{"line_number":1740,"context_line":"                          \u0027%(instance_uuid)s due to being over volume \u0027"},{"line_number":1741,"context_line":"                          \u0027resource quota\u0027) % {\u0027instance_uuid\u0027: instance.uuid}"},{"line_number":1742,"context_line":"                LOG.warn(msg)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"        except Exception:"},{"line_number":1745,"context_line":"            LOG.exception(_(\u0027Instance failed block device setup\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXH%2F%2FOto%3D","line":1742,"in_reply_to":"AAAAXH%2F%2Fns8%3D","updated":"2014-04-23 07:02:05.000000000","message":"Done","commit_id":"a2f19fdc3f17ed254081b738456673b5c085dbc0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1b22e8c11aed5454c52f0b9619da402a38cde181","unresolved":false,"context_lines":[{"line_number":1736,"context_line":"        except exception.OverQuota:"},{"line_number":1737,"context_line":"            msg \u003d _LW(\u0027Failed to create block device for instance due to \u0027"},{"line_number":1738,"context_line":"                      \u0027being over volume resource quota\u0027)"},{"line_number":1739,"context_line":"            LOG.warn(msg, instance\u003dinstance)"},{"line_number":1740,"context_line":"            raise exception.InvalidBDM()"},{"line_number":1741,"context_line":""},{"line_number":1742,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F4eU%3D","line":1739,"updated":"2014-04-25 15:31:28.000000000","message":"\"People want this log level to be debug instead of warn. Give it to the people.\"\n\nYou didn\u0027t give it to the people. :(","commit_id":"d375c7310202ce05cf28cc2e6148ec37cecb3f05"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"7b17fe50881e504e737fd4121ae2f11ef2479375","unresolved":false,"context_lines":[{"line_number":1736,"context_line":"        except exception.OverQuota:"},{"line_number":1737,"context_line":"            msg \u003d _LW(\u0027Failed to create block device for instance due to \u0027"},{"line_number":1738,"context_line":"                      \u0027being over volume resource quota\u0027)"},{"line_number":1739,"context_line":"            LOG.warn(msg, instance\u003dinstance)"},{"line_number":1740,"context_line":"            raise exception.InvalidBDM()"},{"line_number":1741,"context_line":""},{"line_number":1742,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F388%3D","line":1739,"in_reply_to":"AAAAXX%2F%2F4eU%3D","updated":"2014-04-26 01:13:52.000000000","message":"Done","commit_id":"d375c7310202ce05cf28cc2e6148ec37cecb3f05"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"747316c64505399c56e842c37829e29be9b3412c","unresolved":false,"context_lines":[{"line_number":1523,"context_line":"        def fake(*args, **kwargs):"},{"line_number":1524,"context_line":"            raise exception.OverQuota(overs\u003d\u0027volumes\u0027)"},{"line_number":1525,"context_line":"        self.stubs.Set(nova.compute.manager.ComputeManager,"},{"line_number":1526,"context_line":"                       \u0027_prep_block_device\u0027, fake)"},{"line_number":1527,"context_line":"        instance \u003d self._create_fake_instance()"},{"line_number":1528,"context_line":"        self.assertRaises(exception.OverQuota, self.compute.run_instance,"},{"line_number":1529,"context_line":"                          self.context, instance\u003dinstance, request_spec\u003d{},"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2F%2BFk%3D","line":1526,"updated":"2014-04-16 06:53:04.000000000","message":"I was told that we need to use mock instead of stubs by several people \n\neven though I don\u0027t know the reasons for sure ...","commit_id":"d76ea0dda33b201de99d6de2151ccacc68174898"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"4142b8507bd5a3009b5512d66c5675c5c70109f3","unresolved":false,"context_lines":[{"line_number":1520,"context_line":"        appropriate exception is raised and the instances to ERROR state, keep"},{"line_number":1521,"context_line":"        the task state."},{"line_number":1522,"context_line":"        \"\"\""},{"line_number":1523,"context_line":"        with mock.patch.object(nova.compute.manager.ComputeManager,"},{"line_number":1524,"context_line":"                               \u0027_prep_block_device\u0027) as _prep_block_device:"},{"line_number":1525,"context_line":"            _prep_block_device.side_effect \u003d ("},{"line_number":1526,"context_line":"                exception.OverQuota(overs\u003d\u0027volumes\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2FseQ%3D","line":1523,"updated":"2014-04-18 06:35:21.000000000","message":"Could you move this mock to be a method decorator?  Should be cleaner and avoids extra spacing.\n\n@mock.patch(\u0027nova.compute.manager.ComputeManager._prep_block_device\u0027, side_effect\u003dexception.OverQuota(overs\u003d\u0027volumes\u0027))\n\nMake sure to add mock_prep_block_device to method arg.","commit_id":"26629906e814a7e5baf44bc0eeb3be365e2c7069"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"172cd1c37a661c897f85b6db982693b5a70ba362","unresolved":false,"context_lines":[{"line_number":1520,"context_line":"        appropriate exception is raised and the instances to ERROR state, keep"},{"line_number":1521,"context_line":"        the task state."},{"line_number":1522,"context_line":"        \"\"\""},{"line_number":1523,"context_line":"        with mock.patch.object(nova.compute.manager.ComputeManager,"},{"line_number":1524,"context_line":"                               \u0027_prep_block_device\u0027) as _prep_block_device:"},{"line_number":1525,"context_line":"            _prep_block_device.side_effect \u003d ("},{"line_number":1526,"context_line":"                exception.OverQuota(overs\u003d\u0027volumes\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2Fowo%3D","line":1523,"in_reply_to":"AAAAXH%2F%2FseQ%3D","updated":"2014-04-18 16:16:59.000000000","message":"Done","commit_id":"26629906e814a7e5baf44bc0eeb3be365e2c7069"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067dbf8b199258e33fff0dce27c6ef1f356906a2","unresolved":false,"context_lines":[{"line_number":1514,"context_line":"                            \u0027task_state\u0027: None})"},{"line_number":1515,"context_line":""},{"line_number":1516,"context_line":"    @mock.patch(\u0027nova.compute.manager.ComputeManager._prep_block_device\u0027,"},{"line_number":1517,"context_line":"                side_effect\u003dexception.OverQuota(overs\u003d\u0027volumes\u0027))"},{"line_number":1518,"context_line":"    def test_setup_block_device_over_quota_fail(self, mock_prep_block_device):"},{"line_number":1519,"context_line":"        \"\"\"block device mapping over quota failure test."},{"line_number":1520,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXH%2F%2FnpM%3D","line":1517,"updated":"2014-04-18 19:09:53.000000000","message":"This is testing that _build_instance will get an OverQuota and that it\u0027s all handled, but not that _prep_block_device itself will catch the OverQuota and re-raise it, I think we want a test for that wrinkle.","commit_id":"a2f19fdc3f17ed254081b738456673b5c085dbc0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067dbf8b199258e33fff0dce27c6ef1f356906a2","unresolved":false,"context_lines":[{"line_number":1522,"context_line":"        appropriate exception is raised and the instances to ERROR state, keep"},{"line_number":1523,"context_line":"        the task state."},{"line_number":1524,"context_line":"        \"\"\""},{"line_number":1525,"context_line":"        instance \u003d self._create_fake_instance()"},{"line_number":1526,"context_line":"        self.assertRaises(exception.OverQuota, self.compute.run_instance,"},{"line_number":1527,"context_line":"                          self.context, instance\u003dinstance, request_spec\u003d{},"},{"line_number":1528,"context_line":"                          filter_properties\u003d{}, requested_networks\u003d[],"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXH%2F%2Fnqs%3D","line":1525,"updated":"2014-04-18 19:09:53.000000000","message":"If the API is using instance objects, use _create_fake_instance_obj instead.","commit_id":"a2f19fdc3f17ed254081b738456673b5c085dbc0"}],"nova/tests/volume/test_cinder.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5cbeece5c53e94feef447a728538646c69b77777","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":86,"context_line":"                          self.api.create, self.ctx, 1, \u0027\u0027, \u0027\u0027)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @mock.patch(\u0027nova.volume.cinder.cinderclient\u0027)"},{"line_number":89,"context_line":"    def test_create_over_quota_failed(self, mock_cinderclient):"},{"line_number":90,"context_line":"            mock_cinderclient.return_value.volumes.create.side_effect \u003d ("},{"line_number":91,"context_line":"                cinder_exception.OverLimit(413))"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_3f76483f","line":88,"updated":"2014-04-30 20:50:55.000000000","message":"Suggest just mocking volumes.create here with the side_effect, then it doesn\u0027t need to happen within the test case, or move the mock inside the test case with a context.","commit_id":"5dd3ef76f962675d68cd5ea704ee17a56849c852"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"31ad41169bd1bced2a49dbe05aab38ae8ffe8bec","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":86,"context_line":"                          self.api.create, self.ctx, 1, \u0027\u0027, \u0027\u0027)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @mock.patch(\u0027nova.volume.cinder.cinderclient\u0027)"},{"line_number":89,"context_line":"    def test_create_over_quota_failed(self, mock_cinderclient):"},{"line_number":90,"context_line":"            mock_cinderclient.return_value.volumes.create.side_effect \u003d ("},{"line_number":91,"context_line":"                cinder_exception.OverLimit(413))"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_81629ad6","line":88,"in_reply_to":"9ad9bd40_3f76483f","updated":"2014-04-30 23:19:14.000000000","message":"If I do that...\n\nUnknownMethodCallError: Method called is not a member of the object: volume\n\nThe reason I did this is so I could mock what nova.volume.cinder.cinderclient() returns.","commit_id":"5dd3ef76f962675d68cd5ea704ee17a56849c852"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5cbeece5c53e94feef447a728538646c69b77777","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @mock.patch(\u0027nova.volume.cinder.cinderclient\u0027)"},{"line_number":89,"context_line":"    def test_create_over_quota_failed(self, mock_cinderclient):"},{"line_number":90,"context_line":"            mock_cinderclient.return_value.volumes.create.side_effect \u003d ("},{"line_number":91,"context_line":"                cinder_exception.OverLimit(413))"},{"line_number":92,"context_line":"            self.assertRaises(exception.OverQuota, self.api.create, self.ctx,"},{"line_number":93,"context_line":"                              1, \u0027\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_ffcdc087","line":90,"updated":"2014-04-30 20:50:55.000000000","message":"Why is this indented so far over?","commit_id":"5dd3ef76f962675d68cd5ea704ee17a56849c852"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"31ad41169bd1bced2a49dbe05aab38ae8ffe8bec","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @mock.patch(\u0027nova.volume.cinder.cinderclient\u0027)"},{"line_number":89,"context_line":"    def test_create_over_quota_failed(self, mock_cinderclient):"},{"line_number":90,"context_line":"            mock_cinderclient.return_value.volumes.create.side_effect \u003d ("},{"line_number":91,"context_line":"                cinder_exception.OverLimit(413))"},{"line_number":92,"context_line":"            self.assertRaises(exception.OverQuota, self.api.create, self.ctx,"},{"line_number":93,"context_line":"                              1, \u0027\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_c174a29e","line":90,"in_reply_to":"9ad9bd40_ffcdc087","updated":"2014-04-30 23:19:14.000000000","message":"Done","commit_id":"5dd3ef76f962675d68cd5ea704ee17a56849c852"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5cbeece5c53e94feef447a728538646c69b77777","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                cinder_exception.OverLimit(413))"},{"line_number":92,"context_line":"            self.assertRaises(exception.OverQuota, self.api.create, self.ctx,"},{"line_number":93,"context_line":"                              1, \u0027\u0027, \u0027\u0027)"},{"line_number":94,"context_line":"            mock_cinderclient.assert_called_once()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_get_all(self):"},{"line_number":97,"context_line":"        cinder.cinderclient(self.ctx).AndReturn(self.cinderclient)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_1f926457","line":94,"updated":"2014-04-30 20:50:55.000000000","message":"This method doesn\u0027t exist, I think you\u0027re looking for assert_called_once_with.\n\nBesides, you\u0027d be looking that mock_cinderclient.volumes.create is only called once, not that cinderclient is only called once.","commit_id":"5dd3ef76f962675d68cd5ea704ee17a56849c852"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"31ad41169bd1bced2a49dbe05aab38ae8ffe8bec","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                cinder_exception.OverLimit(413))"},{"line_number":92,"context_line":"            self.assertRaises(exception.OverQuota, self.api.create, self.ctx,"},{"line_number":93,"context_line":"                              1, \u0027\u0027, \u0027\u0027)"},{"line_number":94,"context_line":"            mock_cinderclient.assert_called_once()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_get_all(self):"},{"line_number":97,"context_line":"        cinder.cinderclient(self.ctx).AndReturn(self.cinderclient)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_01de8a3f","line":94,"in_reply_to":"9ad9bd40_1f926457","updated":"2014-04-30 23:19:14.000000000","message":"Done","commit_id":"5dd3ef76f962675d68cd5ea704ee17a56849c852"}],"nova/volume/cinder.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067dbf8b199258e33fff0dce27c6ef1f356906a2","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        try:"},{"line_number":303,"context_line":"            item \u003d cinderclient(context).volumes.create(size, **kwargs)"},{"line_number":304,"context_line":"            return _untranslate_volume_summary_view(context, item)"},{"line_number":305,"context_line":"        except cinder_exception.OverLimit:"},{"line_number":306,"context_line":"            raise exception.OverQuota(overs\u003d\u0027volumes\u0027)"},{"line_number":307,"context_line":"        except cinder_exception.BadRequest as e:"},{"line_number":308,"context_line":"            raise exception.InvalidInput(reason\u003dunicode(e))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXH%2F%2Fnow%3D","line":305,"updated":"2014-04-18 19:09:53.000000000","message":"Let\u0027s get a test for this case to make sure it\u0027s not regressed.","commit_id":"a2f19fdc3f17ed254081b738456673b5c085dbc0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1b22e8c11aed5454c52f0b9619da402a38cde181","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        try:"},{"line_number":303,"context_line":"            item \u003d cinderclient(context).volumes.create(size, **kwargs)"},{"line_number":304,"context_line":"            return _untranslate_volume_summary_view(context, item)"},{"line_number":305,"context_line":"        except cinder_exception.OverLimit:"},{"line_number":306,"context_line":"            raise exception.OverQuota(overs\u003d\u0027volumes\u0027)"},{"line_number":307,"context_line":"        except cinder_exception.BadRequest as e:"},{"line_number":308,"context_line":"            raise exception.InvalidInput(reason\u003dunicode(e))"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F4b8%3D","line":305,"updated":"2014-04-25 15:31:28.000000000","message":"This still isn\u0027t tested.  That should go in nova.tests.volume.test_cinder.","commit_id":"d375c7310202ce05cf28cc2e6148ec37cecb3f05"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"7b17fe50881e504e737fd4121ae2f11ef2479375","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        try:"},{"line_number":303,"context_line":"            item \u003d cinderclient(context).volumes.create(size, **kwargs)"},{"line_number":304,"context_line":"            return _untranslate_volume_summary_view(context, item)"},{"line_number":305,"context_line":"        except cinder_exception.OverLimit:"},{"line_number":306,"context_line":"            raise exception.OverQuota(overs\u003d\u0027volumes\u0027)"},{"line_number":307,"context_line":"        except cinder_exception.BadRequest as e:"},{"line_number":308,"context_line":"            raise exception.InvalidInput(reason\u003dunicode(e))"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F088%3D","line":305,"in_reply_to":"AAAAXX%2F%2F4b8%3D","updated":"2014-04-26 01:13:52.000000000","message":"Done","commit_id":"d375c7310202ce05cf28cc2e6148ec37cecb3f05"}]}
