)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a1dad37024bb7b4c368c8903f8476a41be736575","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Allow configuring shred\u0027s final overwrite with zeros"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce a new configuration option to control whether devices will"},{"line_number":10,"context_line":"receive a final overwrite with zeros during cleaning. Additionally,"},{"line_number":11,"context_line":"rename erase_devices_iterations to shred_random_overwrite_iterations to"},{"line_number":12,"context_line":"clarify the true meaning of this configuration option."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a122d0e_184c9341","line":9,"updated":"2016-04-17 20:43:54.000000000","message":"it would be clearer if new option is specified here.","commit_id":"af242d77a3374d8fe5a864c745a7eea984355b91"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"becc8085d6fcdb9fdabaa95552f31612126d8ada","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Allow configuring shred\u0027s final overwrite with zeros"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce a new configuration option to control whether devices will"},{"line_number":10,"context_line":"receive a final overwrite with zeros during cleaning. Additionally,"},{"line_number":11,"context_line":"rename erase_devices_iterations to shred_random_overwrite_iterations to"},{"line_number":12,"context_line":"clarify the true meaning of this configuration option."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a122d0e_c9c4f860","line":9,"in_reply_to":"1a122d0e_184c9341","updated":"2016-04-18 13:23:28.000000000","message":"Done","commit_id":"af242d77a3374d8fe5a864c745a7eea984355b91"}],"etc/ironic/ironic.conf.sample":[{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"d9f35ecd308456ac154c32c3873e1500ad0028d4","unresolved":false,"context_lines":[{"line_number":928,"context_line":"# Whether to write zeros to a node\u0027s block devices after"},{"line_number":929,"context_line":"# writing random data. This is only used if a device could not"},{"line_number":930,"context_line":"# be ATA Secure Erased. Defaults to True. (boolean value)"},{"line_number":931,"context_line":"#shred_final_overwrite_with_zeros \u003d true"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"# Whether to power off a node after deploy failure. Defaults"},{"line_number":934,"context_line":"# to True. (boolean value)"}],"source_content_type":"application/octet-stream","patch_set":12,"id":"1a122d0e_a7b932ce","line":931,"updated":"2016-04-21 13:18:08.000000000","message":"Is it worth mentioning here that even if random overwrite iterations is 0 this will still write zeros over the whole disk, because if I didn\u0027t know better when I read this I would think that it wouldn\u0027t do it if I didn\u0027t write random data at least once.","commit_id":"ffd96fb0f9d076c2a27be67459a7a0401aeddec3"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"39e6e4da3b7b3d2b4d2903fe008bcfd8165b42b2","unresolved":false,"context_lines":[{"line_number":928,"context_line":"# Whether to write zeros to a node\u0027s block devices after"},{"line_number":929,"context_line":"# writing random data. This is only used if a device could not"},{"line_number":930,"context_line":"# be ATA Secure Erased. Defaults to True. (boolean value)"},{"line_number":931,"context_line":"#shred_final_overwrite_with_zeros \u003d true"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"# Whether to power off a node after deploy failure. Defaults"},{"line_number":934,"context_line":"# to True. (boolean value)"}],"source_content_type":"application/octet-stream","patch_set":12,"id":"1a122d0e_2eeccd8e","line":931,"in_reply_to":"1a122d0e_a7b932ce","updated":"2016-04-21 17:10:09.000000000","message":"Good point. Updated.","commit_id":"ffd96fb0f9d076c2a27be67459a7a0401aeddec3"},{"author":{"_account_id":16530,"name":"Wajdi Al-Hawari","email":"w.hawari@gmail.com","username":"wajdi"},"change_message_id":"d04966850b1453d477754d0871050bd283b8d847","unresolved":false,"context_lines":[{"line_number":917,"context_line":"# Whether to write zeros to a node\u0027s block devices after"},{"line_number":918,"context_line":"# writing random data. This will write zeros to the device"},{"line_number":919,"context_line":"# even when agent.shred_random_overwrite_interations is 0."},{"line_number":920,"context_line":"# This options is only used if a device could not be ATA"},{"line_number":921,"context_line":"# Secure Erased. Defaults to True. (boolean value)"},{"line_number":922,"context_line":"#shred_final_overwrite_with_zeros \u003d true"},{"line_number":923,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":16,"id":"dab17558_cbe0ff98","line":920,"updated":"2016-05-10 19:12:04.000000000","message":"Typo: s/options/option/","commit_id":"228efc775ecee90c36f0a27f5b3a9e2911c6f2b7"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"083b8ac480292ab43f29ccc63c71265cdae96f51","unresolved":false,"context_lines":[{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               help\u003d_(\u0027Number of \"random data\" iterations to be run for \u0027"},{"line_number":71,"context_line":"                      \u0027erasing devices.\u0027)),"},{"line_number":72,"context_line":"    cfg.BoolOpt(\u0027erase_devices_zeroize\u0027,"},{"line_number":73,"context_line":"               default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_2acbf954","line":70,"updated":"2016-04-12 17:41:50.000000000","message":"Both of these config options need to caveat that shred is only used if ATA secure erase (or ATA enhanced secure erase) is disabled. (While we\u0027re in here, might as well improve it, right?)","commit_id":"057b4abb026b2eb8a102d3adf2a752ae8d59ebd1"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"6f6dd409140abd314cd564e57d9658c840ea76f6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                      \u0027erasing devices.\u0027)),"},{"line_number":72,"context_line":"    cfg.BoolOpt(\u0027erase_devices_zeroize\u0027,"},{"line_number":73,"context_line":"               default\u003dTrue,"},{"line_number":74,"context_line":"               help\u003d_(\u0027Whether to zeroize a node\\\u0027s devices after writing \u0027"},{"line_number":75,"context_line":"                      \u0027random data.\u0027)),"},{"line_number":76,"context_line":"    cfg.BoolOpt(\u0027power_off_after_deploy_failure\u0027,"},{"line_number":77,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_b965bbe2","line":74,"updated":"2016-04-12 13:16:52.000000000","message":"I\u0027m not a fan of \u0027zeroize\u0027.  \n\nMaybe:\n\n Whether to write zeros to a node\u0027s devices after writing \n\nAlso if use double quotes wouldn\u0027t need to backlash the single quote.","commit_id":"057b4abb026b2eb8a102d3adf2a752ae8d59ebd1"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"083b8ac480292ab43f29ccc63c71265cdae96f51","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                      \u0027erasing devices.\u0027)),"},{"line_number":72,"context_line":"    cfg.BoolOpt(\u0027erase_devices_zeroize\u0027,"},{"line_number":73,"context_line":"               default\u003dTrue,"},{"line_number":74,"context_line":"               help\u003d_(\u0027Whether to zeroize a node\\\u0027s devices after writing \u0027"},{"line_number":75,"context_line":"                      \u0027random data.\u0027)),"},{"line_number":76,"context_line":"    cfg.BoolOpt(\u0027power_off_after_deploy_failure\u0027,"},{"line_number":77,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_0acf1d57","line":74,"in_reply_to":"5a18252c_19c94f79","updated":"2016-04-12 17:41:50.000000000","message":"Maybe something like:\n\n\"Whether to write zeros to a nodes\u0027 devices after writing random data for `erase_devices_random_iterations` times. This is only used if a device cannot be ATA Secure Erased.\"","commit_id":"057b4abb026b2eb8a102d3adf2a752ae8d59ebd1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"22f1fbc21cbdb331c88ce290f8306f60fffecaf4","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                      \u0027erasing devices.\u0027)),"},{"line_number":72,"context_line":"    cfg.BoolOpt(\u0027erase_devices_zeroize\u0027,"},{"line_number":73,"context_line":"               default\u003dTrue,"},{"line_number":74,"context_line":"               help\u003d_(\u0027Whether to zeroize a node\\\u0027s devices after writing \u0027"},{"line_number":75,"context_line":"                      \u0027random data.\u0027)),"},{"line_number":76,"context_line":"    cfg.BoolOpt(\u0027power_off_after_deploy_failure\u0027,"},{"line_number":77,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_19c94f79","line":74,"in_reply_to":"5a18252c_b965bbe2","updated":"2016-04-12 13:19:19.000000000","message":"+1 on not being a fan of \"zeroize\", although I couldn\u0027t think of anything better to describe the operation that is occurring.","commit_id":"057b4abb026b2eb8a102d3adf2a752ae8d59ebd1"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"ef677dd94babecb0a0fab47ec13444b462a0bc96","unresolved":false,"context_lines":[{"line_number":56,"context_line":"               default\u003d\u0027/httpboot\u0027,"},{"line_number":57,"context_line":"               help\u003d\"ironic-conductor node\u0027s HTTP root path.\","},{"line_number":58,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027erase_devices_priority\u0027,"},{"line_number":60,"context_line":"               help\u003d_(\u0027Priority to run in-band erase devices via the Ironic \u0027"},{"line_number":61,"context_line":"                      \u0027Python Agent ramdisk. If unset, will use the priority \u0027"},{"line_number":62,"context_line":"                      \u0027set in the ramdisk (defaults to 10 for the \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_1c148742","line":59,"updated":"2016-04-12 19:47:43.000000000","message":"There is no mention of removing the deprecated options in the commit message or release notes.\n\nAlso there is a patch proposed to do this very thing:\nhttps://review.openstack.org/303081","commit_id":"8fe406bc2236af6052bc3b1cb1cda0d5b0df2c08"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"067fd0eef23c681ce1deaf264ad0c9bad2962f88","unresolved":false,"context_lines":[{"line_number":56,"context_line":"               default\u003d\u0027/httpboot\u0027,"},{"line_number":57,"context_line":"               help\u003d\"ironic-conductor node\u0027s HTTP root path.\","},{"line_number":58,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027erase_devices_priority\u0027,"},{"line_number":60,"context_line":"               help\u003d_(\u0027Priority to run in-band erase devices via the Ironic \u0027"},{"line_number":61,"context_line":"                      \u0027Python Agent ramdisk. If unset, will use the priority \u0027"},{"line_number":62,"context_line":"                      \u0027set in the ramdisk (defaults to 10 for the \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_307527f9","line":59,"in_reply_to":"5a18252c_1c148742","updated":"2016-04-12 20:30:51.000000000","message":"Rebased on I9c6df0979c2814b5f26f8fb596de6cf07e4f76aa","commit_id":"8fe406bc2236af6052bc3b1cb1cda0d5b0df2c08"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8ddc8be241c9a109cd10b71a9de015c89c0c99cb","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"deploy_opts \u003d ["},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027http_url\u0027,"},{"line_number":52,"context_line":"               help\u003d\"ironic-conductor node\u0027s HTTP server URL. \""},{"line_number":53,"context_line":"                    \"Example: http://192.1.2.3:8080\","},{"line_number":54,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027http_root\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_2bd12058","line":52,"updated":"2016-04-13 10:51:24.000000000","message":"Could you please add translation here?","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1d00357f4cb54dc8144423e6c2d89d76775c96bf","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"deploy_opts \u003d ["},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027http_url\u0027,"},{"line_number":52,"context_line":"               help\u003d\"ironic-conductor node\u0027s HTTP server URL. \""},{"line_number":53,"context_line":"                    \"Example: http://192.1.2.3:8080\","},{"line_number":54,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027http_root\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_d73ac997","line":52,"in_reply_to":"5a18252c_2bd12058","updated":"2016-04-13 12:19:47.000000000","message":"++","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"1c7d6e1a33f1b56805a44f589ba90bee8af082b7","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"deploy_opts \u003d ["},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027http_url\u0027,"},{"line_number":52,"context_line":"               help\u003d\"ironic-conductor node\u0027s HTTP server URL. \""},{"line_number":53,"context_line":"                    \"Example: http://192.1.2.3:8080\","},{"line_number":54,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027http_root\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_95e15201","line":52,"in_reply_to":"5a18252c_d73ac997","updated":"2016-04-13 18:53:51.000000000","message":"Done","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8ddc8be241c9a109cd10b71a9de015c89c0c99cb","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027http_root\u0027,"},{"line_number":56,"context_line":"               default\u003d\u0027/httpboot\u0027,"},{"line_number":57,"context_line":"               help\u003d\"ironic-conductor node\u0027s HTTP root path.\","},{"line_number":58,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027erase_devices_priority\u0027,"},{"line_number":60,"context_line":"               help\u003d_(\u0027Priority to run in-band erase devices via the Ironic \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_abc5308f","line":57,"updated":"2016-04-13 10:51:24.000000000","message":"ditto","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"1c7d6e1a33f1b56805a44f589ba90bee8af082b7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027http_root\u0027,"},{"line_number":56,"context_line":"               default\u003d\u0027/httpboot\u0027,"},{"line_number":57,"context_line":"               help\u003d\"ironic-conductor node\u0027s HTTP root path.\","},{"line_number":58,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027erase_devices_priority\u0027,"},{"line_number":60,"context_line":"               help\u003d_(\u0027Priority to run in-band erase devices via the Ironic \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_35f31ed8","line":57,"in_reply_to":"5a18252c_774c9542","updated":"2016-04-13 18:53:51.000000000","message":"Done","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1d00357f4cb54dc8144423e6c2d89d76775c96bf","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027http_root\u0027,"},{"line_number":56,"context_line":"               default\u003d\u0027/httpboot\u0027,"},{"line_number":57,"context_line":"               help\u003d\"ironic-conductor node\u0027s HTTP root path.\","},{"line_number":58,"context_line":"               deprecated_group\u003d\u0027pxe\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027erase_devices_priority\u0027,"},{"line_number":60,"context_line":"               help\u003d_(\u0027Priority to run in-band erase devices via the Ironic \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_774c9542","line":57,"in_reply_to":"5a18252c_abc5308f","updated":"2016-04-13 12:19:47.000000000","message":"++","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ce42c6941096b1b19992a6d8a17a2185d2bf3dba","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"},{"line_number":71,"context_line":"                      \u0027random data. This is only used if a device could not \u0027"},{"line_number":72,"context_line":"                      \u0027be ATA Secure Erased.\u0027)),"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_b7a0eda0","line":69,"updated":"2016-04-13 12:22:22.000000000","message":"following up @Jay\u0027s concern about it. We could set the min parameter here to \"1\". Which IMO makes sense, otherwise we will ended up with two ways of disabling the erase_devices cleaning step:\n\n1. By setting erase_devices_priority to 0\n\n2. By setting shred_random_overwrite_iterations to 0 and shred_final_overwrite_with_zeroes to False.","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c02ef0abcb4733c2120d97b79648c8f3b4fe14c3","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"},{"line_number":71,"context_line":"                      \u0027random data. This is only used if a device could not \u0027"},{"line_number":72,"context_line":"                      \u0027be ATA Secure Erased.\u0027)),"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_9be18fd3","line":69,"in_reply_to":"5a18252c_0d454e16","updated":"2016-04-13 15:02:53.000000000","message":"Agreed","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"0f5733d12713e3f2debe818608ee651de4046d22","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"},{"line_number":71,"context_line":"                      \u0027random data. This is only used if a device could not \u0027"},{"line_number":72,"context_line":"                      \u0027be ATA Secure Erased.\u0027)),"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_0d454e16","line":69,"in_reply_to":"5a18252c_b7a0eda0","updated":"2016-04-13 12:48:29.000000000","message":"Maybe someone will want to use only \u0027shred_final_overwrite_with_zeros\u0027? Add validation code into Ironic is a variant.","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c972f2369a43c46875481f01c34071ed1148c89d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"},{"line_number":71,"context_line":"                      \u0027random data. This is only used if a device could not \u0027"},{"line_number":72,"context_line":"                      \u0027be ATA Secure Erased.\u0027)),"},{"line_number":73,"context_line":"    cfg.BoolOpt(\u0027shred_final_overwrite_with_zeros\u0027,"},{"line_number":74,"context_line":"                default\u003dTrue,"},{"line_number":75,"context_line":"                help\u003d_(\"Whether to write zeros to a node\u0027s block devices \""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_8eac98a1","line":72,"range":{"start_line":72,"start_character":26,"end_line":72,"end_character":29},"updated":"2016-04-13 21:42:28.000000000","message":"Nit: I personally kind of tried to stay away from stating the method type since the disks might not be disks speaking the ATA protocol. :)","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8ea16dec0879987dee5cbeb9a336f9fea119b8de","unresolved":false,"context_lines":[{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"},{"line_number":71,"context_line":"                      \u0027random data. This is only used if a device could not \u0027"},{"line_number":72,"context_line":"                      \u0027be ATA Secure Erased.\u0027)),"},{"line_number":73,"context_line":"    cfg.BoolOpt(\u0027shred_final_overwrite_with_zeros\u0027,"},{"line_number":74,"context_line":"                default\u003dTrue,"},{"line_number":75,"context_line":"                help\u003d_(\"Whether to write zeros to a node\u0027s block devices \""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_474ee36f","line":72,"range":{"start_line":72,"start_character":26,"end_line":72,"end_character":29},"in_reply_to":"5a18252c_11ca6d6d","updated":"2016-04-13 22:33:47.000000000","message":"Agreed, somehow I mixed up erase/scsi unmap commands in my head.  Verified the hdparm code. :\\   Kind of explains some grumbling I\u0027ve heard.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"13034593c41a6c20db4f5cbdfd9a26cc60fc7df9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"},{"line_number":71,"context_line":"                      \u0027random data. This is only used if a device could not \u0027"},{"line_number":72,"context_line":"                      \u0027be ATA Secure Erased.\u0027)),"},{"line_number":73,"context_line":"    cfg.BoolOpt(\u0027shred_final_overwrite_with_zeros\u0027,"},{"line_number":74,"context_line":"                default\u003dTrue,"},{"line_number":75,"context_line":"                help\u003d_(\"Whether to write zeros to a node\u0027s block devices \""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_11ca6d6d","line":72,"range":{"start_line":72,"start_character":26,"end_line":72,"end_character":29},"in_reply_to":"5a18252c_8eac98a1","updated":"2016-04-13 21:47:59.000000000","message":"Literally the call we\u0027re making to HDParm is an ATA Secure Erase. The command won\u0027t work on non-ATA disks, so I don\u0027t think this is crazy for this case :).","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c972f2369a43c46875481f01c34071ed1148c89d","unresolved":false,"context_lines":[{"line_number":648,"context_line":"    if random_iterations \u003d\u003d 0 and zeroize is False:"},{"line_number":649,"context_line":"        LOG.warning(_LW(\u0027With shred_random_overwrite_iterations set to 0 and \u0027"},{"line_number":650,"context_line":"                        \u0027shred_final_overwrite_with_zeros set to False, disks \u0027"},{"line_number":651,"context_line":"                        \u0027may NOT be shredded in some cases. This is a \u0027"},{"line_number":652,"context_line":"                        \u0027possible SECURITY VIOLATION!\u0027))"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"    task.node.driver_internal_info \u003d info"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_0ef40884","line":651,"range":{"start_line":651,"start_character":36,"end_line":651,"end_character":44},"updated":"2016-04-13 21:42:28.000000000","message":"Instead of \u0027shredded\u0027, perhaps \u0027wiped\u0027 or \u0027erased\u0027 since this is when we have reached shred, and the entire fleet may support secure erase, and the operator may know that fact.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"13034593c41a6c20db4f5cbdfd9a26cc60fc7df9","unresolved":false,"context_lines":[{"line_number":648,"context_line":"    if random_iterations \u003d\u003d 0 and zeroize is False:"},{"line_number":649,"context_line":"        LOG.warning(_LW(\u0027With shred_random_overwrite_iterations set to 0 and \u0027"},{"line_number":650,"context_line":"                        \u0027shred_final_overwrite_with_zeros set to False, disks \u0027"},{"line_number":651,"context_line":"                        \u0027may NOT be shredded in some cases. This is a \u0027"},{"line_number":652,"context_line":"                        \u0027possible SECURITY VIOLATION!\u0027))"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"    task.node.driver_internal_info \u003d info"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_11a1cda3","line":651,"range":{"start_line":651,"start_character":36,"end_line":651,"end_character":44},"in_reply_to":"5a18252c_0ef40884","updated":"2016-04-13 21:47:59.000000000","message":"This log needs to be printed on conductor startup, not on use. In that case IMO you should leave the word \"shredding\" in there, but you should explicitly caveat that it\u0027s only if secure erase failed.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8ea16dec0879987dee5cbeb9a336f9fea119b8de","unresolved":false,"context_lines":[{"line_number":648,"context_line":"    if random_iterations \u003d\u003d 0 and zeroize is False:"},{"line_number":649,"context_line":"        LOG.warning(_LW(\u0027With shred_random_overwrite_iterations set to 0 and \u0027"},{"line_number":650,"context_line":"                        \u0027shred_final_overwrite_with_zeros set to False, disks \u0027"},{"line_number":651,"context_line":"                        \u0027may NOT be shredded in some cases. This is a \u0027"},{"line_number":652,"context_line":"                        \u0027possible SECURITY VIOLATION!\u0027))"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"    task.node.driver_internal_info \u003d info"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_876f5bc4","line":651,"range":{"start_line":651,"start_character":36,"end_line":651,"end_character":44},"in_reply_to":"5a18252c_11a1cda3","updated":"2016-04-13 22:33:47.000000000","message":"Agree with Jay.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c972f2369a43c46875481f01c34071ed1148c89d","unresolved":false,"context_lines":[{"line_number":649,"context_line":"        LOG.warning(_LW(\u0027With shred_random_overwrite_iterations set to 0 and \u0027"},{"line_number":650,"context_line":"                        \u0027shred_final_overwrite_with_zeros set to False, disks \u0027"},{"line_number":651,"context_line":"                        \u0027may NOT be shredded in some cases. This is a \u0027"},{"line_number":652,"context_line":"                        \u0027possible SECURITY VIOLATION!\u0027))"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"    task.node.driver_internal_info \u003d info"},{"line_number":655,"context_line":"    task.node.save()"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_eed70ceb","line":652,"range":{"start_line":652,"start_character":43,"end_line":652,"end_character":52},"updated":"2016-04-13 21:42:28.000000000","message":"I think s/VIOLATION/ISSUE/ since violating something like policy is specific to the policy in which the environment exists.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a1dad37024bb7b4c368c8903f8476a41be736575","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                      \u0027GenericHardwareManager). If set to 0, will not run \u0027"},{"line_number":64,"context_line":"                      \u0027during cleaning.\u0027)),"},{"line_number":65,"context_line":"    # TODO(mmitchell): Remove the deprecated name/group during Ocata cycle."},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a122d0e_f8c1d781","line":66,"updated":"2016-04-17 20:43:54.000000000","message":"Deprecated option \u0027\u0027erase_device_iteration\" should be in config till Ocata release.\n\u0027deprecated_for_removal\u0027 which indicates wherever option is going to be removed, also \u0027deprecated_reason\u0027 should be specified.\nhttp://docs.openstack.org/developer/oslo.config/opts.html","commit_id":"af242d77a3374d8fe5a864c745a7eea984355b91"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"becc8085d6fcdb9fdabaa95552f31612126d8ada","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                      \u0027GenericHardwareManager). If set to 0, will not run \u0027"},{"line_number":64,"context_line":"                      \u0027during cleaning.\u0027)),"},{"line_number":65,"context_line":"    # TODO(mmitchell): Remove the deprecated name/group during Ocata cycle."},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a122d0e_cd824352","line":66,"in_reply_to":"1a122d0e_f8c1d781","updated":"2016-04-18 13:23:28.000000000","message":"deprecated_for_removal means going forward, this is not going to be available anymore (see the periodic_interval case). I do not think deprecated_reason is necessary in this case, because we are clearly changing the name to a new name. The only reason we could write is something along the lines of \"Changed X with Y\". That would be an unnecessary duplication of information IMO.","commit_id":"af242d77a3374d8fe5a864c745a7eea984355b91"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"41474b69a4176dbcd000ce9b76316f811da79c43","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                      \u0027GenericHardwareManager). If set to 0, will not run \u0027"},{"line_number":64,"context_line":"                      \u0027during cleaning.\u0027)),"},{"line_number":65,"context_line":"    # TODO(mmitchell): Remove the deprecated name/group during Ocata cycle."},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_a8d65a25","line":66,"range":{"start_line":66,"start_character":16,"end_line":66,"end_character":49},"updated":"2016-04-20 14:41:15.000000000","message":"add min\u003d0 here, as shred will not accept negative iteration number, we should block it here instead of raising an error in IPA.","commit_id":"e615922f1da94777e33e59c8ad207f030e2a1e45"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"5abda9b2e65ce8f0a4850773ae7ca1403cd32ef8","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                      \u0027GenericHardwareManager). If set to 0, will not run \u0027"},{"line_number":64,"context_line":"                      \u0027during cleaning.\u0027)),"},{"line_number":65,"context_line":"    # TODO(mmitchell): Remove the deprecated name/group during Ocata cycle."},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_b95cb7f1","line":66,"range":{"start_line":66,"start_character":16,"end_line":66,"end_character":49},"in_reply_to":"1a122d0e_a8d65a25","updated":"2016-04-21 12:36:08.000000000","message":"Good point, done.","commit_id":"e615922f1da94777e33e59c8ad207f030e2a1e45"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"abb5a6b994bac75236d5e2a47c0967cf5d33b81b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    # TODO(mmitchell): Remove the deprecated name/group during Ocata cycle."},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               min\u003d0,"},{"line_number":71,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a122d0e_639e2564","line":68,"updated":"2016-04-28 13:25:32.000000000","message":"nit: deprecated_group is redundant, as the old option is in the same group","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"b0e14bef0cc7fa022708ba245d8765cb04ae5352","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    # TODO(mmitchell): Remove the deprecated name/group during Ocata cycle."},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               deprecated_group\u003d\u0027deploy\u0027,"},{"line_number":69,"context_line":"               default\u003d1,"},{"line_number":70,"context_line":"               min\u003d0,"},{"line_number":71,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"dab17558_d44ab782","line":68,"in_reply_to":"1a122d0e_639e2564","updated":"2016-05-09 12:22:58.000000000","message":"Done","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"abb5a6b994bac75236d5e2a47c0967cf5d33b81b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                        \u0027Secure Erase. This is a possible SECURITY ISSUE!\u0027))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"warn_about_unsafe_shred_parameters()"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# All functions are called from deploy() directly or indirectly."},{"line_number":128,"context_line":"# They are split for stub-out."}],"source_content_type":"text/x-python","patch_set":14,"id":"1a122d0e_43996978","line":125,"updated":"2016-04-28 13:25:32.000000000","message":"this will happen at an early stage, when logging is probably not even configured. lets move this call to the place where the parameters are actually used.","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"eccd7bc069e50fbfa93752ccce2705b5405c0a2f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                        \u0027Secure Erase. This is a possible SECURITY ISSUE!\u0027))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"warn_about_unsafe_shred_parameters()"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# All functions are called from deploy() directly or indirectly."},{"line_number":128,"context_line":"# They are split for stub-out."}],"source_content_type":"text/x-python","patch_set":14,"id":"1a122d0e_8cce0958","line":125,"in_reply_to":"1a122d0e_43996978","updated":"2016-04-28 16:33:18.000000000","message":"Agreed, it would be good to test tho but, off the top of my head I think the options won\u0027t be loaded at this point.\n\nI wonder if it\u0027s something we can put at the function where the conductor starts [0] ?\n\n[0] https://github.com/openstack/ironic/blob/master/ironic/cmd/conductor.py#L40","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"b0e14bef0cc7fa022708ba245d8765cb04ae5352","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                        \u0027Secure Erase. This is a possible SECURITY ISSUE!\u0027))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"warn_about_unsafe_shred_parameters()"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# All functions are called from deploy() directly or indirectly."},{"line_number":128,"context_line":"# They are split for stub-out."}],"source_content_type":"text/x-python","patch_set":14,"id":"dab17558_d463d718","line":125,"in_reply_to":"1a122d0e_43996978","updated":"2016-05-09 12:22:58.000000000","message":"I manually tested this behavior and configurations are already loaded at that point. I guess I could always move this to agent_add_clean_params, but then you would only see the warning when issuing a clean, not when starting the service. To me, this means an operator might miss the warning and only see it when he digs in the logs for a failure.","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"b0e14bef0cc7fa022708ba245d8765cb04ae5352","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                        \u0027Secure Erase. This is a possible SECURITY ISSUE!\u0027))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"warn_about_unsafe_shred_parameters()"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# All functions are called from deploy() directly or indirectly."},{"line_number":128,"context_line":"# They are split for stub-out."}],"source_content_type":"text/x-python","patch_set":14,"id":"dab17558_9482ef92","line":125,"in_reply_to":"1a122d0e_8cce0958","updated":"2016-05-09 12:22:58.000000000","message":"I can always move it to conductor\u0027s main() if we feel this is where \"deprecated warnings\" should go. Given how settings are loaded by that point (see reply to Dmitry), do you still feel we should move this warning?","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"9d2366d4e7379aec5c326354535cca08a80c4d72","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                      \u0027during cleaning.\u0027)),"},{"line_number":65,"context_line":"    # TODO(mmitchell): Remove the deprecated name during Ocata cycle."},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027shred_random_overwrite_iterations\u0027,"},{"line_number":67,"context_line":"               deprecated_name\u003d\u0027erase_devices_iterations\u0027,"},{"line_number":68,"context_line":"               default\u003d1,"},{"line_number":69,"context_line":"               min\u003d0,"},{"line_number":70,"context_line":"               help\u003d_(\u0027During shred, overwrite all block devices N times with \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"dab17558_0c7cf41d","line":67,"updated":"2016-05-10 14:04:03.000000000","message":"nit: If you have another patch set, it\u0027s better to add deprecated group because with oslo-config-generator in future, the value is \u0027Default\u0027.","commit_id":"4517184bad6ff0ed4e58007a558a1847de0ba11f"}],"ironic/tests/unit/drivers/modules/test_deploy_utils.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8ddc8be241c9a109cd10b71a9de015c89c0c99cb","unresolved":false,"context_lines":[{"line_number":1688,"context_line":"            self.assertEqual(task.node.driver_internal_info.get("},{"line_number":1689,"context_line":"                \u0027agent_erase_devices_iterations\u0027), 2)"},{"line_number":1690,"context_line":"            self.assertEqual(task.node.driver_internal_info.get("},{"line_number":1691,"context_line":"                \u0027agent_erase_devices_zeroize\u0027), False)"},{"line_number":1692,"context_line":""},{"line_number":1693,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.delete_cleaning_ports\u0027,"},{"line_number":1694,"context_line":"                autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_3fd2f900","line":1691,"updated":"2016-04-13 10:51:24.000000000","message":"The order should be reversed, first is expected value, second is actual","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"1c7d6e1a33f1b56805a44f589ba90bee8af082b7","unresolved":false,"context_lines":[{"line_number":1688,"context_line":"            self.assertEqual(task.node.driver_internal_info.get("},{"line_number":1689,"context_line":"                \u0027agent_erase_devices_iterations\u0027), 2)"},{"line_number":1690,"context_line":"            self.assertEqual(task.node.driver_internal_info.get("},{"line_number":1691,"context_line":"                \u0027agent_erase_devices_zeroize\u0027), False)"},{"line_number":1692,"context_line":""},{"line_number":1693,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.delete_cleaning_ports\u0027,"},{"line_number":1694,"context_line":"                autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_d578ea2d","line":1691,"in_reply_to":"5a18252c_3fd2f900","updated":"2016-04-13 18:53:51.000000000","message":"Done","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8ddc8be241c9a109cd10b71a9de015c89c0c99cb","unresolved":false,"context_lines":[{"line_number":1755,"context_line":"            self.assertEqual(task.node.driver_internal_info.get("},{"line_number":1756,"context_line":"                             \u0027agent_erase_devices_iterations\u0027), 1)"},{"line_number":1757,"context_line":"            self.assertEqual(task.node.driver_internal_info.get("},{"line_number":1758,"context_line":"                             \u0027agent_erase_devices_zeroize\u0027), True)"},{"line_number":1759,"context_line":"            if manage_boot:"},{"line_number":1760,"context_line":"                prepare_ramdisk_mock.assert_called_once_with("},{"line_number":1761,"context_line":"                    mock.ANY, mock.ANY, {\u0027a\u0027: \u0027b\u0027, \u0027c\u0027: \u0027d\u0027})"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_3ff95981","line":1758,"updated":"2016-04-13 10:51:24.000000000","message":"ditto","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"1c7d6e1a33f1b56805a44f589ba90bee8af082b7","unresolved":false,"context_lines":[{"line_number":1755,"context_line":"            self.assertEqual(task.node.driver_internal_info.get("},{"line_number":1756,"context_line":"                             \u0027agent_erase_devices_iterations\u0027), 1)"},{"line_number":1757,"context_line":"            self.assertEqual(task.node.driver_internal_info.get("},{"line_number":1758,"context_line":"                             \u0027agent_erase_devices_zeroize\u0027), True)"},{"line_number":1759,"context_line":"            if manage_boot:"},{"line_number":1760,"context_line":"                prepare_ramdisk_mock.assert_called_once_with("},{"line_number":1761,"context_line":"                    mock.ANY, mock.ANY, {\u0027a\u0027: \u0027b\u0027, \u0027c\u0027: \u0027d\u0027})"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_35783e2a","line":1758,"in_reply_to":"5a18252c_3ff95981","updated":"2016-04-13 18:53:51.000000000","message":"Done","commit_id":"9d953476e2ff14cab1587037bf2f54d9dde6cf41"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c972f2369a43c46875481f01c34071ed1148c89d","unresolved":false,"context_lines":[{"line_number":1699,"context_line":"        with task_manager.acquire("},{"line_number":1700,"context_line":"                self.context, self.node.uuid, shared\u003dFalse) as task:"},{"line_number":1701,"context_line":"            utils.agent_add_clean_params(task)"},{"line_number":1702,"context_line":"            log_mock.warning.assert_called_with("},{"line_number":1703,"context_line":"                \u0027With shred_random_overwrite_iterations set to 0 and \u0027"},{"line_number":1704,"context_line":"                \u0027shred_final_overwrite_with_zeros set to False, disks may \u0027"},{"line_number":1705,"context_line":"                \u0027NOT be shredded in some cases. This is a possible SECURITY \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_d13bd5cf","line":1702,"updated":"2016-04-13 21:42:28.000000000","message":"Pity gerrit does not have a like button for the line level of a review.  In all seriousness, I do like that you added a test for the logging being called.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"abb5a6b994bac75236d5e2a47c0967cf5d33b81b","unresolved":false,"context_lines":[{"line_number":1370,"context_line":"        cfg.CONF.deploy.shred_final_overwrite_with_zeros \u003d False"},{"line_number":1371,"context_line":"        utils.warn_about_unsafe_shred_parameters()"},{"line_number":1372,"context_line":"        log_mock.warning.assert_called_with("},{"line_number":1373,"context_line":"            \u0027With shred_random_overwrite_iterations set to 0 and \u0027"},{"line_number":1374,"context_line":"            \u0027shred_final_overwrite_with_zeros set to False, disks may NOT be \u0027"},{"line_number":1375,"context_line":"            \u0027shredded at all, unless they support ATA Secure Erase. This is a \u0027"},{"line_number":1376,"context_line":"            \u0027possible SECURITY ISSUE!\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a122d0e_0393f15b","line":1373,"updated":"2016-04-28 13:25:32.000000000","message":"+1","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"2b944b0eb181164e1e12d8c020fd0d9bd19a30a2","unresolved":false,"context_lines":[{"line_number":1370,"context_line":"        cfg.CONF.deploy.shred_final_overwrite_with_zeros \u003d False"},{"line_number":1371,"context_line":"        utils.warn_about_unsafe_shred_parameters()"},{"line_number":1372,"context_line":"        log_mock.warning.assert_called_with("},{"line_number":1373,"context_line":"            \u0027With shred_random_overwrite_iterations set to 0 and \u0027"},{"line_number":1374,"context_line":"            \u0027shred_final_overwrite_with_zeros set to False, disks may NOT be \u0027"},{"line_number":1375,"context_line":"            \u0027shredded at all, unless they support ATA Secure Erase. This is a \u0027"},{"line_number":1376,"context_line":"            \u0027possible SECURITY ISSUE!\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a122d0e_f48c4d81","line":1373,"updated":"2016-04-22 08:38:30.000000000","message":"Maybe do not copy all log message, only check that log is called?","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"b0e14bef0cc7fa022708ba245d8765cb04ae5352","unresolved":false,"context_lines":[{"line_number":1370,"context_line":"        cfg.CONF.deploy.shred_final_overwrite_with_zeros \u003d False"},{"line_number":1371,"context_line":"        utils.warn_about_unsafe_shred_parameters()"},{"line_number":1372,"context_line":"        log_mock.warning.assert_called_with("},{"line_number":1373,"context_line":"            \u0027With shred_random_overwrite_iterations set to 0 and \u0027"},{"line_number":1374,"context_line":"            \u0027shred_final_overwrite_with_zeros set to False, disks may NOT be \u0027"},{"line_number":1375,"context_line":"            \u0027shredded at all, unless they support ATA Secure Erase. This is a \u0027"},{"line_number":1376,"context_line":"            \u0027possible SECURITY ISSUE!\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"dab17558_14843fd2","line":1373,"in_reply_to":"1a122d0e_0393f15b","updated":"2016-05-09 12:22:58.000000000","message":"Done","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"9d2366d4e7379aec5c326354535cca08a80c4d72","unresolved":false,"context_lines":[{"line_number":1708,"context_line":"            self.assertEqual(states.CLEANWAIT, response)"},{"line_number":1709,"context_line":""},{"line_number":1710,"context_line":"    def test_agent_add_clean_params(self):"},{"line_number":1711,"context_line":"        cfg.CONF.deploy.shred_random_overwrite_iterations \u003d 2"},{"line_number":1712,"context_line":"        cfg.CONF.deploy.shred_final_overwrite_with_zeros \u003d False"},{"line_number":1713,"context_line":"        with task_manager.acquire("},{"line_number":1714,"context_line":"                self.context, self.node.uuid, shared\u003dFalse) as task:"},{"line_number":1715,"context_line":"            utils.agent_add_clean_params(task)"}],"source_content_type":"text/x-python","patch_set":15,"id":"dab17558_477d37b0","line":1712,"range":{"start_line":1711,"start_character":0,"end_line":1712,"end_character":64},"updated":"2016-05-10 14:04:03.000000000","message":"interesting, in general, we didn\u0027t do this but use  cfg.CONF.set_override(\u0027shred_random_overwrite_iterations\u0027, 2, \u0027deploy\u0027) \nBecause this can check if the value type is correct with enfore_type\u003dTrue, otherwise, you can also assign value like cfg.CONF.deploy.shred_random_overwrite_iterations \u003d True","commit_id":"4517184bad6ff0ed4e58007a558a1847de0ba11f"}],"releasenotes/notes/bug-1568811-50b5ba5b19c0da27.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0f7f312d3c4f7d06ab11de9ab36e3131e92e4289","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new configuration option called [deploy]erase_devices_zeroize has been"},{"line_number":4,"context_line":"    added. This option controls whether the node\u0027s devices will receive a"},{"line_number":5,"context_line":"    final overwrite with zeros during cleaning."},{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - [deploy]erase_devices_iterations has been renamed to"},{"line_number":8,"context_line":"    [deploy]erase_devices_random_iterations. This configuration option"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a18252c_f98d737c","line":5,"updated":"2016-04-12 13:17:19.000000000","message":"I think we should indicate the default for this setting and that it is pre-existing behavior.","commit_id":"057b4abb026b2eb8a102d3adf2a752ae8d59ebd1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c972f2369a43c46875481f01c34071ed1148c89d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    available. This option controls the final overwrite with zeros done on"},{"line_number":5,"context_line":"    all block devices for a node under cleaning. This feature was previously"},{"line_number":6,"context_line":"    always enabled and not configurable. This option is only used when a"},{"line_number":7,"context_line":"    block device could not be ATA Secure Erased."},{"line_number":8,"context_line":"upgrade:"},{"line_number":9,"context_line":"  - erase_devices_iterations has been renamed to"},{"line_number":10,"context_line":"    shred_random_overwrite_iterations. This configuration option controls"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5a18252c_6e877cd7","line":7,"range":{"start_line":7,"start_character":30,"end_line":7,"end_character":33},"updated":"2016-04-13 21:42:28.000000000","message":"Nit: ATA might not be the disk technology being used in all cases, but I truthfully don\u0027t feel strongly about it.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"13034593c41a6c20db4f5cbdfd9a26cc60fc7df9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    available. This option controls the final overwrite with zeros done on"},{"line_number":5,"context_line":"    all block devices for a node under cleaning. This feature was previously"},{"line_number":6,"context_line":"    always enabled and not configurable. This option is only used when a"},{"line_number":7,"context_line":"    block device could not be ATA Secure Erased."},{"line_number":8,"context_line":"upgrade:"},{"line_number":9,"context_line":"  - erase_devices_iterations has been renamed to"},{"line_number":10,"context_line":"    shred_random_overwrite_iterations. This configuration option controls"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5a18252c_91b15de4","line":7,"range":{"start_line":7,"start_character":30,"end_line":7,"end_character":33},"in_reply_to":"5a18252c_6e877cd7","updated":"2016-04-13 21:47:59.000000000","message":"ditto on my previous comment about the secure erase we\u0027re doing being ATA specific, IMO it\u0027s correct as is and should stay.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8ea16dec0879987dee5cbeb9a336f9fea119b8de","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    available. This option controls the final overwrite with zeros done on"},{"line_number":5,"context_line":"    all block devices for a node under cleaning. This feature was previously"},{"line_number":6,"context_line":"    always enabled and not configurable. This option is only used when a"},{"line_number":7,"context_line":"    block device could not be ATA Secure Erased."},{"line_number":8,"context_line":"upgrade:"},{"line_number":9,"context_line":"  - erase_devices_iterations has been renamed to"},{"line_number":10,"context_line":"    shred_random_overwrite_iterations. This configuration option controls"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5a18252c_0764ebe1","line":7,"range":{"start_line":7,"start_character":30,"end_line":7,"end_character":33},"in_reply_to":"5a18252c_91b15de4","updated":"2016-04-13 22:33:47.000000000","message":"Yup, ignore my previous comment.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c972f2369a43c46875481f01c34071ed1148c89d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - erase_devices_iterations has been renamed to"},{"line_number":10,"context_line":"    shred_random_overwrite_iterations. This configuration option controls"},{"line_number":11,"context_line":"    the number of times block devices are overwritten with random data. This"},{"line_number":12,"context_line":"    option is only used when a block device could not be ATA Secure Erased."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5a18252c_4e61e038","line":12,"range":{"start_line":12,"start_character":57,"end_line":12,"end_character":60},"updated":"2016-04-13 21:42:28.000000000","message":"Nit: Same as above.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8ea16dec0879987dee5cbeb9a336f9fea119b8de","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - erase_devices_iterations has been renamed to"},{"line_number":10,"context_line":"    shred_random_overwrite_iterations. This configuration option controls"},{"line_number":11,"context_line":"    the number of times block devices are overwritten with random data. This"},{"line_number":12,"context_line":"    option is only used when a block device could not be ATA Secure Erased."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5a18252c_c7b03346","line":12,"range":{"start_line":12,"start_character":57,"end_line":12,"end_character":60},"in_reply_to":"5a18252c_4e61e038","updated":"2016-04-13 22:33:47.000000000","message":"Ignore, I\u0027m wrong.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c972f2369a43c46875481f01c34071ed1148c89d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5a18252c_f1ba5109","line":13,"updated":"2016-04-13 21:42:28.000000000","message":"Release notes support a deprecations section, this should be present as the old config is being deprecated by the change and will be removed at a later point in time.","commit_id":"b6aaee2434a153c9c4958d405d7963b56f582f84"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a1dad37024bb7b4c368c8903f8476a41be736575","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new configuration option, `shred_final_overwrite_with_zeros` is now"},{"line_number":4,"context_line":"    available. This option controls the final overwrite with zeros done on"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1a122d0e_786307b2","line":1,"updated":"2016-04-17 20:43:54.000000000","message":"Not sure that bug number is a good release note name.","commit_id":"af242d77a3374d8fe5a864c745a7eea984355b91"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"becc8085d6fcdb9fdabaa95552f31612126d8ada","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new configuration option, `shred_final_overwrite_with_zeros` is now"},{"line_number":4,"context_line":"    available. This option controls the final overwrite with zeros done on"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1a122d0e_ad61c7aa","line":1,"in_reply_to":"1a122d0e_786307b2","updated":"2016-04-18 13:23:28.000000000","message":"Done","commit_id":"af242d77a3374d8fe5a864c745a7eea984355b91"}],"releasenotes/notes/shred-final-overwrite-with-zeros-50b5ba5b19c0da27.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"abb5a6b994bac75236d5e2a47c0967cf5d33b81b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    replaced by [deploy]/shred_random_overwrite_iterations. This configuration"},{"line_number":11,"context_line":"    option controls the number of times block devices are overwritten with"},{"line_number":12,"context_line":"    random data. This option is only used when a block device could not"},{"line_number":13,"context_line":"    be ATA Secure Erased."},{"line_number":14,"context_line":"deprecations:"},{"line_number":15,"context_line":"  - The [deploy]/erase_devices_iterations config is deprecated and will"},{"line_number":16,"context_line":"    be removed in the Ocata cycle. It has been replaced by the"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1a122d0e_2398ad77","line":13,"updated":"2016-04-28 13:25:32.000000000","message":"nit: this section seems to duplicate the next one..","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"b0e14bef0cc7fa022708ba245d8765cb04ae5352","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    replaced by [deploy]/shred_random_overwrite_iterations. This configuration"},{"line_number":11,"context_line":"    option controls the number of times block devices are overwritten with"},{"line_number":12,"context_line":"    random data. This option is only used when a block device could not"},{"line_number":13,"context_line":"    be ATA Secure Erased."},{"line_number":14,"context_line":"deprecations:"},{"line_number":15,"context_line":"  - The [deploy]/erase_devices_iterations config is deprecated and will"},{"line_number":16,"context_line":"    be removed in the Ocata cycle. It has been replaced by the"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"dab17558_b42e13f8","line":13,"in_reply_to":"1a122d0e_0c303955","updated":"2016-05-09 12:22:58.000000000","message":"Done","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"eccd7bc069e50fbfa93752ccce2705b5405c0a2f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    replaced by [deploy]/shred_random_overwrite_iterations. This configuration"},{"line_number":11,"context_line":"    option controls the number of times block devices are overwritten with"},{"line_number":12,"context_line":"    random data. This option is only used when a block device could not"},{"line_number":13,"context_line":"    be ATA Secure Erased."},{"line_number":14,"context_line":"deprecations:"},{"line_number":15,"context_line":"  - The [deploy]/erase_devices_iterations config is deprecated and will"},{"line_number":16,"context_line":"    be removed in the Ocata cycle. It has been replaced by the"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1a122d0e_0c303955","line":13,"in_reply_to":"1a122d0e_2398ad77","updated":"2016-04-28 16:33:18.000000000","message":"Right, correct if I\u0027m wrong. But it feels like the upgrade section should be filled up in the patch that remove the deprecated options, right?","commit_id":"969bceb559468d390cebf42c714a2beca0e43e34"}]}
