)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"54c064f1ebb2ef4edac2c10aeb997d09b7fe9e0a","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"3.available volume reset to in-use - 400"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"4. volume reset state to same state - 400"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The _reset_status method is override in VolumeAdminController class"},{"line_number":22,"context_line":"to handle different volume states."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"84e039ad_79a28acd","line":19,"range":{"start_line":19,"start_character":3,"end_line":19,"end_character":35},"updated":"2022-02-08 15:30:05.000000000","message":"I noted this on patchset 16, but, I don\u0027t think we should block this case.  It isn\u0027t harmful as far as I can tell, and may just make things more complicated for users w/o any real benefit.\n\nIs there a good reason to restrict this case?","commit_id":"87cbbe838a7861c6f75bb58a88797517bcc11ee4"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"d56bdd57946ed313c45e44539a73a27498a7e7d5","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"3.available volume reset to in-use - 400"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"4. volume reset state to same state - 400"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The _reset_status method is override in VolumeAdminController class"},{"line_number":22,"context_line":"to handle different volume states."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"1045b002_59f1bebc","line":19,"range":{"start_line":19,"start_character":3,"end_line":19,"end_character":35},"in_reply_to":"84e039ad_79a28acd","updated":"2022-02-08 16:53:23.000000000","message":"Done","commit_id":"87cbbe838a7861c6f75bb58a88797517bcc11ee4"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"235366388185a86770dc9d3f83f409b4beed72ad","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Reset state robustification for volume os-reset_status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit changes the os-reset_status volume-api"},{"line_number":10,"context_line":"to handle the bellow use cases"},{"line_number":11,"context_line":"1.If volume1 has an attachment active."},{"line_number":12,"context_line":"$ cinder reset-state --state available volume1"},{"line_number":13,"context_line":"400, ERROR: Cannot reset-state to available because attachments still exist."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"76ee220e_16c91b1a","line":10,"range":{"start_line":10,"start_character":14,"end_line":10,"end_character":21},"updated":"2022-02-09 14:23:16.000000000","message":"nit: below","commit_id":"109f1d42196d90287ef014b7ded89676c2fa992d"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"cf66a2431fe1bc3a6dd8aa586eecf0002a0faf2c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Reset state robustification for volume os-reset_status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit changes the os-reset_status volume-api"},{"line_number":10,"context_line":"to handle the bellow use cases"},{"line_number":11,"context_line":"1.If volume1 has an attachment active."},{"line_number":12,"context_line":"$ cinder reset-state --state available volume1"},{"line_number":13,"context_line":"400, ERROR: Cannot reset-state to available because attachments still exist."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"61284c0a_84e36ab6","line":10,"range":{"start_line":10,"start_character":14,"end_line":10,"end_character":21},"in_reply_to":"76ee220e_16c91b1a","updated":"2022-02-09 17:44:28.000000000","message":"Done","commit_id":"109f1d42196d90287ef014b7ded89676c2fa992d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"2e419195ba1fa0a93e152899cc97d080bd85e28b","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The _reset_status method is override in VolumeAdminController class"},{"line_number":20,"context_line":"to handle different volume states."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Partial implement blueprint reset-state-robustification"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"API state reference sheet"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"17be9eb3_095718b2","line":21,"updated":"2022-02-09 17:13:28.000000000","message":"Don\u0027t forget to add the note [0]  we discussed in today\u0027s cinder meeting here.\n\n[0] https://etherpad.opendev.org/p/no-foot-shooting","commit_id":"109f1d42196d90287ef014b7ded89676c2fa992d"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"cf66a2431fe1bc3a6dd8aa586eecf0002a0faf2c","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The _reset_status method is override in VolumeAdminController class"},{"line_number":20,"context_line":"to handle different volume states."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Partial implement blueprint reset-state-robustification"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"API state reference sheet"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"17d709ef_21e3b5b2","line":21,"in_reply_to":"17be9eb3_095718b2","updated":"2022-02-09 17:44:28.000000000","message":"Done","commit_id":"109f1d42196d90287ef014b7ded89676c2fa992d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"7221dfebcf9b4dcce65142e8bb69999fb4f6a771","unresolved":true,"context_lines":[{"line_number":26,"context_line":"Block Storage API. This change is not microversioned because it doesn\u0027t"},{"line_number":27,"context_line":"make sense to only prevent operators from shooting themselves in the"},{"line_number":28,"context_line":"foot if they happen to specify an appropriate microversion,"},{"line_number":29,"context_line":"and be greviously wounded otherwise."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Partial implement blueprint reset-state-robustification"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"977ece0c_54d0cf04","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":17},"updated":"2022-02-10 15:55:17.000000000","message":"nit:  grievously","commit_id":"101ebfaaab426771087a6cbdfd3c58c20e516a37"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"16e5496140569fe73e04298135bb918cb51fb33b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Block Storage API. This change is not microversioned because it doesn\u0027t"},{"line_number":27,"context_line":"make sense to only prevent operators from shooting themselves in the"},{"line_number":28,"context_line":"foot if they happen to specify an appropriate microversion,"},{"line_number":29,"context_line":"and be greviously wounded otherwise."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Partial implement blueprint reset-state-robustification"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"30c91b7d_7def117e","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":17},"in_reply_to":"977ece0c_54d0cf04","updated":"2022-02-11 04:14:09.000000000","message":"Done","commit_id":"101ebfaaab426771087a6cbdfd3c58c20e516a37"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"adf48795a92441fcc6bc5b383dc7defd374b12e5","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Reset state robustification for volume os-reset_status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit changes the os-reset_status volume-api"},{"line_number":10,"context_line":"to handle the bellow use cases"},{"line_number":11,"context_line":"1.If volume1 has an attachment active."},{"line_number":12,"context_line":"$ cinder reset-state --state available volume1"},{"line_number":13,"context_line":"400, ERROR: Cannot reset-state to available because attachments still exist."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"43e8dadf_d74b43d3","line":10,"range":{"start_line":10,"start_character":14,"end_line":10,"end_character":20},"updated":"2022-02-15 15:22:59.000000000","message":"if you have to push another PS, please change this to \u0027below\u0027","commit_id":"51bf78cb34ca3ddfab82d1e98d085334c133179f"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"4fe030bc8a645fd2151bcee0393b32849226b4c6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Reset state robustification for volume os-reset_status"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit changes the os-reset_status volume-api"},{"line_number":10,"context_line":"to handle the bellow use cases"},{"line_number":11,"context_line":"1.If volume1 has an attachment active."},{"line_number":12,"context_line":"$ cinder reset-state --state available volume1"},{"line_number":13,"context_line":"400, ERROR: Cannot reset-state to available because attachments still exist."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"f9b5781d_5b912d02","line":10,"range":{"start_line":10,"start_character":14,"end_line":10,"end_character":20},"in_reply_to":"43e8dadf_d74b43d3","updated":"2022-02-15 16:49:45.000000000","message":"Done","commit_id":"51bf78cb34ca3ddfab82d1e98d085334c133179f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"adf48795a92441fcc6bc5b383dc7defd374b12e5","unresolved":true,"context_lines":[{"line_number":26,"context_line":"Block Storage API. This change is not microversioned because it doesn\u0027t"},{"line_number":27,"context_line":"make sense to only prevent operators from shooting themselves in the"},{"line_number":28,"context_line":"foot if they happen to specify an appropriate microversion,"},{"line_number":29,"context_line":"and be greviously wounded otherwise."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Partial implement blueprint reset-state-robustification"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"fc1bb171_8e7a7b8d","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":17},"updated":"2022-02-15 15:22:59.000000000","message":"this one is my fault ... should be \u0027grievously\u0027!","commit_id":"51bf78cb34ca3ddfab82d1e98d085334c133179f"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"4fe030bc8a645fd2151bcee0393b32849226b4c6","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Block Storage API. This change is not microversioned because it doesn\u0027t"},{"line_number":27,"context_line":"make sense to only prevent operators from shooting themselves in the"},{"line_number":28,"context_line":"foot if they happen to specify an appropriate microversion,"},{"line_number":29,"context_line":"and be greviously wounded otherwise."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Partial implement blueprint reset-state-robustification"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"4b8460c7_0137eabb","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":17},"in_reply_to":"fc1bb171_8e7a7b8d","updated":"2022-02-15 16:49:45.000000000","message":"Done","commit_id":"51bf78cb34ca3ddfab82d1e98d085334c133179f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"fd92c4974ed8786b12865434018a6454d4564b8d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"5d91e6ab_3c794b7e","updated":"2022-02-09 15:06:02.000000000","message":"Code looks ok. Looks like comments have been addressed.","commit_id":"109f1d42196d90287ef014b7ded89676c2fa992d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"2e419195ba1fa0a93e152899cc97d080bd85e28b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"80465542_a0cf286a","updated":"2022-02-09 17:13:28.000000000","message":"Don\u0027t forget to fix the commit message.","commit_id":"109f1d42196d90287ef014b7ded89676c2fa992d"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"d56bdd57946ed313c45e44539a73a27498a7e7d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"10a9217a_6dcab922","updated":"2022-02-08 16:53:23.000000000","message":"eric i forgot to update commit msg i\u0027ve already removed it .","commit_id":"109f1d42196d90287ef014b7ded89676c2fa992d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"7221dfebcf9b4dcce65142e8bb69999fb4f6a771","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"c080237f_08a74e26","updated":"2022-02-10 15:55:17.000000000","message":"A nit in the commit if you need to push up again.  Otherwise, updates look fine.","commit_id":"101ebfaaab426771087a6cbdfd3c58c20e516a37"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"7a50bff4ba19cb08fcf64a6fdd42d8c5f1e1da6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"5b1b2454_a1370d65","updated":"2022-02-11 14:00:53.000000000","message":"Looks good.  Thank you for addressing.","commit_id":"c372fa9334a8051aa11525be69fd3322c996af38"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc1ff71772816ebef19126b83b48461e18d8a110","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"3b11cf0b_8accc98f","updated":"2022-02-14 21:13:01.000000000","message":"Mostly looks good, but I think you need to change the order of events slightly in _reset_status().","commit_id":"c372fa9334a8051aa11525be69fd3322c996af38"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"adf48795a92441fcc6bc5b383dc7defd374b12e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"03ed3e39_b2a71f01","updated":"2022-02-15 15:22:59.000000000","message":"I think the order of events in the reset state function isn\u0027t quite right, see comment inline.  (The good thing is that once we get it right in this patch, it should make the other patches easier to write.)","commit_id":"51bf78cb34ca3ddfab82d1e98d085334c133179f"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"dbe1ef903b00d1d765eb07ca14dfd4204e298e2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"128dfa39_32d4bf4a","updated":"2022-02-15 11:03:24.000000000","message":"recheck","commit_id":"51bf78cb34ca3ddfab82d1e98d085334c133179f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"429bdd8ce7f1d860a016bde9e195dbacb600f835","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"70a85a19_8a8eac7f","updated":"2022-02-15 23:13:34.000000000","message":"It\u0027s getting closer!  See comments inline.","commit_id":"be7d8032cb852bcebf7b4d637e072aa0a01d8c50"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"131726b3bc2757e3f8bedb7b64ba5ccd92382215","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"35b21133_c62f4e1a","updated":"2022-02-15 23:01:37.000000000","message":"We may need to crank up the etherpad again to track these.  Pretty sure I\u0027ve seen tempest.api.compute.servers.test_device_tagging.TaggedAttachmentsTest.test_tagged_attachment fail earlier today (maybe twice).  Same problem, can\u0027t ssh into the instance.","commit_id":"be7d8032cb852bcebf7b4d637e072aa0a01d8c50"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5320653ea12427d67bfb1b3adcacc2a6ea2c2c6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"b68d687f_b0a784d2","updated":"2022-02-15 23:02:00.000000000","message":"recheck tempest-integrated-storage","commit_id":"be7d8032cb852bcebf7b4d637e072aa0a01d8c50"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1ebb762b433854bb1142b9b82a4fc626b3572402","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"075c768a_6e7a580b","updated":"2022-02-16 10:26:55.000000000","message":"recheck","commit_id":"054d718b233da66488241dbe8b17ddc2bce92f6d"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"60c4c244e98a57503b43a3cdce79edd0116fe17d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"0c23eb98_392d00d6","updated":"2022-02-16 11:14:18.000000000","message":"recheck","commit_id":"054d718b233da66488241dbe8b17ddc2bce92f6d"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"d6f877cfcdb9982b1214e918152826a4c636cf31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"58cca6e3_3f36991f","updated":"2022-02-16 13:20:09.000000000","message":"recheck","commit_id":"0e705979a5aa317eb47bbf738392b494ce52fff7"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"be91b2c9b73d8b284d0207ed8b57df9cdaf408d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"1cd3c8b7_fff15d7f","updated":"2022-02-16 16:44:33.000000000","message":"I gave you a bum steer on an earlier patch.  See comment inline.","commit_id":"8c681527401f2d7e52c025cb76a67c613a422392"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e0f976a413b396c5a12cc19a50bb689cd39d4ac2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"96538f24_cc25a69f","updated":"2022-02-18 13:56:41.000000000","message":"I think you may mention the wrong state in a message, otherwise this is looking good.","commit_id":"ace9d0ef23c9ff3ba2e20f0e0e31d0b1edb4a0b6"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd7e63c29e688db23544bdf8a90338c967ff686c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"afafe4c6_77855438","updated":"2022-02-22 14:41:43.000000000","message":"Sorry I didn\u0027t catch this on the last patch, but you\u0027re doing the policy check twice.  See comment inline.","commit_id":"7bb106d85a5655d2b0af5307d9292384d3ec5025"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0511cfcefdd1e1c36a26a4588295fd3c927d7c05","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":38,"id":"16f83a0e_4ef75395","updated":"2022-02-24 23:55:31.000000000","message":"This is really close ... seriously!  Possibly unused function noted inline that I\u0027d like you to take a look at.","commit_id":"2a47dc94b6c7eef062223bde031b0789d72f67fb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"88904f05649ac33efda239071401c7e36bf67c73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"7d765a37_d004123a","updated":"2022-02-26 16:03:36.000000000","message":"Let\u0027s restore the _update() function that\u0027s defined in the interface (and call it), and then I think this will be fine.  Sorry about the confusion.","commit_id":"10b30ec180bd9ea89ba880476831542aa3242960"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f371aded5f76de9adeeeb427529e94949e016f4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":41,"id":"9e7d24fc_e2592c19","updated":"2022-02-27 18:29:54.000000000","message":"Looks like you forgot to remove a commented-out line of code.","commit_id":"ca117b5a96f4e1fdca08857618ab49e8858f574a"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"ea8c6b76ba7fc23241d48e0b65c6829028744370","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":41,"id":"d58e77e8_d1ccd322","updated":"2022-02-27 13:29:29.000000000","message":"recheck","commit_id":"ca117b5a96f4e1fdca08857618ab49e8858f574a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a1dcad048c5f33dfb9422b5f67441429852a423b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"4d84263e_b2ef2b01","updated":"2022-03-01 13:11:34.000000000","message":"Let\u0027s go ahead and merge this.  It\u0027s a relatively conservative change, i.e., it excludes some reset-state cases we obviously want to eliminate and otherwise behaves the same as the old volume reset-state code.","commit_id":"61f1179c00bac6f0642f8e5d95d6607e8ee11e36"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"af37d00b136c41531265de785b144810c870b4f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"496170fb_67e6cc9e","updated":"2022-02-28 14:17:58.000000000","message":"Thanks, Tushar.  All my concerns have been addressed!","commit_id":"61f1179c00bac6f0642f8e5d95d6607e8ee11e36"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4707830377d7f8d57f8efa05130fcf7465f302c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"7acc2dec_5691e54a","updated":"2022-02-28 23:08:39.000000000","message":"This looks ok to me but I will let someone else merge given that I had previously +2ed when others still had concerns.","commit_id":"61f1179c00bac6f0642f8e5d95d6607e8ee11e36"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"8b72c4b6c9895aa81d03c1a2822816a8f3198bdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"29b0b7ff_1939358a","updated":"2022-02-28 07:46:16.000000000","message":"recheck","commit_id":"61f1179c00bac6f0642f8e5d95d6607e8ee11e36"}],"cinder/api/contrib/admin_actions.py":[{"author":{"_account_id":32171,"name":"Girish Chilukuri","email":"girish.chilukuri@ibm.com","username":"GirishChilukuri"},"change_message_id":"a2e10e5cb059ada0080772bb2ab010f42e0b27f0","unresolved":true,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @wsgi.response(HTTPStatus.ACCEPTED)"},{"line_number":85,"context_line":"    @wsgi.action(\u0027os-reset_status\u0027)"},{"line_number":86,"context_line":"    def _reset_status(self, req, id, body):"},{"line_number":87,"context_line":"        \"\"\"Reset status on the resource.\"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        def _clean_volume_attachment(context, id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"12a00598_8c6d2b65","line":86,"range":{"start_line":86,"start_character":8,"end_line":86,"end_character":21},"updated":"2021-03-01 09:47:33.000000000","message":"Still reset_status method exists in AdminController class, and commit message says that \"_reset_status method was moved to VolumeAdminController class\".\n\nor if the _reset_status still required in AdminController means then commit message should be changed, saying the _reset_status method was override in VolumeAdminController class to handle different volume states.","commit_id":"da6b3605e6e8816cb2dd61d35c3dfd29accf8e7e"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1e9a00947693e02c7f711c698fc7c5093cf8fe4d","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @wsgi.response(HTTPStatus.ACCEPTED)"},{"line_number":85,"context_line":"    @wsgi.action(\u0027os-reset_status\u0027)"},{"line_number":86,"context_line":"    def _reset_status(self, req, id, body):"},{"line_number":87,"context_line":"        \"\"\"Reset status on the resource.\"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        def _clean_volume_attachment(context, id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"30d3cd91_77d29a73","line":86,"range":{"start_line":86,"start_character":8,"end_line":86,"end_character":21},"in_reply_to":"12a00598_8c6d2b65","updated":"2022-01-21 08:43:26.000000000","message":"Done","commit_id":"da6b3605e6e8816cb2dd61d35c3dfd29accf8e7e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"69bc5cfc703d042d4a161743e347d414eb6ea305","unresolved":true,"context_lines":[{"line_number":195,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":196,"context_line":"        if update.get(\u0027status\u0027) \u003d\u003d \u0027available\u0027:"},{"line_number":197,"context_line":"            attachments \u003d ("},{"line_number":198,"context_line":"                db.volume_attachment_get_all_by_volume_id(context, id))"},{"line_number":199,"context_line":"            if attachments:"},{"line_number":200,"context_line":"                msg \u003d _(\"Cannot reset-state to available \""},{"line_number":201,"context_line":"                        \"because volume has attachments.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"bafe67d7_9086aa62","line":198,"range":{"start_line":198,"start_character":16,"end_line":198,"end_character":57},"updated":"2021-08-02 17:47:50.000000000","message":"I believe you can query volume.volume_attachment instead of calling db.volume_attachment_get_all_by_volume-id.","commit_id":"59080c8b14c5a58052bb6ec41844ced4c988f484"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"8527c365265a0a47e5c69dda469f3bc269feb896","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":196,"context_line":"        if update.get(\u0027status\u0027) \u003d\u003d \u0027available\u0027:"},{"line_number":197,"context_line":"            attachments \u003d ("},{"line_number":198,"context_line":"                db.volume_attachment_get_all_by_volume_id(context, id))"},{"line_number":199,"context_line":"            if attachments:"},{"line_number":200,"context_line":"                msg \u003d _(\"Cannot reset-state to available \""},{"line_number":201,"context_line":"                        \"because volume has attachments.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"f4e0e432_6a894e83","line":198,"range":{"start_line":198,"start_character":16,"end_line":198,"end_character":57},"in_reply_to":"947901ba_bf0505ed","updated":"2021-11-22 15:14:55.000000000","message":"Done","commit_id":"59080c8b14c5a58052bb6ec41844ced4c988f484"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"39c8534bc5a0f1102a71230dcca222724354d6db","unresolved":true,"context_lines":[{"line_number":195,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":196,"context_line":"        if update.get(\u0027status\u0027) \u003d\u003d \u0027available\u0027:"},{"line_number":197,"context_line":"            attachments \u003d ("},{"line_number":198,"context_line":"                db.volume_attachment_get_all_by_volume_id(context, id))"},{"line_number":199,"context_line":"            if attachments:"},{"line_number":200,"context_line":"                msg \u003d _(\"Cannot reset-state to available \""},{"line_number":201,"context_line":"                        \"because volume has attachments.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"947901ba_bf0505ed","line":198,"range":{"start_line":198,"start_character":16,"end_line":198,"end_character":57},"in_reply_to":"bafe67d7_9086aa62","updated":"2021-09-02 07:23:03.000000000","message":"I\u0027ve tried it it throws error VolumeAttachmentList object is not callable\nso i think it\u0027s correct since it\u0027s also called in AdminController class same as above","commit_id":"59080c8b14c5a58052bb6ec41844ced4c988f484"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d98d89deb2ec046c8d9ef27819e33f801cbb0e2f","unresolved":true,"context_lines":[{"line_number":189,"context_line":"        volume \u003d objects.Volume.get_by_id(context, id)"},{"line_number":190,"context_line":"        if update.get(\u0027status\u0027) and (update.get(\u0027status\u0027)"},{"line_number":191,"context_line":"                                     \u003d\u003d volume.get(\u0027status\u0027)):"},{"line_number":192,"context_line":"            msg \u003d _(\"Cannot reset-state to same state\")"},{"line_number":193,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":194,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":195,"context_line":"            _clean_volume_attachment(context, id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"625de711_95aaa252","line":192,"range":{"start_line":192,"start_character":12,"end_line":192,"end_character":55},"updated":"2021-09-10 16:12:03.000000000","message":"I don\u0027t think we should block this case.  It isn\u0027t a harmful thing to do, and allowing it will make things easier for users calling the reset-state API from multiple places at once, etc.","commit_id":"1e0cad3fe1ef0add6786efaf5bc6a02ef49863ab"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"8527c365265a0a47e5c69dda469f3bc269feb896","unresolved":true,"context_lines":[{"line_number":189,"context_line":"        volume \u003d objects.Volume.get_by_id(context, id)"},{"line_number":190,"context_line":"        if update.get(\u0027status\u0027) and (update.get(\u0027status\u0027)"},{"line_number":191,"context_line":"                                     \u003d\u003d volume.get(\u0027status\u0027)):"},{"line_number":192,"context_line":"            msg \u003d _(\"Cannot reset-state to same state\")"},{"line_number":193,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":194,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":195,"context_line":"            _clean_volume_attachment(context, id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"e50c80dc_1c57f8c5","line":192,"range":{"start_line":192,"start_character":12,"end_line":192,"end_character":55},"in_reply_to":"625de711_95aaa252","updated":"2021-11-22 15:14:55.000000000","message":"done","commit_id":"1e0cad3fe1ef0add6786efaf5bc6a02ef49863ab"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1d42f9f508bb79612c5d54a0f83952f0f82cbab2","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        volume \u003d objects.Volume.get_by_id(context, id)"},{"line_number":190,"context_line":"        if update.get(\u0027status\u0027) and (update.get(\u0027status\u0027)"},{"line_number":191,"context_line":"                                     \u003d\u003d volume.get(\u0027status\u0027)):"},{"line_number":192,"context_line":"            msg \u003d _(\"Cannot reset-state to same state\")"},{"line_number":193,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":194,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":195,"context_line":"            _clean_volume_attachment(context, id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"e0569699_d73d9f69","line":192,"range":{"start_line":192,"start_character":12,"end_line":192,"end_character":55},"in_reply_to":"e50c80dc_1c57f8c5","updated":"2022-01-21 08:40:15.000000000","message":"Done","commit_id":"1e0cad3fe1ef0add6786efaf5bc6a02ef49863ab"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc1ff71772816ebef19126b83b48461e18d8a110","unresolved":true,"context_lines":[{"line_number":168,"context_line":"    @wsgi.response(HTTPStatus.ACCEPTED)"},{"line_number":169,"context_line":"    @wsgi.action(\u0027os-reset_status\u0027)"},{"line_number":170,"context_line":"    def _reset_status(self, req, id, body):"},{"line_number":171,"context_line":"        \"\"\"Reset status on the resource.\"\"\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        def _clean_volume_attachment(context, id):"},{"line_number":174,"context_line":"            attachments \u003d ("}],"source_content_type":"text/x-python","patch_set":24,"id":"22eb879a_897d5bbb","line":171,"range":{"start_line":171,"start_character":31,"end_line":171,"end_character":39},"updated":"2022-02-14 21:13:01.000000000","message":"I think you can say \u0027volume\u0027 here, given that it\u0027s the volume implementation of this function.","commit_id":"c372fa9334a8051aa11525be69fd3322c996af38"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1cbc78ec6290a079f45c8510deef52b68d10a402","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    @wsgi.response(HTTPStatus.ACCEPTED)"},{"line_number":169,"context_line":"    @wsgi.action(\u0027os-reset_status\u0027)"},{"line_number":170,"context_line":"    def _reset_status(self, req, id, body):"},{"line_number":171,"context_line":"        \"\"\"Reset status on the resource.\"\"\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        def _clean_volume_attachment(context, id):"},{"line_number":174,"context_line":"            attachments \u003d ("}],"source_content_type":"text/x-python","patch_set":24,"id":"a52b9d40_949418fe","line":171,"range":{"start_line":171,"start_character":31,"end_line":171,"end_character":39},"in_reply_to":"22eb879a_897d5bbb","updated":"2022-02-15 06:41:22.000000000","message":"Done","commit_id":"c372fa9334a8051aa11525be69fd3322c996af38"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc1ff71772816ebef19126b83b48461e18d8a110","unresolved":true,"context_lines":[{"line_number":206,"context_line":"        # Not found exception will be handled at the wsgi level"},{"line_number":207,"context_line":"        self._update(context, id, update)"},{"line_number":208,"context_line":"        self._remove_worker(context, id)"},{"line_number":209,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.end\u0027)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @wsgi.response(HTTPStatus.ACCEPTED)"},{"line_number":212,"context_line":"    @wsgi.action(\u0027os-force_detach\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"31789de8_38c0d028","line":209,"range":{"start_line":209,"start_character":7,"end_line":209,"end_character":66},"updated":"2022-02-14 21:13:01.000000000","message":"Note that if _update() raises NotFound at line 207, we won\u0027t send the \u0027end\u0027 notification (we sent the \u0027start\u0027 at line 187).  Also, the authorization check is done in _update(), so it\u0027s also possible it will raise a 403, which will also mean we\u0027ve sent a start but not an end notification.  Same thing goes for your status checks ... they are happening after the \u0027start\u0027 notification has been sent.\n\nI suggest refactoring this function to call validate_update(), then get the volume right away, then do the auth check, then make sure you\u0027re going to allow the staus change; after that, send the start notification, complete your work, and then send the end notification.","commit_id":"c372fa9334a8051aa11525be69fd3322c996af38"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1cbc78ec6290a079f45c8510deef52b68d10a402","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        # Not found exception will be handled at the wsgi level"},{"line_number":207,"context_line":"        self._update(context, id, update)"},{"line_number":208,"context_line":"        self._remove_worker(context, id)"},{"line_number":209,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.end\u0027)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @wsgi.response(HTTPStatus.ACCEPTED)"},{"line_number":212,"context_line":"    @wsgi.action(\u0027os-force_detach\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"1f21ad17_5daed6dd","line":209,"range":{"start_line":209,"start_character":7,"end_line":209,"end_character":66},"in_reply_to":"31789de8_38c0d028","updated":"2022-02-15 06:41:22.000000000","message":"Done","commit_id":"c372fa9334a8051aa11525be69fd3322c996af38"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"adf48795a92441fcc6bc5b383dc7defd374b12e5","unresolved":true,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        update \u003d self.validate_update(req, body\u003dbody)"},{"line_number":182,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":183,"context_line":"        self._update(context, id, update)"},{"line_number":184,"context_line":"        msg \u003d \"Updating %(resource)s \u0027%(id)s\u0027 with \u0027%(update)r\u0027\""},{"line_number":185,"context_line":"        LOG.debug(msg, {\u0027resource\u0027: self.resource_name, \u0027id\u0027: id,"},{"line_number":186,"context_line":"                        \u0027update\u0027: update})"}],"source_content_type":"text/x-python","patch_set":26,"id":"1ca6d9a3_1a5b334c","line":183,"updated":"2022-02-15 15:22:59.000000000","message":"I think you are calling _update() too early here, we don\u0027t want to change the database until we\u0027re sure the request is completely OK.\n\nI think you\u0027ll have to refactor _update() to remove the volume-get and auth code out of there.  There may not be enough left to keep it as a function, that\u0027s up to you.\n\nI think what you need to do in this function is:\n\n  # any exceptions raised will be handled at the wsgi level\n  # validate the request body (will raise if the schema check fails)\n  update \u003d self.validate_update(req, body\u003dbody)\n  # see if the volume is available (will raise if not found)\n  context \u003d req.environ[\u0027cinder.context\u0027]\n  volume \u003d objects.Volume.get_by_id(context, id)\n  # see if the caller is authorized to do this (will raise if not)\n  self.authorize(context, \u0027reset_status\u0027, target_obj\u003dvolume)\n\n  # at this point, we still don\u0027t know if we\u0027re going to\n  # reset the volume\u0027s state.  Need to check what the caller\n  # is requesting first.\n  if update.get(\u0027status\u0027) \u003d\u003d \u0027available\u0027:\n      attachments \u003d (\n          db.volume_attachment_get_all_by_volume_id(context, id))\n      if attachments:\n          msg \u003d _(\"Cannot reset-state to available \"\n                  \"because volume has attachments.\")\n          raise webob.exc.HTTPBadRequest(explanation\u003dmsg)\n  elif update.get(\u0027status\u0027) \u003d\u003d \u0027in-use\u0027:\n      attachments \u003d (\n          db.volume_attachment_get_all_by_volume_id(context, id))\n      if not attachments:\n          msg \u003d _(\"Cannot reset-state to in-use \"\n                  \"because volume does not have any attachments.\")\n          raise webob.exc.HTTPBadRequest(explanation\u003dmsg)\n\n  # ok, we are ready to do some work!\n  msg \u003d \"Updating %(resource)s \u0027%(id)s\u0027 with \u0027%(update)r\u0027\"\n  LOG.debug(msg, {\u0027resource\u0027: self.resource_name, \u0027id\u0027: id,\n                  \u0027update\u0027: update})\n  self._notify_reset_status(context, id, \u0027reset_status.start\u0027)\n\n  self._update(context, id, update)\n  self._remove_worker(context, id)\n  if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:\n      _clean_volume_attachment(context, id)\n\n  self._notify_reset_status(context, id, \u0027reset_status.end\u0027)\n\nI think that covers everything, but you will of course check to make sure I didn\u0027t forget something!","commit_id":"51bf78cb34ca3ddfab82d1e98d085334c133179f"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"4fe030bc8a645fd2151bcee0393b32849226b4c6","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        update \u003d self.validate_update(req, body\u003dbody)"},{"line_number":182,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":183,"context_line":"        self._update(context, id, update)"},{"line_number":184,"context_line":"        msg \u003d \"Updating %(resource)s \u0027%(id)s\u0027 with \u0027%(update)r\u0027\""},{"line_number":185,"context_line":"        LOG.debug(msg, {\u0027resource\u0027: self.resource_name, \u0027id\u0027: id,"},{"line_number":186,"context_line":"                        \u0027update\u0027: update})"}],"source_content_type":"text/x-python","patch_set":26,"id":"e52b56b6_8aa88541","line":183,"in_reply_to":"1ca6d9a3_1a5b334c","updated":"2022-02-15 16:49:45.000000000","message":"Done","commit_id":"51bf78cb34ca3ddfab82d1e98d085334c133179f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"429bdd8ce7f1d860a016bde9e195dbacb600f835","unresolved":true,"context_lines":[{"line_number":187,"context_line":"        # at this point, we still don\u0027t know if we\u0027re going to"},{"line_number":188,"context_line":"        # reset the volume\u0027s state.  Need to check what the caller"},{"line_number":189,"context_line":"        # is requesting first."},{"line_number":190,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":191,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":192,"context_line":"        if update.get(\u0027status\u0027) \u003d\u003d \u0027available\u0027:"},{"line_number":193,"context_line":"            attachments \u003d ("},{"line_number":194,"context_line":"                db.volume_attachment_get_all_by_volume_id(context, id))"}],"source_content_type":"text/x-python","patch_set":27,"id":"b135b92e_b2bbfebd","line":191,"range":{"start_line":190,"start_character":0,"end_line":191,"end_character":49},"updated":"2022-02-15 23:13:34.000000000","message":"-1: I think this is part of the reset action, because you\u0027re cleaning the attachments.  So this should go after the \"start\" notification but before the call to _update().\n\nThe only stuff you want up here before the work starts at line 210 are checks that will cause a Bad Request to be raised.","commit_id":"be7d8032cb852bcebf7b4d637e072aa0a01d8c50"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"53e5d9e6c3d15f59bba48ad0726de94d1bf74add","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        # at this point, we still don\u0027t know if we\u0027re going to"},{"line_number":188,"context_line":"        # reset the volume\u0027s state.  Need to check what the caller"},{"line_number":189,"context_line":"        # is requesting first."},{"line_number":190,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":191,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":192,"context_line":"        if update.get(\u0027status\u0027) \u003d\u003d \u0027available\u0027:"},{"line_number":193,"context_line":"            attachments \u003d ("},{"line_number":194,"context_line":"                db.volume_attachment_get_all_by_volume_id(context, id))"}],"source_content_type":"text/x-python","patch_set":27,"id":"e794ed8b_51d7b4b1","line":191,"range":{"start_line":190,"start_character":0,"end_line":191,"end_character":49},"in_reply_to":"b135b92e_b2bbfebd","updated":"2022-02-16 07:38:22.000000000","message":"Done","commit_id":"be7d8032cb852bcebf7b4d637e072aa0a01d8c50"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"12ae0a62cfa2cee54f1c410a41c214f7c1ba5530","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        # at this point, we still don\u0027t know if we\u0027re going to"},{"line_number":188,"context_line":"        # reset the volume\u0027s state.  Need to check what the caller"},{"line_number":189,"context_line":"        # is requesting first."},{"line_number":190,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":191,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":192,"context_line":"        if update.get(\u0027status\u0027) \u003d\u003d \u0027available\u0027:"},{"line_number":193,"context_line":"            attachments \u003d ("},{"line_number":194,"context_line":"                db.volume_attachment_get_all_by_volume_id(context, id))"}],"source_content_type":"text/x-python","patch_set":27,"id":"ec5353ef_a7f52cca","line":191,"range":{"start_line":190,"start_character":0,"end_line":191,"end_character":49},"in_reply_to":"e794ed8b_51d7b4b1","updated":"2022-02-16 16:10:46.000000000","message":"i think we need to put this part back to line 190 the zuul test are failing \n\nwebob.exc.HTTPBadRequest: Cannot reset-state to available because volume has attachments.","commit_id":"be7d8032cb852bcebf7b4d637e072aa0a01d8c50"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"429bdd8ce7f1d860a016bde9e195dbacb600f835","unresolved":true,"context_lines":[{"line_number":203,"context_line":"                msg \u003d _(\"Cannot reset-state to in-use \""},{"line_number":204,"context_line":"                        \"because volume does not have any attachments.\")"},{"line_number":205,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":206,"context_line":"        if update.get(\u0027status\u0027) and (update.get(\u0027status\u0027)"},{"line_number":207,"context_line":"                                     \u003d\u003d volume.get(\u0027status\u0027)):"},{"line_number":208,"context_line":"            msg \u003d _(\"Cannot reset-state to existing state\")"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        msg \u003d \"Updating %(resource)s \u0027%(id)s\u0027 with \u0027%(update)r\u0027\""},{"line_number":211,"context_line":"        LOG.debug(msg, {\u0027resource\u0027: self.resource_name, \u0027id\u0027: id,"}],"source_content_type":"text/x-python","patch_set":27,"id":"a5289889_19d935c2","line":208,"range":{"start_line":206,"start_character":0,"end_line":208,"end_character":59},"updated":"2022-02-15 23:13:34.000000000","message":"-1: I thought we had decided that it\u0027s ok to reset a volume to the same state?  (Also, note that even if we set the msg at line 208, we will immediately overwrite it at line 210.)","commit_id":"be7d8032cb852bcebf7b4d637e072aa0a01d8c50"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"53e5d9e6c3d15f59bba48ad0726de94d1bf74add","unresolved":false,"context_lines":[{"line_number":203,"context_line":"                msg \u003d _(\"Cannot reset-state to in-use \""},{"line_number":204,"context_line":"                        \"because volume does not have any attachments.\")"},{"line_number":205,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":206,"context_line":"        if update.get(\u0027status\u0027) and (update.get(\u0027status\u0027)"},{"line_number":207,"context_line":"                                     \u003d\u003d volume.get(\u0027status\u0027)):"},{"line_number":208,"context_line":"            msg \u003d _(\"Cannot reset-state to existing state\")"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        msg \u003d \"Updating %(resource)s \u0027%(id)s\u0027 with \u0027%(update)r\u0027\""},{"line_number":211,"context_line":"        LOG.debug(msg, {\u0027resource\u0027: self.resource_name, \u0027id\u0027: id,"}],"source_content_type":"text/x-python","patch_set":27,"id":"a80fdbbb_3055f797","line":208,"range":{"start_line":206,"start_character":0,"end_line":208,"end_character":59},"in_reply_to":"a5289889_19d935c2","updated":"2022-02-16 07:38:22.000000000","message":"Done","commit_id":"be7d8032cb852bcebf7b4d637e072aa0a01d8c50"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"be91b2c9b73d8b284d0207ed8b57df9cdaf408d3","unresolved":true,"context_lines":[{"line_number":103,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.start\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Not found exception will be handled at the wsgi level"},{"line_number":106,"context_line":"        self._update(context, id, update)"},{"line_number":107,"context_line":"        self._remove_worker(context, id)"},{"line_number":108,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":109,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.end\u0027)"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"b19e2e46_739e549d","line":109,"range":{"start_line":106,"start_character":0,"end_line":109,"end_character":49},"updated":"2022-02-16 16:44:33.000000000","message":"This was the previous order of events, I guess we need to keep the same ordering now.","commit_id":"8c681527401f2d7e52c025cb76a67c613a422392"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"42e90f9afd7214d91db896723bab265711aa1bd0","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.start\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Not found exception will be handled at the wsgi level"},{"line_number":106,"context_line":"        self._update(context, id, update)"},{"line_number":107,"context_line":"        self._remove_worker(context, id)"},{"line_number":108,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":109,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.end\u0027)"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"0d73fc34_7b2179aa","line":109,"range":{"start_line":106,"start_character":0,"end_line":109,"end_character":49},"in_reply_to":"b19e2e46_739e549d","updated":"2022-02-17 09:06:18.000000000","message":"Done","commit_id":"8c681527401f2d7e52c025cb76a67c613a422392"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"be91b2c9b73d8b284d0207ed8b57df9cdaf408d3","unresolved":true,"context_lines":[{"line_number":207,"context_line":"                  \u0027update\u0027: update})"},{"line_number":208,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.start\u0027)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":211,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":212,"context_line":"        self._update(context, id, update)"},{"line_number":213,"context_line":"        self._remove_worker(context, id)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"bfa7016f_c1559d80","line":211,"range":{"start_line":210,"start_character":0,"end_line":211,"end_character":49},"updated":"2022-02-16 16:44:33.000000000","message":"I think this needs to go after _remove_worker() ... see lines 106-109 above.","commit_id":"8c681527401f2d7e52c025cb76a67c613a422392"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"bde2ce3c5c9e0aef4cb501ee62e844d651bfc4f1","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                  \u0027update\u0027: update})"},{"line_number":208,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.start\u0027)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":211,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":212,"context_line":"        self._update(context, id, update)"},{"line_number":213,"context_line":"        self._remove_worker(context, id)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"4cfc8233_6721fa74","line":211,"range":{"start_line":210,"start_character":0,"end_line":211,"end_character":49},"in_reply_to":"4c084c1d_b0a0f1b8","updated":"2022-02-16 17:16:46.000000000","message":"ok i\u0027ll upload the patch by restoring 210-213  to wha we have 106-109 and then see","commit_id":"8c681527401f2d7e52c025cb76a67c613a422392"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4eb783e213be65d19a6038400010779f32b3af2d","unresolved":true,"context_lines":[{"line_number":207,"context_line":"                  \u0027update\u0027: update})"},{"line_number":208,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.start\u0027)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":211,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":212,"context_line":"        self._update(context, id, update)"},{"line_number":213,"context_line":"        self._remove_worker(context, id)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"4c084c1d_b0a0f1b8","line":211,"range":{"start_line":210,"start_character":0,"end_line":211,"end_character":49},"in_reply_to":"65c6a164_ee3c8381","updated":"2022-02-16 17:09:17.000000000","message":"If you look at the unit test failures, the error message is the one you have at line 194, which is in response to a condition that was not checked before.  So the problem is most likely with the policy tests.\n\nWhen you move the code to line 190, it gets rid of the problem with the test, but only because you have cleaned all the attachments!  We don\u0027t want to do that in real life.  But I do think it\u0027s worth restoring the order of the calls in lines 210-213 to match what we have at lines 106-109 so that we don\u0027t inadvertently introduce a regression.","commit_id":"8c681527401f2d7e52c025cb76a67c613a422392"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"3ae2c02850bbe68904bdbf6d650b8f562f3efa48","unresolved":true,"context_lines":[{"line_number":207,"context_line":"                  \u0027update\u0027: update})"},{"line_number":208,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.start\u0027)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"},{"line_number":211,"context_line":"            _clean_volume_attachment(context, id)"},{"line_number":212,"context_line":"        self._update(context, id, update)"},{"line_number":213,"context_line":"        self._remove_worker(context, id)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"65c6a164_ee3c8381","line":211,"range":{"start_line":210,"start_character":0,"end_line":211,"end_character":49},"in_reply_to":"bfa7016f_c1559d80","updated":"2022-02-16 16:52:24.000000000","message":"i\u0027ve tried this as well. this also leads to the py36 error \n\nwe need to move this to line 190 before         \nif update.get(\u0027status\u0027) \u003d\u003d \u0027available\u0027:\n            attachments \u003d (","commit_id":"8c681527401f2d7e52c025cb76a67c613a422392"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e0f976a413b396c5a12cc19a50bb689cd39d4ac2","unresolved":true,"context_lines":[{"line_number":196,"context_line":"            attachments \u003d ("},{"line_number":197,"context_line":"                db.volume_attachment_get_all_by_volume_id(context, id))"},{"line_number":198,"context_line":"            if not attachments:"},{"line_number":199,"context_line":"                msg \u003d _(\"Cannot reset-state to available \""},{"line_number":200,"context_line":"                        \"because volume does not have any attachments.\")"},{"line_number":201,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"a6a9f4f3_c4b3782f","line":199,"range":{"start_line":199,"start_character":47,"end_line":199,"end_character":56},"updated":"2022-02-18 13:56:41.000000000","message":"should this be \u0027in-use\u0027 ?","commit_id":"ace9d0ef23c9ff3ba2e20f0e0e31d0b1edb4a0b6"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"996e8c2ac5ddfd4b8b65923d6792e60403c3aa80","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            attachments \u003d ("},{"line_number":197,"context_line":"                db.volume_attachment_get_all_by_volume_id(context, id))"},{"line_number":198,"context_line":"            if not attachments:"},{"line_number":199,"context_line":"                msg \u003d _(\"Cannot reset-state to available \""},{"line_number":200,"context_line":"                        \"because volume does not have any attachments.\")"},{"line_number":201,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"067bdf7c_8fcdbedf","line":199,"range":{"start_line":199,"start_character":47,"end_line":199,"end_character":56},"in_reply_to":"a6a9f4f3_c4b3782f","updated":"2022-02-21 03:35:52.000000000","message":"Done","commit_id":"ace9d0ef23c9ff3ba2e20f0e0e31d0b1edb4a0b6"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dd7e63c29e688db23544bdf8a90338c967ff686c","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        volume_id \u003d args[1]"},{"line_number":137,"context_line":"        volume \u003d objects.Volume.get_by_id(context, volume_id)"},{"line_number":138,"context_line":"        self.authorize(context, \u0027reset_status\u0027, target_obj\u003dvolume)"},{"line_number":139,"context_line":"        db.volume_update(*args, **kwargs)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _get(self, *args, **kwargs):"},{"line_number":142,"context_line":"        return self.volume_api.get(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":36,"id":"0a01a49a_045e8865","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":41},"updated":"2022-02-22 14:41:43.000000000","message":"This is all that needs to happen in this function now; we\u0027ve done lines 137-138 already at lines 184-185.  It may make sense to simply call db.volume_update at line 208.  Its method signature is:\n\n  volume_update(context, volume_id, values)","commit_id":"7bb106d85a5655d2b0af5307d9292384d3ec5025"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"a7f9a927104cb55a744b4b0296b324c5b85f3abb","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        volume_id \u003d args[1]"},{"line_number":137,"context_line":"        volume \u003d objects.Volume.get_by_id(context, volume_id)"},{"line_number":138,"context_line":"        self.authorize(context, \u0027reset_status\u0027, target_obj\u003dvolume)"},{"line_number":139,"context_line":"        db.volume_update(*args, **kwargs)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _get(self, *args, **kwargs):"},{"line_number":142,"context_line":"        return self.volume_api.get(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":36,"id":"a76c99ac_45a03e2a","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":41},"in_reply_to":"0a01a49a_045e8865","updated":"2022-02-22 17:47:48.000000000","message":"Done","commit_id":"7bb106d85a5655d2b0af5307d9292384d3ec5025"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0511cfcefdd1e1c36a26a4588295fd3c927d7c05","unresolved":true,"context_lines":[{"line_number":131,"context_line":"        volume_utils.notify_about_volume_usage(context, volume,"},{"line_number":132,"context_line":"                                               message)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":135,"context_line":"        db.volume_update(*args, **kwargs)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _get(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":38,"id":"ab3cd4ff_bdf4d97c","line":134,"range":{"start_line":134,"start_character":3,"end_line":134,"end_character":39},"updated":"2022-02-24 23:55:31.000000000","message":"I think this function is no longer used?  I was thinking you could remove it, but one reason to keep it is that it\u0027s part of the interface defined by the AdminController.  If you remove it and something tries to use it, it will use the parent class method, which will raise a NotImplementedError, which hopefully would be caught in testing, so maybe removing it is OK.  If you decide to keep it, however, you should call it at line 204 so it has something to do.","commit_id":"2a47dc94b6c7eef062223bde031b0789d72f67fb"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"0c4d45ad1a62b3bcc9cacffa2600d53b0bcf6c5f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        volume_utils.notify_about_volume_usage(context, volume,"},{"line_number":132,"context_line":"                                               message)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":135,"context_line":"        db.volume_update(*args, **kwargs)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _get(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":38,"id":"56f59266_e1329db0","line":134,"range":{"start_line":134,"start_character":3,"end_line":134,"end_character":39},"in_reply_to":"23ee63b4_e82772dc","updated":"2022-02-25 15:51:23.000000000","message":"Agree. I\u0027d like to keep it. In case we need to modify the way we update the db in the future, we only need to modify this method.","commit_id":"2a47dc94b6c7eef062223bde031b0789d72f67fb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"88904f05649ac33efda239071401c7e36bf67c73","unresolved":true,"context_lines":[{"line_number":131,"context_line":"        volume_utils.notify_about_volume_usage(context, volume,"},{"line_number":132,"context_line":"                                               message)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":135,"context_line":"        db.volume_update(*args, **kwargs)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _get(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":38,"id":"f4c879dc_38c4bd71","line":134,"range":{"start_line":134,"start_character":3,"end_line":134,"end_character":39},"in_reply_to":"56f59266_e1329db0","updated":"2022-02-26 16:03:36.000000000","message":"OK, sorry, Tushar.  Let\u0027s restore this function and call it in _reset_status().","commit_id":"2a47dc94b6c7eef062223bde031b0789d72f67fb"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"3530872e75c68dfdb005a93eaf08012d3872c871","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        volume_utils.notify_about_volume_usage(context, volume,"},{"line_number":132,"context_line":"                                               message)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":135,"context_line":"        db.volume_update(*args, **kwargs)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _get(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":38,"id":"23ee63b4_e82772dc","line":134,"range":{"start_line":134,"start_character":3,"end_line":134,"end_character":39},"in_reply_to":"ab3cd4ff_bdf4d97c","updated":"2022-02-25 08:00:08.000000000","message":"Done","commit_id":"2a47dc94b6c7eef062223bde031b0789d72f67fb"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"ad9c21f78ff9a7522809e79876822b245e912bc3","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        volume_utils.notify_about_volume_usage(context, volume,"},{"line_number":132,"context_line":"                                               message)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":135,"context_line":"        db.volume_update(*args, **kwargs)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _get(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":38,"id":"ffa1ad6a_3f2b06ad","line":134,"range":{"start_line":134,"start_character":3,"end_line":134,"end_character":39},"in_reply_to":"f4c879dc_38c4bd71","updated":"2022-02-27 07:50:00.000000000","message":"Done","commit_id":"2a47dc94b6c7eef062223bde031b0789d72f67fb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f371aded5f76de9adeeeb427529e94949e016f4a","unresolved":true,"context_lines":[{"line_number":201,"context_line":"                  \u0027update\u0027: update})"},{"line_number":202,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.start\u0027)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # db.volume_update(context, id, update)"},{"line_number":205,"context_line":"        self._update(context, id, update)"},{"line_number":206,"context_line":"        self._remove_worker(context, id)"},{"line_number":207,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"}],"source_content_type":"text/x-python","patch_set":41,"id":"46a6f168_28f4b124","line":204,"range":{"start_line":204,"start_character":7,"end_line":204,"end_character":47},"updated":"2022-02-27 18:29:54.000000000","message":"Forgot to remove this commented-out line of code","commit_id":"ca117b5a96f4e1fdca08857618ab49e8858f574a"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"673bc7decdef74743114a1f4cf46b0497c948304","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                  \u0027update\u0027: update})"},{"line_number":202,"context_line":"        self._notify_reset_status(context, id, \u0027reset_status.start\u0027)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # db.volume_update(context, id, update)"},{"line_number":205,"context_line":"        self._update(context, id, update)"},{"line_number":206,"context_line":"        self._remove_worker(context, id)"},{"line_number":207,"context_line":"        if update.get(\u0027attach_status\u0027) \u003d\u003d \u0027detached\u0027:"}],"source_content_type":"text/x-python","patch_set":41,"id":"ef32c66e_31eb48a8","line":204,"range":{"start_line":204,"start_character":7,"end_line":204,"end_character":47},"in_reply_to":"46a6f168_28f4b124","updated":"2022-02-28 05:39:18.000000000","message":"Done","commit_id":"ca117b5a96f4e1fdca08857618ab49e8858f574a"}],"cinder/tests/unit/api/contrib/test_admin_actions.py":[{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"0c017c22e347c22c7968b6201dd535b782517d23","unresolved":true,"context_lines":[{"line_number":463,"context_line":"                          db.volume_attachment_get,"},{"line_number":464,"context_line":"                          self.ctx, attachment[\u0027id\u0027])"},{"line_number":465,"context_line":"        # Code for operator override (temp comment)"},{"line_number":466,"context_line":"    def test_invalid_reset_attached_status(self):"},{"line_number":467,"context_line":"        volume \u003d db.volume_create(self.ctx,"},{"line_number":468,"context_line":"                                  {\u0027status\u0027: \u0027available\u0027, \u0027host\u0027: \u0027test\u0027,"},{"line_number":469,"context_line":"                                   \u0027provider_location\u0027: \u0027\u0027, \u0027size\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"aa454bbb_5be1888d","line":466,"in_reply_to":"488dd3f3_fb0ed8b8","updated":"2021-02-22 04:57:13.000000000","message":"\u003e pep8: E301 expected 1 blank line, found 0\n\nPlease fix.","commit_id":"04ef7e69d6a2a477f4a0e4cfdb4c0e8d997d13cd"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"510146ed033933f33c20e05514b1f40a40bf7237","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                          db.volume_attachment_get,"},{"line_number":464,"context_line":"                          self.ctx, attachment[\u0027id\u0027])"},{"line_number":465,"context_line":"        # Code for operator override (temp comment)"},{"line_number":466,"context_line":"    def test_invalid_reset_attached_status(self):"},{"line_number":467,"context_line":"        volume \u003d db.volume_create(self.ctx,"},{"line_number":468,"context_line":"                                  {\u0027status\u0027: \u0027available\u0027, \u0027host\u0027: \u0027test\u0027,"},{"line_number":469,"context_line":"                                   \u0027provider_location\u0027: \u0027\u0027, \u0027size\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"15e79716_7b3eec9d","line":466,"in_reply_to":"aa454bbb_5be1888d","updated":"2022-01-21 08:45:19.000000000","message":"Done","commit_id":"04ef7e69d6a2a477f4a0e4cfdb4c0e8d997d13cd"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"59040323d1228b5926857c82d9f34610329d0ae7","unresolved":true,"context_lines":[{"line_number":337,"context_line":"        fake_get.return_value \u003d volume"},{"line_number":338,"context_line":"        resp \u003d self._issue_volume_reset(ctx,"},{"line_number":339,"context_line":"                                        volume,"},{"line_number":340,"context_line":"                                        {\u0027status\u0027: \u0027available\u0027})"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # request is not authorized"},{"line_number":343,"context_line":"        self.assertEqual(HTTPStatus.FORBIDDEN, resp.status_int)"}],"source_content_type":"text/x-python","patch_set":36,"id":"6008fa05_3934f4dd","line":340,"range":{"start_line":340,"start_character":52,"end_line":340,"end_character":61},"updated":"2022-02-22 14:44:07.000000000","message":"This doesn\u0027t need to be changed -- it can just stay as before and still pass.","commit_id":"7bb106d85a5655d2b0af5307d9292384d3ec5025"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"a7f9a927104cb55a744b4b0296b324c5b85f3abb","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        fake_get.return_value \u003d volume"},{"line_number":338,"context_line":"        resp \u003d self._issue_volume_reset(ctx,"},{"line_number":339,"context_line":"                                        volume,"},{"line_number":340,"context_line":"                                        {\u0027status\u0027: \u0027available\u0027})"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # request is not authorized"},{"line_number":343,"context_line":"        self.assertEqual(HTTPStatus.FORBIDDEN, resp.status_int)"}],"source_content_type":"text/x-python","patch_set":36,"id":"4711ea71_935848aa","line":340,"range":{"start_line":340,"start_character":52,"end_line":340,"end_character":61},"in_reply_to":"6008fa05_3934f4dd","updated":"2022-02-22 17:47:48.000000000","message":"Done","commit_id":"7bb106d85a5655d2b0af5307d9292384d3ec5025"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"59040323d1228b5926857c82d9f34610329d0ae7","unresolved":true,"context_lines":[{"line_number":492,"context_line":"                                            None, mountpoint, \u0027rw\u0027)"},{"line_number":493,"context_line":"        # volume is attached"},{"line_number":494,"context_line":"        volume \u003d db.volume_get(self.ctx.elevated(), volume[\u0027id\u0027])"},{"line_number":495,"context_line":"        attachment \u003d db.volume_attachment_get(self.ctx, attachment[\u0027id\u0027])"},{"line_number":496,"context_line":"        self.assertEqual(\u0027in-use\u0027, volume[\u0027status\u0027])"},{"line_number":497,"context_line":"        self.assertEqual(fields.VolumeAttachStatus.ATTACHED,"},{"line_number":498,"context_line":"                         volume[\u0027attach_status\u0027])"}],"source_content_type":"text/x-python","patch_set":36,"id":"b3dea441_a6fb561c","line":495,"updated":"2022-02-22 14:44:07.000000000","message":"Unneeded changes.","commit_id":"7bb106d85a5655d2b0af5307d9292384d3ec5025"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"a7f9a927104cb55a744b4b0296b324c5b85f3abb","unresolved":false,"context_lines":[{"line_number":492,"context_line":"                                            None, mountpoint, \u0027rw\u0027)"},{"line_number":493,"context_line":"        # volume is attached"},{"line_number":494,"context_line":"        volume \u003d db.volume_get(self.ctx.elevated(), volume[\u0027id\u0027])"},{"line_number":495,"context_line":"        attachment \u003d db.volume_attachment_get(self.ctx, attachment[\u0027id\u0027])"},{"line_number":496,"context_line":"        self.assertEqual(\u0027in-use\u0027, volume[\u0027status\u0027])"},{"line_number":497,"context_line":"        self.assertEqual(fields.VolumeAttachStatus.ATTACHED,"},{"line_number":498,"context_line":"                         volume[\u0027attach_status\u0027])"}],"source_content_type":"text/x-python","patch_set":36,"id":"5d99ffc0_f49575ef","line":495,"in_reply_to":"b3dea441_a6fb561c","updated":"2022-02-22 17:47:48.000000000","message":"Done","commit_id":"7bb106d85a5655d2b0af5307d9292384d3ec5025"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"0c4d45ad1a62b3bcc9cacffa2600d53b0bcf6c5f","unresolved":true,"context_lines":[{"line_number":218,"context_line":"        self.assertEqual(fields.VolumeAttachStatus.DETACHED,"},{"line_number":219,"context_line":"                         volume[\u0027attach_status\u0027])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def test_reset_detached_attach_status_to_attached(self):"},{"line_number":222,"context_line":"        volume \u003d db.volume_create(self.ctx,"},{"line_number":223,"context_line":"                                  {\u0027status\u0027: \u0027available\u0027,"},{"line_number":224,"context_line":"                                   \u0027attach_status\u0027:"}],"source_content_type":"text/x-python","patch_set":39,"id":"8ae0f3b0_6c021a4c","line":221,"range":{"start_line":221,"start_character":8,"end_line":221,"end_character":53},"updated":"2022-02-25 15:51:23.000000000","message":":nit: why not just test_reset_detached_status_to_attached?","commit_id":"10b30ec180bd9ea89ba880476831542aa3242960"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"ad9c21f78ff9a7522809e79876822b245e912bc3","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        self.assertEqual(fields.VolumeAttachStatus.DETACHED,"},{"line_number":219,"context_line":"                         volume[\u0027attach_status\u0027])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def test_reset_detached_attach_status_to_attached(self):"},{"line_number":222,"context_line":"        volume \u003d db.volume_create(self.ctx,"},{"line_number":223,"context_line":"                                  {\u0027status\u0027: \u0027available\u0027,"},{"line_number":224,"context_line":"                                   \u0027attach_status\u0027:"}],"source_content_type":"text/x-python","patch_set":39,"id":"c548b36b_c60ca75d","line":221,"range":{"start_line":221,"start_character":8,"end_line":221,"end_character":53},"in_reply_to":"8ae0f3b0_6c021a4c","updated":"2022-02-27 07:50:00.000000000","message":"Done","commit_id":"10b30ec180bd9ea89ba880476831542aa3242960"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"de60cffc3deef589c0ea7e2f6c8ac57cad4b7ac9","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                                   \u0027attach_status\u0027:"},{"line_number":225,"context_line":"                                   fields.VolumeAttachStatus.DETACHED,"},{"line_number":226,"context_line":"                                   \u0027volume_type_id\u0027: fake.VOLUME_TYPE_ID})"},{"line_number":227,"context_line":"        resp \u003d self._issue_volume_reset(self.ctx,"},{"line_number":228,"context_line":"                                        volume,"},{"line_number":229,"context_line":"                                        {\u0027attach_status\u0027:"},{"line_number":230,"context_line":"                                         fields.VolumeAttachStatus.ATTACHED})"}],"source_content_type":"text/x-python","patch_set":39,"id":"98593f99_53285e38","line":227,"range":{"start_line":227,"start_character":20,"end_line":227,"end_character":39},"updated":"2022-02-25 15:52:46.000000000","message":"I see that this is used by most of the test but I think it\u0027s kind of weird to read.. so you have an issue with the volume reset and goes from dettach to attach? isn\u0027t a clear way to call the reset function? I guess this exceeds the scope of this patch but it would be nice to see what people think.","commit_id":"10b30ec180bd9ea89ba880476831542aa3242960"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"0c4d45ad1a62b3bcc9cacffa2600d53b0bcf6c5f","unresolved":true,"context_lines":[{"line_number":233,"context_line":"        self.assertEqual(fields.VolumeAttachStatus.ATTACHED,"},{"line_number":234,"context_line":"                         volume[\u0027attach_status\u0027])"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def test_reset_attached_attach_status_to_attached(self):"},{"line_number":237,"context_line":"        volume \u003d db.volume_create(self.ctx,"},{"line_number":238,"context_line":"                                  {\u0027status\u0027: \u0027available\u0027,"},{"line_number":239,"context_line":"                                   \u0027attach_status\u0027:"}],"source_content_type":"text/x-python","patch_set":39,"id":"3031d3ef_82d50338","line":236,"range":{"start_line":236,"start_character":8,"end_line":236,"end_character":53},"updated":"2022-02-25 15:51:23.000000000","message":":nit: same as L221","commit_id":"10b30ec180bd9ea89ba880476831542aa3242960"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"ad9c21f78ff9a7522809e79876822b245e912bc3","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        self.assertEqual(fields.VolumeAttachStatus.ATTACHED,"},{"line_number":234,"context_line":"                         volume[\u0027attach_status\u0027])"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def test_reset_attached_attach_status_to_attached(self):"},{"line_number":237,"context_line":"        volume \u003d db.volume_create(self.ctx,"},{"line_number":238,"context_line":"                                  {\u0027status\u0027: \u0027available\u0027,"},{"line_number":239,"context_line":"                                   \u0027attach_status\u0027:"}],"source_content_type":"text/x-python","patch_set":39,"id":"c32477f3_af677fd9","line":236,"range":{"start_line":236,"start_character":8,"end_line":236,"end_character":53},"in_reply_to":"3031d3ef_82d50338","updated":"2022-02-27 07:50:00.000000000","message":"Done","commit_id":"10b30ec180bd9ea89ba880476831542aa3242960"}],"cinder/volume/manager.py":[{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fcd1a7b6c9cbcca91c8d030dc21e59d1a445d040","unresolved":true,"context_lines":[{"line_number":1076,"context_line":"                    msg_args \u003d {\"id\": volume.id,"},{"line_number":1077,"context_line":"                                \"status\": \u0027error\u0027}"},{"line_number":1078,"context_line":"                    msg +\u003d (\"Failed to reset volume %(id)s \""},{"line_number":1079,"context_line":"                            \"status to %(status)s.\""},{"line_number":1080,"context_line":"                            \"not a valid request\") % msg_args"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"                s_res \u003d snapshot.update_single_status_where("}],"source_content_type":"text/x-python","patch_set":3,"id":"f2c9a33c_08adaae0","line":1079,"range":{"start_line":1079,"start_character":50,"end_line":1079,"end_character":51},"updated":"2021-02-04 13:31:53.000000000","message":"nit: space can be added before double quote","commit_id":"61f26dff6d630e6a32e2034f2f3490363b5c4be9"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1e9a00947693e02c7f711c698fc7c5093cf8fe4d","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"                    msg_args \u003d {\"id\": volume.id,"},{"line_number":1077,"context_line":"                                \"status\": \u0027error\u0027}"},{"line_number":1078,"context_line":"                    msg +\u003d (\"Failed to reset volume %(id)s \""},{"line_number":1079,"context_line":"                            \"status to %(status)s.\""},{"line_number":1080,"context_line":"                            \"not a valid request\") % msg_args"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"                s_res \u003d snapshot.update_single_status_where("}],"source_content_type":"text/x-python","patch_set":3,"id":"b9581f45_36706a40","line":1079,"range":{"start_line":1079,"start_character":50,"end_line":1079,"end_character":51},"in_reply_to":"f2c9a33c_08adaae0","updated":"2022-01-21 08:43:26.000000000","message":"Done","commit_id":"61f26dff6d630e6a32e2034f2f3490363b5c4be9"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fcd1a7b6c9cbcca91c8d030dc21e59d1a445d040","unresolved":true,"context_lines":[{"line_number":1077,"context_line":"                                \"status\": \u0027error\u0027}"},{"line_number":1078,"context_line":"                    msg +\u003d (\"Failed to reset volume %(id)s \""},{"line_number":1079,"context_line":"                            \"status to %(status)s.\""},{"line_number":1080,"context_line":"                            \"not a valid request\") % msg_args"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"                s_res \u003d snapshot.update_single_status_where("},{"line_number":1083,"context_line":"                    fields.SnapshotStatus.AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":3,"id":"44e14738_16f8a97d","line":1080,"range":{"start_line":1080,"start_character":29,"end_line":1080,"end_character":30},"updated":"2021-02-04 13:31:53.000000000","message":"nit: Since there is full stop in previous line,\nShould \u0027n\u0027 in \u0027not\u0027 be in upper case?","commit_id":"61f26dff6d630e6a32e2034f2f3490363b5c4be9"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1e9a00947693e02c7f711c698fc7c5093cf8fe4d","unresolved":false,"context_lines":[{"line_number":1077,"context_line":"                                \"status\": \u0027error\u0027}"},{"line_number":1078,"context_line":"                    msg +\u003d (\"Failed to reset volume %(id)s \""},{"line_number":1079,"context_line":"                            \"status to %(status)s.\""},{"line_number":1080,"context_line":"                            \"not a valid request\") % msg_args"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"                s_res \u003d snapshot.update_single_status_where("},{"line_number":1083,"context_line":"                    fields.SnapshotStatus.AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":3,"id":"c0c03b50_cb22d5d8","line":1080,"range":{"start_line":1080,"start_character":29,"end_line":1080,"end_character":30},"in_reply_to":"44e14738_16f8a97d","updated":"2022-01-21 08:43:26.000000000","message":"Done","commit_id":"61f26dff6d630e6a32e2034f2f3490363b5c4be9"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fcd1a7b6c9cbcca91c8d030dc21e59d1a445d040","unresolved":true,"context_lines":[{"line_number":1097,"context_line":"                        \"status\": \u0027available\u0027}"},{"line_number":1098,"context_line":"            msg \u003d _(\"Revert finished, but failed to reset \""},{"line_number":1099,"context_line":"                    \"volume %(id)s status to %(status)s, \""},{"line_number":1100,"context_line":"                    \"not a valid request\""},{"line_number":1101,"context_line":"                    \"please manually reset it.\") % msg_args"},{"line_number":1102,"context_line":"            raise exception.BadResetResourceStatus(reason\u003dmsg)"},{"line_number":1103,"context_line":""},{"line_number":1104,"context_line":"        s_res \u003d snapshot.update_single_status_where("}],"source_content_type":"text/x-python","patch_set":3,"id":"cb4a7303_b44a0da5","line":1101,"range":{"start_line":1100,"start_character":40,"end_line":1101,"end_character":22},"updated":"2021-02-04 13:31:53.000000000","message":"nit: Similar to line 1079; Space and full stop/semi-colon can be added before double quote.\n\u0027p\u0027 in upper case?","commit_id":"61f26dff6d630e6a32e2034f2f3490363b5c4be9"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1e9a00947693e02c7f711c698fc7c5093cf8fe4d","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"                        \"status\": \u0027available\u0027}"},{"line_number":1098,"context_line":"            msg \u003d _(\"Revert finished, but failed to reset \""},{"line_number":1099,"context_line":"                    \"volume %(id)s status to %(status)s, \""},{"line_number":1100,"context_line":"                    \"not a valid request\""},{"line_number":1101,"context_line":"                    \"please manually reset it.\") % msg_args"},{"line_number":1102,"context_line":"            raise exception.BadResetResourceStatus(reason\u003dmsg)"},{"line_number":1103,"context_line":""},{"line_number":1104,"context_line":"        s_res \u003d snapshot.update_single_status_where("}],"source_content_type":"text/x-python","patch_set":3,"id":"8611eaa7_dde21210","line":1101,"range":{"start_line":1100,"start_character":40,"end_line":1101,"end_character":22},"in_reply_to":"cb4a7303_b44a0da5","updated":"2022-01-21 08:43:26.000000000","message":"Done","commit_id":"61f26dff6d630e6a32e2034f2f3490363b5c4be9"}]}
