)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"28ab7bc7c7f29739688b3d0c6f572acd5acc50ee","unresolved":false,"context_lines":[{"line_number":11,"context_line":"during a power on or reboot operation.  If the boot device"},{"line_number":12,"context_line":"is being changed, the system might complete its POST before"},{"line_number":13,"context_line":"the job is ready, leaving the job in the queue, and the"},{"line_number":14,"context_line":"system will boot from the wrong device."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This fix suggests the following change for the power control:"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9fdfeff1_190b0624","line":14,"updated":"2019-01-31 07:59:41.000000000","message":"Ouch. :(\n\nI sense this is going to need to be backported.","commit_id":"64b5380a13e42cca8b683ba9591ead5c8ed4c411"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"28ab7bc7c7f29739688b3d0c6f572acd5acc50ee","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"This will ensure the iDRAC is in a state to execute the job"},{"line_number":26,"context_line":"prior to the reboot starting, removing this race condition."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I5cc71fb3c9a7e0166aab5bd458bbd257cefa8f5b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9fdfeff1_f920829d","line":27,"updated":"2019-01-31 07:59:41.000000000","message":"We\u0027re going to need to put an entry in storyboard to track this. If you could create an entry on storyboard.openstack.org, and add a \"Story: #####\" and \"Task: ####\" tag to this change, that would be very helpful.","commit_id":"64b5380a13e42cca8b683ba9591ead5c8ed4c411"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"10417fa25bb160c38d7ef5b058048b30b405eb5e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"the job is ready, leaving the job in the queue, and the"},{"line_number":14,"context_line":"system will boot from the wrong device."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This fix suggests the following change for the power control:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  o During internal call to set boot device, poll the iDRAC job"},{"line_number":19,"context_line":"    queue for a configurable amount of time to ensure the job"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9fb8cfa7_50b8f0c6","line":16,"range":{"start_line":16,"start_character":47,"end_line":16,"end_character":60},"updated":"2019-06-06 05:33:34.000000000","message":"The changes seems has no \u0027change\u0027 wrt power control.","commit_id":"a2e307fbf93dbcc45a1c941d0a6fa0807d18f4be"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"e043941d41d1d082556d8fc1956ad2f9362ff334","unresolved":false,"context_lines":[{"line_number":13,"context_line":"the job is ready, leaving the job in the queue, and the"},{"line_number":14,"context_line":"system will boot from the wrong device."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This fix suggests the following change for the power control:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  o During internal call to set boot device, poll the iDRAC job"},{"line_number":19,"context_line":"    queue for a configurable amount of time to ensure the job"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9fb8cfa7_7efffe00","line":16,"range":{"start_line":16,"start_character":47,"end_line":16,"end_character":60},"in_reply_to":"9fb8cfa7_50b8f0c6","updated":"2019-06-06 11:47:57.000000000","message":"True.  It is hooked into the logic when power control operation happens (ie: reboot or power on).  I\u0027ll come up with better wording.","commit_id":"a2e307fbf93dbcc45a1c941d0a6fa0807d18f4be"}],"ironic/conf/drac.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"10417fa25bb160c38d7ef5b058048b30b405eb5e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    cfg.IntOpt(\u0027boot_device_job_status_timeout\u0027,"},{"line_number":26,"context_line":"               default\u003d30,"},{"line_number":27,"context_line":"               min\u003d1,"},{"line_number":28,"context_line":"               help\u003d_(\u0027Maximum amout of time (in seconds) to wait for \u0027"},{"line_number":29,"context_line":"                      \u0027the boot device configuration job to transition \u0027"},{"line_number":30,"context_line":"                      \u0027to the correct state to allow a reboot or power \u0027"},{"line_number":31,"context_line":"                      \u0027on to complete\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_d1b24f94","line":28,"range":{"start_line":28,"start_character":31,"end_line":28,"end_character":36},"updated":"2019-06-06 05:33:34.000000000","message":"s/ amout / amount /","commit_id":"a2e307fbf93dbcc45a1c941d0a6fa0807d18f4be"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"10417fa25bb160c38d7ef5b058048b30b405eb5e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"               help\u003d_(\u0027Maximum amout of time (in seconds) to wait for \u0027"},{"line_number":29,"context_line":"                      \u0027the boot device configuration job to transition \u0027"},{"line_number":30,"context_line":"                      \u0027to the correct state to allow a reboot or power \u0027"},{"line_number":31,"context_line":"                      \u0027on to complete\u0027))"},{"line_number":32,"context_line":"]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_709e54b9","line":31,"range":{"start_line":31,"start_character":36,"end_line":31,"end_character":37},"updated":"2019-06-06 05:33:34.000000000","message":"Add period (.) at end.","commit_id":"a2e307fbf93dbcc45a1c941d0a6fa0807d18f4be"}],"ironic/drivers/modules/drac/management.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"295afdf7a4d3716278b55adffd8902d796c011ef","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    return bios_settings"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def set_boot_device(node, device, persistent\u003dFalse, start_time\u003d\u0027TIME_NOW\u0027):"},{"line_number":170,"context_line":"    \"\"\"Set the boot device for a node."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    Set the boot device to use on next boot of the node."}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_6149542f","line":169,"range":{"start_line":169,"start_character":52,"end_line":169,"end_character":62},"updated":"2019-01-30 05:05:35.000000000","message":"Update doc string for this argument.","commit_id":"ac15f3567e52b5f12761e0ad7b19e1139dd85594"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"b7a94fce50f7885056ef89a906a9ac089544a77a","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    return bios_settings"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def set_boot_device(node, device, persistent\u003dFalse, start_time\u003d\u0027TIME_NOW\u0027):"},{"line_number":170,"context_line":"    \"\"\"Set the boot device for a node."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    Set the boot device to use on next boot of the node."}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_aa7aaced","line":169,"range":{"start_line":169,"start_character":52,"end_line":169,"end_character":62},"in_reply_to":"9fdfeff1_6149542f","updated":"2019-01-30 15:21:33.000000000","message":"Thanks, will do.","commit_id":"ac15f3567e52b5f12761e0ad7b19e1139dd85594"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"10417fa25bb160c38d7ef5b058048b30b405eb5e","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        timeout \u003d CONF.drac.boot_device_job_status_timeout"},{"line_number":255,"context_line":"        end_time \u003d time.time() + timeout"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        LOG.debug(\u0027Waiting for job %{job_id} to be scheduled\u0027,"},{"line_number":258,"context_line":"                  {\u0027job_id\u0027: job_id})"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        while job_entry.status is not \"Scheduled\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_309c5c5c","line":257,"range":{"start_line":257,"start_character":51,"end_line":257,"end_character":60},"updated":"2019-06-06 05:33:34.000000000","message":"Add node id to this message. Ex:\ns/ \u0027scheduled\u0027 / \u0027scheduled for node %(node_id)s\u0027 /","commit_id":"a2e307fbf93dbcc45a1c941d0a6fa0807d18f4be"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"e043941d41d1d082556d8fc1956ad2f9362ff334","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        timeout \u003d CONF.drac.boot_device_job_status_timeout"},{"line_number":255,"context_line":"        end_time \u003d time.time() + timeout"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        LOG.debug(\u0027Waiting for job %{job_id} to be scheduled\u0027,"},{"line_number":258,"context_line":"                  {\u0027job_id\u0027: job_id})"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        while job_entry.status is not \"Scheduled\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_fe120e58","line":257,"range":{"start_line":257,"start_character":51,"end_line":257,"end_character":60},"in_reply_to":"9fb8cfa7_309c5c5c","updated":"2019-06-06 11:47:57.000000000","message":"Good idea, thanks.","commit_id":"a2e307fbf93dbcc45a1c941d0a6fa0807d18f4be"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"0f43fd59698edb5cf94a596098318c0b9f8453a9","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        timeout \u003d CONF.drac.boot_device_job_status_timeout"},{"line_number":255,"context_line":"        end_time \u003d time.time() + timeout"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        LOG.debug(\u0027Waiting for job %{job_id} to be scheduled for node %{node}\u0027,"},{"line_number":258,"context_line":"                  {\u0027job_id\u0027: job_id,"},{"line_number":259,"context_line":"                   \u0027node\u0027: node.uuid})"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_15c06f7c","line":257,"range":{"start_line":257,"start_character":37,"end_line":257,"end_character":43},"updated":"2019-07-03 08:36:05.000000000","message":"I think this would be some numeric value, may be additional details about the job would be helpful to the user. Ex:\n\u0027Waiting for job %{job_id} related to committing pending bios settings to schedule on node %{node}.\u0027","commit_id":"d58b8b3811e96c06829388e5b87bc334b68f5a7a"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"0f43fd59698edb5cf94a596098318c0b9f8453a9","unresolved":false,"context_lines":[{"line_number":262,"context_line":"            time.sleep(3)"},{"line_number":263,"context_line":"            job_entry \u003d client.get_job(job_id)"},{"line_number":264,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":265,"context_line":"                message \u003d (\u0027Timed out waiting for job %s to reach \u0027"},{"line_number":266,"context_line":"                           \u0027Scheduled state\u0027) % (job_id)"},{"line_number":267,"context_line":"                raise exception.DracOperationError("},{"line_number":268,"context_line":"                    error\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_75344bad","line":265,"range":{"start_line":265,"start_character":28,"end_line":265,"end_character":65},"updated":"2019-07-03 08:36:05.000000000","message":"ditto","commit_id":"d58b8b3811e96c06829388e5b87bc334b68f5a7a"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"f729f65df73d5aff16f7daacd3546d68245b57a0","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        while job_entry.status !\u003d \"Scheduled\":"},{"line_number":263,"context_line":"            time.sleep(3)"},{"line_number":264,"context_line":"            job_entry \u003d client.get_job(job_id)"},{"line_number":265,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":266,"context_line":"                message \u003d (\u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":267,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_baef19af","line":264,"updated":"2019-07-03 20:46:15.000000000","message":"I think the above line needs to be moved to be the last line in the while loop, otherwise, the message logged below could include an incorrect status.","commit_id":"c6764a45053a4c70243eb6597282564ba143a23d"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"f4b2f4696ca32edf839985f229ec527fcfb785f4","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        while job_entry.status !\u003d \"Scheduled\":"},{"line_number":263,"context_line":"            time.sleep(3)"},{"line_number":264,"context_line":"            job_entry \u003d client.get_job(job_id)"},{"line_number":265,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":266,"context_line":"                message \u003d (\u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":267,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_d5118655","line":264,"in_reply_to":"7faddb67_baef19af","updated":"2019-07-03 21:14:27.000000000","message":"Done","commit_id":"c6764a45053a4c70243eb6597282564ba143a23d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8c7886cc740670fcae7f4d36e40f1d6b8b3f5a22","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":16,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":17,"context_line":"#    under the License."},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":"DRAC management interface"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_d5966695","line":18,"updated":"2019-07-03 21:30:18.000000000","message":"the style rules might take issue with this.... fwiw.","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"67826d1179d1be51077208c301ae4b67d1f15b23","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":16,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":17,"context_line":"#    under the License."},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":"DRAC management interface"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_f5460222","line":18,"in_reply_to":"7faddb67_d5966695","updated":"2019-07-03 21:36:23.000000000","message":"Ya, I just noticed this, but it\u0027s been passing with all local tox and the Zuul checks, so not sure.  I think it belongs around L23, no?","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c2fc74bf0acd142e356dc66455c255c7a1590848","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":16,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":17,"context_line":"#    under the License."},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":"DRAC management interface"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_772a0fe8","line":18,"in_reply_to":"7faddb67_f5460222","updated":"2019-07-04 10:06:52.000000000","message":"this is due to pep8 excluding lines 20-22 as comments\nL23 should be the correct one","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8c7886cc740670fcae7f4d36e40f1d6b8b3f5a22","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":264,"context_line":"                message \u003d (\u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":265,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"},{"line_number":266,"context_line":"                           \u0027in %s state.\u0027) % (job_id, job_entry.status)"},{"line_number":267,"context_line":"                raise exception.DracOperationError("},{"line_number":268,"context_line":"                    error\u003dmessage)"},{"line_number":269,"context_line":"            time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_b5e2ca2e","line":266,"updated":"2019-07-03 21:30:18.000000000","message":"since this is for an exception and and we allow direct invocation of set_boot_device by an api user.... I think this should be flagged as for i18n.  See line 247.","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c2fc74bf0acd142e356dc66455c255c7a1590848","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":264,"context_line":"                message \u003d (\u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":265,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"},{"line_number":266,"context_line":"                           \u0027in %s state.\u0027) % (job_id, job_entry.status)"},{"line_number":267,"context_line":"                raise exception.DracOperationError("},{"line_number":268,"context_line":"                    error\u003dmessage)"},{"line_number":269,"context_line":"            time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_b775e7fc","line":266,"in_reply_to":"7faddb67_15271e67","updated":"2019-07-04 10:06:52.000000000","message":"it\u0027s oslo translate module\nsee L30\nmore info here:\nhttps://docs.openstack.org/oslo.i18n/latest/user/","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"55194b1e08b6981c35e69f2b70f188144dd482a3","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":264,"context_line":"                message \u003d (\u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":265,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"},{"line_number":266,"context_line":"                           \u0027in %s state.\u0027) % (job_id, job_entry.status)"},{"line_number":267,"context_line":"                raise exception.DracOperationError("},{"line_number":268,"context_line":"                    error\u003dmessage)"},{"line_number":269,"context_line":"            time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_2903770f","line":266,"in_reply_to":"7faddb67_b0c4ca60","updated":"2019-07-11 08:08:49.000000000","message":"you don\u0027t need a translation file\nadding the _ in front of the message in the raise statement should be enough\nlook at L247 for an example","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"67826d1179d1be51077208c301ae4b67d1f15b23","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":264,"context_line":"                message \u003d (\u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":265,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"},{"line_number":266,"context_line":"                           \u0027in %s state.\u0027) % (job_id, job_entry.status)"},{"line_number":267,"context_line":"                raise exception.DracOperationError("},{"line_number":268,"context_line":"                    error\u003dmessage)"},{"line_number":269,"context_line":"            time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_15271e67","line":266,"in_reply_to":"7faddb67_b5e2ca2e","updated":"2019-07-03 21:36:23.000000000","message":"Sorry to be dense, but is there a doc for that?  I was wondering what the _() meant...","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"a9deb0818c0d1e86a44923d48597a4ae792c5fba","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":264,"context_line":"                message \u003d (\u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":265,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"},{"line_number":266,"context_line":"                           \u0027in %s state.\u0027) % (job_id, job_entry.status)"},{"line_number":267,"context_line":"                raise exception.DracOperationError("},{"line_number":268,"context_line":"                    error\u003dmessage)"},{"line_number":269,"context_line":"            time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_b0c4ca60","line":266,"in_reply_to":"7faddb67_b775e7fc","updated":"2019-07-09 19:59:35.000000000","message":"Is it just as simple as adding the _ in front of the message \u003d (\u0027\u0027)?  Or do I need to add it to a translation file, or change the exception that is raised?","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"b89e1dedb88e5db0dbaf853dbeb0c30b22dcc02b","unresolved":false,"context_lines":[{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        while job_entry.status !\u003d \"Scheduled\":"},{"line_number":265,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":266,"context_line":"                message \u003d (\u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":267,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"},{"line_number":268,"context_line":"                           \u0027in %s state.\u0027) % (job_id, job_entry.status)"},{"line_number":269,"context_line":"                raise exception.DracOperationError("}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_b770eb09","line":266,"updated":"2019-07-15 18:33:08.000000000","message":"I think you need the underscore immediately before the left paren in the line above, like this:\nmessage \u003d _(\u0027Timed ...","commit_id":"c8e936a57b9ec36a17f064f346f0d86363c06403"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"b89e1dedb88e5db0dbaf853dbeb0c30b22dcc02b","unresolved":false,"context_lines":[{"line_number":267,"context_line":"                           \u0027%s to reach Scheduled state.  Job is still \u0027"},{"line_number":268,"context_line":"                           \u0027in %s state.\u0027) % (job_id, job_entry.status)"},{"line_number":269,"context_line":"                raise exception.DracOperationError("},{"line_number":270,"context_line":"                    error\u003d_(message))"},{"line_number":271,"context_line":"            time.sleep(3)"},{"line_number":272,"context_line":"            job_entry \u003d client.get_job(job_id)"},{"line_number":273,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_37d39bd7","line":270,"updated":"2019-07-15 18:33:08.000000000","message":"I think the above line should be:\nerror\u003dmessage)\nI think this will fix the pep8 error","commit_id":"c8e936a57b9ec36a17f064f346f0d86363c06403"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"e6d5bf924e36da0c6761816b7bfaee2f971e877f","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        while job_entry.status !\u003d \"Scheduled\":"},{"line_number":265,"context_line":"            if time.time() \u003e\u003d end_time:"},{"line_number":266,"context_line":"                raise exception.DracOperationError("},{"line_number":267,"context_line":"                    error\u003d_("},{"line_number":268,"context_line":"                        \u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":269,"context_line":"                        \u0027%(job)s to reach Scheduled state.  Job is still \u0027"},{"line_number":270,"context_line":"                        \u0027in %(status)s state.\u0027) %"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_08fd0eb0","line":267,"updated":"2019-07-16 15:57:27.000000000","message":"maybe decouple the message from the error as in L236-242","commit_id":"62c95a7c966a4694082ba1e3f1b951ceb8facd2d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"41a151f1ec545fb2be92b0e879095311a03d7ad7","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                raise exception.DracOperationError("},{"line_number":267,"context_line":"                    error\u003d_("},{"line_number":268,"context_line":"                        \u0027Timed out waiting BIOS configuration for job \u0027"},{"line_number":269,"context_line":"                        \u0027%(job)s to reach Scheduled state.  Job is still \u0027"},{"line_number":270,"context_line":"                        \u0027in %(status)s state.\u0027) %"},{"line_number":271,"context_line":"                    {\u0027job\u0027: job_id, \u0027status\u0027: job_entry.status})"},{"line_number":272,"context_line":"            time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_0ac4b43f","line":269,"range":{"start_line":269,"start_character":58,"end_line":269,"end_character":63},"updated":"2019-07-24 04:19:53.000000000","message":"nit: Extra space.","commit_id":"62c95a7c966a4694082ba1e3f1b951ceb8facd2d"}],"ironic/drivers/modules/drac/power.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"295afdf7a4d3716278b55adffd8902d796c011ef","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    driver_internal_info[\u0027drac_boot_device\u0027] \u003d None"},{"line_number":79,"context_line":"    node.driver_internal_info \u003d driver_internal_info"},{"line_number":80,"context_line":"    node.save()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def _set_power_state(node, power_state):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_01bde800","side":"PARENT","line":80,"range":{"start_line":80,"start_character":4,"end_line":80,"end_character":15},"updated":"2019-01-30 05:05:35.000000000","message":"Why is this being removed?","commit_id":"10bf5d5c2afcac7315d7106dac0576d50f26c989"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"b7a94fce50f7885056ef89a906a9ac089544a77a","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    driver_internal_info[\u0027drac_boot_device\u0027] \u003d None"},{"line_number":79,"context_line":"    node.driver_internal_info \u003d driver_internal_info"},{"line_number":80,"context_line":"    node.save()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def _set_power_state(node, power_state):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_cae370d8","side":"PARENT","line":80,"range":{"start_line":80,"start_character":4,"end_line":80,"end_character":15},"in_reply_to":"9fdfeff1_01bde800","updated":"2019-01-30 15:21:33.000000000","message":"It is being moved to L118 to ensure the node state is not saved until the job is actually scheduled for execution in the iDrac.","commit_id":"10bf5d5c2afcac7315d7106dac0576d50f26c989"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"295afdf7a4d3716278b55adffd8902d796c011ef","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    job_ids \u003d None"},{"line_number":83,"context_line":"    if commit_job_id is not None:"},{"line_number":84,"context_line":"        client \u003d drac_common.get_drac_client(node)"},{"line_number":85,"context_line":"        reboot_job_id \u003d client.create_reboot_job()"},{"line_number":86,"context_line":"        job_ids \u003d [commit_job_id, reboot_job_id]"},{"line_number":87,"context_line":"    return job_ids"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_813eb888","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":50},"updated":"2019-01-30 05:05:35.000000000","message":"Does this needs to be protected in a try/except block to catch drac_exceptions ?","commit_id":"ac15f3567e52b5f12761e0ad7b19e1139dd85594"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"b7a94fce50f7885056ef89a906a9ac089544a77a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    job_ids \u003d None"},{"line_number":83,"context_line":"    if commit_job_id is not None:"},{"line_number":84,"context_line":"        client \u003d drac_common.get_drac_client(node)"},{"line_number":85,"context_line":"        reboot_job_id \u003d client.create_reboot_job()"},{"line_number":86,"context_line":"        job_ids \u003d [commit_job_id, reboot_job_id]"},{"line_number":87,"context_line":"    return job_ids"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_85e9dbb7","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":50},"in_reply_to":"9fdfeff1_813eb888","updated":"2019-01-30 15:21:33.000000000","message":"I will move the call to the _commit_boot_list_change() to be inside the try/except block in _set_power_state()","commit_id":"ac15f3567e52b5f12761e0ad7b19e1139dd85594"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"0c2ac166b5df6cedd83b268813d9a896b6b115a1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                    boot_device[\u0027persistent\u0027],"},{"line_number":79,"context_line":"                                                    start_time\u003dNone)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    driver_internal_info[\u0027drac_boot_device\u0027] \u003d None"},{"line_number":82,"context_line":"    node.driver_internal_info \u003d driver_internal_info"},{"line_number":83,"context_line":"    job_ids \u003d None"},{"line_number":84,"context_line":"    if commit_job_id is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_3650590b","line":81,"range":{"start_line":81,"start_character":4,"end_line":81,"end_character":51},"updated":"2019-01-31 06:13:51.000000000","message":"Better to pop this instead of setting it to None to clear it from driver_internal_info.\ndriver_internal_info.pop(\u0027drac_boot_device\u0027, None)","commit_id":"64b5380a13e42cca8b683ba9591ead5c8ed4c411"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"28ab7bc7c7f29739688b3d0c6f572acd5acc50ee","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                    boot_device[\u0027persistent\u0027],"},{"line_number":79,"context_line":"                                                    start_time\u003dNone)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    driver_internal_info[\u0027drac_boot_device\u0027] \u003d None"},{"line_number":82,"context_line":"    node.driver_internal_info \u003d driver_internal_info"},{"line_number":83,"context_line":"    job_ids \u003d None"},{"line_number":84,"context_line":"    if commit_job_id is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_79bed2ff","line":81,"range":{"start_line":81,"start_character":4,"end_line":81,"end_character":51},"in_reply_to":"9fdfeff1_3650590b","updated":"2019-01-31 07:59:41.000000000","message":"++","commit_id":"64b5380a13e42cca8b683ba9591ead5c8ed4c411"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"5b7aecf08dc1962744da9f8db1fd938080bbaff1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                    boot_device[\u0027persistent\u0027],"},{"line_number":79,"context_line":"                                                    start_time\u003dNone)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    driver_internal_info[\u0027drac_boot_device\u0027] \u003d None"},{"line_number":82,"context_line":"    node.driver_internal_info \u003d driver_internal_info"},{"line_number":83,"context_line":"    job_ids \u003d None"},{"line_number":84,"context_line":"    if commit_job_id is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_bdb97d79","line":81,"range":{"start_line":81,"start_character":4,"end_line":81,"end_character":51},"in_reply_to":"9fdfeff1_79bed2ff","updated":"2019-02-07 21:12:45.000000000","message":"Will do.  I was just leaving the existing code as is, but that makes sense.","commit_id":"64b5380a13e42cca8b683ba9591ead5c8ed4c411"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"0c2ac166b5df6cedd83b268813d9a896b6b115a1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                    boot_device[\u0027persistent\u0027],"},{"line_number":79,"context_line":"                                                    start_time\u003dNone)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    driver_internal_info[\u0027drac_boot_device\u0027] \u003d None"},{"line_number":82,"context_line":"    node.driver_internal_info \u003d driver_internal_info"},{"line_number":83,"context_line":"    job_ids \u003d None"},{"line_number":84,"context_line":"    if commit_job_id is not None:"},{"line_number":85,"context_line":"        client \u003d drac_common.get_drac_client(node)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_43c1a1e4","line":82,"range":{"start_line":81,"start_character":4,"end_line":82,"end_character":52},"updated":"2019-01-31 06:13:51.000000000","message":"Since this is done unconditionally, can we move these lines (L81-L82) to L120 where we perform node.save()?","commit_id":"64b5380a13e42cca8b683ba9591ead5c8ed4c411"},{"author":{"_account_id":28370,"name":"Mark Beierl","email":"mark.beierl@canonical.com","username":"mbeierl"},"change_message_id":"5b7aecf08dc1962744da9f8db1fd938080bbaff1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                    boot_device[\u0027persistent\u0027],"},{"line_number":79,"context_line":"                                                    start_time\u003dNone)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    driver_internal_info[\u0027drac_boot_device\u0027] \u003d None"},{"line_number":82,"context_line":"    node.driver_internal_info \u003d driver_internal_info"},{"line_number":83,"context_line":"    job_ids \u003d None"},{"line_number":84,"context_line":"    if commit_job_id is not None:"},{"line_number":85,"context_line":"        client \u003d drac_common.get_drac_client(node)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_7daf9529","line":82,"range":{"start_line":81,"start_character":4,"end_line":82,"end_character":52},"in_reply_to":"9fdfeff1_19430615","updated":"2019-02-07 21:12:45.000000000","message":"Will do.","commit_id":"64b5380a13e42cca8b683ba9591ead5c8ed4c411"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"28ab7bc7c7f29739688b3d0c6f572acd5acc50ee","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                    boot_device[\u0027persistent\u0027],"},{"line_number":79,"context_line":"                                                    start_time\u003dNone)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    driver_internal_info[\u0027drac_boot_device\u0027] \u003d None"},{"line_number":82,"context_line":"    node.driver_internal_info \u003d driver_internal_info"},{"line_number":83,"context_line":"    job_ids \u003d None"},{"line_number":84,"context_line":"    if commit_job_id is not None:"},{"line_number":85,"context_line":"        client \u003d drac_common.get_drac_client(node)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_19430615","line":82,"range":{"start_line":81,"start_character":4,"end_line":82,"end_character":52},"in_reply_to":"9fdfeff1_43c1a1e4","updated":"2019-01-31 07:59:41.000000000","message":"++ That would help this make more sense when reading through it.","commit_id":"64b5380a13e42cca8b683ba9591ead5c8ed4c411"}],"releasenotes/notes/drac-fix-power-on-reboot-race-condition-fe712aa9c79ee252.yaml":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c2fc74bf0acd142e356dc66455c255c7a1590848","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes an issue where a configuration job does not transition to the"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7faddb67_379ed707","line":1,"updated":"2019-07-04 10:06:52.000000000","message":"let\u0027s also add a features section to mention the new conf option \u0027boot_device_job_status_timeout\u0027","commit_id":"04b520f52395ad7f8715e445aaa4c374566f0d7b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"41a151f1ec545fb2be92b0e879095311a03d7ad7","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds a new configuration option ``boot_device_job_status_timeout`` that"},{"line_number":5,"context_line":"    specifies the Maximum amount of time (in seconds) to wait for the boot"},{"line_number":6,"context_line":"    device configuration job to transition to the scheduled state to allow a"},{"line_number":7,"context_line":"    reboot or power on action to complete."},{"line_number":8,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"7faddb67_ca8d3c2b","line":5,"range":{"start_line":5,"start_character":18,"end_line":5,"end_character":25},"updated":"2019-07-24 04:19:53.000000000","message":"nit: s/ Maximum / maximum /","commit_id":"62c95a7c966a4694082ba1e3f1b951ceb8facd2d"}]}
