)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"bd8be3763a0cdc616281a6084ce37b4554ba5935","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-02-27 19:39:41 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Cleaning Operations for iLO drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: blueprint ilo-cleaning-support"},{"line_number":10,"context_line":"Change-Id: Ic63c668538dfb185a5addd5c435541322caa00d1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba7be1f8_e471a5e1","line":8,"updated":"2015-02-27 08:57:00.000000000","message":"May be add what all cleaning operations are introduced (rather than leaving the commit msg empty)","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-02-27 19:39:41 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Cleaning Operations for iLO drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: blueprint ilo-cleaning-support"},{"line_number":10,"context_line":"Change-Id: Ic63c668538dfb185a5addd5c435541322caa00d1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba7be1f8_ea5f39e3","line":8,"in_reply_to":"ba7be1f8_e471a5e1","updated":"2015-03-09 09:03:31.000000000","message":"Done","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"}],"etc/ironic/ironic.conf.sample":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"bd8be3763a0cdc616281a6084ce37b4554ba5935","unresolved":false,"context_lines":[{"line_number":604,"context_line":"# when configdrive_use_swift is True. (string value)"},{"line_number":605,"context_line":"#configdrive_swift_container\u003dironic_configdrive_container"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"# Whether Ironic will attempt to \"clean\" a node between"},{"line_number":608,"context_line":"# workloads and when moving from MANAGEABLE to AVAILABLE or"},{"line_number":609,"context_line":"# DELETING to AVAILABLE. Cleaning is a configurable set of"},{"line_number":610,"context_line":"# steps, such as erasing disk drives, that are performed on"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"ba7be1f8_e4ba856d","line":607,"updated":"2015-02-27 08:57:00.000000000","message":"I assume this is because parent patch didn\u0027t regenerate ironic.conf.sample, so you will anyway need to throw a new patch again. ;-)","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":604,"context_line":"# when configdrive_use_swift is True. (string value)"},{"line_number":605,"context_line":"#configdrive_swift_container\u003dironic_configdrive_container"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"# Whether Ironic will attempt to \"clean\" a node between"},{"line_number":608,"context_line":"# workloads and when moving from MANAGEABLE to AVAILABLE or"},{"line_number":609,"context_line":"# DELETING to AVAILABLE. Cleaning is a configurable set of"},{"line_number":610,"context_line":"# steps, such as erasing disk drives, that are performed on"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"9a80dd14_7da8448d","line":607,"in_reply_to":"ba7be1f8_e4ba856d","updated":"2015-03-09 09:03:31.000000000","message":"yes, now rebasing would solve the issue :)","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"2e35ea3f19ce0bda681c6df8a28f8c2ed3a17877","unresolved":false,"context_lines":[{"line_number":937,"context_line":"# Priority for reset_ilo_credential clean step. (integer"},{"line_number":938,"context_line":"# value)"},{"line_number":939,"context_line":"#clean_priority_reset_ilo_credential\u003d30"},{"line_number":940,"context_line":""},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"#"},{"line_number":943,"context_line":"# Options defined in ironic.drivers.modules.ilo.power"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"ba7be1f8_ac272bb5","line":940,"updated":"2015-03-02 21:48:06.000000000","message":"what about secure_disk_erase? Shouldn\u0027t it be added to as one of the options?","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"5266e91abe5849723a3169333f07bfc005624d30","unresolved":false,"context_lines":[{"line_number":847,"context_line":"#clean_priority_reset_bios_to_default\u003d10"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"# Priority for reset_secure_boot_keys clean step. This step"},{"line_number":850,"context_line":"# will reset the secure boot keys to manufacturing  defaults."},{"line_number":851,"context_line":"# (integer value)"},{"line_number":852,"context_line":"#clean_priority_reset_secure_boot_keys_to_default\u003d20"},{"line_number":853,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":20,"id":"9a80dd14_18b3ff9a","line":850,"updated":"2015-03-19 09:37:23.000000000","message":"duplicate spaces between manufactururing \u0026 defaults, \nand also s/manufactururing/manufacturing/;","commit_id":"2bab390a4b04119312bad328b3b17787a31686be"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"f721b2f267f9f063cd464344c5187f608f1658b8","unresolved":false,"context_lines":[{"line_number":847,"context_line":"#clean_priority_reset_bios_to_default\u003d10"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"# Priority for reset_secure_boot_keys clean step. This step"},{"line_number":850,"context_line":"# will reset the secure boot keys to manufacturing  defaults."},{"line_number":851,"context_line":"# (integer value)"},{"line_number":852,"context_line":"#clean_priority_reset_secure_boot_keys_to_default\u003d20"},{"line_number":853,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":20,"id":"9a80dd14_b2376fe2","line":850,"in_reply_to":"9a80dd14_18b3ff9a","updated":"2015-03-19 10:25:56.000000000","message":"the spelling seems to be correct. I can correct the space in the follow-up patch?","commit_id":"2bab390a4b04119312bad328b3b17787a31686be"}],"ironic/common/exception.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eaf03fa4250ec28b86454f11fd35e3cbc23ee6cb","unresolved":false,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"class NodeCleaningFailure(IronicException):"},{"line_number":557,"context_line":"    message \u003d _(\"Failed to clean node %(node)s: %(reason)s\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_71252c09","line":557,"updated":"2015-03-18 11:33:40.000000000","message":"this is being introduced in a parent blueprint patch: https://review.openstack.org/#/c/161453/12/ironic/common/exception.py\n\nplease rebase","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1eaa76e2d36dfc9637ebdc326fab6aab8db25a0f","unresolved":false,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"class NodeCleaningFailure(IronicException):"},{"line_number":557,"context_line":"    message \u003d _(\"Failed to clean node %(node)s: %(reason)s\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_4544e273","line":557,"in_reply_to":"9a80dd14_4535c244","updated":"2015-03-18 13:13:06.000000000","message":"I\u0027m not even sure there will be a conflict to resolve, looks like it\u0027s going to silently create 2 exception classes. Please discuss with Josh how to solve it.","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"247c7bafb8a54341e5ff1bf79f7d641c5b6d975a","unresolved":false,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"class NodeCleaningFailure(IronicException):"},{"line_number":557,"context_line":"    message \u003d _(\"Failed to clean node %(node)s: %(reason)s\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_4535c244","line":557,"in_reply_to":"9a80dd14_71252c09","updated":"2015-03-18 13:09:57.000000000","message":"dmitry, as discussed there is nothing dependent from this patch except exception from the patch you pointed out (#161453). so, feel better to keep it as it is, and rebase when any of the patches get in. It will be fairly simple conflict to resolve. As the patch pointed out still need some iterations, will be painful to keep rebasing everytime 161453 changes ( without any dependecy actually)\n\nwdyt?","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"b47d47725e6d5c8deb6f2eb55d6dd7b9d1216646","unresolved":false,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"class NodeCleaningFailure(IronicException):"},{"line_number":557,"context_line":"    message \u003d _(\"Failed to clean node %(node)s: %(reason)s\")"}],"source_content_type":"text/x-python","patch_set":18,"id":"9a80dd14_7de411ac","line":557,"updated":"2015-03-18 16:09:53.000000000","message":"We\u0027ll need to keep an eye out, because the agent driver cleaning is adding this as well (in a different spot, so we could wind up with duplicated exceptions). If there\u0027s a conflict, I can make sure it gets rebased.","commit_id":"5879bce773b819f22ecbc21f64d24fec26bc7eeb"}],"ironic/drivers/modules/ilo/common.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"84929fb992ad2bab208448a82931491f109241b7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                      \"console access.\")"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":"CLEAN_PROPERTIES \u003d {"},{"line_number":77,"context_line":"    \u0027ilo_change_password\u0027: _(\"New password for iLO. Required if the clean \""},{"line_number":78,"context_line":"                             \"step \u0027reset_ilo_credential\u0027 is enabled.\")"},{"line_number":79,"context_line":"}"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_61ee75b6","line":77,"updated":"2015-02-27 15:28:10.000000000","message":"nit: \u0027N\u0027 in New should be small case.","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                      \"console access.\")"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":"CLEAN_PROPERTIES \u003d {"},{"line_number":77,"context_line":"    \u0027ilo_change_password\u0027: _(\"New password for iLO. Required if the clean \""},{"line_number":78,"context_line":"                             \"step \u0027reset_ilo_credential\u0027 is enabled.\")"},{"line_number":79,"context_line":"}"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_bdae3c96","line":77,"in_reply_to":"ba7be1f8_61ee75b6","updated":"2015-03-09 09:03:31.000000000","message":"Done","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"}],"ironic/drivers/modules/ilo/management.py":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    cfg.StrOpt(\u0027clean_priority_reset_secure_boot_keys\u0027,"},{"line_number":50,"context_line":"               default\u003d20,"},{"line_number":51,"context_line":"               help\u003d\u0027Priority for reset_secure_boot_keys clean step.\u0027),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027clean_priority_clear_secure_boot_keys\u0027,"},{"line_number":53,"context_line":"               default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Priority for clear_secure_boot_keys clean step.\u0027),"},{"line_number":55,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo_credential\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_b2014007","line":52,"updated":"2015-02-24 14:39:14.000000000","message":"With default priority of 0, this will not be run during cleaning (as per the spec). Is this intended ?","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    cfg.StrOpt(\u0027clean_priority_reset_secure_boot_keys\u0027,"},{"line_number":50,"context_line":"               default\u003d20,"},{"line_number":51,"context_line":"               help\u003d\u0027Priority for reset_secure_boot_keys clean step.\u0027),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027clean_priority_clear_secure_boot_keys\u0027,"},{"line_number":53,"context_line":"               default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Priority for clear_secure_boot_keys clean step.\u0027),"},{"line_number":55,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo_credential\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_532723ca","line":52,"in_reply_to":"ba7be1f8_b2014007","updated":"2015-02-25 02:53:25.000000000","message":"yes, we enable only reset_secure_boot_keys by default, which resets the keys to manufacturer\u0027s default. Its user\u0027s option to enable clear_secure_boot_keys()","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        ipmi_management \u003d ipmitool.IPMIManagement()"},{"line_number":187,"context_line":"        return ipmi_management.get_sensors_data(task)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_ilo)"},{"line_number":190,"context_line":"    def reset_ilo(self, task):"},{"line_number":191,"context_line":"        \"\"\"Resets the iLO."},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_12a3ec4f","line":189,"updated":"2015-02-24 14:39:14.000000000","message":"I see a common pattern of running clean step for iLO:\n\n* get ilo object\n* try running the method\n* catch the exception IloError, log it and raise another exception\n* catch the exception IloCommandNotSupported, log it, return\n* return\n\nCan this be made into a single method _execute_ilo_clean_method() and each of the actual methods just call this ?","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_ilo)"},{"line_number":190,"context_line":"    def reset_ilo(self, task):"},{"line_number":191,"context_line":"        \"\"\"Resets the iLO."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":194,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":195,"context_line":"                 on the server."}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_52f804c3","line":192,"updated":"2015-02-24 14:39:14.000000000","message":"Missing exceptions and :param: and returns","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_ilo)"},{"line_number":190,"context_line":"    def reset_ilo(self, task):"},{"line_number":191,"context_line":"        \"\"\"Resets the iLO."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":194,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":195,"context_line":"                 on the server."}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_530e433c","line":192,"in_reply_to":"ba7be1f8_52f804c3","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    def reset_ilo(self, task):"},{"line_number":191,"context_line":"        \"\"\"Resets the iLO."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":194,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":195,"context_line":"                 on the server."},{"line_number":196,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_9250bcd5","line":193,"updated":"2015-02-24 14:39:14.000000000","message":"I guess this doesn\u0027t raise IloError, it raises exception.InstanceCleanFailure.  \n\nAlso we don\u0027t seem to catch IloCommandNotSupportedError. Can this be raised ? Doesn\u0027t all versions of servers support reset_ilo ?","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    def reset_ilo(self, task):"},{"line_number":191,"context_line":"        \"\"\"Resets the iLO."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":194,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":195,"context_line":"                 on the server."},{"line_number":196,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_6e01a037","line":193,"in_reply_to":"ba7be1f8_9250bcd5","updated":"2015-02-25 02:53:25.000000000","message":"will fix the docstring. No, it doesn\u0027t raise IloCommandNotSupportedError","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(task.node)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        try:"},{"line_number":200,"context_line":"            ilo_object.reset_ilo()"},{"line_number":201,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":202,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \u0027reset_ilo\u0027 \""},{"line_number":203,"context_line":"                    \"failed with error: %(msg)s\") % {\u0027msg\u0027: ilo_exception})"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_d254f400","line":200,"updated":"2015-02-24 14:39:14.000000000","message":"After reset of an iLO, wouldn\u0027t it take some time to get it back up and ready to serve more requests. Should we just add a wait for a few seconds and make sure iLO has come back up again.  Otherwise the next cleaning step might fail and it might be difficult to root cause.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(task.node)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        try:"},{"line_number":200,"context_line":"            ilo_object.reset_ilo()"},{"line_number":201,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":202,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \u0027reset_ilo\u0027 \""},{"line_number":203,"context_line":"                    \"failed with error: %(msg)s\") % {\u0027msg\u0027: ilo_exception})"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_e9066a1c","line":200,"in_reply_to":"ba7be1f8_d254f400","updated":"2015-02-25 02:53:25.000000000","message":"This is the last clean step executed, but yes, wait would be a good option. will update it.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            ilo_object.reset_ilo()"},{"line_number":201,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":202,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \u0027reset_ilo\u0027 \""},{"line_number":203,"context_line":"                    \"failed with error: %(msg)s\") % {\u0027msg\u0027: ilo_exception})"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        return states.CLEANING"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_928b5c67","line":203,"updated":"2015-02-24 14:39:14.000000000","message":"nit: since there is only one variable to be substituted in the string, %s might be enough.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            ilo_object.reset_ilo()"},{"line_number":201,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":202,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \u0027reset_ilo\u0027 \""},{"line_number":203,"context_line":"                    \"failed with error: %(msg)s\") % {\u0027msg\u0027: ilo_exception})"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        return states.CLEANING"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_69127a58","line":203,"in_reply_to":"ba7be1f8_928b5c67","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    def reset_ilo_credential(self, task):"},{"line_number":209,"context_line":"        \"\"\"Resets the iLO password."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        :param password: The password to be set."},{"line_number":212,"context_line":"        :raises: IloError, if account not found or on an error from iLO."},{"line_number":213,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":214,"context_line":"             on the server."}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_9267dcb6","line":211,"updated":"2015-02-24 14:39:14.000000000","message":"Missing exceptions and :param: and returns","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    def reset_ilo_credential(self, task):"},{"line_number":209,"context_line":"        \"\"\"Resets the iLO password."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        :param password: The password to be set."},{"line_number":212,"context_line":"        :raises: IloError, if account not found or on an error from iLO."},{"line_number":213,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":214,"context_line":"             on the server."}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_091f3e5c","line":211,"in_reply_to":"ba7be1f8_9267dcb6","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        \"\"\"Resets the iLO password."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        :param password: The password to be set."},{"line_number":212,"context_line":"        :raises: IloError, if account not found or on an error from iLO."},{"line_number":213,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":214,"context_line":"             on the server."},{"line_number":215,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_5271e474","line":212,"updated":"2015-02-24 14:39:14.000000000","message":"Ditto, this method doesn\u0027t raise this exception.  Instead it transforms into Ironic exception.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        \"\"\"Resets the iLO password."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        :param password: The password to be set."},{"line_number":212,"context_line":"        :raises: IloError, if account not found or on an error from iLO."},{"line_number":213,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":214,"context_line":"             on the server."},{"line_number":215,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_69399ad6","line":212,"in_reply_to":"ba7be1f8_5271e474","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                \"\u0027reset_ilo_credential\u0027 failed with error: %(msg)s\")"},{"line_number":231,"context_line":"                % {\u0027msg\u0027: ilo_exception})"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        node.driver_info[\u0027ilo_password\u0027] \u003d password"},{"line_number":234,"context_line":"        node.save()"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        return states.CLEANING"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_f28018f9","line":233,"updated":"2015-02-24 14:39:14.000000000","message":"Does this get saved ? I see test case works, but we usually get it another dictionary, edit it, put it back and then save it.  I don\u0027t know the reason why it\u0027s so :)","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                \"\u0027reset_ilo_credential\u0027 failed with error: %(msg)s\")"},{"line_number":231,"context_line":"                % {\u0027msg\u0027: ilo_exception})"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        node.driver_info[\u0027ilo_password\u0027] \u003d password"},{"line_number":234,"context_line":"        node.save()"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        return states.CLEANING"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_6967dae9","line":233,"in_reply_to":"ba7be1f8_f28018f9","updated":"2015-02-25 02:53:25.000000000","message":"yes, I too remembered, but changed it again seeing the test case is passing. will validate again.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    def reset_bios_to_default(self, task):"},{"line_number":240,"context_line":"        \"\"\"Resets the BIOS settings to default values."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":243,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":244,"context_line":"                 on the server."},{"line_number":245,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_527ba427","line":242,"updated":"2015-02-24 14:39:14.000000000","message":"Ditto regarding exceptions and :param: and returns","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    def reset_bios_to_default(self, task):"},{"line_number":240,"context_line":"        \"\"\"Resets the BIOS settings to default values."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":243,"context_line":"        :raises: IloCommandNotSupportedError, if the command is not supported"},{"line_number":244,"context_line":"                 on the server."},{"line_number":245,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_69dc3a74","line":242,"in_reply_to":"ba7be1f8_527ba427","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            # Log the failure and continue with cleaning."},{"line_number":254,"context_line":"            LOG.error(\"\u0027reset_bios_to_default\u0027 clean step is not supported on \""},{"line_number":255,"context_line":"                      \"current platform. Skipping the clean step ..\")"},{"line_number":256,"context_line":"            return states.CLEANING"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":259,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_32a550a2","line":256,"updated":"2015-02-24 14:39:14.000000000","message":"nit: this may be removed.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            # Log the failure and continue with cleaning."},{"line_number":254,"context_line":"            LOG.error(\"\u0027reset_bios_to_default\u0027 clean step is not supported on \""},{"line_number":255,"context_line":"                      \"current platform. Skipping the clean step ..\")"},{"line_number":256,"context_line":"            return states.CLEANING"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":259,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_a9e2b22c","line":256,"in_reply_to":"ba7be1f8_32a550a2","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        Resets the secure boot keys to manufacturing defaults. This"},{"line_number":270,"context_line":"        operation is supported only on HP Proliant Gen9 and above servers."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":273,"context_line":"        \"\"\""},{"line_number":274,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(task.node)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_12ebecb0","line":271,"updated":"2015-02-24 14:39:14.000000000","message":"Ditto regarding exceptions and :param: and returns","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        Resets the secure boot keys to manufacturing defaults. This"},{"line_number":270,"context_line":"        operation is supported only on HP Proliant Gen9 and above servers."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":273,"context_line":"        \"\"\""},{"line_number":274,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(task.node)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_c9d2865b","line":271,"in_reply_to":"ba7be1f8_12ebecb0","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":281,"context_line":"            # Log the failure and continue with cleaning."},{"line_number":282,"context_line":"            LOG.error(\"\u0027reset_secure_boot_keys\u0027 clean step is not supported \""},{"line_number":283,"context_line":"                      \"on current platform. Skipping the clean step ..\")"},{"line_number":284,"context_line":"            return states.CLEANING"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":287,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_72ab4875","line":284,"updated":"2015-02-24 14:39:14.000000000","message":"nit: this may be removed.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":281,"context_line":"            # Log the failure and continue with cleaning."},{"line_number":282,"context_line":"            LOG.error(\"\u0027reset_secure_boot_keys\u0027 clean step is not supported \""},{"line_number":283,"context_line":"                      \"on current platform. Skipping the clean step ..\")"},{"line_number":284,"context_line":"            return states.CLEANING"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":287,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_e9d74a49","line":284,"in_reply_to":"ba7be1f8_72ab4875","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        Clears all the secure boot keys. This operation is supported only"},{"line_number":298,"context_line":"        on HP Proliant Gen9 and above servers."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":301,"context_line":"        \"\"\""},{"line_number":302,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(task.node)"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_92bfdca9","line":300,"updated":"2015-02-24 14:39:14.000000000","message":"Ditto regarding exceptions and :param: and returns","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        Clears all the secure boot keys. This operation is supported only"},{"line_number":298,"context_line":"        on HP Proliant Gen9 and above servers."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        :raises: IloError, on an error from iLO."},{"line_number":301,"context_line":"        \"\"\""},{"line_number":302,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(task.node)"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_49c6969b","line":300,"in_reply_to":"ba7be1f8_92bfdca9","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            # Log the failure and continue with cleaning."},{"line_number":310,"context_line":"            LOG.error(\"\u0027clear_secure_boot_keys\u0027 clean step is not supported \""},{"line_number":311,"context_line":"                      \"on current platform. Skipping the clean step ..\")"},{"line_number":312,"context_line":"            return states.CLEANING"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":315,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_12b4cccf","line":312,"updated":"2015-02-24 14:39:14.000000000","message":"nit: this may be removed.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            # Log the failure and continue with cleaning."},{"line_number":310,"context_line":"            LOG.error(\"\u0027clear_secure_boot_keys\u0027 clean step is not supported \""},{"line_number":311,"context_line":"                      \"on current platform. Skipping the clean step ..\")"},{"line_number":312,"context_line":"            return states.CLEANING"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":315,"context_line":"            raise exception.InstanceCleanFailure(_(\"Clean step \""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_89bc0e08","line":312,"in_reply_to":"ba7be1f8_12b4cccf","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"41a3eed75ba282699b97e3a540c04db7f6fae6af","unresolved":false,"context_lines":[{"line_number":61,"context_line":"CONF.register_opts(clean_step_opts, group\u003d\u0027ilo\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def _execute_step(node, step, *params):"},{"line_number":65,"context_line":"    \"\"\"Executes a particular clean step.\"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_0922bb51","line":64,"updated":"2015-02-25 10:25:00.000000000","message":"We don\u0027t have a use-case now, but I think better to put both *args and **kwargs here as this is a general function.  And pass the same to clean_step() while calling it.\n\nAnd also may be rename this to execute clean_step as it is specific to cleaning (because it throws exception.InstanceCleanFailure on getting IloError)","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"090a2119549a46c983966c67428270b60775f6ca","unresolved":false,"context_lines":[{"line_number":61,"context_line":"CONF.register_opts(clean_step_opts, group\u003d\u0027ilo\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def _execute_step(node, step, *params):"},{"line_number":65,"context_line":"    \"\"\"Executes a particular clean step.\"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_ec71f5a8","line":64,"in_reply_to":"ba7be1f8_0922bb51","updated":"2015-02-26 08:54:43.000000000","message":"ya, could do that, will include both args and kwargs\nActually, parent class also has execute_clean_step as function, so didn\u0027t name the same, as it will confuse. will change it to _execute_ilo_clean_step","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"41a3eed75ba282699b97e3a540c04db7f6fae6af","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def _execute_step(node, step, *params):"},{"line_number":65,"context_line":"    \"\"\"Executes a particular clean step.\"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_6915f7e3","line":65,"updated":"2015-02-25 10:25:00.000000000","message":"nit: may be just expand docstring with exceptions.","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"090a2119549a46c983966c67428270b60775f6ca","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def _execute_step(node, step, *params):"},{"line_number":65,"context_line":"    \"\"\"Executes a particular clean step.\"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_cce511dd","line":65,"in_reply_to":"ba7be1f8_6915f7e3","updated":"2015-02-26 08:54:43.000000000","message":"Done","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"41a3eed75ba282699b97e3a540c04db7f6fae6af","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    try:"},{"line_number":70,"context_line":"        clean_step \u003d getattr(ilo_object, step)"},{"line_number":71,"context_line":"        clean_step(*params)"},{"line_number":72,"context_line":"    except ilo_error.IloCommandNotSupportedError:"},{"line_number":73,"context_line":"        # This clean step is not supported on Gen8 and below servers."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_c90d03ea","line":70,"updated":"2015-02-25 10:25:00.000000000","message":"May be pull this out of the try catch block. This can\u0027t throw IloError or IloCommandNotSupportedError.\n\nInstead this can throw AttributeError on some programming error. Wondering if we throw InvalidParameterValue would be helpful to implementor.  May be not needed.\n\nNevertheless, we can pull this out of try block.","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"3743ce83418aeec605534c1d2a06b76c68834cd8","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    try:"},{"line_number":70,"context_line":"        clean_step \u003d getattr(ilo_object, step)"},{"line_number":71,"context_line":"        clean_step(*params)"},{"line_number":72,"context_line":"    except ilo_error.IloCommandNotSupportedError:"},{"line_number":73,"context_line":"        # This clean step is not supported on Gen8 and below servers."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_d008102a","line":70,"in_reply_to":"ba7be1f8_6c718543","updated":"2015-02-26 08:57:14.000000000","message":"yeah, agree. no need to check for attributeerror.","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"090a2119549a46c983966c67428270b60775f6ca","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    try:"},{"line_number":70,"context_line":"        clean_step \u003d getattr(ilo_object, step)"},{"line_number":71,"context_line":"        clean_step(*params)"},{"line_number":72,"context_line":"    except ilo_error.IloCommandNotSupportedError:"},{"line_number":73,"context_line":"        # This clean step is not supported on Gen8 and below servers."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_6c718543","line":70,"in_reply_to":"ba7be1f8_c90d03ea","updated":"2015-02-26 08:54:43.000000000","message":"testcases should be able to catch programatical errors right, as its not value coming from user. so should be fine to pull out of try catch i guess?","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"41a3eed75ba282699b97e3a540c04db7f6fae6af","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        # This clean step is not supported on Gen8 and below servers."},{"line_number":74,"context_line":"        # Log the failure and continue with cleaning."},{"line_number":75,"context_line":"        LOG.error(_(\"\u0027%(step)s\u0027 clean step is not supported on current\""},{"line_number":76,"context_line":"                  \" platform. Skipping the clean step.\") % {\u0027step\u0027: step})"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    except ilo_error.IloError as ilo_exception:"},{"line_number":79,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 failed \""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_a9a8cf8d","line":76,"updated":"2015-02-25 10:25:00.000000000","message":"nit: only one variable to substitute, better use just %s.","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"090a2119549a46c983966c67428270b60775f6ca","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        # This clean step is not supported on Gen8 and below servers."},{"line_number":74,"context_line":"        # Log the failure and continue with cleaning."},{"line_number":75,"context_line":"        LOG.error(_(\"\u0027%(step)s\u0027 clean step is not supported on current\""},{"line_number":76,"context_line":"                  \" platform. Skipping the clean step.\") % {\u0027step\u0027: step})"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    except ilo_error.IloError as ilo_exception:"},{"line_number":79,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 failed \""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_65ec08bc","line":76,"in_reply_to":"ba7be1f8_a9a8cf8d","updated":"2015-02-26 08:54:43.000000000","message":"Done","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"41a3eed75ba282699b97e3a540c04db7f6fae6af","unresolved":false,"context_lines":[{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_bios_to_default)"},{"line_number":244,"context_line":"    def reset_bios_to_default(self, task):"},{"line_number":245,"context_line":"        \"\"\"Resets the BIOS settings to default values."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        :param task: a task from TaskManager."},{"line_number":248,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_e9eac7aa","line":245,"updated":"2015-02-25 10:25:00.000000000","message":"I think this is also supported only on Gen9 and above for now.","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"090a2119549a46c983966c67428270b60775f6ca","unresolved":false,"context_lines":[{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_bios_to_default)"},{"line_number":244,"context_line":"    def reset_bios_to_default(self, task):"},{"line_number":245,"context_line":"        \"\"\"Resets the BIOS settings to default values."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        :param task: a task from TaskManager."},{"line_number":248,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_cc243162","line":245,"in_reply_to":"ba7be1f8_e9eac7aa","updated":"2015-02-26 08:54:43.000000000","message":"yes, will update doc string","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"41a3eed75ba282699b97e3a540c04db7f6fae6af","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        return _execute_step(task.node, \u0027reset_bios_to_default\u0027)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_secure_boot_keys)"},{"line_number":253,"context_line":"    def reset_secure_boot_keys(self, task):"},{"line_number":254,"context_line":"        \"\"\"Reset secure boot keys to manufacturing defaults."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        Resets the secure boot keys to manufacturing defaults. This"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_09fabb74","line":253,"updated":"2015-02-25 10:25:00.000000000","message":"Wondering if we can consolidate reset_secure_boot_keys and clear_secure_boot_keys into a single cleaning task.  Will someone be interested in running only one and not the other ?","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"090a2119549a46c983966c67428270b60775f6ca","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        return _execute_step(task.node, \u0027reset_bios_to_default\u0027)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_secure_boot_keys)"},{"line_number":253,"context_line":"    def reset_secure_boot_keys(self, task):"},{"line_number":254,"context_line":"        \"\"\"Reset secure boot keys to manufacturing defaults."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        Resets the secure boot keys to manufacturing defaults. This"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_8c8a3919","line":253,"in_reply_to":"ba7be1f8_09fabb74","updated":"2015-02-26 08:54:43.000000000","message":"there would not be use case to do both. Either they want to reset to manufacturer\u0027s default or clear all keys. Keeping separate functionalities would be better.","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"3743ce83418aeec605534c1d2a06b76c68834cd8","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        return _execute_step(task.node, \u0027reset_bios_to_default\u0027)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_secure_boot_keys)"},{"line_number":253,"context_line":"    def reset_secure_boot_keys(self, task):"},{"line_number":254,"context_line":"        \"\"\"Reset secure boot keys to manufacturing defaults."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        Resets the secure boot keys to manufacturing defaults. This"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_e514784e","line":253,"in_reply_to":"ba7be1f8_8c8a3919","updated":"2015-02-26 08:57:14.000000000","message":"oh okay. thanks for the info :)","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                              for k, v in BOOT_DEVICE_MAPPING_TO_ILO.items()}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"clean_step_opts \u003d ["},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo\u0027,"},{"line_number":44,"context_line":"               default\u003d1,"},{"line_number":45,"context_line":"               help\u003d\u0027Priority for reset_ilo clean step.\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_bios_to_default\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_1416f1f1","line":43,"updated":"2015-02-27 02:12:19.000000000","message":"the priorities here are different and not even in the same order as in the spec. I assume these are the correct values.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                              for k, v in BOOT_DEVICE_MAPPING_TO_ILO.items()}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"clean_step_opts \u003d ["},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo\u0027,"},{"line_number":44,"context_line":"               default\u003d1,"},{"line_number":45,"context_line":"               help\u003d\u0027Priority for reset_ilo clean step.\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_bios_to_default\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_9ae76bac","line":43,"in_reply_to":"ba7be1f8_1416f1f1","updated":"2015-02-27 06:20:19.000000000","message":"Ruby, order is still same, it still follows -\n\nreset_ilo_credential , reset_secure_boot_keys\napply_base_firmware_settings (renamed to reset_bios_to_default) , ilo_reset (renamed to reset_ilo) , but changed the priority values to be more flexible to incorporate any new functions in between for future.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d\u0027Priority for reset_secure_boot_keys clean step.\u0027),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027clean_priority_clear_secure_boot_keys\u0027,"},{"line_number":53,"context_line":"               default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Priority for clear_secure_boot_keys clean step.\u0027),"},{"line_number":55,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo_credential\u0027,"},{"line_number":56,"context_line":"               default\u003d30,"},{"line_number":57,"context_line":"               help\u003d\u0027Priority for reset_ilo_credential clean step.\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_74aacd86","line":54,"updated":"2015-02-27 02:12:19.000000000","message":"The spec has \u0027The priority of clear_secure_boot_keys() by default would be zero, operator would have option to choose either reset_secure_boot_keys or clear_secure_boot_keys(to reset to manufacturer’s defaults or clear all keys)\u0027.\n\nCan the operator choose both? It isn\u0027t clear from the above, and I don\u0027t see any code that prevents them from choosing both.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d\u0027Priority for reset_secure_boot_keys clean step.\u0027),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027clean_priority_clear_secure_boot_keys\u0027,"},{"line_number":53,"context_line":"               default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Priority for clear_secure_boot_keys clean step.\u0027),"},{"line_number":55,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo_credential\u0027,"},{"line_number":56,"context_line":"               default\u003d30,"},{"line_number":57,"context_line":"               help\u003d\u0027Priority for reset_ilo_credential clean step.\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_fa84e7b2","line":54,"in_reply_to":"ba7be1f8_74aacd86","updated":"2015-02-27 06:20:19.000000000","message":"they could enable both, but its not usecase for customers generally, they could either want their secure boot keys to be reset to manufacture defaults or clear all keys. This can be documented.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo_credential\u0027,"},{"line_number":56,"context_line":"               default\u003d30,"},{"line_number":57,"context_line":"               help\u003d\u0027Priority for reset_ilo_credential clean step.\u0027),"},{"line_number":58,"context_line":"]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"CONF \u003d cfg.CONF"},{"line_number":61,"context_line":"CONF.register_opts(clean_step_opts, group\u003d\u0027ilo\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_99105caa","line":58,"updated":"2015-02-27 02:12:19.000000000","message":"These configs should appear in etc/ironic/ironic.conf.sample\n\nTo update that file, do something like\n  ./tools/config/generate_sample.sh -b . -p ironic -o ./etc/ironic","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo_credential\u0027,"},{"line_number":56,"context_line":"               default\u003d30,"},{"line_number":57,"context_line":"               help\u003d\u0027Priority for reset_ilo_credential clean step.\u0027),"},{"line_number":58,"context_line":"]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"CONF \u003d cfg.CONF"},{"line_number":61,"context_line":"CONF.register_opts(clean_step_opts, group\u003d\u0027ilo\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_3a8f5fce","line":58,"in_reply_to":"ba7be1f8_99105caa","updated":"2015-02-27 06:20:19.000000000","message":"right, will udpate, thanks","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"48b519d33ef52f733224d75c5ab3c02dafb78448","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":75,"context_line":"    clean_step \u003d getattr(ilo_object, step)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    try:"},{"line_number":78,"context_line":"        clean_step(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_514d02c3","line":75,"updated":"2015-02-26 10:29:29.000000000","message":"Thinking more about this after the last patchset, may be AttributeError is worth if we added a new clean step some time later on, released a new version of proliantutils and ironic change together.\n\nBut what if someone uses older version of proliantutils with latest ironic.  they would get attributeerror.  I think it\u0027s worth fixing this. May be raise an exception saying you need install a higher version of proliantutils (because we know for sure that we have added it).","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":75,"context_line":"    clean_step \u003d getattr(ilo_object, step)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    try:"},{"line_number":78,"context_line":"        clean_step(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_ce3da52e","line":75,"in_reply_to":"ba7be1f8_0e9e0163","updated":"2015-02-27 06:20:19.000000000","message":"Done","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f4eab852ff6af0ee10d26e177ddcf592036a9722","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":75,"context_line":"    clean_step \u003d getattr(ilo_object, step)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    try:"},{"line_number":78,"context_line":"        clean_step(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_0e9e0163","line":75,"in_reply_to":"ba7be1f8_514d02c3","updated":"2015-02-26 14:14:47.000000000","message":"I agree, this should be handled.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"8f052967d746423eab36d05c5a24d32c7551219b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":75,"context_line":"    clean_step \u003d getattr(ilo_object, step)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    try:"},{"line_number":78,"context_line":"        clean_step(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_6ef4dd5a","line":75,"in_reply_to":"ba7be1f8_514d02c3","updated":"2015-02-26 14:04:31.000000000","message":"right, this could be valid scenario. But instead of raising exception should we log the exception and continue with other steps. wdyt?","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"18bd194e90e00691211df8d210341bc8e481e314","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":75,"context_line":"    clean_step \u003d getattr(ilo_object, step)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    try:"},{"line_number":78,"context_line":"        clean_step(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_f1934ca0","line":75,"in_reply_to":"ba7be1f8_6ef4dd5a","updated":"2015-02-26 14:12:01.000000000","message":"i think we should raise an exception so that the operator is informed that clean step has failed - because we have failed in the execution of clean step.  logging the error might go unnoticed.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        # Log the failure and continue with cleaning."},{"line_number":82,"context_line":"        LOG.error(_(\"\u0027%(step)s\u0027 clean step is not supported on node \""},{"line_number":83,"context_line":"                  \"%(uuid)s. Skipping the clean step.\") %"},{"line_number":84,"context_line":"                  {\u0027step\u0027: step, \u0027uuid\u0027: node.uuid})"},{"line_number":85,"context_line":"    except ilo_error.IloError as ilo_exception:"},{"line_number":86,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 failed \""},{"line_number":87,"context_line":"                \"with error: %(err)s\") % {\u0027step\u0027: step, \u0027err\u0027: ilo_exception})"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_f97f98a9","line":84,"updated":"2015-02-27 02:12:19.000000000","message":"errors should be logged with _LE(), not _()","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        # Log the failure and continue with cleaning."},{"line_number":82,"context_line":"        LOG.error(_(\"\u0027%(step)s\u0027 clean step is not supported on node \""},{"line_number":83,"context_line":"                  \"%(uuid)s. Skipping the clean step.\") %"},{"line_number":84,"context_line":"                  {\u0027step\u0027: step, \u0027uuid\u0027: node.uuid})"},{"line_number":85,"context_line":"    except ilo_error.IloError as ilo_exception:"},{"line_number":86,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 failed \""},{"line_number":87,"context_line":"                \"with error: %(err)s\") % {\u0027step\u0027: step, \u0027err\u0027: ilo_exception})"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_7ac0f7e0","line":84,"in_reply_to":"ba7be1f8_f97f98a9","updated":"2015-02-27 06:20:19.000000000","message":"Done","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        :returns: states.CLEANING, on successful execution of the step."},{"line_number":223,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":224,"context_line":"        \"\"\""},{"line_number":225,"context_line":"        return _execute_ilo_clean_step(task.node, \u0027reset_ilo\u0027)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_ilo_credential)"},{"line_number":228,"context_line":"    def reset_ilo_credential(self, task):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_3481354e","line":225,"updated":"2015-02-27 02:12:19.000000000","message":"in your spec, this is \u0027ilo_reset\u0027; I\u0027m assuming this is right, not the spec?","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        :returns: states.CLEANING, on successful execution of the step."},{"line_number":223,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":224,"context_line":"        \"\"\""},{"line_number":225,"context_line":"        return _execute_ilo_clean_step(task.node, \u0027reset_ilo\u0027)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_ilo_credential)"},{"line_number":228,"context_line":"    def reset_ilo_credential(self, task):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_1aa9bb24","line":225,"in_reply_to":"ba7be1f8_3481354e","updated":"2015-02-27 06:20:19.000000000","message":"yes, renamed certain functions to be more apt and consistent with other functions.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":234,"context_line":"        \"\"\""},{"line_number":235,"context_line":"        info \u003d task.node.driver_info"},{"line_number":236,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027, None)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if password is None:"},{"line_number":239,"context_line":"            LOG.error(\"Missing \u0027ilo_change_password\u0027 parameter in driver_info.\""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_74af2d7e","line":236,"updated":"2015-02-27 02:12:19.000000000","message":"I don\u0027t see \u0027ilo_change_password\u0027 in ilo.common.REQUIRED_PROPERTIES or OPTIONAL_PROPERTIES?","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":234,"context_line":"        \"\"\""},{"line_number":235,"context_line":"        info \u003d task.node.driver_info"},{"line_number":236,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027, None)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if password is None:"},{"line_number":239,"context_line":"            LOG.error(\"Missing \u0027ilo_change_password\u0027 parameter in driver_info.\""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_40d7c4ed","line":236,"in_reply_to":"ba7be1f8_74af2d7e","updated":"2015-02-27 06:20:19.000000000","message":"It is required only during cleaning, we are not validating anywhere for the property. I can add it over there, to get listed as driver properties. thanks","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if password is None:"},{"line_number":239,"context_line":"            LOG.error(\"Missing \u0027ilo_change_password\u0027 parameter in driver_info.\""},{"line_number":240,"context_line":"                      \" clean step \u0027reset_ilo_credential\u0027 is not performed on\""},{"line_number":241,"context_line":"                      \" node %(uuid)s .\", {\u0027uuid\u0027: task.node.uuid})"},{"line_number":242,"context_line":"            return states.CLEANING"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_19a62c54","line":240,"updated":"2015-02-27 02:12:19.000000000","message":"errors should be logged with the string in _LE() so they get translated.\n\nnit: s/clean/Clean/","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if password is None:"},{"line_number":239,"context_line":"            LOG.error(\"Missing \u0027ilo_change_password\u0027 parameter in driver_info.\""},{"line_number":240,"context_line":"                      \" clean step \u0027reset_ilo_credential\u0027 is not performed on\""},{"line_number":241,"context_line":"                      \" node %(uuid)s .\", {\u0027uuid\u0027: task.node.uuid})"},{"line_number":242,"context_line":"            return states.CLEANING"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_5a625317","line":240,"in_reply_to":"ba7be1f8_19a62c54","updated":"2015-02-27 06:20:19.000000000","message":"Done","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        if password is None:"},{"line_number":239,"context_line":"            LOG.error(\"Missing \u0027ilo_change_password\u0027 parameter in driver_info.\""},{"line_number":240,"context_line":"                      \" clean step \u0027reset_ilo_credential\u0027 is not performed on\""},{"line_number":241,"context_line":"                      \" node %(uuid)s .\", {\u0027uuid\u0027: task.node.uuid})"},{"line_number":242,"context_line":"            return states.CLEANING"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_593504f6","line":241,"updated":"2015-02-27 02:12:19.000000000","message":"I don\u0027t know if you want that blank space between the uuid and the period.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        if password is None:"},{"line_number":239,"context_line":"            LOG.error(\"Missing \u0027ilo_change_password\u0027 parameter in driver_info.\""},{"line_number":240,"context_line":"                      \" clean step \u0027reset_ilo_credential\u0027 is not performed on\""},{"line_number":241,"context_line":"                      \" node %(uuid)s .\", {\u0027uuid\u0027: task.node.uuid})"},{"line_number":242,"context_line":"            return states.CLEANING"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_1a80db8a","line":241,"in_reply_to":"ba7be1f8_593504f6","updated":"2015-02-27 06:20:19.000000000","message":"will remove it","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            LOG.error(\"Missing \u0027ilo_change_password\u0027 parameter in driver_info.\""},{"line_number":240,"context_line":"                      \" clean step \u0027reset_ilo_credential\u0027 is not performed on\""},{"line_number":241,"context_line":"                      \" node %(uuid)s .\", {\u0027uuid\u0027: task.node.uuid})"},{"line_number":242,"context_line":"            return states.CLEANING"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_f904f819","line":242,"updated":"2015-02-27 02:12:19.000000000","message":"This makes me wonder if these methods should be returning a boolean, true if it cleaned and false if not. If there was a failure you raise an Exception.\n\nI don\u0027t know/think that these methods need to know/care about states.CLEANING. (Just a thought, I\u0027m still looking through your changes.)","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            LOG.error(\"Missing \u0027ilo_change_password\u0027 parameter in driver_info.\""},{"line_number":240,"context_line":"                      \" clean step \u0027reset_ilo_credential\u0027 is not performed on\""},{"line_number":241,"context_line":"                      \" node %(uuid)s .\", {\u0027uuid\u0027: task.node.uuid})"},{"line_number":242,"context_line":"            return states.CLEANING"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_7d62b1ae","line":242,"in_reply_to":"ba7be1f8_f904f819","updated":"2015-02-27 06:20:19.000000000","message":"prev, design was to return states.CLEANING, to continue with other clean steps. But now, I see its changed in https://review.openstack.org/#/c/155561/8/ironic/conductor/manager.py#L925 , not required to return anything. Will update it","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        info[\u0027ilo_password\u0027] \u003d password"},{"line_number":247,"context_line":"        task.node.driver_info \u003d info"},{"line_number":248,"context_line":"        task.node.save()"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        return states.CLEANING"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_34fe9506","line":248,"updated":"2015-02-27 02:12:19.000000000","message":"I don\u0027t see why you want to do this. You got the password from driver_info in the first place and I don\u0027t see that it got changed?","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        info[\u0027ilo_password\u0027] \u003d password"},{"line_number":247,"context_line":"        task.node.driver_info \u003d info"},{"line_number":248,"context_line":"        task.node.save()"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        return states.CLEANING"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_fdf4e1d0","line":248,"in_reply_to":"ba7be1f8_34fe9506","updated":"2015-02-27 06:20:19.000000000","message":"we require this to update ilo_password to the same value as ilo_change_password , otherwise subsequent connections to iLO will fail.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":253,"context_line":"    def reset_bios_to_default(self, task):"},{"line_number":254,"context_line":"        \"\"\"Resets the BIOS settings to default values."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        Resets BIOS to default settings.This operation is currently supported"},{"line_number":257,"context_line":"        only on HP Proliant Gen9 and above servers."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        :param task: a task from TaskManager."}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_d40e1932","line":256,"updated":"2015-02-27 02:12:19.000000000","message":"nit: s/settings.This/settings. This/","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":253,"context_line":"    def reset_bios_to_default(self, task):"},{"line_number":254,"context_line":"        \"\"\"Resets the BIOS settings to default values."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        Resets BIOS to default settings.This operation is currently supported"},{"line_number":257,"context_line":"        only on HP Proliant Gen9 and above servers."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        :param task: a task from TaskManager."}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_fd6dc19a","line":256,"in_reply_to":"ba7be1f8_d40e1932","updated":"2015-02-27 06:20:19.000000000","message":"Done","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a39f5a40bb6f9c4939d998d9334aa8d9bad31148","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        :returns: states.CLEANING, on successful execution of the step."},{"line_number":261,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":262,"context_line":"        \"\"\""},{"line_number":263,"context_line":"        return _execute_ilo_clean_step(task.node, \u0027reset_bios_to_default\u0027)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_secure_boot_keys)"},{"line_number":266,"context_line":"    def reset_secure_boot_keys(self, task):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_b4db657c","line":263,"updated":"2015-02-27 02:12:19.000000000","message":"this isn\u0027t in the spec, but \u0027apply_base_firmware_settings\u0027 is. Just want to make sure that this is really what you want.","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"849e98482be349cca89a39cf4f1402480bee2191","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        :returns: states.CLEANING, on successful execution of the step."},{"line_number":261,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":262,"context_line":"        \"\"\""},{"line_number":263,"context_line":"        return _execute_ilo_clean_step(task.node, \u0027reset_bios_to_default\u0027)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_reset_secure_boot_keys)"},{"line_number":266,"context_line":"    def reset_secure_boot_keys(self, task):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_7da551b4","line":263,"in_reply_to":"ba7be1f8_b4db657c","updated":"2015-02-27 06:20:19.000000000","message":"_execute_ilo_clean_step is just a private helper function for these methods , its not a clean step. But, you are right, renamed some of the functions to be more apt and consistent. \napply_base_firmware_settings -\u003e reset_bios_default.\nilo_reset -\u003ereset_ilo","commit_id":"81a9bf6d3f3b26d1b2224c93e6445aa476d16c33"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"2e35ea3f19ce0bda681c6df8a28f8c2ed3a17877","unresolved":false,"context_lines":[{"line_number":48,"context_line":"               help\u003d\u0027Priority for reset_bios_to_default clean step.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_secure_boot_keys\u0027,"},{"line_number":50,"context_line":"               default\u003d20,"},{"line_number":51,"context_line":"               help\u003d\u0027Priority for reset_secure_boot_keys clean step.\u0027),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027clean_priority_clear_secure_boot_keys\u0027,"},{"line_number":53,"context_line":"               default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Priority for clear_secure_boot_keys clean step. This \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_8c48a7b4","line":51,"updated":"2015-03-02 21:48:06.000000000","message":"perhaps reset_secure_boot_keys to default will be more clear?","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"               help\u003d\u0027Priority for reset_bios_to_default clean step.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_secure_boot_keys\u0027,"},{"line_number":50,"context_line":"               default\u003d20,"},{"line_number":51,"context_line":"               help\u003d\u0027Priority for reset_secure_boot_keys clean step.\u0027),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027clean_priority_clear_secure_boot_keys\u0027,"},{"line_number":53,"context_line":"               default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Priority for clear_secure_boot_keys clean step. This \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_2adb1150","line":51,"in_reply_to":"ba7be1f8_8c48a7b4","updated":"2015-03-09 09:03:31.000000000","message":"yes, it could be done or I could update help to be more clear on this","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"84929fb992ad2bab208448a82931491f109241b7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"               default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Priority for clear_secure_boot_keys clean step. This \u0027"},{"line_number":55,"context_line":"                    \u0027step is not enabled by default. It can be enabled to \u0027"},{"line_number":56,"context_line":"                    \u0027to clear all secure boot keys to update user specific \u0027"},{"line_number":57,"context_line":"                    \u0027keys manually.\u0027),"},{"line_number":58,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo_credential\u0027,"},{"line_number":59,"context_line":"               default\u003d30,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_5ff068c9","line":56,"updated":"2015-02-27 15:28:10.000000000","message":"s/ to update user specific keys manually./ enrolled with iLO.","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"               default\u003d0,"},{"line_number":54,"context_line":"               help\u003d\u0027Priority for clear_secure_boot_keys clean step. This \u0027"},{"line_number":55,"context_line":"                    \u0027step is not enabled by default. It can be enabled to \u0027"},{"line_number":56,"context_line":"                    \u0027to clear all secure boot keys to update user specific \u0027"},{"line_number":57,"context_line":"                    \u0027keys manually.\u0027),"},{"line_number":58,"context_line":"    cfg.IntOpt(\u0027clean_priority_reset_ilo_credential\u0027,"},{"line_number":59,"context_line":"               default\u003d30,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_18491660","line":56,"in_reply_to":"ba7be1f8_5ff068c9","updated":"2015-03-09 09:03:31.000000000","message":"Done","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"2e35ea3f19ce0bda681c6df8a28f8c2ed3a17877","unresolved":false,"context_lines":[{"line_number":59,"context_line":"               default\u003d30,"},{"line_number":60,"context_line":"               help\u003d\u0027Priority for reset_ilo_credential clean step.\u0027),"},{"line_number":61,"context_line":"]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"CONF \u003d cfg.CONF"},{"line_number":64,"context_line":"CONF.register_opts(clean_step_opts, group\u003d\u0027ilo\u0027)"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_47a12893","line":62,"updated":"2015-03-02 21:48:06.000000000","message":"What about secure_disk_erase?  Shouldn\u0027t it got prioritized as well?","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":59,"context_line":"               default\u003d30,"},{"line_number":60,"context_line":"               help\u003d\u0027Priority for reset_ilo_credential clean step.\u0027),"},{"line_number":61,"context_line":"]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"CONF \u003d cfg.CONF"},{"line_number":64,"context_line":"CONF.register_opts(clean_step_opts, group\u003d\u0027ilo\u0027)"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_ca1435eb","line":62,"in_reply_to":"ba7be1f8_47a12893","updated":"2015-03-09 09:03:31.000000000","message":"secure_disk_erase is an in-band operation, we don\u0027t need any changes in ironic or IPA, it will be implemented in Proliant HardwareManager , which is part of proliantutils","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"bd8be3763a0cdc616281a6084ce37b4554ba5935","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    try:"},{"line_number":80,"context_line":"        clean_step \u003d getattr(ilo_object, step)"},{"line_number":81,"context_line":"    except AttributeError:"},{"line_number":82,"context_line":"        # The specified clean step is not present in the Proliantutils"},{"line_number":83,"context_line":"        # package. Raise exception to update the proliantutils package."},{"line_number":84,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 not \""},{"line_number":85,"context_line":"                \"found. \u0027Prolinatutils\u0027 package needs to be updated.\"))"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_4457d126","line":82,"updated":"2015-02-27 08:57:00.000000000","message":"nit: p small for proliantutils","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    try:"},{"line_number":80,"context_line":"        clean_step \u003d getattr(ilo_object, step)"},{"line_number":81,"context_line":"    except AttributeError:"},{"line_number":82,"context_line":"        # The specified clean step is not present in the Proliantutils"},{"line_number":83,"context_line":"        # package. Raise exception to update the proliantutils package."},{"line_number":84,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 not \""},{"line_number":85,"context_line":"                \"found. \u0027Prolinatutils\u0027 package needs to be updated.\"))"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_d84cde44","line":82,"in_reply_to":"ba7be1f8_4457d126","updated":"2015-03-09 09:03:31.000000000","message":"Done","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"bd8be3763a0cdc616281a6084ce37b4554ba5935","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        # The specified clean step is not present in the Proliantutils"},{"line_number":83,"context_line":"        # package. Raise exception to update the proliantutils package."},{"line_number":84,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 not \""},{"line_number":85,"context_line":"                \"found. \u0027Prolinatutils\u0027 package needs to be updated.\"))"},{"line_number":86,"context_line":"    try:"},{"line_number":87,"context_line":"        clean_step(*args, **kwargs)"},{"line_number":88,"context_line":"    except ilo_error.IloCommandNotSupportedError:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_44e431ac","line":85,"updated":"2015-02-27 08:57:00.000000000","message":"nit: type proliantutils (p small)","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        # The specified clean step is not present in the Proliantutils"},{"line_number":83,"context_line":"        # package. Raise exception to update the proliantutils package."},{"line_number":84,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 not \""},{"line_number":85,"context_line":"                \"found. \u0027Prolinatutils\u0027 package needs to be updated.\"))"},{"line_number":86,"context_line":"    try:"},{"line_number":87,"context_line":"        clean_step(*args, **kwargs)"},{"line_number":88,"context_line":"    except ilo_error.IloCommandNotSupportedError:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_f849a231","line":85,"in_reply_to":"ba7be1f8_44e431ac","updated":"2015-03-09 09:03:31.000000000","message":"Done","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"bd8be3763a0cdc616281a6084ce37b4554ba5935","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                  {\u0027step\u0027: step, \u0027uuid\u0027: node.uuid})"},{"line_number":94,"context_line":"    except ilo_error.IloError as ilo_exception:"},{"line_number":95,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step %(step)s failed \""},{"line_number":96,"context_line":"                \"with error: %(err)s\") % {\u0027step\u0027: step, \u0027err\u0027: ilo_exception})"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"class IloManagement(base.ManagementInterface):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_644a15ae","line":96,"updated":"2015-02-27 08:57:00.000000000","message":"nit: s/%/,","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"bd8be3763a0cdc616281a6084ce37b4554ba5935","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":243,"context_line":"        \"\"\""},{"line_number":244,"context_line":"        info \u003d task.node.driver_info"},{"line_number":245,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027, None)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        if password is None:"},{"line_number":248,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_845f0975","line":245,"updated":"2015-02-27 08:57:00.000000000","message":"nit: default value is None and for the below statement:\n\n  if not password:\n    \u003c\u003e","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":243,"context_line":"        \"\"\""},{"line_number":244,"context_line":"        info \u003d task.node.driver_info"},{"line_number":245,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027, None)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        if password is None:"},{"line_number":248,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_38509ad3","line":245,"in_reply_to":"ba7be1f8_845f0975","updated":"2015-03-09 09:03:31.000000000","message":"Done","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"2e35ea3f19ce0bda681c6df8a28f8c2ed3a17877","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        :returns: states.CLEANING, on successful execution of the step."},{"line_number":281,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":282,"context_line":"        \"\"\""},{"line_number":283,"context_line":"        return _execute_ilo_clean_step(task.node, \u0027reset_secure_boot_keys\u0027)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_clear_secure_boot_keys)"},{"line_number":286,"context_line":"    def clear_secure_boot_keys(self, task):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_2778b4c3","line":283,"updated":"2015-03-02 21:48:06.000000000","message":"Does it support on Gen8 DL580?","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"9c33b7cdf6cedf6839dfda77c57675a39f77576e","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        :returns: states.CLEANING, on successful execution of the step."},{"line_number":281,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":282,"context_line":"        \"\"\""},{"line_number":283,"context_line":"        return _execute_ilo_clean_step(task.node, \u0027reset_secure_boot_keys\u0027)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @base.clean_step(priority\u003dCONF.ilo.clean_priority_clear_secure_boot_keys)"},{"line_number":286,"context_line":"    def clear_secure_boot_keys(self, task):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_d873fe7d","line":283,"in_reply_to":"ba7be1f8_2778b4c3","updated":"2015-03-09 09:03:31.000000000","message":"no, secure boot is supported only gen9 and above.","commit_id":"80172007e6c62530c9e17e83985d83dfae46e708"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"d602bf1ac0046f059ac3676a03b79e77af9f1e23","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # package. Raise exception to update the proliantutils package"},{"line_number":87,"context_line":"        # to newer version."},{"line_number":88,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 not \""},{"line_number":89,"context_line":"                \"found. \u0027proliantutils\u0027 package needs to be updated.\"))"},{"line_number":90,"context_line":"    try:"},{"line_number":91,"context_line":"        clean_step(*args, **kwargs)"},{"line_number":92,"context_line":"    except ilo_error.IloCommandNotSupportedError:"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_a4a95226","line":89,"updated":"2015-03-11 13:28:10.000000000","message":"missed step substitution here","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"2fe57fd0a8b1aa3a2e5afee2b610d7d139753664","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # package. Raise exception to update the proliantutils package"},{"line_number":87,"context_line":"        # to newer version."},{"line_number":88,"context_line":"        raise exception.InstanceCleanFailure(_(\"Clean step \u0027%(step)s\u0027 not \""},{"line_number":89,"context_line":"                \"found. \u0027proliantutils\u0027 package needs to be updated.\"))"},{"line_number":90,"context_line":"    try:"},{"line_number":91,"context_line":"        clean_step(*args, **kwargs)"},{"line_number":92,"context_line":"    except ilo_error.IloCommandNotSupportedError:"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_8041750d","line":89,"in_reply_to":"9a80dd14_a4a95226","updated":"2015-03-12 03:11:54.000000000","message":"thanks, Done","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"d602bf1ac0046f059ac3676a03b79e77af9f1e23","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":247,"context_line":"        \"\"\""},{"line_number":248,"context_line":"        info \u003d task.node.driver_info"},{"line_number":249,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027, None)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_cfb57f32","line":249,"updated":"2015-03-11 13:28:10.000000000","message":"nit - None is default","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"2fe57fd0a8b1aa3a2e5afee2b610d7d139753664","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        :raises: InstanceCleanFailure, on failure to execute step."},{"line_number":247,"context_line":"        \"\"\""},{"line_number":248,"context_line":"        info \u003d task.node.driver_info"},{"line_number":249,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027, None)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_a012f906","line":249,"in_reply_to":"9a80dd14_cfb57f32","updated":"2015-03-12 03:11:54.000000000","message":"Done","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"d602bf1ac0046f059ac3676a03b79e77af9f1e23","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        info \u003d task.node.driver_info"},{"line_number":249,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027, None)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":253,"context_line":"                      \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is not \""},{"line_number":254,"context_line":"                      \" performed on node %s.\"), task.node.uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_8f22a7ff","line":251,"updated":"2015-03-11 13:28:10.000000000","message":"Is it possible to set empty string as password? If so, you should check that password is none here.","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"2fe57fd0a8b1aa3a2e5afee2b610d7d139753664","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        info \u003d task.node.driver_info"},{"line_number":249,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027, None)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":253,"context_line":"                      \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is not \""},{"line_number":254,"context_line":"                      \" performed on node %s.\"), task.node.uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_001ae516","line":251,"in_reply_to":"9a80dd14_8f22a7ff","updated":"2015-03-12 03:11:54.000000000","message":"empty string doesn\u0027t count as password, operator should set some valid password.","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"d602bf1ac0046f059ac3676a03b79e77af9f1e23","unresolved":false,"context_lines":[{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":253,"context_line":"                      \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is not \""},{"line_number":254,"context_line":"                      \" performed on node %s.\"), task.node.uuid)"},{"line_number":255,"context_line":"            return"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_afe68b42","line":254,"updated":"2015-03-11 13:28:10.000000000","message":"nit - 2 spaces","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"2fe57fd0a8b1aa3a2e5afee2b610d7d139753664","unresolved":false,"context_lines":[{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":253,"context_line":"                      \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is not \""},{"line_number":254,"context_line":"                      \" performed on node %s.\"), task.node.uuid)"},{"line_number":255,"context_line":"            return"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_201529e5","line":254,"in_reply_to":"9a80dd14_afe68b42","updated":"2015-03-12 03:11:54.000000000","message":"Done","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"d602bf1ac0046f059ac3676a03b79e77af9f1e23","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        info[\u0027ilo_password\u0027] \u003d password"},{"line_number":260,"context_line":"        task.node.driver_info \u003d info"},{"line_number":261,"context_line":"        task.node.save()"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_efd24333","line":259,"updated":"2015-03-11 13:28:10.000000000","message":"Should ilo_change_password be deleted from driver_info on success?","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"2fe57fd0a8b1aa3a2e5afee2b610d7d139753664","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        info[\u0027ilo_password\u0027] \u003d password"},{"line_number":260,"context_line":"        task.node.driver_info \u003d info"},{"line_number":261,"context_line":"        task.node.save()"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_c0e60d16","line":259,"in_reply_to":"9a80dd14_efd24333","updated":"2015-03-12 03:11:54.000000000","message":"sounds like good idea. Will update with this change","commit_id":"692aee3e4fe5d0a40f329c54718ca5aa5bacd976"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c9890c114b22c1f69e7314199f230d8c03bef781","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    :param step: a clean step to be executed."},{"line_number":75,"context_line":"    :param args: The args to be passed to the clean step."},{"line_number":76,"context_line":"    :param kwargs: The kwargs to be passed to the clean step."},{"line_number":77,"context_line":"    :returns: states.CLEANING, on successful execution of the step."},{"line_number":78,"context_line":"    :raises: NodeCleaningFailure, on failure to execute step."},{"line_number":79,"context_line":"    \"\"\""},{"line_number":80,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_e1ac6ea1","line":77,"updated":"2015-03-16 05:47:37.000000000","message":"nit: i guess it doesn\u0027t return anything","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"bdf3e6e00b406ea6e4c6794df8268361b2ca608e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    :param step: a clean step to be executed."},{"line_number":75,"context_line":"    :param args: The args to be passed to the clean step."},{"line_number":76,"context_line":"    :param kwargs: The kwargs to be passed to the clean step."},{"line_number":77,"context_line":"    :returns: states.CLEANING, on successful execution of the step."},{"line_number":78,"context_line":"    :raises: NodeCleaningFailure, on failure to execute step."},{"line_number":79,"context_line":"    \"\"\""},{"line_number":80,"context_line":"    ilo_object \u003d ilo_common.get_ilo_object(node)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_3086cab9","line":77,"in_reply_to":"9a80dd14_e1ac6ea1","updated":"2015-03-16 09:22:38.000000000","message":"Done","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c9890c114b22c1f69e7314199f230d8c03bef781","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    except ilo_error.IloCommandNotSupportedError:"},{"line_number":93,"context_line":"        # This clean step is not supported on Gen8 and below servers."},{"line_number":94,"context_line":"        # Log the failure and continue with cleaning."},{"line_number":95,"context_line":"        LOG.error(_LE(\"\u0027%(step)s\u0027 clean step is not supported on node \""},{"line_number":96,"context_line":"                  \"%(uuid)s. Skipping the clean step.\"),"},{"line_number":97,"context_line":"                  {\u0027step\u0027: step, \u0027uuid\u0027: node.uuid})"},{"line_number":98,"context_line":"    except ilo_error.IloError as ilo_exception:"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_a1943637","line":95,"updated":"2015-03-16 05:47:37.000000000","message":"error or warning ? I think it should just be a warning, because if it was an error, ironic is supposed to fail it :)\n\nwarning should be fine because in a mix of older and newer proliant servers, some clean steps cannot run on older hardware.","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"bdf3e6e00b406ea6e4c6794df8268361b2ca608e","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    except ilo_error.IloCommandNotSupportedError:"},{"line_number":93,"context_line":"        # This clean step is not supported on Gen8 and below servers."},{"line_number":94,"context_line":"        # Log the failure and continue with cleaning."},{"line_number":95,"context_line":"        LOG.error(_LE(\"\u0027%(step)s\u0027 clean step is not supported on node \""},{"line_number":96,"context_line":"                  \"%(uuid)s. Skipping the clean step.\"),"},{"line_number":97,"context_line":"                  {\u0027step\u0027: step, \u0027uuid\u0027: node.uuid})"},{"line_number":98,"context_line":"    except ilo_error.IloError as ilo_exception:"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_507fbeaa","line":95,"in_reply_to":"9a80dd14_a1943637","updated":"2015-03-16 09:22:38.000000000","message":"Done","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c9890c114b22c1f69e7314199f230d8c03bef781","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        \"\"\"Resets the iLO."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        :param task: a task from TaskManager."},{"line_number":236,"context_line":"        :returns: states.CLEANING, on successful execution of the step."},{"line_number":237,"context_line":"        :raises: NodeCleaningFailure, on failure to execute step."},{"line_number":238,"context_line":"        \"\"\""},{"line_number":239,"context_line":"        return _execute_ilo_clean_step(task.node, \u0027reset_ilo\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_e1838e00","line":236,"updated":"2015-03-16 05:47:37.000000000","message":"nit: i think it returns None, ditto for all below","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"bdf3e6e00b406ea6e4c6794df8268361b2ca608e","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        \"\"\"Resets the iLO."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        :param task: a task from TaskManager."},{"line_number":236,"context_line":"        :returns: states.CLEANING, on successful execution of the step."},{"line_number":237,"context_line":"        :raises: NodeCleaningFailure, on failure to execute step."},{"line_number":238,"context_line":"        \"\"\""},{"line_number":239,"context_line":"        return _execute_ilo_clean_step(task.node, \u0027reset_ilo\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_707a02bb","line":236,"in_reply_to":"9a80dd14_e1838e00","updated":"2015-03-16 09:22:38.000000000","message":"Done","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c9890c114b22c1f69e7314199f230d8c03bef781","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if not password:"},{"line_number":253,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":254,"context_line":"                      \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is not\""},{"line_number":255,"context_line":"                      \" performed on node %s.\"), task.node.uuid)"},{"line_number":256,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_61bddeb0","line":253,"updated":"2015-03-16 05:47:37.000000000","message":"error or warning ? I think it should just be a warning, because if it was an error, ironic is supposed to fail it :)\n\nwarning should be fine i guess","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"bdf3e6e00b406ea6e4c6794df8268361b2ca608e","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if not password:"},{"line_number":253,"context_line":"            LOG.error(_LE(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":254,"context_line":"                      \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is not\""},{"line_number":255,"context_line":"                      \" performed on node %s.\"), task.node.uuid)"},{"line_number":256,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_f045126f","line":253,"in_reply_to":"9a80dd14_61bddeb0","updated":"2015-03-16 09:22:38.000000000","message":"Done","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"08df991e056f741829cc1ac3a193abcddea2985d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        # This clean step is not supported on Gen8 and below servers."},{"line_number":93,"context_line":"        # Log the failure and continue with cleaning."},{"line_number":94,"context_line":"        LOG.warn(_LW(\"\u0027%(step)s\u0027 clean step is not supported on node \""},{"line_number":95,"context_line":"                  \"%(uuid)s. Skipping the clean step.\"),"},{"line_number":96,"context_line":"                  {\u0027step\u0027: step, \u0027uuid\u0027: node.uuid})"},{"line_number":97,"context_line":"    except ilo_error.IloError as ilo_exception:"},{"line_number":98,"context_line":"        raise exception.NodeCleaningFailure(_(\"Clean step %(step)s failed \""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_7304c214","line":95,"updated":"2015-03-16 13:11:19.000000000","message":"nit: indentation.","commit_id":"026764811d0bf39f11ca835bb9bdc60cac6f4fa2"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"eacf202beffc96a97adeab70ce2912a10c7041df","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        # This clean step is not supported on Gen8 and below servers."},{"line_number":93,"context_line":"        # Log the failure and continue with cleaning."},{"line_number":94,"context_line":"        LOG.warn(_LW(\"\u0027%(step)s\u0027 clean step is not supported on node \""},{"line_number":95,"context_line":"                  \"%(uuid)s. Skipping the clean step.\"),"},{"line_number":96,"context_line":"                  {\u0027step\u0027: step, \u0027uuid\u0027: node.uuid})"},{"line_number":97,"context_line":"    except ilo_error.IloError as ilo_exception:"},{"line_number":98,"context_line":"        raise exception.NodeCleaningFailure(_(\"Clean step %(step)s failed \""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_ff9db558","line":95,"in_reply_to":"9a80dd14_7304c214","updated":"2015-03-16 23:27:46.000000000","message":"Done","commit_id":"026764811d0bf39f11ca835bb9bdc60cac6f4fa2"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"08df991e056f741829cc1ac3a193abcddea2985d","unresolved":false,"context_lines":[{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        if not password:"},{"line_number":250,"context_line":"            LOG.warn(_LW(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":251,"context_line":"                      \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is not\""},{"line_number":252,"context_line":"                      \" performed on node %s.\"), task.node.uuid)"},{"line_number":253,"context_line":"            return"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_53289e85","line":251,"updated":"2015-03-16 13:11:19.000000000","message":"nit: indentation","commit_id":"026764811d0bf39f11ca835bb9bdc60cac6f4fa2"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"eacf202beffc96a97adeab70ce2912a10c7041df","unresolved":false,"context_lines":[{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        if not password:"},{"line_number":250,"context_line":"            LOG.warn(_LW(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":251,"context_line":"                      \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is not\""},{"line_number":252,"context_line":"                      \" performed on node %s.\"), task.node.uuid)"},{"line_number":253,"context_line":"            return"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_3fa82d77","line":251,"in_reply_to":"9a80dd14_53289e85","updated":"2015-03-16 23:27:46.000000000","message":"Done","commit_id":"026764811d0bf39f11ca835bb9bdc60cac6f4fa2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eaf03fa4250ec28b86454f11fd35e3cbc23ee6cb","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def get_properties(self):"},{"line_number":106,"context_line":"        d \u003d ilo_common.REQUIRED_PROPERTIES.copy()"},{"line_number":107,"context_line":"        d.update(ilo_common.CLEAN_PROPERTIES)"},{"line_number":108,"context_line":"        return d"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def validate(self, task):"},{"line_number":111,"context_line":"        \"\"\"Check that \u0027driver_info\u0027 contains required ILO credentials."}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_515d8878","line":108,"updated":"2015-03-18 11:33:40.000000000","message":"nit: you can make it a constant like MANAGEMENT_PROPERTIES","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1eaa76e2d36dfc9637ebdc326fab6aab8db25a0f","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def get_properties(self):"},{"line_number":106,"context_line":"        d \u003d ilo_common.REQUIRED_PROPERTIES.copy()"},{"line_number":107,"context_line":"        d.update(ilo_common.CLEAN_PROPERTIES)"},{"line_number":108,"context_line":"        return d"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def validate(self, task):"},{"line_number":111,"context_line":"        \"\"\"Check that \u0027driver_info\u0027 contains required ILO credentials."}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_453b02eb","line":108,"in_reply_to":"9a80dd14_1a6165a8","updated":"2015-03-18 13:13:06.000000000","message":"not a requirement, but will be a bit nicer, yes","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"247c7bafb8a54341e5ff1bf79f7d641c5b6d975a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def get_properties(self):"},{"line_number":106,"context_line":"        d \u003d ilo_common.REQUIRED_PROPERTIES.copy()"},{"line_number":107,"context_line":"        d.update(ilo_common.CLEAN_PROPERTIES)"},{"line_number":108,"context_line":"        return d"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def validate(self, task):"},{"line_number":111,"context_line":"        \"\"\"Check that \u0027driver_info\u0027 contains required ILO credentials."}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_1a6165a8","line":108,"in_reply_to":"9a80dd14_515d8878","updated":"2015-03-18 13:09:57.000000000","message":"I have already defined CLEAN_PROPERTIES, which has the parameters required by clean steps , you want me to combine REQUIRED_PROPERTIES and CLEAN_PROPERTIES to one more dict?","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eaf03fa4250ec28b86454f11fd35e3cbc23ee6cb","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        :raises: NodeCleaningFailure, on failure to execute step."},{"line_number":245,"context_line":"        \"\"\""},{"line_number":246,"context_line":"        info \u003d task.node.driver_info"},{"line_number":247,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        if not password:"},{"line_number":250,"context_line":"            LOG.warn(_LW(\"Missing \u0027ilo_change_password\u0027 parameter in \""}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_51b90878","line":247,"updated":"2015-03-18 11:33:40.000000000","message":"nit: use pop() here and avoid deleting it on line #258","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"247c7bafb8a54341e5ff1bf79f7d641c5b6d975a","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        :raises: NodeCleaningFailure, on failure to execute step."},{"line_number":245,"context_line":"        \"\"\""},{"line_number":246,"context_line":"        info \u003d task.node.driver_info"},{"line_number":247,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        if not password:"},{"line_number":250,"context_line":"            LOG.warn(_LW(\"Missing \u0027ilo_change_password\u0027 parameter in \""}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_3a58e9f9","line":247,"in_reply_to":"9a80dd14_51b90878","updated":"2015-03-18 13:09:57.000000000","message":"will update it","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eaf03fa4250ec28b86454f11fd35e3cbc23ee6cb","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        if not password:"},{"line_number":250,"context_line":"            LOG.warn(_LW(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":251,"context_line":"                         \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is \""},{"line_number":252,"context_line":"                         \"not performed on node %s.\"), task.node.uuid)"},{"line_number":253,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_51a2e84b","line":250,"updated":"2015-03-18 11:33:40.000000000","message":"I think it should be either error (meaning that ilo_change_password is mandatory) or info (meaning that it\u0027s optional).","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1eaa76e2d36dfc9637ebdc326fab6aab8db25a0f","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        if not password:"},{"line_number":250,"context_line":"            LOG.warn(_LW(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":251,"context_line":"                         \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is \""},{"line_number":252,"context_line":"                         \"not performed on node %s.\"), task.node.uuid)"},{"line_number":253,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_c52e12a5","line":250,"in_reply_to":"9a80dd14_25ca8e1a","updated":"2015-03-18 13:13:06.000000000","message":"+1","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"247c7bafb8a54341e5ff1bf79f7d641c5b6d975a","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        password \u003d info.get(\u0027ilo_change_password\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        if not password:"},{"line_number":250,"context_line":"            LOG.warn(_LW(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":251,"context_line":"                         \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is \""},{"line_number":252,"context_line":"                         \"not performed on node %s.\"), task.node.uuid)"},{"line_number":253,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_25ca8e1a","line":250,"in_reply_to":"9a80dd14_51a2e84b","updated":"2015-03-18 13:09:57.000000000","message":"how about leaving it as INFO, as we are skipping the clean step without failing it? As you suggested. may be operator doesn\u0027t want to change password everytime","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"0739358d1133dbfc1ffd750d43cebd8dd99a95f3","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        \"\"\"Resets the BIOS settings to default values."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        Resets BIOS to default settings. This operation is currently supported"},{"line_number":267,"context_line":"        only on HP Proliant Gen9 and above servers."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        :param task: a task from TaskManager."},{"line_number":270,"context_line":"        :raises: NodeCleaningFailure, on failure to execute step."}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_e33a5797","line":267,"updated":"2015-03-17 18:18:14.000000000","message":"just a question for my understanding. I assume this will raise IloCommandNotSupportedError is there anyway to inform the user there gen 8 or older server is the reason this step was skipped. Just concerned that an operator could spend time looking into why they were unable to reset the bios with out a clear message as to why from us.\n\nagain this question is for my understanding.","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"dea44efbbb903664c1210ab70d580ac1823ee26a","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        \"\"\"Resets the BIOS settings to default values."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        Resets BIOS to default settings. This operation is currently supported"},{"line_number":267,"context_line":"        only on HP Proliant Gen9 and above servers."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        :param task: a task from TaskManager."},{"line_number":270,"context_line":"        :raises: NodeCleaningFailure, on failure to execute step."}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_5db3ee4c","line":267,"in_reply_to":"9a80dd14_e33a5797","updated":"2015-03-18 00:29:12.000000000","message":"yes, it will raise IloCommandNotSupportedError and then log the message that the step is not supported on the server. It is handled in L95-L97. Let me know you want me add more to this?","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"df74b192fdd54fda51234f9e3840da57484453f1","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        info[\u0027ilo_password\u0027] \u003d password"},{"line_number":260,"context_line":"        task.node.driver_info \u003d info"},{"line_number":261,"context_line":"        task.node.save()"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9a80dd14_6362b4da","line":259,"updated":"2015-03-18 16:28:40.000000000","message":"We should also update ipmi_password here so sensor data stuff continues to work. :)","commit_id":"5879bce773b819f22ecbc21f64d24fec26bc7eeb"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"1578d8aacf5438739e8dc2cddece43ab50168642","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        _execute_ilo_clean_step(task.node, \u0027reset_ilo_credential\u0027, password)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        info[\u0027ilo_password\u0027] \u003d password"},{"line_number":260,"context_line":"        task.node.driver_info \u003d info"},{"line_number":261,"context_line":"        task.node.save()"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9a80dd14_03dd7842","line":259,"in_reply_to":"9a80dd14_6362b4da","updated":"2015-03-18 16:30:13.000000000","message":"Ignore this, it will be updated automatically :)\n\nhttps://github.com/openstack/ironic/blob/master/ironic/drivers/modules/ilo/common.py#L203-L205","commit_id":"5879bce773b819f22ecbc21f64d24fec26bc7eeb"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"7ef068ecaedea83971651b60342ab5f360308a36","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        password \u003d info.pop(\u0027ilo_change_password\u0027, None)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.info(_LI(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":253,"context_line":"                         \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is \""},{"line_number":254,"context_line":"                         \"not performed on node %s.\"), task.node.uuid)"},{"line_number":255,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":21,"id":"9a80dd14_d9215fb5","line":252,"updated":"2015-03-19 13:48:03.000000000","message":"It should be a warning, since this step is enabled but it requires a parameter to run which is not present.\n\nInfo sounds like \"they the step ran successfully\"","commit_id":"c59be0bb009bfa48bf65be629ab5e654a01e5b24"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"233de7ac63977c99bae0c1dc6cd4bf29a3a1dd25","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        password \u003d info.pop(\u0027ilo_change_password\u0027, None)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.info(_LI(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":253,"context_line":"                         \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is \""},{"line_number":254,"context_line":"                         \"not performed on node %s.\"), task.node.uuid)"},{"line_number":255,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":21,"id":"9a80dd14_82acd089","line":252,"in_reply_to":"9a80dd14_425e58ea","updated":"2015-03-19 14:24:52.000000000","message":"which means, an operator will have a warning for every node on every tear down, and won\u0027t even be sure what to do with it","commit_id":"c59be0bb009bfa48bf65be629ab5e654a01e5b24"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"616311d2008a960d262f7a389682147c87be62d5","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        password \u003d info.pop(\u0027ilo_change_password\u0027, None)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.info(_LI(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":253,"context_line":"                         \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is \""},{"line_number":254,"context_line":"                         \"not performed on node %s.\"), task.node.uuid)"},{"line_number":255,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":21,"id":"9a80dd14_425e58ea","line":252,"in_reply_to":"9a80dd14_c2124857","updated":"2015-03-19 14:22:06.000000000","message":"I have a +1 to warning as well :)\n\nINFO to me is \"Hey, I did this\" \n\nWARNING to me is \"Hey, I couldn\u0027t do this, but I think it should be fine to continue\"\n\n(I means Ironic)","commit_id":"c59be0bb009bfa48bf65be629ab5e654a01e5b24"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a3593bbb8c3bc078b561c663ae31775450283761","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        password \u003d info.pop(\u0027ilo_change_password\u0027, None)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        if not password:"},{"line_number":252,"context_line":"            LOG.info(_LI(\"Missing \u0027ilo_change_password\u0027 parameter in \""},{"line_number":253,"context_line":"                         \"driver_info. Clean step \u0027reset_ilo_credential\u0027 is \""},{"line_number":254,"context_line":"                         \"not performed on node %s.\"), task.node.uuid)"},{"line_number":255,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":21,"id":"9a80dd14_c2124857","line":252,"in_reply_to":"9a80dd14_d9215fb5","updated":"2015-03-19 14:17:58.000000000","message":"I asked for INFO here. Warning is not appropriate here, should be either INFO (password is optional) or ERROR (password is required). We decided it\u0027s optional, thus INFO.","commit_id":"c59be0bb009bfa48bf65be629ab5e654a01e5b24"}],"ironic/tests/drivers/ilo/test_management.py":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            ilo_mock.reset_ilo.assert_called_once_with()"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027)"},{"line_number":212,"context_line":"    def test_reset_ilo_credential_ok(self, get_ilo_object_mock):"},{"line_number":213,"context_line":"        ilo_mock \u003d get_ilo_object_mock.return_value"},{"line_number":214,"context_line":"        info \u003d self.node.driver_info"},{"line_number":215,"context_line":"        info[\u0027ilo_change_password\u0027] \u003d \"fake-password\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_92151ce7","line":212,"updated":"2015-02-24 14:39:14.000000000","message":"May be have a reset_ilo_credential_no_password ?","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            ilo_mock.reset_ilo.assert_called_once_with()"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027)"},{"line_number":212,"context_line":"    def test_reset_ilo_credential_ok(self, get_ilo_object_mock):"},{"line_number":213,"context_line":"        ilo_mock \u003d get_ilo_object_mock.return_value"},{"line_number":214,"context_line":"        info \u003d self.node.driver_info"},{"line_number":215,"context_line":"        info[\u0027ilo_change_password\u0027] \u003d \"fake-password\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_63328060","line":212,"in_reply_to":"ba7be1f8_92151ce7","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"967987056eaf5fe4b053d9ed53977405f9d8a2e9","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                                                    \"fake-password\")"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027)"},{"line_number":249,"context_line":"    def test_reset_bios_to_default(self, get_ilo_object_mock):"},{"line_number":250,"context_line":"        ilo_mock \u003d get_ilo_object_mock.return_value"},{"line_number":251,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":252,"context_line":"                                  shared\u003dFalse) as task:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_d26a34ed","line":249,"updated":"2015-02-24 14:39:14.000000000","message":"May be have a test case for command not supported. Ditto for others as well.","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"6cced3048a4227b74e02b8edc4df1d5531003e41","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                                                    \"fake-password\")"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027)"},{"line_number":249,"context_line":"    def test_reset_bios_to_default(self, get_ilo_object_mock):"},{"line_number":250,"context_line":"        ilo_mock \u003d get_ilo_object_mock.return_value"},{"line_number":251,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":252,"context_line":"                                  shared\u003dFalse) as task:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_8333f460","line":249,"in_reply_to":"ba7be1f8_d26a34ed","updated":"2015-02-25 02:53:25.000000000","message":"Done","commit_id":"7292262fc4527d8eb798b8b79d0a4b2c52b26523"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"41a3eed75ba282699b97e3a540c04db7f6fae6af","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            update_ipmi_mock.assert_called_once_with(task)"},{"line_number":187,"context_line":"            get_sensors_data_mock.assert_called_once_with(task)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027)"},{"line_number":190,"context_line":"    def test_reset_ilo_ok(self, get_ilo_object_mock):"},{"line_number":191,"context_line":"        ilo_mock \u003d get_ilo_object_mock.return_value"},{"line_number":192,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_a980cfc0","line":189,"updated":"2015-02-25 10:25:00.000000000","message":"Okay with testing all of them individually now, but I guess only ilo.management._execute_step() need to be tested in detail.\n\nRest all can just mock _execute_step and make sure that the _execute_step() is called with correct arguments.","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"090a2119549a46c983966c67428270b60775f6ca","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            update_ipmi_mock.assert_called_once_with(task)"},{"line_number":187,"context_line":"            get_sensors_data_mock.assert_called_once_with(task)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027)"},{"line_number":190,"context_line":"    def test_reset_ilo_ok(self, get_ilo_object_mock):"},{"line_number":191,"context_line":"        ilo_mock \u003d get_ilo_object_mock.return_value"},{"line_number":192,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_e546387a","line":189,"in_reply_to":"ba7be1f8_a980cfc0","updated":"2015-02-26 08:54:43.000000000","message":"Done","commit_id":"875823229631ebeed92a61f1fd6e51a16c7a7fea"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c9890c114b22c1f69e7314199f230d8c03bef781","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        clean_step_mock.side_effect \u003d exc"},{"line_number":204,"context_line":"        ilo_management._execute_ilo_clean_step(self.node,"},{"line_number":205,"context_line":"                    \u0027fake-step\u0027, \u0027args\u0027, kwarg\u003d\u0027kwarg\u0027)"},{"line_number":206,"context_line":"        clean_step_mock.assert_called_once_with(\u0027args\u0027, kwarg\u003d\u0027kwarg\u0027)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027)"},{"line_number":209,"context_line":"    def test__execute_ilo_clean_step_fail(self, get_ilo_object_mock):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_e1b1cee0","line":206,"updated":"2015-03-16 05:47:37.000000000","message":"nit: might make sense to see if error is logged.\n\n    self.assertTrue(log_mock.warn.called)","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"bdf3e6e00b406ea6e4c6794df8268361b2ca608e","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        clean_step_mock.side_effect \u003d exc"},{"line_number":204,"context_line":"        ilo_management._execute_ilo_clean_step(self.node,"},{"line_number":205,"context_line":"                    \u0027fake-step\u0027, \u0027args\u0027, kwarg\u003d\u0027kwarg\u0027)"},{"line_number":206,"context_line":"        clean_step_mock.assert_called_once_with(\u0027args\u0027, kwarg\u003d\u0027kwarg\u0027)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027)"},{"line_number":209,"context_line":"    def test__execute_ilo_clean_step_fail(self, get_ilo_object_mock):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_8431fba3","line":206,"in_reply_to":"9a80dd14_e1b1cee0","updated":"2015-03-16 09:22:38.000000000","message":"Done","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c9890c114b22c1f69e7314199f230d8c03bef781","unresolved":false,"context_lines":[{"line_number":242,"context_line":"    def test_reset_ilo_credential_no_password(self):"},{"line_number":243,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":244,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":245,"context_line":"            task.driver.management.reset_ilo_credential(task)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @mock.patch.object(ilo_management, \u0027_execute_ilo_clean_step\u0027)"},{"line_number":248,"context_line":"    def test_reset_bios_to_default(self, clean_step_mock):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_e1e8eeb4","line":245,"updated":"2015-03-16 05:47:37.000000000","message":"nit: might make sense to see if error is logged and execute_clean_step is not called.\n\n    self.assertFalse(clean_step_mock.warn.called)\n    self.assertTrue(log_mock.warn.called)","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"bdf3e6e00b406ea6e4c6794df8268361b2ca608e","unresolved":false,"context_lines":[{"line_number":242,"context_line":"    def test_reset_ilo_credential_no_password(self):"},{"line_number":243,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":244,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":245,"context_line":"            task.driver.management.reset_ilo_credential(task)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @mock.patch.object(ilo_management, \u0027_execute_ilo_clean_step\u0027)"},{"line_number":248,"context_line":"    def test_reset_bios_to_default(self, clean_step_mock):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_ef9a9560","line":245,"in_reply_to":"9a80dd14_e1e8eeb4","updated":"2015-03-16 09:22:38.000000000","message":"actually didn\u0027t mock the execute_clean_step function here, so test case  would be a failure if the step is executed :) \n\nwill update it anyway :)","commit_id":"a691619188fec9875611bb75349126eb90172c5a"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"0739358d1133dbfc1ffd750d43cebd8dd99a95f3","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            self.assertTrue(log_mock.warn.called)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    @mock.patch.object(ilo_management, \u0027_execute_ilo_clean_step\u0027)"},{"line_number":256,"context_line":"    def test_reset_bios_to_default(self, clean_step_mock):"},{"line_number":257,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":258,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":259,"context_line":"            task.driver.management.reset_bios_to_default(task)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_633ae735","line":256,"updated":"2015-03-17 18:18:14.000000000","message":"for this and the other methods that only work with specific generations of hardware (like gen 9\u0027s) I\u0027d like to see a test of them attempting to run on older generations.","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"dea44efbbb903664c1210ab70d580ac1823ee26a","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            self.assertTrue(log_mock.warn.called)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    @mock.patch.object(ilo_management, \u0027_execute_ilo_clean_step\u0027)"},{"line_number":256,"context_line":"    def test_reset_bios_to_default(self, clean_step_mock):"},{"line_number":257,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":258,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":259,"context_line":"            task.driver.management.reset_bios_to_default(task)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_dd599e36","line":256,"in_reply_to":"9a80dd14_633ae735","updated":"2015-03-18 00:29:12.000000000","message":"Chris, added the test case for it already, test__execute_ilo_clean_step_not_supported","commit_id":"8889471b3f85dce4ccbbd2a97191e055205f8165"}]}
