)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"461203a2e7a4639acede2feb1a2724a54dbfd016","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Thomas Kaergel \u003ckaergel@b1-systems.de\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-03-04 10:25:45 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Closes-Bug: #1377781"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for gracefull shutdown for vmware instances"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7af24918_1f50430a","line":7,"updated":"2016-03-04 10:21:36.000000000","message":"I think Closes-Bug should be in the end of commit message,\nplease look https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"86785afe113da189f054ac1ec8985d771e02d57b"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"461203a2e7a4639acede2feb1a2724a54dbfd016","unresolved":false,"context_lines":[{"line_number":1240,"context_line":"        if retry_interval \u003c\u003d 0:"},{"line_number":1241,"context_line":"            retry_interval \u003d SHUTDOWN_TIME_INCREMENT"},{"line_number":1242,"context_line":""},{"line_number":1243,"context_line":"        if timeout and self._soft_shutdown(instance,"},{"line_number":1244,"context_line":"                                           timeout,"},{"line_number":1245,"context_line":"                                           retry_interval):"},{"line_number":1246,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_ff659744","line":1243,"updated":"2016-03-04 10:21:36.000000000","message":"Maybe you should add timeout to arguments? I cant find this name on module level.","commit_id":"86785afe113da189f054ac1ec8985d771e02d57b"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"461203a2e7a4639acede2feb1a2724a54dbfd016","unresolved":false,"context_lines":[{"line_number":1248,"context_line":"        LOG.info(\"Performing Hard shutdown on instance\", instance\u003dinstance)"},{"line_number":1249,"context_line":"        vm_util.power_off_instance(self._session, instance)"},{"line_number":1250,"context_line":""},{"line_number":1251,"context_line":"    def _soft_shutdown(self, instance,"},{"line_number":1252,"context_line":"                       timeout\u003d60,"},{"line_number":1253,"context_line":"                       retry_interval\u003dSHUTDOWN_TIME_INCREMENT):"},{"line_number":1254,"context_line":"        \"\"\"Perform a soft shutdown on the VM."}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_ffa0f7f5","line":1251,"updated":"2016-03-04 10:21:36.000000000","message":"This function should be covered with unittests.","commit_id":"86785afe113da189f054ac1ec8985d771e02d57b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d4626425297f4f38973bbae16ce4fe7426d4fc7d","unresolved":false,"context_lines":[{"line_number":1253,"context_line":"        \"\"\""},{"line_number":1254,"context_line":"        LOG.info(_LI(\"Performing Soft shutdown on instance\"),"},{"line_number":1255,"context_line":"                 instance\u003dinstance)"},{"line_number":1256,"context_line":"        vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":1257,"context_line":"        lst_properties \u003d [\"summary.guest.toolsStatus\", \"runtime.powerState\","},{"line_number":1258,"context_line":"                          \"summary.guest.toolsRunningStatus\"]"},{"line_number":1259,"context_line":"        props \u003d self._session._call_method(vim_util, \"get_object_properties\","}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_790af2d3","line":1256,"updated":"2016-03-13 12:25:54.000000000","message":"you should split the vmware tools retrieval into a utility method","commit_id":"09e9526907cf7df90d91c1ac03ddd28e5efc369e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"51453d55778f81fc6458ac7b2bbd49ed99ac7f24","unresolved":false,"context_lines":[{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":1239,"context_line":"        \"\"\""},{"line_number":1240,"context_line":"        if timeout and self._clean_shutdown(instance,"},{"line_number":1241,"context_line":"                                            timeout,"},{"line_number":1242,"context_line":"                                            retry_interval):"},{"line_number":1243,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_2238ebee","line":1240,"updated":"2016-04-19 14:30:38.000000000","message":"why is this dependent on the timeout?","commit_id":"2905e3c3d5339589bfe7089c0313439c0bec8b53"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"51453d55778f81fc6458ac7b2bbd49ed99ac7f24","unresolved":false,"context_lines":[{"line_number":1244,"context_line":""},{"line_number":1245,"context_line":"        LOG.info(_LI(\"Performing Hard shutdown on instance\"),"},{"line_number":1246,"context_line":"                 instance\u003dinstance)"},{"line_number":1247,"context_line":"        vm_util.power_off_instance(self._session, instance)"},{"line_number":1248,"context_line":""},{"line_number":1249,"context_line":"    def _clean_shutdown(self, instance, timeout, retry_interval):"},{"line_number":1250,"context_line":"        \"\"\"Perform a soft shutdown on the VM."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_25f59556","line":1247,"updated":"2016-04-19 14:30:38.000000000","message":"I think that this is where you should implement this code - there are a million and one places where the power off is called and we would ideally like this to be a soft shutdown.","commit_id":"2905e3c3d5339589bfe7089c0313439c0bec8b53"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"51453d55778f81fc6458ac7b2bbd49ed99ac7f24","unresolved":false,"context_lines":[{"line_number":1255,"context_line":"                 instance\u003dinstance)"},{"line_number":1256,"context_line":"        vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":1257,"context_line":""},{"line_number":1258,"context_line":"        def _get_instance_props(vm_ref):"},{"line_number":1259,"context_line":"            lst_properties \u003d [\"summary.guest.toolsStatus\","},{"line_number":1260,"context_line":"                              \"runtime.powerState\","},{"line_number":1261,"context_line":"                              \"summary.guest.toolsRunningStatus\"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_e201d307","line":1258,"updated":"2016-04-19 14:30:38.000000000","message":"please do not have this as an inner method\ni think that we should have a vmops method that returns if tools is installed","commit_id":"2905e3c3d5339589bfe7089c0313439c0bec8b53"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"51453d55778f81fc6458ac7b2bbd49ed99ac7f24","unresolved":false,"context_lines":[{"line_number":1268,"context_line":"        if props[\"runtime.powerState\"] not in [\"poweredOn\"]:"},{"line_number":1269,"context_line":"            return False"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"        if (props[\"summary.guest.toolsStatus\"] \u003d\u003d \"toolsOk\" and"},{"line_number":1272,"context_line":"            props[\"summary.guest.toolsRunningStatus\"] \u003d\u003d \"guestToolsRunning\"):"},{"line_number":1273,"context_line":""},{"line_number":1274,"context_line":"            LOG.info(_LI(\"Soft shutdown instance, timeout: %d\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_a57b6527","line":1271,"updated":"2016-04-19 14:30:38.000000000","message":"the toolsStatus may not be returned - it is not mandatory so please use get()","commit_id":"2905e3c3d5339589bfe7089c0313439c0bec8b53"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"51453d55778f81fc6458ac7b2bbd49ed99ac7f24","unresolved":false,"context_lines":[{"line_number":1269,"context_line":"            return False"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"        if (props[\"summary.guest.toolsStatus\"] \u003d\u003d \"toolsOk\" and"},{"line_number":1272,"context_line":"            props[\"summary.guest.toolsRunningStatus\"] \u003d\u003d \"guestToolsRunning\"):"},{"line_number":1273,"context_line":""},{"line_number":1274,"context_line":"            LOG.info(_LI(\"Soft shutdown instance, timeout: %d\"),"},{"line_number":1275,"context_line":"                     timeout, instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_2596353f","line":1272,"updated":"2016-04-19 14:30:38.000000000","message":"ditto","commit_id":"2905e3c3d5339589bfe7089c0313439c0bec8b53"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"51453d55778f81fc6458ac7b2bbd49ed99ac7f24","unresolved":false,"context_lines":[{"line_number":1286,"context_line":"                                 instance\u003dinstance)"},{"line_number":1287,"context_line":"                        return True"},{"line_number":1288,"context_line":"                except Exception as e:"},{"line_number":1289,"context_line":"                    LOG.info(_LI(\"soft shutdown failed: %s\"),"},{"line_number":1290,"context_line":"                             e, instance\u003dinstance)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":"                time.sleep(wait_time)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_a5c9a55b","line":1289,"updated":"2016-04-19 14:30:38.000000000","message":"why are we logging the exception?","commit_id":"2905e3c3d5339589bfe7089c0313439c0bec8b53"}]}
