)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d7ec263fe905dcfad2fce3ec7a158ae4bb17a1c7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoyan Ding \u003cxyding@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-02-24 16:17:46 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Author: Ding Xiaoyan \u003cxyding@cn.ibm.com\u003e"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAU3%2F%2F4%2B8%3D","line":7,"updated":"2014-02-24 09:28:50.000000000","message":"please add prefix vmware","commit_id":"62cb7dafffe5c4b02a208bf8228ec681924a82c1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d7ec263fe905dcfad2fce3ec7a158ae4bb17a1c7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-02-24 16:17:46 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Author: Ding Xiaoyan \u003cxyding@cn.ibm.com\u003e"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAU3%2F%2F4%2Bo%3D","line":8,"updated":"2014-02-24 09:28:50.000000000","message":"Can you please explain why you need to power off here.. I have not seen the issue.","commit_id":"62cb7dafffe5c4b02a208bf8228ec681924a82c1"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"7df280eda097f88159f22ca0e2aab143b70a1b99","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-02-24 16:17:46 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Author: Ding Xiaoyan \u003cxyding@cn.ibm.com\u003e"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAU3%2F%2F4nA%3D","line":8,"in_reply_to":"AAAAU3%2F%2F4%2Bo%3D","updated":"2014-02-25 06:29:37.000000000","message":"we use image \"trend-tinyvm1-flat.vmdk\", and import the image with command \"glance image-create --name trend-thin --is-public\u003dTrue --container-format\u003dbare --disk-format\u003dvmdk --property vmware_disktype\u003d\"thin\" --property vmware_adaptertype\u003d\"ide\" \u003c trend-tinyvm1-flat.vmdk\". During unrescue the rescued vm, openstack tried to detach the disk when the vm still is powered on, since the disk could not be detached when vm is active so we hit defect 1279199. So we need power off the vm first then detach the disk.","commit_id":"62cb7dafffe5c4b02a208bf8228ec681924a82c1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoyan Ding \u003cxyding@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-02-26 05:26:20 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"add unit test for unrescue"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAU3%2F%2Fe%2B0%3D","line":7,"updated":"2014-02-26 11:09:01.000000000","message":"please add a prefix here. that is:\nVMware: add power off vm before detach disk during unrescue","commit_id":"127f64143dfa7e9db2e3d28f08e2f298d06753e5"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"b556fb32dfc6b7f500c30bc82b11641ca85e1705","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoyan Ding \u003cxyding@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-02-26 05:26:20 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"add unit test for unrescue"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAVX%2F%2F7u0%3D","line":7,"in_reply_to":"AAAAU3%2F%2Fe%2B0%3D","updated":"2014-02-27 09:22:32.000000000","message":"have add it","commit_id":"127f64143dfa7e9db2e3d28f08e2f298d06753e5"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"add unit test for unrescue"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: 1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAU3%2F%2Fe%2Bc%3D","line":9,"updated":"2014-02-26 11:09:01.000000000","message":"You do not need to state you are adding a unit test.\nCan you please inidicate that the IDE hot unplug needs to be done when the VM is shutdown.","commit_id":"127f64143dfa7e9db2e3d28f08e2f298d06753e5"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"b556fb32dfc6b7f500c30bc82b11641ca85e1705","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"add unit test for unrescue"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: 1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAVX%2F%2F7uw%3D","line":9,"in_reply_to":"AAAAU3%2F%2Fe%2Bc%3D","updated":"2014-02-27 09:22:32.000000000","message":"have change it","commit_id":"127f64143dfa7e9db2e3d28f08e2f298d06753e5"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"39a4325d0bd2494d755e2a4e0cfbac55bc355558","unresolved":false,"context_lines":[{"line_number":9,"context_line":"hot-unplug type disk like IDE can only be detached when the VM is power off."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: 1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"AAAAWH%2F%2FhbQ%3D","line":12,"updated":"2014-03-17 11:07:40.000000000","message":"nit: Closes-Bug: #1279199","commit_id":"bee7f6474795ad9944084b07724a40c5182873e8"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"706d08414e8faf22a705b7f7bf031b1e10741352","unresolved":false,"context_lines":[{"line_number":9,"context_line":"hot-unplug type disk like IDE can only be detached when the VM is power off."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: 1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"AAAAWH%2F%2FOLw%3D","line":12,"in_reply_to":"AAAAWH%2F%2FhbQ%3D","updated":"2014-03-19 10:48:06.000000000","message":"will fix it","commit_id":"bee7f6474795ad9944084b07724a40c5182873e8"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"56bc6ab2404bd4af06f0a40cf8a73d887e20e9b8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMWare: add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"hot-unplug type disk like IDE can only be detached when the VM is power off."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: #1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"AAAAWH%2F94Vk%3D","line":9,"updated":"2014-04-01 13:18:05.000000000","message":"If it can only be detached when the VM is off, then it isn\u0027t hot-unpluggable right?","commit_id":"5288ec7b6ec496b6f7249e398ccdcc2195d1a993"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"1de6b1d61309d104475a7deb00b602763cea96fa","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMWare: add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"hot-unplug type disk like IDE can only be detached when the VM is power off."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: #1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"AAAAWH%2F9zAk%3D","line":9,"in_reply_to":"AAAAWH%2F93Fk%3D","updated":"2014-04-02 03:33:06.000000000","message":"Done","commit_id":"5288ec7b6ec496b6f7249e398ccdcc2195d1a993"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"1de6b1d61309d104475a7deb00b602763cea96fa","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMWare: add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"hot-unplug type disk like IDE can only be detached when the VM is power off."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: #1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"AAAAWH%2F9zAo%3D","line":9,"in_reply_to":"AAAAWH%2F94Vk%3D","updated":"2014-04-02 03:33:06.000000000","message":"Done","commit_id":"5288ec7b6ec496b6f7249e398ccdcc2195d1a993"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"b0026d2298c67ccdfbc33f447a971d7ab282117c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMWare: add power off vm before detach disk during unrescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"hot-unplug type disk like IDE can only be detached when the VM is power off."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: #1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"AAAAWH%2F93Fk%3D","line":9,"in_reply_to":"AAAAWH%2F94Vk%3D","updated":"2014-04-01 15:37:44.000000000","message":"Heh, yeah, wording could be clarified a bit ...","commit_id":"5288ec7b6ec496b6f7249e398ccdcc2195d1a993"},{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"76e1072453a9e0f0ade6896fff420d58823bbc2f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Non Hot Plug type disk like IDE can only be detached when the VM is power off."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: #1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"AAAAWn%2F%2F5l4%3D","line":12,"updated":"2014-04-08 16:24:47.000000000","message":"Just for future reference, there needs to be an upper case B in Closes-Bug for it to parse the Closes part correctly.","commit_id":"1e1915aaaca38b5691794e0e052a42b9d95dd3c2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"51aa9c5dbce5cd34e670bf77b897965b36cd8c65","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Non Hot Plug type disk like IDE can only be detached when the VM is power off."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18"},{"line_number":12,"context_line":"Close-bug: #1279199"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"AAAAWn%2F%2F5PA%3D","line":12,"in_reply_to":"AAAAWn%2F%2F5l4%3D","updated":"2014-04-08 17:09:09.000000000","message":"Well, and needs to be Closes-Bug rather than Close-bug, missing \u0027s\u0027 on closes.","commit_id":"1e1915aaaca38b5691794e0e052a42b9d95dd3c2"}],"nova/tests/virt/vmwareapi/test_driver_api.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Test suite for VMwareAPI."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import collections"},{"line_number":23,"context_line":"import contextlib"},{"line_number":24,"context_line":"import copy"},{"line_number":25,"context_line":"import time"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fe9A%3D","side":"PARENT","line":22,"updated":"2014-02-26 11:09:01.000000000","message":"why was this deleted?","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d6b46804463f4e34f4f823b5d0f07fecc03c2676","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Test suite for VMwareAPI."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import collections"},{"line_number":23,"context_line":"import contextlib"},{"line_number":24,"context_line":"import copy"},{"line_number":25,"context_line":"import time"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8fU%3D","side":"PARENT","line":22,"in_reply_to":"AAAAU3%2F%2Fe9A%3D","updated":"2014-02-27 08:01:18.000000000","message":"this may caused by I did not use the latest code to commit changes, I\u0027m working on this.","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import collections"},{"line_number":23,"context_line":"import contextlib"},{"line_number":24,"context_line":"import copy"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"import mock"},{"line_number":28,"context_line":"import mox"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fe88%3D","side":"PARENT","line":25,"updated":"2014-02-26 11:09:01.000000000","message":"ditto","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d6b46804463f4e34f4f823b5d0f07fecc03c2676","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import collections"},{"line_number":23,"context_line":"import contextlib"},{"line_number":24,"context_line":"import copy"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"import mock"},{"line_number":28,"context_line":"import mox"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8fQ%3D","side":"PARENT","line":25,"in_reply_to":"AAAAU3%2F%2Fe88%3D","updated":"2014-02-27 08:01:18.000000000","message":"this may caused by I did not use the latest code to commit changes, I\u0027m working on this.","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":267,"context_line":"                   host_username\u003d\u0027test_username\u0027,"},{"line_number":268,"context_line":"                   host_password\u003d\u0027test_pass\u0027,"},{"line_number":269,"context_line":"                   cluster_name\u003d\u0027test_cluster\u0027,"},{"line_number":270,"context_line":"                   datastore_regex\u003d\u0027.*\u0027,"},{"line_number":271,"context_line":"                   use_linked_clone\u003dFalse, group\u003d\u0027vmware\u0027)"},{"line_number":272,"context_line":"        self.flags(vnc_enabled\u003dFalse,"},{"line_number":273,"context_line":"                   image_cache_subdirectory_name\u003d\u0027vmware_base\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fe9I%3D","side":"PARENT","line":270,"updated":"2014-02-26 11:09:01.000000000","message":"why was this deleted?","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d6b46804463f4e34f4f823b5d0f07fecc03c2676","unresolved":false,"context_lines":[{"line_number":267,"context_line":"                   host_username\u003d\u0027test_username\u0027,"},{"line_number":268,"context_line":"                   host_password\u003d\u0027test_pass\u0027,"},{"line_number":269,"context_line":"                   cluster_name\u003d\u0027test_cluster\u0027,"},{"line_number":270,"context_line":"                   datastore_regex\u003d\u0027.*\u0027,"},{"line_number":271,"context_line":"                   use_linked_clone\u003dFalse, group\u003d\u0027vmware\u0027)"},{"line_number":272,"context_line":"        self.flags(vnc_enabled\u003dFalse,"},{"line_number":273,"context_line":"                   image_cache_subdirectory_name\u003d\u0027vmware_base\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8fM%3D","side":"PARENT","line":270,"in_reply_to":"AAAAU3%2F%2Fe9I%3D","updated":"2014-02-27 08:01:18.000000000","message":"this may caused by I did not use the latest code to commit changes, I\u0027m working on this.","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        self.task_ref \u003d None"},{"line_number":305,"context_line":"        self.exception \u003d False"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def test_driver_capabilities(self):"},{"line_number":308,"context_line":"        self.assertFalse(self.conn.capabilities[\u0027has_imagecache\u0027])"},{"line_number":309,"context_line":"        self.assertFalse(self.conn.capabilities[\u0027supports_recreate\u0027])"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fe9M%3D","side":"PARENT","line":307,"updated":"2014-02-26 11:09:01.000000000","message":"why was this deleted?","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d6b46804463f4e34f4f823b5d0f07fecc03c2676","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        self.task_ref \u003d None"},{"line_number":305,"context_line":"        self.exception \u003d False"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def test_driver_capabilities(self):"},{"line_number":308,"context_line":"        self.assertFalse(self.conn.capabilities[\u0027has_imagecache\u0027])"},{"line_number":309,"context_line":"        self.assertFalse(self.conn.capabilities[\u0027supports_recreate\u0027])"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8ek%3D","side":"PARENT","line":307,"in_reply_to":"AAAAU3%2F%2Fe9M%3D","updated":"2014-02-27 08:01:18.000000000","message":"this may caused by I did not use the latest code to commit changes, I\u0027m working on this.","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            return self.login_session"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        self.stubs.Set(vmwareapi_fake.FakeVim, \u0027_login\u0027, _fake_login)"},{"line_number":322,"context_line":"        self.stubs.Set(time, \u0027sleep\u0027, lambda x: None)"},{"line_number":323,"context_line":"        self.conn \u003d driver.VMwareAPISession()"},{"line_number":324,"context_line":"        self.assertEqual(self.attempts, 2)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fe9U%3D","side":"PARENT","line":322,"updated":"2014-02-26 11:09:01.000000000","message":"why was this deleted?","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d6b46804463f4e34f4f823b5d0f07fecc03c2676","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            return self.login_session"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        self.stubs.Set(vmwareapi_fake.FakeVim, \u0027_login\u0027, _fake_login)"},{"line_number":322,"context_line":"        self.stubs.Set(time, \u0027sleep\u0027, lambda x: None)"},{"line_number":323,"context_line":"        self.conn \u003d driver.VMwareAPISession()"},{"line_number":324,"context_line":"        self.assertEqual(self.attempts, 2)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8ec%3D","side":"PARENT","line":322,"in_reply_to":"AAAAU3%2F%2Fe9U%3D","updated":"2014-02-27 08:01:18.000000000","message":"this may caused by I did not use the latest code to commit changes, I\u0027m working on this.","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":994,"context_line":"        instances \u003d self.conn.list_instances()"},{"line_number":995,"context_line":"        self.assertEqual(len(instances), 0)"},{"line_number":996,"context_line":"        self.assertIsNone(vm_util.vm_ref_cache_get(self.uuid))"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    def test_destroy_no_datastore(self):"},{"line_number":999,"context_line":"        self._create_vm()"},{"line_number":1000,"context_line":"        info \u003d self.conn.get_info({\u0027uuid\u0027: self.uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fe9Y%3D","side":"PARENT","line":997,"updated":"2014-02-26 11:09:01.000000000","message":"why was this deleted?","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d6b46804463f4e34f4f823b5d0f07fecc03c2676","unresolved":false,"context_lines":[{"line_number":994,"context_line":"        instances \u003d self.conn.list_instances()"},{"line_number":995,"context_line":"        self.assertEqual(len(instances), 0)"},{"line_number":996,"context_line":"        self.assertIsNone(vm_util.vm_ref_cache_get(self.uuid))"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    def test_destroy_no_datastore(self):"},{"line_number":999,"context_line":"        self._create_vm()"},{"line_number":1000,"context_line":"        info \u003d self.conn.get_info({\u0027uuid\u0027: self.uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8eM%3D","side":"PARENT","line":997,"in_reply_to":"AAAAU3%2F%2Fe9Y%3D","updated":"2014-02-27 08:01:18.000000000","message":"this may caused by I did not use the latest code to commit changes, I\u0027m working on this.","commit_id":"321b0a97110027916b4a9ca83b0a8c97b0e64932"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#"},{"line_number":10,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":11,"context_line":"#"},{"line_number":12,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":13,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"#    License for the specific language governing permissions and limitations"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fe9o%3D","line":12,"updated":"2014-02-26 11:09:01.000000000","message":"this file looks like it has deleted a lot of code.","commit_id":"127f64143dfa7e9db2e3d28f08e2f298d06753e5"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d6b46804463f4e34f4f823b5d0f07fecc03c2676","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#"},{"line_number":10,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":11,"context_line":"#"},{"line_number":12,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":13,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"#    License for the specific language governing permissions and limitations"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8fo%3D","line":12,"in_reply_to":"AAAAU3%2F%2Fe9o%3D","updated":"2014-02-27 08:01:18.000000000","message":"this may caused by I did not use the latest code to commit changes, I\u0027m working on this.","commit_id":"127f64143dfa7e9db2e3d28f08e2f298d06753e5"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ac3734a33e88f276c523e391a2f377c531961c31","unresolved":false,"context_lines":[{"line_number":1036,"context_line":"    def test_unrescue(self):"},{"line_number":1037,"context_line":"        self._rescue()"},{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"        def fake_detach_disk_from_vm(vm_ref, instance,"},{"line_number":1040,"context_line":"                                     device_name, destroy_disk\u003dFalse):"},{"line_number":1041,"context_line":"            info \u003d self.conn.get_info(instance)"},{"line_number":1042,"context_line":"            self._check_vm_info(info, power_state.SHUTDOWN)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fe9g%3D","line":1039,"updated":"2014-02-26 11:09:01.000000000","message":"how does this show us the power off?","commit_id":"127f64143dfa7e9db2e3d28f08e2f298d06753e5"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d6b46804463f4e34f4f823b5d0f07fecc03c2676","unresolved":false,"context_lines":[{"line_number":1036,"context_line":"    def test_unrescue(self):"},{"line_number":1037,"context_line":"        self._rescue()"},{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"        def fake_detach_disk_from_vm(vm_ref, instance,"},{"line_number":1040,"context_line":"                                     device_name, destroy_disk\u003dFalse):"},{"line_number":1041,"context_line":"            info \u003d self.conn.get_info(instance)"},{"line_number":1042,"context_line":"            self._check_vm_info(info, power_state.SHUTDOWN)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8gE%3D","line":1039,"in_reply_to":"AAAAU3%2F%2Fe9g%3D","updated":"2014-02-27 08:01:18.000000000","message":"power off show in the fake detach function, check _check_vm_info","commit_id":"127f64143dfa7e9db2e3d28f08e2f298d06753e5"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"bd2cc69d40e5546118ad19250c849c289ee53f98","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"        self._rescue()"},{"line_number":1092,"context_line":""},{"line_number":1093,"context_line":"        def fake_detach_disk_from_vm(vm_ref, instance,"},{"line_number":1094,"context_line":"                                    device_name, destroy_disk\u003dFalse):"},{"line_number":1095,"context_line":"            info \u003d self.conn.get_info(instance)"},{"line_number":1096,"context_line":"            self._check_vm_info(info, power_state.SHUTDOWN)"},{"line_number":1097,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2FYqo%3D","line":1094,"updated":"2014-03-06 13:24:52.000000000","message":"Parameter device_name is not aligned","commit_id":"93b97b5ab782d3d69380431640cd46bc817cebc8"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"3f6969b8ce93465a5abb4ade73496f23b9815fa4","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"        self._rescue()"},{"line_number":1092,"context_line":""},{"line_number":1093,"context_line":"        def fake_detach_disk_from_vm(vm_ref, instance,"},{"line_number":1094,"context_line":"                                    device_name, destroy_disk\u003dFalse):"},{"line_number":1095,"context_line":"            info \u003d self.conn.get_info(instance)"},{"line_number":1096,"context_line":"            self._check_vm_info(info, power_state.SHUTDOWN)"},{"line_number":1097,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2FQ%2FM%3D","line":1094,"in_reply_to":"AAAAVn%2F%2FYqo%3D","updated":"2014-03-07 06:53:51.000000000","message":"have fixed it.","commit_id":"93b97b5ab782d3d69380431640cd46bc817cebc8"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"bd2cc69d40e5546118ad19250c849c289ee53f98","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"            self._check_vm_info(info, power_state.SHUTDOWN)"},{"line_number":1097,"context_line":""},{"line_number":1098,"context_line":"        with mock.patch.object(self.conn._volumeops, \"detach_disk_from_vm\","},{"line_number":1099,"context_line":"                              fake_detach_disk_from_vm):"},{"line_number":1100,"context_line":"            self.conn.unrescue(self.instance, None)"},{"line_number":1101,"context_line":"        info \u003d self.conn.get_info({\u0027name\u0027: 1, \u0027uuid\u0027: self.uuid,"},{"line_number":1102,"context_line":"                                   \u0027node\u0027: self.instance_node})"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2FYpo%3D","line":1099,"updated":"2014-03-06 13:24:52.000000000","message":"Parameter is not aligned..","commit_id":"93b97b5ab782d3d69380431640cd46bc817cebc8"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"3f6969b8ce93465a5abb4ade73496f23b9815fa4","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"            self._check_vm_info(info, power_state.SHUTDOWN)"},{"line_number":1097,"context_line":""},{"line_number":1098,"context_line":"        with mock.patch.object(self.conn._volumeops, \"detach_disk_from_vm\","},{"line_number":1099,"context_line":"                              fake_detach_disk_from_vm):"},{"line_number":1100,"context_line":"            self.conn.unrescue(self.instance, None)"},{"line_number":1101,"context_line":"        info \u003d self.conn.get_info({\u0027name\u0027: 1, \u0027uuid\u0027: self.uuid,"},{"line_number":1102,"context_line":"                                   \u0027node\u0027: self.instance_node})"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2FQ%2FA%3D","line":1099,"in_reply_to":"AAAAVn%2F%2FYpo%3D","updated":"2014-03-07 06:53:51.000000000","message":"have fixed it","commit_id":"93b97b5ab782d3d69380431640cd46bc817cebc8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6473de86f620cd370d5b8a7058b661b43d9863bd","unresolved":false,"context_lines":[{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"        with mock.patch.object(self.conn._volumeops, \"detach_disk_from_vm\","},{"line_number":1224,"context_line":"                               fake_detach_disk_from_vm):"},{"line_number":1225,"context_line":"            self.conn.unrescue(self.instance, None)"},{"line_number":1226,"context_line":"        info \u003d self.conn.get_info({\u0027name\u0027: 1, \u0027uuid\u0027: self.uuid,"},{"line_number":1227,"context_line":"                                   \u0027node\u0027: self.instance_node})"},{"line_number":1228,"context_line":"        self._check_vm_info(info, power_state.RUNNING)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2Fhgc%3D","line":1225,"updated":"2014-03-17 10:55:51.000000000","message":"This does not check the fact that the VM is powered off. This is something that we need to add.\nYou can consider doing this by mocking the power_off operation and validating that it is called. This should be called prior to the detachment of the disk.","commit_id":"bee7f6474795ad9944084b07724a40c5182873e8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f7e839177ad26519b793eb74791611397163fc4a","unresolved":false,"context_lines":[{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"        with mock.patch.object(self.conn._volumeops, \"detach_disk_from_vm\","},{"line_number":1224,"context_line":"                               fake_detach_disk_from_vm):"},{"line_number":1225,"context_line":"            self.conn.unrescue(self.instance, None)"},{"line_number":1226,"context_line":"        info \u003d self.conn.get_info({\u0027name\u0027: 1, \u0027uuid\u0027: self.uuid,"},{"line_number":1227,"context_line":"                                   \u0027node\u0027: self.instance_node})"},{"line_number":1228,"context_line":"        self._check_vm_info(info, power_state.RUNNING)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2FY7M%3D","line":1225,"in_reply_to":"AAAAWH%2F%2Faj4%3D","updated":"2014-03-18 07:23:50.000000000","message":"Correct. Missed that. Thanks","commit_id":"bee7f6474795ad9944084b07724a40c5182873e8"},{"author":{"_account_id":7148,"name":"Zhu Zhu","email":"bjzzu.zz@gmail.com","username":"zhuzhubj"},"change_message_id":"10766d0538511d8f02c404fe6314f108400eb18f","unresolved":false,"context_lines":[{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"        with mock.patch.object(self.conn._volumeops, \"detach_disk_from_vm\","},{"line_number":1224,"context_line":"                               fake_detach_disk_from_vm):"},{"line_number":1225,"context_line":"            self.conn.unrescue(self.instance, None)"},{"line_number":1226,"context_line":"        info \u003d self.conn.get_info({\u0027name\u0027: 1, \u0027uuid\u0027: self.uuid,"},{"line_number":1227,"context_line":"                                   \u0027node\u0027: self.instance_node})"},{"line_number":1228,"context_line":"        self._check_vm_info(info, power_state.RUNNING)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2Faj4%3D","line":1225,"in_reply_to":"AAAAWH%2F%2Fhgc%3D","updated":"2014-03-18 01:44:12.000000000","message":"Hi Garyk, it looks that the assert is within the method fake_detach_disk_from_vm. self._check_vm_info(info, power_state.SHUTDOWN). When arrive to this fake method, it assert the vm to be shutdown status.","commit_id":"bee7f6474795ad9944084b07724a40c5182873e8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59857b623f3e4343cd39ff9bf1c7bf9ba44b8e4e","unresolved":false,"context_lines":[{"line_number":1275,"context_line":"            self.conn.unrescue(self.instance, None)"},{"line_number":1276,"context_line":"            poweroff.assert_called_once_with(mock.ANY)"},{"line_number":1277,"context_line":"            detach.assert_called_once_with(mock.ANY, mock.ANY,"},{"line_number":1278,"context_line":"                                           mock.ANY)"},{"line_number":1279,"context_line":"        info \u003d self.conn.get_info({\u0027name\u0027: 1, \u0027uuid\u0027: self.uuid,"},{"line_number":1280,"context_line":"                                   \u0027node\u0027: self.instance_node})"},{"line_number":1281,"context_line":"        self._check_vm_info(info, power_state.RUNNING)"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAWH%2F9s7w%3D","line":1278,"updated":"2014-04-02 17:39:35.000000000","message":"Sorry, but the above is really only checking that the poweroff and detach methods were called with an appropriate number of parameters, not that the parameters passed were appropriate. Would it be possible to use specific expected parameters instead of mock.ANY?","commit_id":"619fec6942a67b212dc692d176a768226eb83c58"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"dd8dc063a3b32d3e3a2221ff48d32a356809a392","unresolved":false,"context_lines":[{"line_number":1275,"context_line":"            self.conn.unrescue(self.instance, None)"},{"line_number":1276,"context_line":"            poweroff.assert_called_once_with(mock.ANY)"},{"line_number":1277,"context_line":"            detach.assert_called_once_with(mock.ANY, mock.ANY,"},{"line_number":1278,"context_line":"                                           mock.ANY)"},{"line_number":1279,"context_line":"        info \u003d self.conn.get_info({\u0027name\u0027: 1, \u0027uuid\u0027: self.uuid,"},{"line_number":1280,"context_line":"                                   \u0027node\u0027: self.instance_node})"},{"line_number":1281,"context_line":"        self._check_vm_info(info, power_state.RUNNING)"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAWH%2F9nB0%3D","line":1278,"in_reply_to":"AAAAWH%2F9s7w%3D","updated":"2014-04-03 11:38:17.000000000","message":"for the three parameters (vm_ref, instance, device_name), I have change vm_ref and device_name to test wether they are passed appropriate, see patch 21. But for instance, I have to use mock.ANY, because a r_instance will be generated by deepcopy instance in unrescue method, and will pass r_instance to detach_disk_from_vm, I can not get r_instance from outside, so have to use mock.ANY.","commit_id":"619fec6942a67b212dc692d176a768226eb83c58"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d7ec263fe905dcfad2fce3ec7a158ae4bb17a1c7","unresolved":false,"context_lines":[{"line_number":1158,"context_line":"                        \"get_dynamic_property\", vm_rescue_ref,"},{"line_number":1159,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":1160,"context_line":"        device \u003d vm_util.get_vmdk_volume_disk(hardware_devices, path\u003dvmdk_path)"},{"line_number":1161,"context_line":"        self.power_off(instance, vm_ref\u003dvm_rescue_ref)"},{"line_number":1162,"context_line":"        self._volumeops.detach_disk_from_vm(vm_rescue_ref, r_instance, device)"},{"line_number":1163,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1164,"context_line":"        self._power_on(instance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F4u8%3D","line":1161,"updated":"2014-02-24 09:28:50.000000000","message":"it is still unclear why the vm needs to be powered off. please see my questions on the bug","commit_id":"62cb7dafffe5c4b02a208bf8228ec681924a82c1"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"7df280eda097f88159f22ca0e2aab143b70a1b99","unresolved":false,"context_lines":[{"line_number":1158,"context_line":"                        \"get_dynamic_property\", vm_rescue_ref,"},{"line_number":1159,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":1160,"context_line":"        device \u003d vm_util.get_vmdk_volume_disk(hardware_devices, path\u003dvmdk_path)"},{"line_number":1161,"context_line":"        self.power_off(instance, vm_ref\u003dvm_rescue_ref)"},{"line_number":1162,"context_line":"        self._volumeops.detach_disk_from_vm(vm_rescue_ref, r_instance, device)"},{"line_number":1163,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1164,"context_line":"        self._power_on(instance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FtI4%3D","line":1161,"in_reply_to":"AAAAU3%2F%2F4u8%3D","updated":"2014-02-25 06:29:37.000000000","message":"Because openstack will detach disk during unrescue vm. And when use image trend-tinyvm1-flat.vmdk, and import it with command:\"glance image-create --name trend-thin --is-public\u003dTrue --container-format\u003dbare --disk-format\u003dvmdk --property vmware_disktype\u003d\"thin\" --property vmware_adaptertype\u003d\"ide\" \u003c trend-tinyvm1-flat.vmdk\", the vm deployed by this type of image could not be unrescued because the disk could not be detached when the vm status is power on. So we need power off the vm then detach the disk, then unrescue could work.","commit_id":"62cb7dafffe5c4b02a208bf8228ec681924a82c1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ec50d82e5a24b86b710acf248ac30e751eb55887","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"                        \"get_dynamic_property\", vm_rescue_ref,"},{"line_number":1157,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":1158,"context_line":"        device \u003d vm_util.get_vmdk_volume_disk(hardware_devices, path\u003dvmdk_path)"},{"line_number":1159,"context_line":"        self.power_off(instance, vm_ref\u003dvm_rescue_ref)"},{"line_number":1160,"context_line":"        self._volumeops.detach_disk_from_vm(vm_rescue_ref, r_instance, device)"},{"line_number":1161,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1162,"context_line":"        self._power_on(instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVn%2F%2F6ws%3D","line":1159,"updated":"2014-03-03 12:44:51.000000000","message":"surely this should be r_instance? You power off the rescued image before unplugging its disk?","commit_id":"058924dc33f0f38ee84501cd53580551a2a045f3"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"6c1a3461ce446dfe133b0528066f684c4feba6f0","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"                        \"get_dynamic_property\", vm_rescue_ref,"},{"line_number":1157,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":1158,"context_line":"        device \u003d vm_util.get_vmdk_volume_disk(hardware_devices, path\u003dvmdk_path)"},{"line_number":1159,"context_line":"        self.power_off(instance, vm_ref\u003dvm_rescue_ref)"},{"line_number":1160,"context_line":"        self._volumeops.detach_disk_from_vm(vm_rescue_ref, r_instance, device)"},{"line_number":1161,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1162,"context_line":"        self._power_on(instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVn%2F%2FlBo%3D","line":1159,"in_reply_to":"AAAAVn%2F%2F6ko%3D","updated":"2014-03-05 08:58:06.000000000","message":"For more readable, I will change instance to r_instance.","commit_id":"058924dc33f0f38ee84501cd53580551a2a045f3"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"6c1a3461ce446dfe133b0528066f684c4feba6f0","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"                        \"get_dynamic_property\", vm_rescue_ref,"},{"line_number":1157,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":1158,"context_line":"        device \u003d vm_util.get_vmdk_volume_disk(hardware_devices, path\u003dvmdk_path)"},{"line_number":1159,"context_line":"        self.power_off(instance, vm_ref\u003dvm_rescue_ref)"},{"line_number":1160,"context_line":"        self._volumeops.detach_disk_from_vm(vm_rescue_ref, r_instance, device)"},{"line_number":1161,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1162,"context_line":"        self._power_on(instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVn%2F%2FlCM%3D","line":1159,"in_reply_to":"AAAAVn%2F%2F6ws%3D","updated":"2014-03-05 08:58:06.000000000","message":"Because in function unrescue, r_instance just deepcoy instance, and no further difference between instance and r_instance, so I put instance here at first, but for more readable, I will change instance to r_instance.","commit_id":"058924dc33f0f38ee84501cd53580551a2a045f3"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"88437bfdf07199380ce26a1763778bf03ac8e5c6","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"                        \"get_dynamic_property\", vm_rescue_ref,"},{"line_number":1157,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":1158,"context_line":"        device \u003d vm_util.get_vmdk_volume_disk(hardware_devices, path\u003dvmdk_path)"},{"line_number":1159,"context_line":"        self.power_off(instance, vm_ref\u003dvm_rescue_ref)"},{"line_number":1160,"context_line":"        self._volumeops.detach_disk_from_vm(vm_rescue_ref, r_instance, device)"},{"line_number":1161,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1162,"context_line":"        self._power_on(instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVn%2F%2F6ko%3D","line":1159,"in_reply_to":"AAAAVn%2F%2F6ws%3D","updated":"2014-03-03 13:16:16.000000000","message":"correct - it should be r_instance. reason it works is that the poweroff makes use of the vm_rescue_ref.","commit_id":"058924dc33f0f38ee84501cd53580551a2a045f3"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"874ed5816c35f3302b21c3da4622064130eac6f8","unresolved":false,"context_lines":[{"line_number":1184,"context_line":"        self._power_on(instance)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance.\"\"\""},{"line_number":1188,"context_line":"        if not vm_ref:"},{"line_number":1189,"context_line":"            vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":1190,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAWH%2F%2FXxo%3D","line":1187,"updated":"2014-03-18 10:06:57.000000000","message":"Document the new parameter and why it is needed.","commit_id":"d76bb7f86a812d0a641d674774c24b5b2b6864b1"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"32e0692e8a82abd1c312c1cbbc16ec9091d45f13","unresolved":false,"context_lines":[{"line_number":1184,"context_line":"        self._power_on(instance)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance.\"\"\""},{"line_number":1188,"context_line":"        if not vm_ref:"},{"line_number":1189,"context_line":"            vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":1190,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAWH%2F%2FPU8%3D","line":1187,"in_reply_to":"AAAAWH%2F%2FXxo%3D","updated":"2014-03-19 07:19:22.000000000","message":"I\u0027m working on a new solution to see if we can remove the optional parameter.","commit_id":"d76bb7f86a812d0a641d674774c24b5b2b6864b1"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"874ed5816c35f3302b21c3da4622064130eac6f8","unresolved":false,"context_lines":[{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance.\"\"\""},{"line_number":1188,"context_line":"        if not vm_ref:"},{"line_number":1189,"context_line":"            vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":1190,"context_line":""},{"line_number":1191,"context_line":"        pwr_state \u003d self._session._call_method(vim_util,"},{"line_number":1192,"context_line":"                    \"get_dynamic_property\", vm_ref,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAWH%2F%2FXxU%3D","line":1189,"updated":"2014-03-18 10:06:57.000000000","message":"Is this branch tested?","commit_id":"d76bb7f86a812d0a641d674774c24b5b2b6864b1"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"32e0692e8a82abd1c312c1cbbc16ec9091d45f13","unresolved":false,"context_lines":[{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance.\"\"\""},{"line_number":1188,"context_line":"        if not vm_ref:"},{"line_number":1189,"context_line":"            vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":1190,"context_line":""},{"line_number":1191,"context_line":"        pwr_state \u003d self._session._call_method(vim_util,"},{"line_number":1192,"context_line":"                    \"get_dynamic_property\", vm_ref,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAWH%2F%2FPUs%3D","line":1189,"in_reply_to":"AAAAWH%2F%2FSEE%3D","updated":"2014-03-19 07:19:22.000000000","message":"I\u0027m working on a new solution to try to remove the optional parameter(vm_ref), if I failed to remove the parameter then will add UT to test this branch","commit_id":"d76bb7f86a812d0a641d674774c24b5b2b6864b1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ec864c56c3f43e5fe9324db7d30fc4580ff41218","unresolved":false,"context_lines":[{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance.\"\"\""},{"line_number":1188,"context_line":"        if not vm_ref:"},{"line_number":1189,"context_line":"            vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":1190,"context_line":""},{"line_number":1191,"context_line":"        pwr_state \u003d self._session._call_method(vim_util,"},{"line_number":1192,"context_line":"                    \"get_dynamic_property\", vm_ref,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAWH%2F%2FSEE%3D","line":1189,"in_reply_to":"AAAAWH%2F%2FXxU%3D","updated":"2014-03-18 21:58:24.000000000","message":"A quick test of this would be nice.","commit_id":"d76bb7f86a812d0a641d674774c24b5b2b6864b1"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"32e0692e8a82abd1c312c1cbbc16ec9091d45f13","unresolved":false,"context_lines":[{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance.\"\"\""},{"line_number":1188,"context_line":"        if not vm_ref:"},{"line_number":1189,"context_line":"            vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":1190,"context_line":""},{"line_number":1191,"context_line":"        pwr_state \u003d self._session._call_method(vim_util,"},{"line_number":1192,"context_line":"                    \"get_dynamic_property\", vm_ref,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAWH%2F%2FPUw%3D","line":1189,"in_reply_to":"AAAAWH%2F%2FXxU%3D","updated":"2014-03-19 07:19:22.000000000","message":"I\u0027m working on a new solution to try to remove the optional parameter(vm_ref), if I failed to remove the parameter then will add UT to test this branch","commit_id":"d76bb7f86a812d0a641d674774c24b5b2b6864b1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"73a97a5c6e59150b6a3043d0b3aee608bd6b1efd","unresolved":false,"context_lines":[{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance.\"\"\""},{"line_number":1188,"context_line":"        \"\"\"vm_ref mean the rescued virtual machine. We can not only use"},{"line_number":1189,"context_line":"           parameter \u0027vm_ref\u0027 to distinguish the original vm and the"},{"line_number":1190,"context_line":"           rescued vm.\"\"\""},{"line_number":1191,"context_line":"        if not vm_ref:"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F%2FNhI%3D","line":1188,"updated":"2014-03-19 12:33:55.000000000","message":"This should be as follows:\n\n\"\"\"Power off the specified instance.\n\n:param instance: nova.objects.instance.Instance\n\n:param vm_ref: the vm_ref of the instance. if this is None then the method will determine its value.\n\"\"\"","commit_id":"52ad186f343c8c699f99a40a8cfdaf9cae3c3727"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"4bbb2eab8b77eb3f51755313362e859cfa71c4f6","unresolved":false,"context_lines":[{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance.\"\"\""},{"line_number":1188,"context_line":"        \"\"\"vm_ref mean the rescued virtual machine. We can not only use"},{"line_number":1189,"context_line":"           parameter \u0027vm_ref\u0027 to distinguish the original vm and the"},{"line_number":1190,"context_line":"           rescued vm.\"\"\""},{"line_number":1191,"context_line":"        if not vm_ref:"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F%2FIJI%3D","line":1188,"in_reply_to":"AAAAWH%2F%2FNhI%3D","updated":"2014-03-20 03:20:00.000000000","message":"Done","commit_id":"52ad186f343c8c699f99a40a8cfdaf9cae3c3727"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"2efbcec700ba95278964f70f220f33b53ec8c06b","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1184,"context_line":"        self._power_on(instance)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance."},{"line_number":1188,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":1189,"context_line":"        :param vm_ref: the vm_ref of the instance.If this is None"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAWH%2F%2BvZI%3D","line":1186,"updated":"2014-03-24 17:39:53.000000000","message":"This is going to lead to confusion, and possible errors later.  If an instance and vm_ref are passed in that don\u0027t match then the logs won\u0027t properly indicate what\u0027s happening.  One way to address this would be to have power_off here continue to take an instance and handle logging, and then have the power off handled by a _power_off method that just takes a vm_ref.  Then unrescue can use that.","commit_id":"3bc9b5bf657fa243a0f19d40ad8daa45a5f8a2c4"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"e2dad4fc1dcb6b391817aad831a125507dcef553","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1184,"context_line":"        self._power_on(instance)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance."},{"line_number":1188,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":1189,"context_line":"        :param vm_ref: the vm_ref of the instance.If this is None"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAWH%2F%2BXpg%3D","line":1186,"in_reply_to":"AAAAWH%2F%2BboE%3D","updated":"2014-03-27 10:05:55.000000000","message":"Done","commit_id":"3bc9b5bf657fa243a0f19d40ad8daa45a5f8a2c4"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"e2dad4fc1dcb6b391817aad831a125507dcef553","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1184,"context_line":"        self._power_on(instance)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance."},{"line_number":1188,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":1189,"context_line":"        :param vm_ref: the vm_ref of the instance.If this is None"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAWH%2F%2BXpk%3D","line":1186,"in_reply_to":"AAAAWH%2F%2BegQ%3D","updated":"2014-03-27 10:05:55.000000000","message":"Done","commit_id":"3bc9b5bf657fa243a0f19d40ad8daa45a5f8a2c4"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"755b2694650e0be3f069a38dc39f88f17e866277","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1184,"context_line":"        self._power_on(instance)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance."},{"line_number":1188,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":1189,"context_line":"        :param vm_ref: the vm_ref of the instance.If this is None"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAWH%2F%2BboE%3D","line":1186,"in_reply_to":"AAAAWH%2F%2BegQ%3D","updated":"2014-03-26 20:12:38.000000000","message":"as part of the spawn refactor i am doing just that, but it is for juno.","commit_id":"3bc9b5bf657fa243a0f19d40ad8daa45a5f8a2c4"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"c4a81e95b2acf131eacd693ab056678c49a589d6","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1184,"context_line":"        self._power_on(instance)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance."},{"line_number":1188,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":1189,"context_line":"        :param vm_ref: the vm_ref of the instance.If this is None"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAWH%2F%2BegQ%3D","line":1186,"in_reply_to":"AAAAWH%2F%2BqPk%3D","updated":"2014-03-26 14:54:20.000000000","message":"It seems acceptable right now because instance and r_instance are essentially the same, so pretending vm_rescue_ref is associated with instance wouldn\u0027t matter.  But there\u0027s no guarantee that this will remain true in the future so I would prefer to see just some instance passed to power_off() which will look up the vm_ref and then call _power_off which takes a vm_ref.  Then unrescue above can just call _power_off with the vm_ref.\n\nThis is just my preference though.  I don\u0027t like seeing multiple parameters to a method that can change the behaviour in unexpected ways based on what\u0027s passed in.","commit_id":"3bc9b5bf657fa243a0f19d40ad8daa45a5f8a2c4"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"1a34fe27a597c2aa116d86300c9148994db4b411","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1184,"context_line":"        self._power_on(instance)"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"    def power_off(self, instance, vm_ref\u003dNone):"},{"line_number":1187,"context_line":"        \"\"\"Power off the specified instance."},{"line_number":1188,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":1189,"context_line":"        :param vm_ref: the vm_ref of the instance.If this is None"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAWH%2F%2BqPk%3D","line":1186,"in_reply_to":"AAAAWH%2F%2BvZI%3D","updated":"2014-03-25 08:30:46.000000000","message":"From OpenStack side, the instance always has same instance uuid and instance name(like:instance-00000004) although in vmware side there is two VM when resuce/runrescu. So in the log it always will be the uuid and instance name in openstack side, I think it is acceptable. What do you think?","commit_id":"3bc9b5bf657fa243a0f19d40ad8daa45a5f8a2c4"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"73f89fc7a514c847d499bb4d643965bb683e50b0","unresolved":false,"context_lines":[{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":"        :param vm_ref: the vm_ref of the instance in power_off()"},{"line_number":1169,"context_line":"        \"\"\""},{"line_number":1170,"context_line":"        poweroff_task \u003d self._session._call_method("},{"line_number":1171,"context_line":"                                    self._session._get_vim(),"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAWH%2F%2BWHk%3D","line":1168,"updated":"2014-03-27 13:45:52.000000000","message":"This isn\u0027t quite true, like when it\u0027s used in unrescue and power_off doesn\u0027t get used.  But I\u0027m fine if this is left unless you need to redo this patch for another reason.","commit_id":"2b6359000cbb9118c164cefeb14702660761dae7"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"d32d837e66768a76c5a08a887b0984a870ed2ae0","unresolved":false,"context_lines":[{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":"        :param vm_ref: the vm_ref of the instance in power_off()"},{"line_number":1169,"context_line":"        \"\"\""},{"line_number":1170,"context_line":"        poweroff_task \u003d self._session._call_method("},{"line_number":1171,"context_line":"                                    self._session._get_vim(),"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAWH%2F%2BOgA%3D","line":1168,"in_reply_to":"AAAAWH%2F%2BWHk%3D","updated":"2014-03-28 09:15:17.000000000","message":"It\u0027s my mistake, I have corrected it and made a new patch. Thanks!","commit_id":"2b6359000cbb9118c164cefeb14702660761dae7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"dc39405a6e5d2be7cc2c18e520568b17aa290644","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1164,"context_line":"        self._power_on(instance)"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":"        :param vm_ref: a reference object to the VM."},{"line_number":1169,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAWH%2F%2BCRw%3D","line":1166,"updated":"2014-03-31 12:09:11.000000000","message":"please call this _power_off_instance","commit_id":"834fdec29115b68fdfe6cff2d608e7c0b4351af4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"202b48a52e9928c7e69482954f64ae732344cc8c","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1164,"context_line":"        self._power_on(instance)"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":"        :param vm_ref: a reference object to the VM."},{"line_number":1169,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAWH%2F97Qc%3D","line":1166,"in_reply_to":"AAAAWH%2F%2BBg4%3D","updated":"2014-04-01 06:38:32.000000000","message":"the method on line 1175 cannot be called power_oof)instance. This is due to the fact that it is defined in the driver API - https://github.com/openstack/nova/blob/master/nova/virt/driver.py#L581","commit_id":"834fdec29115b68fdfe6cff2d608e7c0b4351af4"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"1409b312ef773dbfa409fc60490b717d9bc3d35e","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1164,"context_line":"        self._power_on(instance)"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":"        :param vm_ref: a reference object to the VM."},{"line_number":1169,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAWH%2F%2BBg4%3D","line":1166,"in_reply_to":"AAAAWH%2F%2BCRw%3D","updated":"2014-03-31 13:40:53.000000000","message":"_power_off_vm_ref would be better.  The method on line 1175 would be better as power_off_instance.","commit_id":"834fdec29115b68fdfe6cff2d608e7c0b4351af4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"dc39405a6e5d2be7cc2c18e520568b17aa290644","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"        self._power_on(instance)"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":"        :param vm_ref: a reference object to the VM."},{"line_number":1169,"context_line":"        \"\"\""},{"line_number":1170,"context_line":"        poweroff_task \u003d self._session._call_method("}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAWH%2F%2BCRs%3D","line":1167,"updated":"2014-03-31 12:09:11.000000000","message":"please add a new line\n\nsome people may say that a private method does not require a docstring. that is up to you.","commit_id":"834fdec29115b68fdfe6cff2d608e7c0b4351af4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"dc39405a6e5d2be7cc2c18e520568b17aa290644","unresolved":false,"context_lines":[{"line_number":1173,"context_line":"        self._session._wait_for_task(poweroff_task)"},{"line_number":1174,"context_line":""},{"line_number":1175,"context_line":"    def power_off(self, instance):"},{"line_number":1176,"context_line":"        \"\"\"Power off the specified instance."},{"line_number":1177,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":1178,"context_line":"        \"\"\""},{"line_number":1179,"context_line":"        vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAWH%2F%2BCRo%3D","line":1176,"updated":"2014-03-31 12:09:11.000000000","message":"please add a new line","commit_id":"834fdec29115b68fdfe6cff2d608e7c0b4351af4"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"699d875ee1ca73a31de7a09b8dba2007756b84e1","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1164,"context_line":"        self._power_on(instance)"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off_vm_ref(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":""},{"line_number":1169,"context_line":"        :param vm_ref: a reference object to the VM."}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAWH%2F9sTg%3D","line":1166,"updated":"2014-04-02 18:52:10.000000000","message":"I don\u0027t think this needs to be private. There\u0027s no possible damage from using this properly outside vmops... in fact, we may want to encourage it.","commit_id":"619fec6942a67b212dc692d176a768226eb83c58"},{"author":{"_account_id":8962,"name":"dingxy","email":"xyding@cn.ibm.com","username":"dingxy"},"change_message_id":"dd8dc063a3b32d3e3a2221ff48d32a356809a392","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1164,"context_line":"        self._power_on(instance)"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off_vm_ref(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":""},{"line_number":1169,"context_line":"        :param vm_ref: a reference object to the VM."}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAWH%2F9nA4%3D","line":1166,"in_reply_to":"AAAAWH%2F9sTg%3D","updated":"2014-04-03 11:38:17.000000000","message":"I agree with garyk, usually power_off method will be used.","commit_id":"619fec6942a67b212dc692d176a768226eb83c58"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"fa17900eaa8a8c0a1deda7eb7cd4bd28d19151de","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"        self.destroy(r_instance, None, instance_name\u003dinstance_name)"},{"line_number":1164,"context_line":"        self._power_on(instance)"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"    def _power_off_vm_ref(self, vm_ref):"},{"line_number":1167,"context_line":"        \"\"\"Power off the specifed vm."},{"line_number":1168,"context_line":""},{"line_number":1169,"context_line":"        :param vm_ref: a reference object to the VM."}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAWH%2F9o0M%3D","line":1166,"in_reply_to":"AAAAWH%2F9sTg%3D","updated":"2014-04-03 06:56:18.000000000","message":"i am not sure about that. in general the power_off method should be used.","commit_id":"619fec6942a67b212dc692d176a768226eb83c58"}]}
