)]}'
{"etc/ironic/ironic.conf.sample":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c9e3385b307695749a926782b7d1431af514f22e","unresolved":false,"context_lines":[{"line_number":891,"context_line":"#"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"# Maximum retries for iBoot operations (integer value)"},{"line_number":894,"context_line":"#max_retry\u003d3"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"# Time between retry attempts for iBoot operations (integer"},{"line_number":897,"context_line":"# value)"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"da20952f_fbe647af","line":894,"updated":"2015-09-09 18:52:18.000000000","message":"It should be max_retries, but I see that we have \u0027max_retry\u0027 already. So sad. Which means I don\u0027t know if we should leave it as is, or change it to max_retries.","commit_id":"3436c193c58ac7eb386d1af223f69cd999feafad"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c9e3385b307695749a926782b7d1431af514f22e","unresolved":false,"context_lines":[{"line_number":893,"context_line":"# Maximum retries for iBoot operations (integer value)"},{"line_number":894,"context_line":"#max_retry\u003d3"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"# Time between retry attempts for iBoot operations (integer"},{"line_number":897,"context_line":"# value)"},{"line_number":898,"context_line":"#retry_interval\u003d1"},{"line_number":899,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"da20952f_7b579726","line":896,"updated":"2015-09-09 18:52:18.000000000","message":"It should mention units. Eg \u0027Time (in seconds) to wait before retrying an iBoot operation\u0027.","commit_id":"3436c193c58ac7eb386d1af223f69cd999feafad"}],"ironic/drivers/modules/iboot.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"63c8b2110f664234a98505d51eda396302c78b77","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _wait_for_switch(mutable):"},{"line_number":116,"context_line":"        if mutable[\u0027retries\u0027] \u003e CONF.iboot.max_retry:"},{"line_number":117,"context_line":"            LOG.warning(_LW(\"Hit max _switch retries: %i\"), mutable[\u0027retries\u0027])"},{"line_number":118,"context_line":"            raise loopingcall.LoopingCallDone()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_bb702673","line":117,"updated":"2015-09-01 08:31:11.000000000","message":"_switch is an internal function, unless it\u0027s a debug log we should not specify it on a warning message. \n\nAlso tho we call it switch() this is really about setting the power state of the node right? I think we should log it as such because when I read \"Cannot call switch\" I don\u0027t know exactly what it was trying do to there.\n\n(And, let\u0027s log which node this operation failed as well)","commit_id":"1e13cfe18af57e2aa66cf7de8e9ebf4763db68cc"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"63c8b2110f664234a98505d51eda396302c78b77","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if mutable[\u0027retries\u0027] \u003e CONF.iboot.max_retry:"},{"line_number":144,"context_line":"            LOG.warning(_LW(\"Hit max power status retries: %i\"),"},{"line_number":145,"context_line":"                        mutable[\u0027retries\u0027])"},{"line_number":146,"context_line":"            raise loopingcall.LoopingCallDone()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_7b704e40","line":145,"updated":"2015-09-01 08:31:11.000000000","message":"s/power status/get power status/\n\n(And let\u0027s log which node)","commit_id":"1e13cfe18af57e2aa66cf7de8e9ebf4763db68cc"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c9e3385b307695749a926782b7d1431af514f22e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    def _wait_for_switch(mutable):"},{"line_number":116,"context_line":"        if mutable[\u0027retries\u0027] \u003e CONF.iboot.max_retry:"},{"line_number":117,"context_line":"            LOG.warning(_LW("},{"line_number":118,"context_line":"                \u0027Reached maximum number of attempts ( %(attempts)d ) to set \u0027"},{"line_number":119,"context_line":"                \u0027power state for node %(node)s to \"%(op)s\"\u0027),"},{"line_number":120,"context_line":"                {\u0027attempts\u0027: mutable[\u0027retries\u0027], \u0027node\u0027: driver_info[\u0027uuid\u0027],"},{"line_number":121,"context_line":"                 \u0027op\u0027: states.POWER_ON if enabled else states.POWER_OFF})"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_b95c521a","line":118,"updated":"2015-09-09 18:52:18.000000000","message":"nit: blank space between the parentheses. s/( %(attempts)d )/(%(attempts)d)/","commit_id":"3436c193c58ac7eb386d1af223f69cd999feafad"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c9e3385b307695749a926782b7d1431af514f22e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        except (TypeError, IndexError):"},{"line_number":130,"context_line":"            LOG.warning(_LW(\"Cannot call set power state for node \u0027%(node)s\u0027 \""},{"line_number":131,"context_line":"                            \"at relay \u0027%(relay)s\u0027. iBoot switch() failed.\"),"},{"line_number":132,"context_line":"                        {\u0027node\u0027: driver_info[\u0027uuid\u0027], \u0027relay\u0027: relay_id})"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    mutable \u003d {\u0027response\u0027: False, \u0027retries\u0027: 0}"},{"line_number":135,"context_line":"    timer \u003d loopingcall.FixedIntervalLoopingCall(_wait_for_switch,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_196d3ecc","line":132,"updated":"2015-09-09 18:52:18.000000000","message":"Do we want to mention something about \u0027attempt 1 of 4 failed\u0027?","commit_id":"3436c193c58ac7eb386d1af223f69cd999feafad"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c9e3385b307695749a926782b7d1431af514f22e","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        if mutable[\u0027retries\u0027] \u003e CONF.iboot.max_retry:"},{"line_number":148,"context_line":"            LOG.warning(_LW("},{"line_number":149,"context_line":"                \u0027Reached maximum number of attempts ( %(attempts)d ) to get \u0027"},{"line_number":150,"context_line":"                \u0027power state for node %(node)s\u0027),"},{"line_number":151,"context_line":"                {\u0027attempts\u0027: mutable[\u0027retries\u0027], \u0027node\u0027: driver_info[\u0027uuid\u0027]})"},{"line_number":152,"context_line":"            raise loopingcall.LoopingCallDone()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_7ebea065","line":149,"updated":"2015-09-09 18:52:18.000000000","message":"nit: blank space between the parentheses. s/( %(attempts)d )/(%(attempts)d)/","commit_id":"3436c193c58ac7eb386d1af223f69cd999feafad"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c9e3385b307695749a926782b7d1431af514f22e","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        except (TypeError, IndexError):"},{"line_number":164,"context_line":"            LOG.warning(_LW(\"Cannot get power state for node \u0027%(node)s\u0027 at \""},{"line_number":165,"context_line":"                            \"relay \u0027%(relay)s\u0027. iBoot get_relays() failed.\"),"},{"line_number":166,"context_line":"                        {\u0027node\u0027: driver_info[\u0027uuid\u0027], \u0027relay\u0027: relay_id})"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    mutable \u003d {\u0027state\u0027: states.ERROR, \u0027retries\u0027: 0}"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_de5d6c49","line":166,"updated":"2015-09-09 18:52:18.000000000","message":"Do we want to mention something about \u0027attempt 1 of 4 failed\u0027?","commit_id":"3436c193c58ac7eb386d1af223f69cd999feafad"}]}
