)]}'
{"ironic/drivers/modules/ipmitool.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"698f4faa886a5f2ebffc406b7138f0949f28e454","unresolved":false,"context_lines":[{"line_number":299,"context_line":"                    \"%(node)s. Shutting down hard.\"),"},{"line_number":300,"context_line":"                    {\u0027node\u0027: driver_info[\u0027uuid\u0027]})"},{"line_number":301,"context_line":"                state_name \u003d \"off\""},{"line_number":302,"context_line":"                try:"},{"line_number":303,"context_line":"                    _exec_ipmitool(driver_info, \"power %s\" % state_name)"},{"line_number":304,"context_line":"                except Exception:"},{"line_number":305,"context_line":"                    # Log failures but keep trying"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_8888556c","line":302,"updated":"2014-07-21 16:44:59.000000000","message":"I think the logic here is very confusing/duplicated... this try...except block is duplicated with L280+...\n\nI think a better logic would be to set the state_name to \u0027off\u0027 and reset the mutable[\u0027iter\u0027] value so on the next iteration it will try to power off instead of power soft, and the function will just work as it does now","commit_id":"0b9b4cb4b26eef5160a53c6feb8195569ab9caab"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b42937449942fb9a0e490e5a4fd19f333b1d187d","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    :raises: IPMIFailure on an error from ipmitool (from _power_status call)."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    \"\"\""},{"line_number":265,"context_line":"    print \"TS: %s\" % target_state"},{"line_number":266,"context_line":"    if target_state \u003d\u003d states.POWER_ON:"},{"line_number":267,"context_line":"        state_name \u003d \"on\""},{"line_number":268,"context_line":"    elif target_state \u003d\u003d states.POWER_OFF:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_cd84df0d","line":265,"updated":"2014-07-22 13:23:06.000000000","message":"print?","commit_id":"7947d348f914f3b868eb28d9ce326dd7898c53a9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b42937449942fb9a0e490e5a4fd19f333b1d187d","unresolved":false,"context_lines":[{"line_number":271,"context_line":"            state_name \u003d \"soft\""},{"line_number":272,"context_line":"        else:"},{"line_number":273,"context_line":"            state_name \u003d \"off\""},{"line_number":274,"context_line":"    print \"State_name: %s\" % state_name"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    def _wait(mutable, state_name):"},{"line_number":277,"context_line":"        print \"sn: %s\" % state_name"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_cdb21fe5","line":274,"updated":"2014-07-22 13:23:06.000000000","message":"ditto","commit_id":"7947d348f914f3b868eb28d9ce326dd7898c53a9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b42937449942fb9a0e490e5a4fd19f333b1d187d","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    print \"State_name: %s\" % state_name"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    def _wait(mutable, state_name):"},{"line_number":277,"context_line":"        print \"sn: %s\" % state_name"},{"line_number":278,"context_line":"        try:"},{"line_number":279,"context_line":"            # Only issue power change command once."},{"line_number":280,"context_line":"            if mutable[\u0027iter\u0027] \u003c 0:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_2dd8fb1d","line":277,"updated":"2014-07-22 13:23:06.000000000","message":"ditto","commit_id":"7947d348f914f3b868eb28d9ce326dd7898c53a9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b42937449942fb9a0e490e5a4fd19f333b1d187d","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            raise loopingcall.LoopingCallDone()"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        # if soft power and total_time \u003e soft_power_pause hard power off node."},{"line_number":295,"context_line":"        if (state_name \u003d\u003d \"soft\" and (sleep_time + mutable[\u0027total_time\u0027]) \u003e\u003d"},{"line_number":296,"context_line":"            CONF.ipmi.soft_power_pause):"},{"line_number":297,"context_line":"                # reset state_name and hard power off node."},{"line_number":298,"context_line":"                LOG.warning(_LW(\"Soft power off time out reached for node \""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_90c91a28","line":295,"updated":"2014-07-22 13:23:06.000000000","message":"NameError possible here because sleep_time defined at l310.","commit_id":"7947d348f914f3b868eb28d9ce326dd7898c53a9"}]}
