)]}'
{"virtualbmc/tests/unit/test_vbmc.py":[{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"0b75b416b925a2e2bb51764bbb483803a184f58a","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        mock_libvirt_domain.return_value.destroy.assert_not_called()"},{"line_number":138,"context_line":"        self._assert_libvirt_calls(mock_libvirt_domain, mock_libvirt_open)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def test_power_soft_is_on(self, mock_libvirt_domain, mock_libvirt_open):"},{"line_number":141,"context_line":"        domain \u003d mock_libvirt_domain.return_value"},{"line_number":142,"context_line":"        domain.isActive.return_value \u003d True"},{"line_number":143,"context_line":"        self.vbmc.power_soft()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_79468f24","line":140,"range":{"start_line":140,"start_character":13,"end_line":140,"end_character":23},"updated":"2016-07-28 06:54:28.000000000","message":"s/power_soft/soft_power_off/","commit_id":"dfb5a9b6d246b5435f0c2ac5e89b5c68436aa602"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"0b75b416b925a2e2bb51764bbb483803a184f58a","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    def test_power_soft_is_on(self, mock_libvirt_domain, mock_libvirt_open):"},{"line_number":141,"context_line":"        domain \u003d mock_libvirt_domain.return_value"},{"line_number":142,"context_line":"        domain.isActive.return_value \u003d True"},{"line_number":143,"context_line":"        self.vbmc.power_soft()"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        domain.shutdown.assert_called_once_with()"},{"line_number":146,"context_line":"        self._assert_libvirt_calls(mock_libvirt_domain, mock_libvirt_open)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_f9527fdc","line":143,"range":{"start_line":143,"start_character":18,"end_line":143,"end_character":28},"updated":"2016-07-28 06:54:28.000000000","message":"ditto","commit_id":"dfb5a9b6d246b5435f0c2ac5e89b5c68436aa602"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"0b75b416b925a2e2bb51764bbb483803a184f58a","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        domain.shutdown.assert_called_once_with()"},{"line_number":146,"context_line":"        self._assert_libvirt_calls(mock_libvirt_domain, mock_libvirt_open)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_power_soft_is_off(self, mock_libvirt_domain, mock_libvirt_open):"},{"line_number":149,"context_line":"        domain \u003d mock_libvirt_domain.return_value"},{"line_number":150,"context_line":"        domain.isActive.return_value \u003d False"},{"line_number":151,"context_line":"        self.vbmc.power_soft()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_b96f6791","line":148,"range":{"start_line":148,"start_character":13,"end_line":148,"end_character":23},"updated":"2016-07-28 06:54:28.000000000","message":"ditto","commit_id":"dfb5a9b6d246b5435f0c2ac5e89b5c68436aa602"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"0b75b416b925a2e2bb51764bbb483803a184f58a","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    def test_power_soft_is_off(self, mock_libvirt_domain, mock_libvirt_open):"},{"line_number":149,"context_line":"        domain \u003d mock_libvirt_domain.return_value"},{"line_number":150,"context_line":"        domain.isActive.return_value \u003d False"},{"line_number":151,"context_line":"        self.vbmc.power_soft()"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # power is already off, assert shutdown() wasn\u0027t invoked"},{"line_number":154,"context_line":"        domain.shutdown.assert_not_called()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_59058bc0","line":151,"range":{"start_line":151,"start_character":18,"end_line":151,"end_character":28},"updated":"2016-07-28 06:54:28.000000000","message":"ditto","commit_id":"dfb5a9b6d246b5435f0c2ac5e89b5c68436aa602"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"0b75b416b925a2e2bb51764bbb483803a184f58a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        domain.shutdown.assert_not_called()"},{"line_number":155,"context_line":"        self._assert_libvirt_calls(mock_libvirt_domain, mock_libvirt_open)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_power_soft_error(self, mock_libvirt_domain, mock_libvirt_open):"},{"line_number":158,"context_line":"        mock_libvirt_domain.side_effect \u003d libvirt.libvirtError(\u0027boom\u0027)"},{"line_number":159,"context_line":"        self.vbmc.power_soft()"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_b9f647d5","line":157,"range":{"start_line":157,"start_character":13,"end_line":157,"end_character":23},"updated":"2016-07-28 06:54:28.000000000","message":"ditto","commit_id":"dfb5a9b6d246b5435f0c2ac5e89b5c68436aa602"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"0b75b416b925a2e2bb51764bbb483803a184f58a","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_power_soft_error(self, mock_libvirt_domain, mock_libvirt_open):"},{"line_number":158,"context_line":"        mock_libvirt_domain.side_effect \u003d libvirt.libvirtError(\u0027boom\u0027)"},{"line_number":159,"context_line":"        self.vbmc.power_soft()"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        mock_libvirt_domain.return_value.shutdown.assert_not_called()"},{"line_number":162,"context_line":"        self._assert_libvirt_calls(mock_libvirt_domain, mock_libvirt_open)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_792b2f31","line":159,"range":{"start_line":159,"start_character":18,"end_line":159,"end_character":28},"updated":"2016-07-28 06:54:28.000000000","message":"ditto","commit_id":"dfb5a9b6d246b5435f0c2ac5e89b5c68436aa602"}],"virtualbmc/vbmc.py":[{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"0b75b416b925a2e2bb51764bbb483803a184f58a","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                            \u0027error\u0027: e})"},{"line_number":130,"context_line":"            return"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def power_soft(self):"},{"line_number":133,"context_line":"        LOG.debug(\u0027Soft power off called for domain %s\u0027, self.domain_name)"},{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            with utils.libvirt_open(**self._conn_args) as conn:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_79816f4a","line":132,"range":{"start_line":132,"start_character":8,"end_line":132,"end_character":18},"updated":"2016-07-28 06:54:28.000000000","message":"Wouldn\u0027t it be more natural to \u0027soft_power_off\u0027?","commit_id":"dfb5a9b6d246b5435f0c2ac5e89b5c68436aa602"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"3afe3e29519c6fb35b3d9d11d56b4b2acc3d6277","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                            \u0027error\u0027: e})"},{"line_number":130,"context_line":"            return"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def power_soft(self):"},{"line_number":133,"context_line":"        LOG.debug(\u0027Soft power off called for domain %s\u0027, self.domain_name)"},{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            with utils.libvirt_open(**self._conn_args) as conn:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_ce1c10c4","line":132,"range":{"start_line":132,"start_character":8,"end_line":132,"end_character":18},"in_reply_to":"bacf61ea_79816f4a","updated":"2016-08-03 03:46:02.000000000","message":"Hi, Tamura,\nThanks for your kind review.\nI found we shouldn\u0027t introduce a new interface, but just overwrite the parent class\u0027s power_shutdown() interface which indeed means soft power off.","commit_id":"dfb5a9b6d246b5435f0c2ac5e89b5c68436aa602"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"7eb40e89b1058c302809f64c8575ec4aa70bb6f1","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                            \u0027error\u0027: e})"},{"line_number":130,"context_line":"            return"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def power_shutdown(self):"},{"line_number":133,"context_line":"        LOG.debug(\u0027Soft power off called for domain %s\u0027, self.domain_name)"},{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            with utils.libvirt_open(**self._conn_args) as conn:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_eb08d72f","line":132,"range":{"start_line":132,"start_character":4,"end_line":132,"end_character":22},"updated":"2016-08-03 09:44:14.000000000","message":"Xie-san,\n\nThanks for the update.\n\n\u0027shout_down\u0027 would be a little bit vague.\nWhy don\u0027t we change s/power_shutdown/acpi_soft/ as defined in ipmi_chassis.h ?\n\n\n ipmitool-source$ vi include/ipmitool/ipmi_chassis.h \n 38 #define IPMI_CHASSIS_CTL_POWER_DOWN 0x0\n 39 #define IPMI_CHASSIS_CTL_POWER_UP 0x1\n 40 #define IPMI_CHASSIS_CTL_POWER_CYCLE 0x2\n 41 #define IPMI_CHASSIS_CTL_HARD_RESET 0x3\n 42 #define IPMI_CHASSIS_CTL_PULSE_DIAG 0x4\n 43 #define IPMI_CHASSIS_CTL_ACPI_SOFT 0x5\n\nBest regards,\nNaohiro","commit_id":"84263e78bffb2ed9e1ec7acade96103b5d35ed7c"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"647a69a517079013beaf9735ed7f7d9d01f1cb50","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                            \u0027error\u0027: e})"},{"line_number":130,"context_line":"            return"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def power_shutdown(self):"},{"line_number":133,"context_line":"        LOG.debug(\u0027Soft power off called for domain %s\u0027, self.domain_name)"},{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            with utils.libvirt_open(**self._conn_args) as conn:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_1662240a","line":132,"range":{"start_line":132,"start_character":4,"end_line":132,"end_character":22},"in_reply_to":"3ac371cc_8523b5a6","updated":"2016-08-18 00:08:05.000000000","message":"Xie-san,\n\nYes, I agree that it\u0027s better to consult with pyghmi expert.\n\nThanks.\nNaohiro","commit_id":"84263e78bffb2ed9e1ec7acade96103b5d35ed7c"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"647a69a517079013beaf9735ed7f7d9d01f1cb50","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                            \u0027error\u0027: e})"},{"line_number":130,"context_line":"            return"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def power_shutdown(self):"},{"line_number":133,"context_line":"        LOG.debug(\u0027Soft power off called for domain %s\u0027, self.domain_name)"},{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            with utils.libvirt_open(**self._conn_args) as conn:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_167b44c2","line":132,"range":{"start_line":132,"start_character":4,"end_line":132,"end_character":22},"in_reply_to":"3ac371cc_8523b5a6","updated":"2016-08-18 00:08:05.000000000","message":"Xie-san,\n\nYes, I agree that it\u0027s better to consult with pyghmi expert.\n\nThanks.\nNaohiro","commit_id":"84263e78bffb2ed9e1ec7acade96103b5d35ed7c"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"647a69a517079013beaf9735ed7f7d9d01f1cb50","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                            \u0027error\u0027: e})"},{"line_number":130,"context_line":"            return"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def power_shutdown(self):"},{"line_number":133,"context_line":"        LOG.debug(\u0027Soft power off called for domain %s\u0027, self.domain_name)"},{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            with utils.libvirt_open(**self._conn_args) as conn:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_9129fe8c","line":132,"range":{"start_line":132,"start_character":4,"end_line":132,"end_character":22},"in_reply_to":"3ac371cc_8523b5a6","updated":"2016-08-18 00:08:05.000000000","message":"Yeah, I think that we had better to consult with pyghmi expert. thanks.","commit_id":"84263e78bffb2ed9e1ec7acade96103b5d35ed7c"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"d4007f3f7cc3c8b374f3dc90fce65b17946732f9","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                            \u0027error\u0027: e})"},{"line_number":130,"context_line":"            return"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def power_shutdown(self):"},{"line_number":133,"context_line":"        LOG.debug(\u0027Soft power off called for domain %s\u0027, self.domain_name)"},{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            with utils.libvirt_open(**self._conn_args) as conn:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_8523b5a6","line":132,"range":{"start_line":132,"start_character":4,"end_line":132,"end_character":22},"in_reply_to":"bacf61ea_eb08d72f","updated":"2016-08-17 07:21:59.000000000","message":"As it is an existed interface inherited from pyghmi project, we\u0027d better have a discussion with the pyghmi\u0027s folks firstly if we want to rename it.\nWhat do you think?\n\nI have submitted a patch about it, I711053704d27a74a29bb6f50ca85666dd2049d65.","commit_id":"84263e78bffb2ed9e1ec7acade96103b5d35ed7c"}]}
