)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"df54308f7b9d5274e697aaf715b49f44e93028ca","unresolved":false,"context_lines":[{"line_number":14,"context_line":"to have reclaim the resources consumed by the instance, but leave the"},{"line_number":15,"context_line":"record around for later examination/debugging."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id95845eb995b62ed8858fe61c6fdb34045721674"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F%2FSpM%3D","line":17,"updated":"2013-11-11 15:33:48.000000000","message":"Needs DocImpact, and I kinda think it should be a blueprint, but I am open to that.","commit_id":"a2b9c4d80485d6bb363fcdd26d25354b43c93f02"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"7f99a897ed5ddfcf4275aba4bb7386ff13da18e7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"to have reclaim the resources consumed by the instance, but leave the"},{"line_number":15,"context_line":"record around for later examination/debugging."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id95845eb995b62ed8858fe61c6fdb34045721674"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F%2FRt4%3D","line":17,"in_reply_to":"AAAATn%2F%2FSpM%3D","updated":"2013-11-11 21:06:56.000000000","message":"Done","commit_id":"a2b9c4d80485d6bb363fcdd26d25354b43c93f02"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"f73dc594e887b4222e80794eba6e99e1812ea8ee","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add a \u0027shutdown\u0027 option to the periodic task that cleans up instances"},{"line_number":10,"context_line":"that are both deleted *and* running."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The option provides powers down instances and marks them as"},{"line_number":13,"context_line":"non-bootable.  This is a flag for system administrators who would like"},{"line_number":14,"context_line":"to have reclaim the resources consumed by the instance, but leave the"},{"line_number":15,"context_line":"record around for later examination/debugging."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2FRls%3D","line":12,"updated":"2013-11-11 21:44:00.000000000","message":"\"provides powers down\" ?  s/provides// ?","commit_id":"89cdd1c93f82359176f228332d851caf5e82e468"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"a6f5cfa43a8215533b8678fcd64d53151eb53a5a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add a \u0027shutdown\u0027 option to the periodic task that cleans up instances"},{"line_number":10,"context_line":"that are both deleted *and* running."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The option provides powers down instances and marks them as"},{"line_number":13,"context_line":"non-bootable.  This is a flag for system administrators who would like"},{"line_number":14,"context_line":"to have reclaim the resources consumed by the instance, but leave the"},{"line_number":15,"context_line":"record around for later examination/debugging."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2FRhc%3D","line":12,"in_reply_to":"AAAATn%2F%2FRls%3D","updated":"2013-11-11 22:02:27.000000000","message":"Done","commit_id":"89cdd1c93f82359176f228332d851caf5e82e468"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"de9c3eee954605b2382a8ef2d3ef0575ec5318cd","unresolved":false,"context_lines":[{"line_number":15,"context_line":"later examination/debugging."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"DocImpact"},{"line_number":18,"context_line":"Implements: blueprint cleanup-running-deleted-shutdown"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Id95845eb995b62ed8858fe61c6fdb34045721674"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAATn%2F%2Bi1o%3D","line":18,"updated":"2013-11-24 15:03:34.000000000","message":"Not Implements but Partial.","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"d2781d505c03ce91c2333fd85b505d27967f229f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"later examination/debugging."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"DocImpact"},{"line_number":18,"context_line":"Implements: blueprint cleanup-running-deleted-shutdown"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Id95845eb995b62ed8858fe61c6fdb34045721674"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAATn%2F%2Beig%3D","line":18,"in_reply_to":"AAAATn%2F%2Bi1o%3D","updated":"2013-11-25 17:15:44.000000000","message":"Is partial a feature for blueprints?  I only see this documented for bugs:\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"}],"etc/nova/nova.conf.sample":[{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"56c1def024c39c56c208f3a7a1ee9354f7685e3b","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"# Action to take if a running deleted instance is"},{"line_number":724,"context_line":"# detected.Valid options are \u0027noop\u0027, \u0027log\u0027, \u0027shutdown\u0027, or"},{"line_number":725,"context_line":"# \u0027reap\u0027. Set to \u0027noop\u0027 to disable. (string value)"},{"line_number":726,"context_line":"#running_deleted_instance_action\u003dreap"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"# Number of seconds to wait between runs of the cleanup task."}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAATn%2F%2B%2BPE%3D","line":725,"updated":"2013-11-17 16:59:29.000000000","message":"Maybe we could end it with:\n\n\"Set to \u0027noop\u0027 to prevent any action from being taken.\"\n\ninstead of \"Set to \u0027noop\u0027 to disable.\"\n\nI read it as, \"Set to \u0027noop\u0027 to disable the server, which is what \u0027shutdown\u0027 does.","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"4478b5d0e1fd61b30451c6b2607487dd283bc1b1","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"# Action to take if a running deleted instance is"},{"line_number":724,"context_line":"# detected.Valid options are \u0027noop\u0027, \u0027log\u0027, \u0027shutdown\u0027, or"},{"line_number":725,"context_line":"# \u0027reap\u0027. Set to \u0027noop\u0027 to disable. (string value)"},{"line_number":726,"context_line":"#running_deleted_instance_action\u003dreap"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"# Number of seconds to wait between runs of the cleanup task."}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAATn%2F%2BqW0%3D","line":725,"in_reply_to":"AAAATn%2F%2B%2BPE%3D","updated":"2013-11-21 21:33:37.000000000","message":"Done","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"}],"nova/compute/manager.py":[{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"8cb447cd11b1607ca9c0216abb5822731f694ccc","unresolved":false,"context_lines":[{"line_number":5083,"context_line":"                    try:"},{"line_number":5084,"context_line":"                        # disable starting the instance:"},{"line_number":5085,"context_line":"                        self.driver.set_bootable(instance, False)"},{"line_number":5086,"context_line":"                        # and power it down:"},{"line_number":5087,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5088,"context_line":"                    except Exception:"},{"line_number":5089,"context_line":"                        LOG.exception(\"Failed to power down instance %s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FSTg%3D","line":5086,"updated":"2013-11-11 17:18:55.000000000","message":"This comment and one above don\u0027t seem super-useful, but not a big deal.","commit_id":"a2b9c4d80485d6bb363fcdd26d25354b43c93f02"},{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"56c1def024c39c56c208f3a7a1ee9354f7685e3b","unresolved":false,"context_lines":[{"line_number":182,"context_line":"               default\u003d\"reap\","},{"line_number":183,"context_line":"               help\u003d\"Action to take if a running deleted instance is detected.\""},{"line_number":184,"context_line":"                    \"Valid options are \u0027noop\u0027, \u0027log\u0027, \u0027shutdown\u0027, or \u0027reap\u0027. \""},{"line_number":185,"context_line":"                    \"Set to \u0027noop\u0027 to disable.\"),"},{"line_number":186,"context_line":"    cfg.IntOpt(\"running_deleted_instance_poll_interval\","},{"line_number":187,"context_line":"               default\u003d1800,"},{"line_number":188,"context_line":"               help\u003d\"Number of seconds to wait between runs of the cleanup \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2B%2BPA%3D","line":185,"updated":"2013-11-17 16:59:29.000000000","message":"Maybe we could end it with:\n\n\"Set to \u0027noop\u0027 to prevent any action from being taken.\"\n\ninstead of \"Set to \u0027noop\u0027 to disable.\"\n\nI read it as, \"Set to \u0027noop\u0027 to disable the server, which is what \u0027shutdown\u0027 does.","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"56c1def024c39c56c208f3a7a1ee9354f7685e3b","unresolved":false,"context_lines":[{"line_number":5044,"context_line":""},{"line_number":5045,"context_line":"            1. noop - do nothing"},{"line_number":5046,"context_line":"            2. log - log which instances are erroneously running"},{"line_number":5047,"context_line":"            3. shutdown - power off any erroneously running instances"},{"line_number":5048,"context_line":"            4. reap - shutdown and cleanup any erroneously running instances"},{"line_number":5049,"context_line":""},{"line_number":5050,"context_line":"        The use-case for this cleanup task is: for various reasons, it may be"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2B%2BO8%3D","line":5047,"updated":"2013-11-17 16:59:29.000000000","message":"3. shutdown - power off *and disable* any erroneously running instances","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"4478b5d0e1fd61b30451c6b2607487dd283bc1b1","unresolved":false,"context_lines":[{"line_number":5044,"context_line":""},{"line_number":5045,"context_line":"            1. noop - do nothing"},{"line_number":5046,"context_line":"            2. log - log which instances are erroneously running"},{"line_number":5047,"context_line":"            3. shutdown - power off any erroneously running instances"},{"line_number":5048,"context_line":"            4. reap - shutdown and cleanup any erroneously running instances"},{"line_number":5049,"context_line":""},{"line_number":5050,"context_line":"        The use-case for this cleanup task is: for various reasons, it may be"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BqWQ%3D","line":5047,"in_reply_to":"AAAATn%2F%2B%2BO8%3D","updated":"2013-11-21 21:33:37.000000000","message":"Done","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"fde58915aeae880fea5187bb5dccc997c32c8b9f","unresolved":false,"context_lines":[{"line_number":5086,"context_line":"                        # and power it down:"},{"line_number":5087,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5088,"context_line":"                    except Exception:"},{"line_number":5089,"context_line":"                        LOG.exception(\"Failed to power down instance %s\")"},{"line_number":5090,"context_line":""},{"line_number":5091,"context_line":"                elif action \u003d\u003d \u0027reap\u0027:"},{"line_number":5092,"context_line":"                    LOG.info(_(\"Destroying instance with name label \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2B%2BB0%3D","line":5089,"updated":"2013-11-17 21:55:50.000000000","message":"Can you please mark this as a translatable string, as well as logging the instance?  i.e. \n\nexcept Exception as exc:\n    err \u003d _(Failed to power down instance: %s) % exc\n    LOG.exception(err, instance\u003dinstance)","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0f4e231748c7388880ca01a8ac19eb98d5c5c306","unresolved":false,"context_lines":[{"line_number":5086,"context_line":"                        # and power it down:"},{"line_number":5087,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5088,"context_line":"                    except Exception:"},{"line_number":5089,"context_line":"                        LOG.exception(\"Failed to power down instance %s\")"},{"line_number":5090,"context_line":""},{"line_number":5091,"context_line":"                elif action \u003d\u003d \u0027reap\u0027:"},{"line_number":5092,"context_line":"                    LOG.info(_(\"Destroying instance with name label \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2B71w%3D","line":5089,"updated":"2013-11-18 12:03:33.000000000","message":"this does not have i18n support. It should be wrapped with _()","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8b1d0d9996c26b4b0eea07cdd4fa668ad96cc379","unresolved":false,"context_lines":[{"line_number":5086,"context_line":"                        # and power it down:"},{"line_number":5087,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5088,"context_line":"                    except Exception:"},{"line_number":5089,"context_line":"                        LOG.exception(\"Failed to power down instance %s\")"},{"line_number":5090,"context_line":""},{"line_number":5091,"context_line":"                elif action \u003d\u003d \u0027reap\u0027:"},{"line_number":5092,"context_line":"                    LOG.info(_(\"Destroying instance with name label \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2B8Sk%3D","line":5089,"in_reply_to":"AAAATn%2F%2B%2BB0%3D","updated":"2013-11-18 10:21:30.000000000","message":"+1 to the above, making the string translatable.\n\nI heard people worry about adding the stack traces into anything but the debug log, but I am good with just exception.\n\nLooking below, should this really be a warning, more for consistency reasons than anything else.","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"4478b5d0e1fd61b30451c6b2607487dd283bc1b1","unresolved":false,"context_lines":[{"line_number":5086,"context_line":"                        # and power it down:"},{"line_number":5087,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5088,"context_line":"                    except Exception:"},{"line_number":5089,"context_line":"                        LOG.exception(\"Failed to power down instance %s\")"},{"line_number":5090,"context_line":""},{"line_number":5091,"context_line":"                elif action \u003d\u003d \u0027reap\u0027:"},{"line_number":5092,"context_line":"                    LOG.info(_(\"Destroying instance with name label \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BqVs%3D","line":5089,"in_reply_to":"AAAATn%2F%2B71w%3D","updated":"2013-11-21 21:33:37.000000000","message":"Done","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"de9c3eee954605b2382a8ef2d3ef0575ec5318cd","unresolved":false,"context_lines":[{"line_number":5070,"context_line":"                bdms \u003d capi.block_device_mapping_get_all_by_instance("},{"line_number":5071,"context_line":"                    context, instance)"},{"line_number":5072,"context_line":""},{"line_number":5073,"context_line":"                if action \u003d\u003d \u0027log\u0027:"},{"line_number":5074,"context_line":"                    LOG.warning(_(\"Detected instance with name label \""},{"line_number":5075,"context_line":"                                  \"\u0027%s\u0027 which is marked as \""},{"line_number":5076,"context_line":"                                  \"DELETED but still present on host.\"),"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Bi1Y%3D","line":5073,"updated":"2013-11-24 15:03:34.000000000","message":"This seems does not related to this patch, why change here?","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"d2781d505c03ce91c2333fd85b505d27967f229f","unresolved":false,"context_lines":[{"line_number":5070,"context_line":"                bdms \u003d capi.block_device_mapping_get_all_by_instance("},{"line_number":5071,"context_line":"                    context, instance)"},{"line_number":5072,"context_line":""},{"line_number":5073,"context_line":"                if action \u003d\u003d \u0027log\u0027:"},{"line_number":5074,"context_line":"                    LOG.warning(_(\"Detected instance with name label \""},{"line_number":5075,"context_line":"                                  \"\u0027%s\u0027 which is marked as \""},{"line_number":5076,"context_line":"                                  \"DELETED but still present on host.\"),"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BeiQ%3D","line":5073,"in_reply_to":"AAAATn%2F%2Bi1Y%3D","updated":"2013-11-25 17:15:44.000000000","message":"Because the inconsistent quoting style was annoying me. :)","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"de9c3eee954605b2382a8ef2d3ef0575ec5318cd","unresolved":false,"context_lines":[{"line_number":5082,"context_line":"                               \"DELETED but still present on host.\"),"},{"line_number":5083,"context_line":"                               instance[\u0027name\u0027], instance\u003dinstance)"},{"line_number":5084,"context_line":"                    try:"},{"line_number":5085,"context_line":"                        # disable starting the instance:"},{"line_number":5086,"context_line":"                        self.driver.set_bootable(instance, False)"},{"line_number":5087,"context_line":"                        # and power it down:"},{"line_number":5088,"context_line":"                        self.driver.power_off(instance)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Bi1U%3D","line":5085,"updated":"2013-11-24 15:03:34.000000000","message":"Suggest remove semicolon at the end of the comments","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"d2781d505c03ce91c2333fd85b505d27967f229f","unresolved":false,"context_lines":[{"line_number":5082,"context_line":"                               \"DELETED but still present on host.\"),"},{"line_number":5083,"context_line":"                               instance[\u0027name\u0027], instance\u003dinstance)"},{"line_number":5084,"context_line":"                    try:"},{"line_number":5085,"context_line":"                        # disable starting the instance:"},{"line_number":5086,"context_line":"                        self.driver.set_bootable(instance, False)"},{"line_number":5087,"context_line":"                        # and power it down:"},{"line_number":5088,"context_line":"                        self.driver.power_off(instance)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BeiM%3D","line":5085,"in_reply_to":"AAAATn%2F%2Bi1U%3D","updated":"2013-11-25 17:15:44.000000000","message":"Done","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"148a5d9b5d03108bd769bc7c6a249eb8b938c0d9","unresolved":false,"context_lines":[{"line_number":5083,"context_line":"                               instance[\u0027name\u0027], instance\u003dinstance)"},{"line_number":5084,"context_line":"                    try:"},{"line_number":5085,"context_line":"                        # disable starting the instance:"},{"line_number":5086,"context_line":"                        self.driver.set_bootable(instance, False)"},{"line_number":5087,"context_line":"                        # and power it down:"},{"line_number":5088,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5089,"context_line":"                    except Exception:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BjFU%3D","line":5086,"updated":"2013-11-24 08:22:32.000000000","message":"Why does this need to be a virt driver action / property ?\nThe driver never boots an instance without being asked to by the compute manager AFAIK, so if we make bootable an attribute of the instance we would have a common implementation for all virt drivers.","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"2a523357ef517b382a3ceebfb6dcae5fffc41fb5","unresolved":false,"context_lines":[{"line_number":5083,"context_line":"                               instance[\u0027name\u0027], instance\u003dinstance)"},{"line_number":5084,"context_line":"                    try:"},{"line_number":5085,"context_line":"                        # disable starting the instance:"},{"line_number":5086,"context_line":"                        self.driver.set_bootable(instance, False)"},{"line_number":5087,"context_line":"                        # and power it down:"},{"line_number":5088,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5089,"context_line":"                    except Exception:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BjEA%3D","line":5086,"in_reply_to":"AAAATn%2F%2BjFU%3D","updated":"2013-11-24 08:39:29.000000000","message":"Doh - because of course the instance is deleted - sorry, get it now","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"de9c3eee954605b2382a8ef2d3ef0575ec5318cd","unresolved":false,"context_lines":[{"line_number":5084,"context_line":"                    try:"},{"line_number":5085,"context_line":"                        # disable starting the instance:"},{"line_number":5086,"context_line":"                        self.driver.set_bootable(instance, False)"},{"line_number":5087,"context_line":"                        # and power it down:"},{"line_number":5088,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5089,"context_line":"                    except Exception:"},{"line_number":5090,"context_line":"                        msg \u003d _(\"Failed to power down instance\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Bi1Q%3D","line":5087,"updated":"2013-11-24 15:03:34.000000000","message":"1) Suggest remove semicolon at the end of the comments\n2) What about use \"power it off\"","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"d2781d505c03ce91c2333fd85b505d27967f229f","unresolved":false,"context_lines":[{"line_number":5084,"context_line":"                    try:"},{"line_number":5085,"context_line":"                        # disable starting the instance:"},{"line_number":5086,"context_line":"                        self.driver.set_bootable(instance, False)"},{"line_number":5087,"context_line":"                        # and power it down:"},{"line_number":5088,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5089,"context_line":"                    except Exception:"},{"line_number":5090,"context_line":"                        msg \u003d _(\"Failed to power down instance\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BeiE%3D","line":5087,"in_reply_to":"AAAATn%2F%2Bi1Q%3D","updated":"2013-11-25 17:15:44.000000000","message":"Done","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"de9c3eee954605b2382a8ef2d3ef0575ec5318cd","unresolved":false,"context_lines":[{"line_number":5087,"context_line":"                        # and power it down:"},{"line_number":5088,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5089,"context_line":"                    except Exception:"},{"line_number":5090,"context_line":"                        msg \u003d _(\"Failed to power down instance\")"},{"line_number":5091,"context_line":"                        LOG.warn(msg, instance\u003dinstance, exc_info\u003dTrue)"},{"line_number":5092,"context_line":""},{"line_number":5093,"context_line":"                elif action \u003d\u003d \u0027reap\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Bi1M%3D","line":5090,"updated":"2013-11-24 15:03:34.000000000","message":"power down  \u003d\u003d\u003e power off","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"d2781d505c03ce91c2333fd85b505d27967f229f","unresolved":false,"context_lines":[{"line_number":5087,"context_line":"                        # and power it down:"},{"line_number":5088,"context_line":"                        self.driver.power_off(instance)"},{"line_number":5089,"context_line":"                    except Exception:"},{"line_number":5090,"context_line":"                        msg \u003d _(\"Failed to power down instance\")"},{"line_number":5091,"context_line":"                        LOG.warn(msg, instance\u003dinstance, exc_info\u003dTrue)"},{"line_number":5092,"context_line":""},{"line_number":5093,"context_line":"                elif action \u003d\u003d \u0027reap\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BeiA%3D","line":5090,"in_reply_to":"AAAATn%2F%2Bi1M%3D","updated":"2013-11-25 17:15:44.000000000","message":"Done","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"bba94a0d24dc4c506daefe2e7707b3fe650e1454","unresolved":false,"context_lines":[{"line_number":5081,"context_line":"                            # disable starting the instance"},{"line_number":5082,"context_line":"                            self.driver.set_bootable(instance, False)"},{"line_number":5083,"context_line":"                        except NotImplementedError:"},{"line_number":5084,"context_line":"                            LOG.warn(_(\"set_bootable is unimplemented for the \""},{"line_number":5085,"context_line":"                                       \"current driver\"))"},{"line_number":5086,"context_line":"                        # and power it off"},{"line_number":5087,"context_line":"                        self.driver.power_off(instance)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BXOg%3D","line":5084,"updated":"2013-11-26 22:11:35.000000000","message":"Nit: would prefer \"is not implemented\"","commit_id":"b2fb2093597d0fd26f46cc98a12283c8e707462b"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"e7c94043fe153258ddf23fee218f1af59f7b399f","unresolved":false,"context_lines":[{"line_number":5081,"context_line":"                            # disable starting the instance"},{"line_number":5082,"context_line":"                            self.driver.set_bootable(instance, False)"},{"line_number":5083,"context_line":"                        except NotImplementedError:"},{"line_number":5084,"context_line":"                            LOG.warn(_(\"set_bootable is unimplemented for the \""},{"line_number":5085,"context_line":"                                       \"current driver\"))"},{"line_number":5086,"context_line":"                        # and power it off"},{"line_number":5087,"context_line":"                        self.driver.power_off(instance)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BTfg%3D","line":5084,"in_reply_to":"AAAATn%2F%2BXOg%3D","updated":"2013-11-27 16:17:14.000000000","message":"Done","commit_id":"b2fb2093597d0fd26f46cc98a12283c8e707462b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dca9290dbe8f567e622c6b981fe0c32de13f4164","unresolved":false,"context_lines":[{"line_number":4958,"context_line":"            2. log - log which instances are erroneously running"},{"line_number":4959,"context_line":"            3. shutdown - power off *and disable* any erroneously running"},{"line_number":4960,"context_line":"                          instances"},{"line_number":4961,"context_line":"            4. reap - shutdown and cleanup any erroneously running instances"},{"line_number":4962,"context_line":""},{"line_number":4963,"context_line":"        The use-case for this cleanup task is: for various reasons, it may be"},{"line_number":4964,"context_line":"        possible for the database to show an instance as deleted but for that"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BFMw%3D","line":4961,"updated":"2013-12-02 18:53:55.000000000","message":"Why not just make this option #4?","commit_id":"13d00adda83eb8bf876dd8a9123b6d1dac17c36a"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"db1c7a2d5f7e980bce5026a82b038182f2178466","unresolved":false,"context_lines":[{"line_number":4958,"context_line":"            2. log - log which instances are erroneously running"},{"line_number":4959,"context_line":"            3. shutdown - power off *and disable* any erroneously running"},{"line_number":4960,"context_line":"                          instances"},{"line_number":4961,"context_line":"            4. reap - shutdown and cleanup any erroneously running instances"},{"line_number":4962,"context_line":""},{"line_number":4963,"context_line":"        The use-case for this cleanup task is: for various reasons, it may be"},{"line_number":4964,"context_line":"        possible for the database to show an instance as deleted but for that"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F9%2F9c%3D","line":4961,"in_reply_to":"AAAATn%2F%2BFMw%3D","updated":"2013-12-03 16:32:25.000000000","message":"Done","commit_id":"13d00adda83eb8bf876dd8a9123b6d1dac17c36a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dca9290dbe8f567e622c6b981fe0c32de13f4164","unresolved":false,"context_lines":[{"line_number":4982,"context_line":"                bdms \u003d capi.block_device_mapping_get_all_by_instance("},{"line_number":4983,"context_line":"                    context, instance)"},{"line_number":4984,"context_line":""},{"line_number":4985,"context_line":"                if action \u003d\u003d \u0027log\u0027:"},{"line_number":4986,"context_line":"                    LOG.warning(_(\"Detected instance with name label \""},{"line_number":4987,"context_line":"                                  \"\u0027%s\u0027 which is marked as \""},{"line_number":4988,"context_line":"                                  \"DELETED but still present on host.\"),"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BFMg%3D","line":4985,"updated":"2013-12-02 18:53:55.000000000","message":"This is useless noise.","commit_id":"13d00adda83eb8bf876dd8a9123b6d1dac17c36a"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"db1c7a2d5f7e980bce5026a82b038182f2178466","unresolved":false,"context_lines":[{"line_number":4982,"context_line":"                bdms \u003d capi.block_device_mapping_get_all_by_instance("},{"line_number":4983,"context_line":"                    context, instance)"},{"line_number":4984,"context_line":""},{"line_number":4985,"context_line":"                if action \u003d\u003d \u0027log\u0027:"},{"line_number":4986,"context_line":"                    LOG.warning(_(\"Detected instance with name label \""},{"line_number":4987,"context_line":"                                  \"\u0027%s\u0027 which is marked as \""},{"line_number":4988,"context_line":"                                  \"DELETED but still present on host.\"),"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F9%2F9g%3D","line":4985,"in_reply_to":"AAAATn%2F%2BFMg%3D","updated":"2013-12-03 16:32:25.000000000","message":"Done","commit_id":"13d00adda83eb8bf876dd8a9123b6d1dac17c36a"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8b1d0d9996c26b4b0eea07cdd4fa668ad96cc379","unresolved":false,"context_lines":[{"line_number":4873,"context_line":"    def test_cleanup_running_deleted_instances_shutdown(self):"},{"line_number":4874,"context_line":"        ctxt, inst1, inst2 \u003d self._test_cleanup_running(\u0027shutdown\u0027)"},{"line_number":4875,"context_line":""},{"line_number":4876,"context_line":"        self.mox.StubOutWithMock(self.compute.driver, \u0027set_bootable\u0027)"},{"line_number":4877,"context_line":"        self.mox.StubOutWithMock(self.compute.driver, \u0027power_off\u0027)"},{"line_number":4878,"context_line":""},{"line_number":4879,"context_line":"        self.compute.driver.set_bootable(inst1, False)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2B8SQ%3D","line":4876,"updated":"2013-11-18 10:21:30.000000000","message":"I think we are trying to add new tests as mock, although the position does seem to keep changing. Mostly because mock is part of the python standard libs in 3.3. Anyways, just a heads up, I am not going to block on that.","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"4478b5d0e1fd61b30451c6b2607487dd283bc1b1","unresolved":false,"context_lines":[{"line_number":4873,"context_line":"    def test_cleanup_running_deleted_instances_shutdown(self):"},{"line_number":4874,"context_line":"        ctxt, inst1, inst2 \u003d self._test_cleanup_running(\u0027shutdown\u0027)"},{"line_number":4875,"context_line":""},{"line_number":4876,"context_line":"        self.mox.StubOutWithMock(self.compute.driver, \u0027set_bootable\u0027)"},{"line_number":4877,"context_line":"        self.mox.StubOutWithMock(self.compute.driver, \u0027power_off\u0027)"},{"line_number":4878,"context_line":""},{"line_number":4879,"context_line":"        self.compute.driver.set_bootable(inst1, False)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BqVk%3D","line":4876,"in_reply_to":"AAAATn%2F%2B8SQ%3D","updated":"2013-11-21 21:33:37.000000000","message":"As of latest mailing thread, I think people seem ok with pymox since there is a py3k compatible version.","commit_id":"890f932459a03c87210d5a77791f37986cd70f6a"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"de9c3eee954605b2382a8ef2d3ef0575ec5318cd","unresolved":false,"context_lines":[{"line_number":4873,"context_line":"    def test_cleanup_running_deleted_instances_shutdown(self):"},{"line_number":4874,"context_line":"        ctxt, inst1, inst2 \u003d self._test_cleanup_running(\u0027shutdown\u0027)"},{"line_number":4875,"context_line":""},{"line_number":4876,"context_line":"        self.mox.StubOutWithMock(self.compute.driver, \u0027set_bootable\u0027)"},{"line_number":4877,"context_line":"        self.mox.StubOutWithMock(self.compute.driver, \u0027power_off\u0027)"},{"line_number":4878,"context_line":""},{"line_number":4879,"context_line":"        self.compute.driver.set_bootable(inst1, False)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Bi1c%3D","line":4876,"updated":"2013-11-24 15:03:34.000000000","message":"For new added unit test, suggest use mock but not mox.","commit_id":"571cf7c784b978c636dfd7e95028362a1fcc9f8c"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"bba94a0d24dc4c506daefe2e7707b3fe650e1454","unresolved":false,"context_lines":[{"line_number":4949,"context_line":"        compute_manager.LOG.warn(mox.IgnoreArg())"},{"line_number":4950,"context_line":""},{"line_number":4951,"context_line":"        self.mox.ReplayAll()"},{"line_number":4952,"context_line":"        self.compute._cleanup_running_deleted_instances(ctxt)"},{"line_number":4953,"context_line":""},{"line_number":4954,"context_line":"    def test_running_deleted_instances(self):"},{"line_number":4955,"context_line":"        admin_context \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BXN8%3D","line":4952,"updated":"2013-11-26 22:11:35.000000000","message":"Could you add a test in here to prove that  the NotImplemented exception from set_bootable is handled please ?","commit_id":"b2fb2093597d0fd26f46cc98a12283c8e707462b"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"e7c94043fe153258ddf23fee218f1af59f7b399f","unresolved":false,"context_lines":[{"line_number":4949,"context_line":"        compute_manager.LOG.warn(mox.IgnoreArg())"},{"line_number":4950,"context_line":""},{"line_number":4951,"context_line":"        self.mox.ReplayAll()"},{"line_number":4952,"context_line":"        self.compute._cleanup_running_deleted_instances(ctxt)"},{"line_number":4953,"context_line":""},{"line_number":4954,"context_line":"    def test_running_deleted_instances(self):"},{"line_number":4955,"context_line":"        admin_context \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BTfQ%3D","line":4952,"in_reply_to":"AAAATn%2F%2BXN8%3D","updated":"2013-11-27 16:17:14.000000000","message":"Done","commit_id":"b2fb2093597d0fd26f46cc98a12283c8e707462b"}]}
