)]}'
{"ironicclient/osc/v1/baremetal_node.py":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ec42f9c11194429d1a1901e76903c0b67d343792","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        parser.add_argument("},{"line_number":505,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":506,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":507,"context_line":"            default\u003dNone,"},{"line_number":508,"context_line":"            help\u003d\"Timeout positive integer value(\u003e 0) for any \u0027power-state\u0027.\""},{"line_number":509,"context_line":"        )"},{"line_number":510,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_c8f7f38a","line":507,"range":{"start_line":507,"start_character":20,"end_line":507,"end_character":24},"updated":"2016-08-19 06:56:13.000000000","message":"Why not make the default value 0 here, and we can use a parser action to ensure the value is legal.\n\nhttps://github.com/openstack/osc-lib/blob/master/osc_lib/cli/parseractions.py#L173","commit_id":"81e1fc5f6b359c83b927f35d2fc1a22a9b592135"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"12109ebc32c434fac3137f23bb86b0499ea0f50c","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        parser.add_argument("},{"line_number":505,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":506,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":507,"context_line":"            default\u003dNone,"},{"line_number":508,"context_line":"            help\u003d\"Timeout positive integer value(\u003e 0) for any \u0027power-state\u0027.\""},{"line_number":509,"context_line":"        )"},{"line_number":510,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_5d19d178","line":507,"range":{"start_line":507,"start_character":20,"end_line":507,"end_character":24},"in_reply_to":"3ac371cc_c8f7f38a","updated":"2016-08-22 02:48:06.000000000","message":"The \u0027timeout\u0027 has to be positive integer (\u003e0), but not (\u003e\u003d0) as the help message at L.508.\nThat\u0027s why we chose None as the default during the spec review.","commit_id":"81e1fc5f6b359c83b927f35d2fc1a22a9b592135"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ec42f9c11194429d1a1901e76903c0b67d343792","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        if parsed_args.power_timeout is not None:"},{"line_number":518,"context_line":"            timeout \u003d int(parsed_args.power_timeout)"},{"line_number":519,"context_line":"        else:"},{"line_number":520,"context_line":"            timeout \u003d parsed_args.power_timeout"},{"line_number":521,"context_line":"        baremetal_client.node.set_power_state("},{"line_number":522,"context_line":"            parsed_args.node, parsed_args.power_state, parsed_args.soft,"},{"line_number":523,"context_line":"            timeout\u003dtimeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_88817bfe","line":520,"range":{"start_line":517,"start_character":0,"end_line":520,"end_character":47},"updated":"2016-08-19 06:56:13.000000000","message":"Just thinking, we can save one line of code if we write it like this:\n\n        timeout \u003d None\n        if parsed_args.power_timeout is not None:\n            timeout \u003d int(parsed_args.power_timeout)\n\nAnd if we make the default to 0, we don\u0027t need to use int() to convert it.","commit_id":"81e1fc5f6b359c83b927f35d2fc1a22a9b592135"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"12109ebc32c434fac3137f23bb86b0499ea0f50c","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        if parsed_args.power_timeout is not None:"},{"line_number":518,"context_line":"            timeout \u003d int(parsed_args.power_timeout)"},{"line_number":519,"context_line":"        else:"},{"line_number":520,"context_line":"            timeout \u003d parsed_args.power_timeout"},{"line_number":521,"context_line":"        baremetal_client.node.set_power_state("},{"line_number":522,"context_line":"            parsed_args.node, parsed_args.power_state, parsed_args.soft,"},{"line_number":523,"context_line":"            timeout\u003dtimeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_bd4d6574","line":520,"range":{"start_line":517,"start_character":0,"end_line":520,"end_character":47},"in_reply_to":"3ac371cc_88817bfe","updated":"2016-08-22 02:48:06.000000000","message":"I\u0027ll fix that.","commit_id":"81e1fc5f6b359c83b927f35d2fc1a22a9b592135"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ec42f9c11194429d1a1901e76903c0b67d343792","unresolved":false,"context_lines":[{"line_number":554,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":555,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":556,"context_line":"            default\u003dNone,"},{"line_number":557,"context_line":"            help\u003d\"Timeout positive integer value(\u003e 0) for any \u0027power-state\u0027.\""},{"line_number":558,"context_line":"        )"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_c81ff307","line":557,"range":{"start_line":557,"start_character":57,"end_line":557,"end_character":75},"updated":"2016-08-19 06:56:13.000000000","message":"For reboot only here, I think.\n\nAnd BTW, I\u0027d suggest to wrap the help msg with _() to support i18n. I have posted a patch for the rest of them. :)\nhttps://review.openstack.org/357639","commit_id":"81e1fc5f6b359c83b927f35d2fc1a22a9b592135"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"12109ebc32c434fac3137f23bb86b0499ea0f50c","unresolved":false,"context_lines":[{"line_number":554,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":555,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":556,"context_line":"            default\u003dNone,"},{"line_number":557,"context_line":"            help\u003d\"Timeout positive integer value(\u003e 0) for any \u0027power-state\u0027.\""},{"line_number":558,"context_line":"        )"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_3d42153f","line":557,"range":{"start_line":557,"start_character":57,"end_line":557,"end_character":75},"in_reply_to":"3ac371cc_c81ff307","updated":"2016-08-22 02:48:06.000000000","message":"I\u0027ll fix that.","commit_id":"81e1fc5f6b359c83b927f35d2fc1a22a9b592135"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ec42f9c11194429d1a1901e76903c0b67d343792","unresolved":false,"context_lines":[{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"        if parsed_args.power_timeout is not None:"},{"line_number":568,"context_line":"            timeout \u003d int(parsed_args.power_timeout)"},{"line_number":569,"context_line":"        else:"},{"line_number":570,"context_line":"            timeout \u003d parsed_args.power_timeout"},{"line_number":571,"context_line":"        baremetal_client.node.set_power_state("},{"line_number":572,"context_line":"            parsed_args.node, \u0027reboot\u0027, parsed_args.soft, timeout\u003dtimeout)"},{"line_number":573,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_68399f41","line":570,"range":{"start_line":567,"start_character":0,"end_line":570,"end_character":47},"updated":"2016-08-19 06:56:13.000000000","message":"ditto","commit_id":"81e1fc5f6b359c83b927f35d2fc1a22a9b592135"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"12109ebc32c434fac3137f23bb86b0499ea0f50c","unresolved":false,"context_lines":[{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"        if parsed_args.power_timeout is not None:"},{"line_number":568,"context_line":"            timeout \u003d int(parsed_args.power_timeout)"},{"line_number":569,"context_line":"        else:"},{"line_number":570,"context_line":"            timeout \u003d parsed_args.power_timeout"},{"line_number":571,"context_line":"        baremetal_client.node.set_power_state("},{"line_number":572,"context_line":"            parsed_args.node, \u0027reboot\u0027, parsed_args.soft, timeout\u003dtimeout)"},{"line_number":573,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_1d3d99bb","line":570,"range":{"start_line":567,"start_character":0,"end_line":570,"end_character":47},"in_reply_to":"3ac371cc_68399f41","updated":"2016-08-22 02:48:06.000000000","message":"I\u0027ll fix that.","commit_id":"81e1fc5f6b359c83b927f35d2fc1a22a9b592135"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"5c378fa9c904ad685eecae40580d49e362de7e54","unresolved":false,"context_lines":[{"line_number":502,"context_line":"            help\u003d_(\"Power graceful off.\")"},{"line_number":503,"context_line":"        )"},{"line_number":504,"context_line":"        parser.add_argument("},{"line_number":505,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":506,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":507,"context_line":"            default\u003dNone,"},{"line_number":508,"context_line":"            help\u003d_(\"Timeout positive integer value(\u003e 0) for \u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":509,"context_line":"        )"},{"line_number":510,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_9148a789","line":507,"range":{"start_line":505,"start_character":12,"end_line":507,"end_character":25},"updated":"2016-10-18 12:39:46.000000000","message":"Same thing that I said in related patch of ironic\nWhy you create additional parameter in both places: client console and configuration file?","commit_id":"1ebce569d396711afd79a643b68c7198877d8d58"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"48eeece5bcd396791233a92c1be801455a70fdae","unresolved":false,"context_lines":[{"line_number":502,"context_line":"            help\u003d_(\"Power graceful off.\")"},{"line_number":503,"context_line":"        )"},{"line_number":504,"context_line":"        parser.add_argument("},{"line_number":505,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":506,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":507,"context_line":"            default\u003dNone,"},{"line_number":508,"context_line":"            help\u003d_(\"Timeout positive integer value(\u003e 0) for \u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":509,"context_line":"        )"},{"line_number":510,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_021cf5bf","line":507,"range":{"start_line":505,"start_character":12,"end_line":507,"end_character":25},"in_reply_to":"fa6399be_9148a789","updated":"2016-10-20 02:56:00.000000000","message":"I answered in the other patch, please find in [1].\n\n[1] https://review.openstack.org/#/c/216730/18/ironic/api/controllers/v1/node.py@443","commit_id":"1ebce569d396711afd79a643b68c7198877d8d58"},{"author":{"_account_id":20902,"name":"Félix Bouliane","email":"fbouliane@inap.com","username":"fbouliane"},"change_message_id":"aff41f4843b0a715590c2895667f1488fae79e25","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        timeout \u003d None"},{"line_number":518,"context_line":"        if parsed_args.power_timeout is not None:"},{"line_number":519,"context_line":"            timeout \u003d int(parsed_args.power_timeout)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        baremetal_client.node.set_power_state("},{"line_number":522,"context_line":"            parsed_args.node, parsed_args.power_state, parsed_args.soft,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_a7c006e2","line":519,"range":{"start_line":517,"start_character":0,"end_line":519,"end_character":52},"updated":"2016-10-18 14:03:30.000000000","message":"This could be removed by adding \u0027type\u003dint\u0027 to your parser.add_argument. it will not be cast None [1] as a int and argsparse will do the type conversion for you. Works on py27 py34.\n\n[1] https://docs.python.org/2/library/argparse.html#default","commit_id":"1ebce569d396711afd79a643b68c7198877d8d58"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"48eeece5bcd396791233a92c1be801455a70fdae","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        timeout \u003d None"},{"line_number":518,"context_line":"        if parsed_args.power_timeout is not None:"},{"line_number":519,"context_line":"            timeout \u003d int(parsed_args.power_timeout)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        baremetal_client.node.set_power_state("},{"line_number":522,"context_line":"            parsed_args.node, parsed_args.power_state, parsed_args.soft,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_625a1185","line":519,"range":{"start_line":517,"start_character":0,"end_line":519,"end_character":52},"in_reply_to":"fa6399be_a7c006e2","updated":"2016-10-20 02:56:00.000000000","message":"I see, I\u0027ll fix that.","commit_id":"1ebce569d396711afd79a643b68c7198877d8d58"},{"author":{"_account_id":23883,"name":"Joanna Taryma","email":"joanna.taryma@intel.com","username":"jtaryma"},"change_message_id":"82fd12f13b8eb76a6439119ecb5d1f9734b7260d","unresolved":false,"context_lines":[{"line_number":721,"context_line":"        parser.add_argument("},{"line_number":722,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":723,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":724,"context_line":"            default\u003dNone,"},{"line_number":725,"context_line":"            type\u003dint,"},{"line_number":726,"context_line":"            help\u003d_(\"Timeout positive integer value(\u003e 0) for \u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":727,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_1482d752","line":724,"updated":"2016-10-27 03:05:09.000000000","message":"I\u0027m also a fan of changing default to 0. It is a standard thing to consider 0 as no timeout (you can ping me on IRC for examples). Setting \"None\" for value of type int seems invalid.","commit_id":"3f720eae669b98e52668a5fb230401d61ba9aea9"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"2552a183dbde2e570245ca9445977d7e9b871ad4","unresolved":false,"context_lines":[{"line_number":721,"context_line":"        parser.add_argument("},{"line_number":722,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":723,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":724,"context_line":"            default\u003dNone,"},{"line_number":725,"context_line":"            type\u003dint,"},{"line_number":726,"context_line":"            help\u003d_(\"Timeout positive integer value(\u003e 0) for \u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":727,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_271def73","line":724,"in_reply_to":"ba5da102_1482d752","updated":"2016-10-27 06:47:00.000000000","message":"We, Ironic community, agreed that Ironic doesn\u0027t allow \"no timeout\" of power control during the spec review.\nBecause \"no timeout\" can cause deadlock which means Ironic conductor can never release the node lock if power control went abnormal situation.\n\nAnd in terms of the default value \"None\", it is necessary to keep API backward compatibility. If api version is less than 1.23, the value of timeout has to be None.","commit_id":"3f720eae669b98e52668a5fb230401d61ba9aea9"},{"author":{"_account_id":23883,"name":"Joanna Taryma","email":"joanna.taryma@intel.com","username":"jtaryma"},"change_message_id":"77035b79ce61a25a117d4beb24c34b801dae1a78","unresolved":false,"context_lines":[{"line_number":721,"context_line":"        parser.add_argument("},{"line_number":722,"context_line":"            \u0027--power-timeout\u0027,"},{"line_number":723,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":724,"context_line":"            default\u003dNone,"},{"line_number":725,"context_line":"            type\u003dint,"},{"line_number":726,"context_line":"            help\u003d_(\"Timeout positive integer value(\u003e 0) for \u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":727,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_b43759e2","line":724,"in_reply_to":"ba5da102_271def73","updated":"2016-10-27 15:51:37.000000000","message":"I undrstand. In such case - that\u0027s totally fine.","commit_id":"3f720eae669b98e52668a5fb230401d61ba9aea9"},{"author":{"_account_id":23883,"name":"Joanna Taryma","email":"joanna.taryma@intel.com","username":"jtaryma"},"change_message_id":"82fd12f13b8eb76a6439119ecb5d1f9734b7260d","unresolved":false,"context_lines":[{"line_number":723,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":724,"context_line":"            default\u003dNone,"},{"line_number":725,"context_line":"            type\u003dint,"},{"line_number":726,"context_line":"            help\u003d_(\"Timeout positive integer value(\u003e 0) for \u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":727,"context_line":"        )"},{"line_number":728,"context_line":"        return parser"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_547c4f72","line":726,"updated":"2016-10-27 03:05:09.000000000","message":"I\u0027d change that message to \"Timeout in seconds(?) for changing power state. 0 value disables timeout\"","commit_id":"3f720eae669b98e52668a5fb230401d61ba9aea9"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"2552a183dbde2e570245ca9445977d7e9b871ad4","unresolved":false,"context_lines":[{"line_number":723,"context_line":"            metavar\u003d\u0027\u003cpower-timeout\u003e\u0027,"},{"line_number":724,"context_line":"            default\u003dNone,"},{"line_number":725,"context_line":"            type\u003dint,"},{"line_number":726,"context_line":"            help\u003d_(\"Timeout positive integer value(\u003e 0) for \u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":727,"context_line":"        )"},{"line_number":728,"context_line":"        return parser"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_e79057ef","line":726,"in_reply_to":"ba5da102_547c4f72","updated":"2016-10-27 06:47:00.000000000","message":"Okay, I\u0027ll add the unit.","commit_id":"3f720eae669b98e52668a5fb230401d61ba9aea9"},{"author":{"_account_id":20522,"name":"Aline Bousquet","email":"albousque@gmail.com","username":"alineb"},"change_message_id":"227a5ab6b0bd0c309574164c468a638e57f3e76f","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            dest\u003d\u0027soft\u0027,"},{"line_number":720,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":721,"context_line":"            default\u003dFalse,"},{"line_number":722,"context_line":"            help\u003d_(\"Power graceful off.\")"},{"line_number":723,"context_line":"        )"},{"line_number":724,"context_line":"        parser.add_argument("},{"line_number":725,"context_line":"            \u0027--power-timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_28262615","line":722,"updated":"2017-01-05 11:22:18.000000000","message":"I don’t see anything preventing --soft to be used when setting the power on: should it be checked somewhere? \nAlso maybe a unit test could be useful to check what happens when both ‘on’ and ‘soft’ are passed?","commit_id":"efc0f8f673f51c3149ba1ee38964b44a5dfaed84"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"d0f9014f0169f2a7b1643ef8eccc53d6f14a2c79","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            dest\u003d\u0027soft\u0027,"},{"line_number":720,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":721,"context_line":"            default\u003dFalse,"},{"line_number":722,"context_line":"            help\u003d_(\"Power graceful off.\")"},{"line_number":723,"context_line":"        )"},{"line_number":724,"context_line":"        parser.add_argument("},{"line_number":725,"context_line":"            \u0027--power-timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_61079d81","line":722,"in_reply_to":"ba5201f7_28262615","updated":"2017-01-11 08:00:43.000000000","message":"I\u0027ll add the same check as the base code \nhttps://review.openstack.org/#/c/247904/17/ironicclient/v1/node_shell.py","commit_id":"efc0f8f673f51c3149ba1ee38964b44a5dfaed84"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"e93175d67b7334f0170ab13ea0cb8ebb73c94527","unresolved":false,"context_lines":[{"line_number":734,"context_line":"    def take_action(self, parsed_args):"},{"line_number":735,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        if parsed_args.power_state \u003d\u003d \u0027on\u0027 and parsed_args.soft:"},{"line_number":738,"context_line":"            raise exc.CommandError("},{"line_number":739,"context_line":"                _(\"\u0027--soft\u0027 option is invalid for the power-state \u0027on\u0027\"))"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":742,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_c413f75a","line":739,"range":{"start_line":737,"start_character":0,"end_line":739,"end_character":73},"updated":"2017-01-11 08:13:34.000000000","message":"I think this check is redundant because baremetal_client.node.set_power_state() raises the exception.","commit_id":"a38f665b7972efa53d7b4ce49cb0720ef8c20d35"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"a7f9cb3532071d5c4b9e4d63aa7b0f30c7423517","unresolved":false,"context_lines":[{"line_number":734,"context_line":"    def take_action(self, parsed_args):"},{"line_number":735,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        if parsed_args.power_state \u003d\u003d \u0027on\u0027 and parsed_args.soft:"},{"line_number":738,"context_line":"            raise exc.CommandError("},{"line_number":739,"context_line":"                _(\"\u0027--soft\u0027 option is invalid for the power-state \u0027on\u0027\"))"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":742,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_8b7e25ad","line":739,"range":{"start_line":737,"start_character":0,"end_line":739,"end_character":73},"in_reply_to":"ba5201f7_70203a9c","updated":"2017-01-12 06:44:02.000000000","message":"Yeah, you are right, the following check is not called.\n\nhttps://review.openstack.org/#/c/247904/17/ironicclient/v1/node_shell.py","commit_id":"a38f665b7972efa53d7b4ce49cb0720ef8c20d35"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"9804fb24e25aed3d21e58ef25722796e1c258dd7","unresolved":false,"context_lines":[{"line_number":734,"context_line":"    def take_action(self, parsed_args):"},{"line_number":735,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        if parsed_args.power_state \u003d\u003d \u0027on\u0027 and parsed_args.soft:"},{"line_number":738,"context_line":"            raise exc.CommandError("},{"line_number":739,"context_line":"                _(\"\u0027--soft\u0027 option is invalid for the power-state \u0027on\u0027\"))"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":742,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_70203a9c","line":739,"range":{"start_line":737,"start_character":0,"end_line":739,"end_character":73},"in_reply_to":"ba5201f7_c413f75a","updated":"2017-01-11 11:49:07.000000000","message":"I can not see this. Look https://review.openstack.org/#/c/247904/17/ironicclient/v1/node.py@278\nCorrect me, if I mistaked\n\nMoreover, if this thing is already there, I do not mind, because catches both commands came from ironicclient or openstack baremetal.\n\n(OTOH, e.g. for other cases, the earlier the better to catch exceptions like this )","commit_id":"a38f665b7972efa53d7b4ce49cb0720ef8c20d35"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fb3ce2676e31042e419492d6809db3af45344fdf","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            dest\u003d\u0027soft\u0027,"},{"line_number":720,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":721,"context_line":"            default\u003dFalse,"},{"line_number":722,"context_line":"            help\u003d_(\"Power graceful off.\")"},{"line_number":723,"context_line":"        )"},{"line_number":724,"context_line":"        parser.add_argument("},{"line_number":725,"context_line":"            \u0027--power-timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_e2127508","line":722,"updated":"2017-01-17 10:15:32.000000000","message":"This patch anyway need rebasing, so let\u0027s fix it","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"852e9bcc11cb0dd78ce7bb6ae5c7a2ae20d44647","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            dest\u003d\u0027soft\u0027,"},{"line_number":720,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":721,"context_line":"            default\u003dFalse,"},{"line_number":722,"context_line":"            help\u003d_(\"Power graceful off.\")"},{"line_number":723,"context_line":"        )"},{"line_number":724,"context_line":"        parser.add_argument("},{"line_number":725,"context_line":"            \u0027--power-timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_556ec901","line":722,"range":{"start_line":722,"start_character":20,"end_line":722,"end_character":38},"updated":"2017-01-16 17:18:02.000000000","message":"nit / suggestion: \"Power off gracefully.\" sounds more correct","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"794559eada34834861f759dde9fad59d97abca19","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            dest\u003d\u0027soft\u0027,"},{"line_number":720,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":721,"context_line":"            default\u003dFalse,"},{"line_number":722,"context_line":"            help\u003d_(\"Power graceful off.\")"},{"line_number":723,"context_line":"        )"},{"line_number":724,"context_line":"        parser.add_argument("},{"line_number":725,"context_line":"            \u0027--power-timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_e49d3e67","line":722,"range":{"start_line":722,"start_character":20,"end_line":722,"end_character":38},"in_reply_to":"7a3c09a3_556ec901","updated":"2017-01-16 19:45:36.000000000","message":"+, or \"Request graceful power-off\"?","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"284cc43ec3472f30050645354235a8b641eb0318","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            dest\u003d\u0027soft\u0027,"},{"line_number":720,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":721,"context_line":"            default\u003dFalse,"},{"line_number":722,"context_line":"            help\u003d_(\"Power graceful off.\")"},{"line_number":723,"context_line":"        )"},{"line_number":724,"context_line":"        parser.add_argument("},{"line_number":725,"context_line":"            \u0027--power-timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_f8c2f351","line":722,"in_reply_to":"7a3c09a3_e2127508","updated":"2017-01-18 06:14:30.000000000","message":"I\u0027ll fix that.","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fb3ce2676e31042e419492d6809db3af45344fdf","unresolved":false,"context_lines":[{"line_number":727,"context_line":"            default\u003dNone,"},{"line_number":728,"context_line":"            type\u003dint,"},{"line_number":729,"context_line":"            help\u003d_(\"Timeout (in seconds) positive integer value (\u003e 0) for \""},{"line_number":730,"context_line":"                   \"\u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":731,"context_line":"        )"},{"line_number":732,"context_line":"        return parser"},{"line_number":733,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_02fce1b6","line":730,"updated":"2017-01-17 10:15:32.000000000","message":"see my comment on the previous patch about the wording","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"284cc43ec3472f30050645354235a8b641eb0318","unresolved":false,"context_lines":[{"line_number":727,"context_line":"            default\u003dNone,"},{"line_number":728,"context_line":"            type\u003dint,"},{"line_number":729,"context_line":"            help\u003d_(\"Timeout (in seconds) positive integer value (\u003e 0) for \""},{"line_number":730,"context_line":"                   \"\u0027on\u0027 or \u0027off\u0027.\")"},{"line_number":731,"context_line":"        )"},{"line_number":732,"context_line":"        return parser"},{"line_number":733,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_1807bf82","line":730,"in_reply_to":"7a3c09a3_02fce1b6","updated":"2017-01-18 06:14:30.000000000","message":"I\u0027ll fix that.","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fb3ce2676e31042e419492d6809db3af45344fdf","unresolved":false,"context_lines":[{"line_number":740,"context_line":"            baremetal_client.node.set_power_state("},{"line_number":741,"context_line":"                parsed_args.node, parsed_args.power_state, parsed_args.soft,"},{"line_number":742,"context_line":"                timeout\u003dparsed_args.power_timeout)"},{"line_number":743,"context_line":"        except exc.InvalidArgument as e:"},{"line_number":744,"context_line":"            raise exc.CommandError(e)"},{"line_number":745,"context_line":""},{"line_number":746,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_22f9ddc7","line":743,"updated":"2017-01-17 10:15:32.000000000","message":"this is not needed, any exception will be rendered correctly IIRC","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"284cc43ec3472f30050645354235a8b641eb0318","unresolved":false,"context_lines":[{"line_number":740,"context_line":"            baremetal_client.node.set_power_state("},{"line_number":741,"context_line":"                parsed_args.node, parsed_args.power_state, parsed_args.soft,"},{"line_number":742,"context_line":"                timeout\u003dparsed_args.power_timeout)"},{"line_number":743,"context_line":"        except exc.InvalidArgument as e:"},{"line_number":744,"context_line":"            raise exc.CommandError(e)"},{"line_number":745,"context_line":""},{"line_number":746,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_7800c366","line":743,"in_reply_to":"7a3c09a3_22f9ddc7","updated":"2017-01-18 06:14:30.000000000","message":"I\u0027ll fix that.","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"794559eada34834861f759dde9fad59d97abca19","unresolved":false,"context_lines":[{"line_number":769,"context_line":"            dest\u003d\u0027soft\u0027,"},{"line_number":770,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":771,"context_line":"            default\u003dFalse,"},{"line_number":772,"context_line":"            help\u003d_(\"Graceful reboot.\")"},{"line_number":773,"context_line":"        )"},{"line_number":774,"context_line":"        parser.add_argument("},{"line_number":775,"context_line":"            \u0027--power-timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_a4cc166b","line":772,"range":{"start_line":772,"start_character":20,"end_line":772,"end_character":36},"updated":"2017-01-16 19:45:36.000000000","message":"nit: perhaps \"Request Graceful reboot.\"?","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"284cc43ec3472f30050645354235a8b641eb0318","unresolved":false,"context_lines":[{"line_number":769,"context_line":"            dest\u003d\u0027soft\u0027,"},{"line_number":770,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":771,"context_line":"            default\u003dFalse,"},{"line_number":772,"context_line":"            help\u003d_(\"Graceful reboot.\")"},{"line_number":773,"context_line":"        )"},{"line_number":774,"context_line":"        parser.add_argument("},{"line_number":775,"context_line":"            \u0027--power-timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_1815ff9a","line":772,"range":{"start_line":772,"start_character":20,"end_line":772,"end_character":36},"in_reply_to":"7a3c09a3_a4cc166b","updated":"2017-01-18 06:14:30.000000000","message":"I\u0027ll fix that.","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fb3ce2676e31042e419492d6809db3af45344fdf","unresolved":false,"context_lines":[{"line_number":777,"context_line":"            default\u003dNone,"},{"line_number":778,"context_line":"            type\u003dint,"},{"line_number":779,"context_line":"            help\u003d_(\"Timeout (in seconds) positive integer value(\u003e 0) for \""},{"line_number":780,"context_line":"                   \"\u0027reboot\u0027.\")"},{"line_number":781,"context_line":"        )"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_420269b5","line":780,"updated":"2017-01-17 10:15:32.000000000","message":"ditto about help string","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"284cc43ec3472f30050645354235a8b641eb0318","unresolved":false,"context_lines":[{"line_number":777,"context_line":"            default\u003dNone,"},{"line_number":778,"context_line":"            type\u003dint,"},{"line_number":779,"context_line":"            help\u003d_(\"Timeout (in seconds) positive integer value(\u003e 0) for \""},{"line_number":780,"context_line":"                   \"\u0027reboot\u0027.\")"},{"line_number":781,"context_line":"        )"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_98056f47","line":780,"in_reply_to":"7a3c09a3_420269b5","updated":"2017-01-18 06:14:30.000000000","message":"I\u0027ll fix that.","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fb3ce2676e31042e419492d6809db3af45344fdf","unresolved":false,"context_lines":[{"line_number":791,"context_line":"            baremetal_client.node.set_power_state("},{"line_number":792,"context_line":"                parsed_args.node, \u0027reboot\u0027, parsed_args.soft,"},{"line_number":793,"context_line":"                timeout\u003dparsed_args.power_timeout)"},{"line_number":794,"context_line":"        except exc.InvalidArgument as e:"},{"line_number":795,"context_line":"            raise exc.CommandError(e)"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_62ff65aa","line":794,"updated":"2017-01-17 10:15:32.000000000","message":"ditto about catching exception","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"284cc43ec3472f30050645354235a8b641eb0318","unresolved":false,"context_lines":[{"line_number":791,"context_line":"            baremetal_client.node.set_power_state("},{"line_number":792,"context_line":"                parsed_args.node, \u0027reboot\u0027, parsed_args.soft,"},{"line_number":793,"context_line":"                timeout\u003dparsed_args.power_timeout)"},{"line_number":794,"context_line":"        except exc.InvalidArgument as e:"},{"line_number":795,"context_line":"            raise exc.CommandError(e)"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_f8f6735b","line":794,"in_reply_to":"7a3c09a3_62ff65aa","updated":"2017-01-18 06:14:30.000000000","message":"I\u0027ll fix that.","commit_id":"a5ccc54a0396e3863532dfa6abfda04c5c7d2cc7"}],"ironicclient/tests/unit/osc/v1/test_baremetal_node.py":[{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a834ed6638548f891317a0d71155b955b8783a0","unresolved":false,"context_lines":[{"line_number":918,"context_line":"        self.baremetal_mock.node.set_power_state.assert_called_once_with("},{"line_number":919,"context_line":"            \u0027node_uuid\u0027, \u0027on\u0027, False, timeout\u003d2)"},{"line_number":920,"context_line":""},{"line_number":921,"context_line":"    def test_baremetal_soft_power_on(self):"},{"line_number":922,"context_line":"        arglist \u003d [\u0027on\u0027, \u0027node_uuid\u0027, \u0027--soft\u0027]"},{"line_number":923,"context_line":"        verifylist \u003d [(\u0027power_state\u0027, \u0027on\u0027),"},{"line_number":924,"context_line":"                      (\u0027node\u0027, \u0027node_uuid\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_64ec0b2a","line":921,"range":{"start_line":921,"start_character":0,"end_line":921,"end_character":43},"updated":"2017-01-11 08:16:36.000000000","message":"Yeah, we don\u0027t need this test because base code covers.","commit_id":"a38f665b7972efa53d7b4ce49cb0720ef8c20d35"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"a7f9cb3532071d5c4b9e4d63aa7b0f30c7423517","unresolved":false,"context_lines":[{"line_number":918,"context_line":"        self.baremetal_mock.node.set_power_state.assert_called_once_with("},{"line_number":919,"context_line":"            \u0027node_uuid\u0027, \u0027on\u0027, False, timeout\u003d2)"},{"line_number":920,"context_line":""},{"line_number":921,"context_line":"    def test_baremetal_soft_power_on(self):"},{"line_number":922,"context_line":"        arglist \u003d [\u0027on\u0027, \u0027node_uuid\u0027, \u0027--soft\u0027]"},{"line_number":923,"context_line":"        verifylist \u003d [(\u0027power_state\u0027, \u0027on\u0027),"},{"line_number":924,"context_line":"                      (\u0027node\u0027, \u0027node_uuid\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_eb1df173","line":921,"range":{"start_line":921,"start_character":0,"end_line":921,"end_character":43},"in_reply_to":"ba5201f7_64ec0b2a","updated":"2017-01-12 06:44:02.000000000","message":"I understood that we need this code.","commit_id":"a38f665b7972efa53d7b4ce49cb0720ef8c20d35"}]}
