)]}'
{"ironic/conductor/utils.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from ironic.common import states"},{"line_number":24,"context_line":"from ironic.conductor import task_manager"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CLEANING_INTERFACE_PRIORITY \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_b5ee41b2","line":26,"updated":"2016-09-06 10:13:14.000000000","message":"This change is not needed.","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from ironic.common import states"},{"line_number":24,"context_line":"from ironic.conductor import task_manager"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CLEANING_INTERFACE_PRIORITY \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_37031144","line":26,"in_reply_to":"9a89bdaa_b5ee41b2","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"}],"ironic/conf/oneview.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                      \u0027executed when enable_periodic_tasks\u003dTrue.\u0027)),"},{"line_number":49,"context_line":"    cfg.BoolOpt(\u0027power_off_for_set_boot_device\u0027,"},{"line_number":50,"context_line":"                default\u003dFalse,"},{"line_number":51,"context_line":"                help\u003d_(\u0027Power off the node just before calling \u0027"},{"line_number":52,"context_line":"                       \u0027set_boot_device\u0027))"},{"line_number":53,"context_line":"]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_f5ca8919","line":52,"range":{"start_line":51,"start_character":24,"end_line":52,"end_character":39},"updated":"2016-09-06 10:13:14.000000000","message":"What do you think about: \u0027Whether to power off node before setting boot device\u0027 ?","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                      \u0027executed when enable_periodic_tasks\u003dTrue.\u0027)),"},{"line_number":49,"context_line":"    cfg.BoolOpt(\u0027power_off_for_set_boot_device\u0027,"},{"line_number":50,"context_line":"                default\u003dFalse,"},{"line_number":51,"context_line":"                help\u003d_(\u0027Power off the node just before calling \u0027"},{"line_number":52,"context_line":"                       \u0027set_boot_device\u0027))"},{"line_number":53,"context_line":"]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_77ae7986","line":52,"range":{"start_line":51,"start_character":24,"end_line":52,"end_character":39},"in_reply_to":"9a89bdaa_f5ca8919","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"b48f68563ac5618e886be8d3a83c46a8e78baed1","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    cfg.BoolOpt(\u0027power_off_for_set_boot_device\u0027,"},{"line_number":50,"context_line":"                default\u003dFalse,"},{"line_number":51,"context_line":"                help\u003d_(\u0027Whether to power off the node before setting boot \u0027"},{"line_number":52,"context_line":"                       \u0027device\u0027))"},{"line_number":53,"context_line":"]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9a89bdaa_76275ab6","line":52,"updated":"2016-09-06 11:57:32.000000000","message":"nit: dot at the end.","commit_id":"2e59126f51c1f3980cd03f915528ae762cd5c119"}],"ironic/drivers/modules/agent.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"4ba531a4326e5cbbd1f76613bd7d75f78865a69a","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        power_off_option \u003d task.node.driver_internal_info.get("},{"line_number":343,"context_line":"            \u0027power_off_for_set_boot_device\u0027)"},{"line_number":344,"context_line":"        if power_off_option:"},{"line_number":345,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if iwdi:"},{"line_number":348,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_931d2369","line":345,"updated":"2016-08-26 02:06:19.000000000","message":"This operation ignores fine oob soft off code in reboot_and_finish_deploy() l350. Maybe add boot device setting to reboot_and_finish_deploy() or split it to two methods.","commit_id":"b2601048458e59f83fa19a2fb1ddb509938f3f3d"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"be4e36ec6686fba4a9598f0af98588e7ac87d573","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        power_off_option \u003d task.node.driver_internal_info.get("},{"line_number":343,"context_line":"            \u0027power_off_for_set_boot_device\u0027)"},{"line_number":344,"context_line":"        if power_off_option:"},{"line_number":345,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if iwdi:"},{"line_number":348,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_8420669d","line":345,"in_reply_to":"fa7ab95a_931d2369","updated":"2016-08-26 10:15:44.000000000","message":"Done","commit_id":"b2601048458e59f83fa19a2fb1ddb509938f3f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3cc70a965dc7d18c125381b071f0a37f4f755bce","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        power_off_option \u003d task.node.driver_internal_info.get("},{"line_number":343,"context_line":"            \u0027power_off_for_set_boot_device\u0027)"},{"line_number":344,"context_line":"        if power_off_option:"},{"line_number":345,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if iwdi:"},{"line_number":348,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_526c04d0","line":345,"updated":"2016-08-29 10:09:10.000000000","message":"Needs unittest","commit_id":"b1674c2d5eb79abb28ebeea01aea6e406c91edc6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"23a9a53de51430d13054c2dc7d4b59639b7e3c87","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        power_off_option \u003d task.node.driver_internal_info.get("},{"line_number":343,"context_line":"            \u0027power_off_for_set_boot_device\u0027)"},{"line_number":344,"context_line":"        if power_off_option:"},{"line_number":345,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if iwdi:"},{"line_number":348,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_d31bc41a","line":345,"in_reply_to":"fa7ab95a_526c04d0","updated":"2016-09-01 13:51:54.000000000","message":"Done","commit_id":"b1674c2d5eb79abb28ebeea01aea6e406c91edc6"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"1c42cbb651c02041225d822e8ee4869647c51cbe","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        power_off_option \u003d task.node.driver_internal_info.get("},{"line_number":343,"context_line":"            \u0027power_off_for_set_boot_device\u0027)"},{"line_number":344,"context_line":"        if power_off_option:"},{"line_number":345,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if iwdi:"},{"line_number":348,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_18035643","line":345,"updated":"2016-09-02 10:51:58.000000000","message":"If this option is set we skip all agent-based soft-off or sync procedure in reboot_and_finish_deploy() l350. Why not delay setting boot device until power will be set to off?","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"7eaab99bf0fe2e798d413ef33624a0fdbc46ff6b","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        power_off_option \u003d task.node.driver_internal_info.get("},{"line_number":343,"context_line":"            \u0027power_off_for_set_boot_device\u0027)"},{"line_number":344,"context_line":"        if power_off_option:"},{"line_number":345,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if iwdi:"},{"line_number":348,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_6f17bda3","line":345,"in_reply_to":"fa7ab95a_18035643","updated":"2016-09-05 07:53:05.000000000","message":"Done","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c64ab4733148823426d03cf71fdfca230b971acf","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        if power_off_option:"},{"line_number":345,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if iwdi:"},{"line_number":348,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        self.reboot_and_finish_deploy(task)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da7fb54a_8ac16f31","line":347,"updated":"2016-09-02 16:22:04.000000000","message":"We are going to power off node when power_off_for_set_boot_device but iwdi is not True, and there is no need to set boot device at all.","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4bcbac4bfb27ad508654a42c0bc9eb1bc72b73b3","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        if power_off_option:"},{"line_number":345,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if iwdi:"},{"line_number":348,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        self.reboot_and_finish_deploy(task)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_c4c7cb43","line":347,"in_reply_to":"da7fb54a_8ac16f31","updated":"2016-09-05 08:55:01.000000000","message":"Done","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            self.prepare_instance_to_boot(task, root_uuid, efi_sys_uuid)"},{"line_number":339,"context_line":"        LOG.info(_LI(\u0027Image successfully written to node %s\u0027), node.uuid)"},{"line_number":340,"context_line":"        LOG.debug(\u0027Rebooting node %s to instance\u0027, node.uuid)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if iwdi:"},{"line_number":343,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_55033542","line":341,"updated":"2016-09-06 10:13:14.000000000","message":"this change is not needed.","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            self.prepare_instance_to_boot(task, root_uuid, efi_sys_uuid)"},{"line_number":339,"context_line":"        LOG.info(_LI(\u0027Image successfully written to node %s\u0027), node.uuid)"},{"line_number":340,"context_line":"        LOG.debug(\u0027Rebooting node %s to instance\u0027, node.uuid)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if iwdi:"},{"line_number":343,"context_line":"            manager_utils.node_set_boot_device(task, \u0027disk\u0027, persistent\u003dTrue)"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_97a93d7e","line":341,"in_reply_to":"9a89bdaa_55033542","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"}],"ironic/drivers/modules/agent_base_vendor.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3cc70a965dc7d18c125381b071f0a37f4f755bce","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        oob_power_off \u003d strutils.bool_from_string("},{"line_number":553,"context_line":"            node.driver_info.get(\u0027deploy_forces_oob_reboot\u0027, False))"},{"line_number":554,"context_line":"        powered_off \u003d node.driver_internal_info.get("},{"line_number":555,"context_line":"            \u0027power_off_for_set_boot_device\u0027, False)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        try:"},{"line_number":558,"context_line":"            if not oob_power_off and not powered_off:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_d2181421","line":555,"updated":"2016-08-29 10:09:10.000000000","message":"We need to document this somewhere as well. Also, question:\n\nFor oneview we always need to power off right? It\u0027s like a one time configuration depending on the driver.","commit_id":"b1674c2d5eb79abb28ebeea01aea6e406c91edc6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"23a9a53de51430d13054c2dc7d4b59639b7e3c87","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        oob_power_off \u003d strutils.bool_from_string("},{"line_number":553,"context_line":"            node.driver_info.get(\u0027deploy_forces_oob_reboot\u0027, False))"},{"line_number":554,"context_line":"        powered_off \u003d node.driver_internal_info.get("},{"line_number":555,"context_line":"            \u0027power_off_for_set_boot_device\u0027, False)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        try:"},{"line_number":558,"context_line":"            if not oob_power_off and not powered_off:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_53bdf4d5","line":555,"in_reply_to":"fa7ab95a_d2181421","updated":"2016-09-01 13:51:54.000000000","message":"Done","commit_id":"b1674c2d5eb79abb28ebeea01aea6e406c91edc6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3cc70a965dc7d18c125381b071f0a37f4f755bce","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            \u0027power_off_for_set_boot_device\u0027, False)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        try:"},{"line_number":558,"context_line":"            if not oob_power_off and not powered_off:"},{"line_number":559,"context_line":"                try:"},{"line_number":560,"context_line":"                    self._client.power_off(node)"},{"line_number":561,"context_line":"                    _wait_until_powered_off(task)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_9243ec41","line":558,"updated":"2016-08-29 10:09:10.000000000","message":"Needs unittest","commit_id":"b1674c2d5eb79abb28ebeea01aea6e406c91edc6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"23a9a53de51430d13054c2dc7d4b59639b7e3c87","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            \u0027power_off_for_set_boot_device\u0027, False)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        try:"},{"line_number":558,"context_line":"            if not oob_power_off and not powered_off:"},{"line_number":559,"context_line":"                try:"},{"line_number":560,"context_line":"                    self._client.power_off(node)"},{"line_number":561,"context_line":"                    _wait_until_powered_off(task)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_d3e2e400","line":558,"in_reply_to":"fa7ab95a_9243ec41","updated":"2016-09-01 13:51:54.000000000","message":"Done","commit_id":"b1674c2d5eb79abb28ebeea01aea6e406c91edc6"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                deploy_utils.set_failed_state(task, last_error)"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    @METRICS.timer(\u0027AgentDeployMixin.reboot_and_finish_deploy\u0027)"},{"line_number":524,"context_line":"    def soft_power_off(self, task):"},{"line_number":525,"context_line":"        wait \u003d CONF.agent.post_deploy_get_power_state_retry_interval * 1000"},{"line_number":526,"context_line":"        attempts \u003d CONF.agent.post_deploy_get_power_state_retries + 1"},{"line_number":527,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_88dcc413","line":524,"updated":"2016-09-06 10:13:14.000000000","message":"This refactoring seems not needed anymore, if we are going to fix issue for oneview driver only.","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                deploy_utils.set_failed_state(task, last_error)"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    @METRICS.timer(\u0027AgentDeployMixin.reboot_and_finish_deploy\u0027)"},{"line_number":524,"context_line":"    def soft_power_off(self, task):"},{"line_number":525,"context_line":"        wait \u003d CONF.agent.post_deploy_get_power_state_retry_interval * 1000"},{"line_number":526,"context_line":"        attempts \u003d CONF.agent.post_deploy_get_power_state_retries + 1"},{"line_number":527,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_b7b641da","line":524,"in_reply_to":"9a89bdaa_88dcc413","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"}],"ironic/drivers/modules/oneview/common.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"dd68d6cc0229c40be6289b5867b18cf94eafe597","unresolved":false,"context_lines":[{"line_number":60,"context_line":"COMMON_PROPERTIES.update(REQUIRED_ON_PROPERTIES)"},{"line_number":61,"context_line":"COMMON_PROPERTIES.update(OPTIONAL_ON_PROPERTIES)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"POWER_OFF_SET_BOOT_DEVICE \u003d False"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"ISCSI_PXE_ONEVIEW \u003d \u0027iscsi_pxe_oneview\u0027"},{"line_number":66,"context_line":"AGENT_PXE_ONEVIEW \u003d \u0027agent_pxe_oneview\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_ba373ce2","line":63,"updated":"2016-09-05 09:20:13.000000000","message":"It\u0027s not an user options and when it\u0027s False default behavior is not changed.","commit_id":"436d52ce1b45fd97d11a3e6362990701f75724f1"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"5b06f634020539f47463e5250180d7d7a6360bf8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"COMMON_PROPERTIES.update(REQUIRED_ON_PROPERTIES)"},{"line_number":61,"context_line":"COMMON_PROPERTIES.update(OPTIONAL_ON_PROPERTIES)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"POWER_OFF_SET_BOOT_DEVICE \u003d False"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"ISCSI_PXE_ONEVIEW \u003d \u0027iscsi_pxe_oneview\u0027"},{"line_number":66,"context_line":"AGENT_PXE_ONEVIEW \u003d \u0027agent_pxe_oneview\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_53f296d3","line":63,"in_reply_to":"9a89bdaa_ba373ce2","updated":"2016-09-05 11:57:23.000000000","message":"Done","commit_id":"436d52ce1b45fd97d11a3e6362990701f75724f1"}],"ironic/drivers/modules/oneview/deploy.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"2f45a271bce9447ff45d542df3207f1782652295","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"                node.maintenance \u003d True"},{"line_number":92,"context_line":"                node.maintenance_reason \u003d common.NODE_IN_USE_BY_ONEVIEW"},{"line_number":93,"context_line":"                node.driver_internal_info \u003d {\u0027power_off_for_set_boot_device\u0027:"},{"line_number":94,"context_line":"                                             common.POWER_OFF_SET_BOOT_DEVICE}"},{"line_number":95,"context_line":"                manager.update_node(context, node)"},{"line_number":96,"context_line":"                manager.do_provisioning_action(context, node.uuid, \u0027manage\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_977b4529","line":93,"updated":"2016-08-31 09:58:40.000000000","message":"This will overwrite the whole driver_internal_info dictionary, instead, just one key should be added there. Also if I read the code correctly, it will be set only if the node is taken by other oneview user and not available to ironic. We need to set it somewhere else, maybe in deploy prepare?","commit_id":"b1674c2d5eb79abb28ebeea01aea6e406c91edc6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"23a9a53de51430d13054c2dc7d4b59639b7e3c87","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"                node.maintenance \u003d True"},{"line_number":92,"context_line":"                node.maintenance_reason \u003d common.NODE_IN_USE_BY_ONEVIEW"},{"line_number":93,"context_line":"                node.driver_internal_info \u003d {\u0027power_off_for_set_boot_device\u0027:"},{"line_number":94,"context_line":"                                             common.POWER_OFF_SET_BOOT_DEVICE}"},{"line_number":95,"context_line":"                manager.update_node(context, node)"},{"line_number":96,"context_line":"                manager.do_provisioning_action(context, node.uuid, \u0027manage\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_f30368b6","line":93,"in_reply_to":"fa7ab95a_977b4529","updated":"2016-09-01 13:51:54.000000000","message":"Done","commit_id":"b1674c2d5eb79abb28ebeea01aea6e406c91edc6"}],"ironic/drivers/modules/oneview/deploy_utils.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c64ab4733148823426d03cf71fdfca230b971acf","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                {\"instance_name\": instance_display_name,"},{"line_number":58,"context_line":"                 \"instance_uuid\": instance_uuid}"},{"line_number":59,"context_line":"            )"},{"line_number":60,"context_line":"            task.node.driver_internal_info["},{"line_number":61,"context_line":"                \u0027power_off_for_set_boot_device\u0027"},{"line_number":62,"context_line":"            ] \u003d common.POWER_OFF_SET_BOOT_DEVICE"},{"line_number":63,"context_line":"            task.node.save()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            _allocate_server_hardware_to_ironic(task.node, server_profile_name)"},{"line_number":66,"context_line":"        except exception.OneViewError as e:"}],"source_content_type":"text/x-python","patch_set":5,"id":"da7fb54a_ca99b721","line":63,"range":{"start_line":60,"start_character":12,"end_line":63,"end_character":28},"updated":"2016-09-02 16:22:04.000000000","message":"It changes default behavior for oneview driver. I think this option still should be optional.","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4bcbac4bfb27ad508654a42c0bc9eb1bc72b73b3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                {\"instance_name\": instance_display_name,"},{"line_number":58,"context_line":"                 \"instance_uuid\": instance_uuid}"},{"line_number":59,"context_line":"            )"},{"line_number":60,"context_line":"            task.node.driver_internal_info["},{"line_number":61,"context_line":"                \u0027power_off_for_set_boot_device\u0027"},{"line_number":62,"context_line":"            ] \u003d common.POWER_OFF_SET_BOOT_DEVICE"},{"line_number":63,"context_line":"            task.node.save()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            _allocate_server_hardware_to_ironic(task.node, server_profile_name)"},{"line_number":66,"context_line":"        except exception.OneViewError as e:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_e4adaf89","line":63,"range":{"start_line":60,"start_character":12,"end_line":63,"end_character":28},"in_reply_to":"da7fb54a_ca99b721","updated":"2016-09-05 08:55:01.000000000","message":"Done","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"}],"ironic/drivers/modules/oneview/management.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6eb77c16a629be4247f110ea01e0391f433107e0","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        LOG.debug(\"Setting boot device to %(device)s for node %(node)s\","},{"line_number":120,"context_line":"                  {\"device\": device, \"node\": task.node.uuid})"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        try:"},{"line_number":125,"context_line":"            oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a77a97e_5939f1d7","line":122,"updated":"2016-11-21 15:17:56.000000000","message":"There is no guard on this if an API user were to set the boot device while the machine was in an active/running state, so you may want to put a check in and raise an exception if this is called in a somewhat unexpected operational state as we don\u0027t want users to accidentally power nodes off as a side effect of thinking they are setting the boot device.","commit_id":"2143e52fe40d0e3db2c76a59fc1af626b660e9f8"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"583fb086f523dce5d0883552f556dd69a2794f3f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        LOG.debug(\"Setting boot device to %(device)s for node %(node)s\","},{"line_number":120,"context_line":"                  {\"device\": device, \"node\": task.node.uuid})"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        try:"},{"line_number":125,"context_line":"            oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a77a97e_70f877c5","line":122,"updated":"2016-11-21 18:04:56.000000000","message":"Just throwing an idea here (that came up on the ironic meeting today).\n\nInstead of forcing a power off here what if this method did:\n\n1) Check whether the node is on or off\n\n 1.1) If off, just set the boot device\n\n 1.2) If on, check if the requested boot device is supported (L115) and write it to the driver_internal_info.\n\n2) When power_off() is called, check if there\u0027s a pending boot device in the driver_internal_info\n\n 2.1) If so, set it after the node is off\n\n 2.2 If not, just return right after powering the node off.\n\n\nThat way Ironic could work as a layer to lazily apply the boot device for oneview instead of relying on the hardware. Plus, it will be consistent with other driver\u0027s behavior in the user POV.","commit_id":"ed4e5fdd93e2bafb6e28ee47228d8fb9e941e139"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"ccac606c734b516008b1b8158c5cc14fe32c70fc","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                task, states.POWER_OFF)"},{"line_number":133,"context_line":"            if boot_device is None:"},{"line_number":134,"context_line":"                LOG.error(\"There is no boot device pending in driver internal\""},{"line_number":135,"context_line":"                          \"info for node %s\" % task.node.uuid)"},{"line_number":136,"context_line":"                return"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        LOG.debug(\"Setting boot device to %(device)s for node %(node)s\","}],"source_content_type":"text/x-python","patch_set":17,"id":"5a74a57a_75f8884a","line":135,"range":{"start_line":135,"start_character":45,"end_line":135,"end_character":46},"updated":"2016-11-29 16:35:27.000000000","message":"s/%/,","commit_id":"cfdeafe635f85e9742be8a60f5b04c147848d466"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"ccac606c734b516008b1b8158c5cc14fe32c70fc","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        LOG.debug(\"Setting boot device to %(device)s for node %(node)s\","},{"line_number":139,"context_line":"                  {\"device\": device, \"node\": task.node.uuid})"},{"line_number":140,"context_line":"        try:"},{"line_number":141,"context_line":"            oneview_client \u003d common.get_oneview_client()"},{"line_number":142,"context_line":"            device_to_oneview \u003d BOOT_DEVICE_MAPPING_TO_OV.get(device)"},{"line_number":143,"context_line":"            oneview_client.set_boot_device(oneview_info, device_to_oneview)"},{"line_number":144,"context_line":"        except oneview_exceptions.OneViewException as oneview_exc:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a74a57a_db426b68","line":141,"updated":"2016-11-29 16:35:27.000000000","message":"The behaviour that described in the bug looks like bug in the oneview client. Oneview client should raise an exception with proper error message when we trying to set boot device on powered on node.\n\nEither setting boot device from set_power_stace() or powering node off in set_boot_device() looks ugly to me.","commit_id":"cfdeafe635f85e9742be8a60f5b04c147848d466"}],"ironic/tests/unit/drivers/modules/oneview/test_deploy_utils.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        self.config(power_off_for_set_boot_device\u003dTrue,"},{"line_number":84,"context_line":"                    group\u003d\u0027oneview\u0027)"},{"line_number":85,"context_line":"        ov_client \u003d mock_get_ov_client()"},{"line_number":86,"context_line":"        fake_sh \u003d oneview_models.ServerHardware()"},{"line_number":87,"context_line":"        fake_sh.server_profile_uri \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_086fd4c5","line":84,"updated":"2016-09-06 10:13:14.000000000","message":"Why this is needed?","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        self.config(power_off_for_set_boot_device\u003dTrue,"},{"line_number":84,"context_line":"                    group\u003d\u0027oneview\u0027)"},{"line_number":85,"context_line":"        ov_client \u003d mock_get_ov_client()"},{"line_number":86,"context_line":"        fake_sh \u003d oneview_models.ServerHardware()"},{"line_number":87,"context_line":"        fake_sh.server_profile_uri \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_97c05d2c","line":84,"in_reply_to":"9a89bdaa_086fd4c5","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"}],"ironic/tests/unit/drivers/modules/oneview/test_management.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        self.config(power_off_for_set_boot_device\u003dTrue, group\u003d\u0027oneview\u0027)"},{"line_number":137,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"},{"line_number":138,"context_line":"            self.driver.management.set_boot_device(task, boot_devices.PXE)"},{"line_number":139,"context_line":"            mock_power.assert_called_once_with(task, \u0027power off\u0027)"},{"line_number":140,"context_line":"        oneview_client.set_boot_device.assert_called_once_with("},{"line_number":141,"context_line":"            self.info,"},{"line_number":142,"context_line":"            management.BOOT_DEVICE_MAPPING_TO_OV[boot_devices.PXE]"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_686ea097","line":139,"updated":"2016-09-06 10:13:14.000000000","message":"I think that we should add a check if node_power_action\u003dFalse that mock_power is not called. It probably may be added in L87 test_set_boot_device()","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        self.config(power_off_for_set_boot_device\u003dTrue, group\u003d\u0027oneview\u0027)"},{"line_number":137,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"},{"line_number":138,"context_line":"            self.driver.management.set_boot_device(task, boot_devices.PXE)"},{"line_number":139,"context_line":"            mock_power.assert_called_once_with(task, \u0027power off\u0027)"},{"line_number":140,"context_line":"        oneview_client.set_boot_device.assert_called_once_with("},{"line_number":141,"context_line":"            self.info,"},{"line_number":142,"context_line":"            management.BOOT_DEVICE_MAPPING_TO_OV[boot_devices.PXE]"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_d72e65f9","line":139,"in_reply_to":"9a89bdaa_686ea097","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"}],"ironic/tests/unit/drivers/modules/test_agent.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":974,"context_line":"            boot_option \u003d {\u0027capabilities\u0027: \u0027{\"boot_option\": \"local\"}\u0027}"},{"line_number":975,"context_line":"            task.node.instance_info \u003d boot_option"},{"line_number":976,"context_line":"            self.passthru.reboot_to_instance(task)"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"            self.assertFalse(clean_pxe_mock.called)"},{"line_number":979,"context_line":"            check_deploy_mock.assert_called_once_with(mock.ANY, task.node)"},{"line_number":980,"context_line":"            self.assertFalse(bootdev_mock.called)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_e808f0db","side":"PARENT","line":977,"updated":"2016-09-06 10:13:14.000000000","message":"not needed","commit_id":"ba1e15e3a9810e32f06b747f7d9426c495f4775a"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":974,"context_line":"            boot_option \u003d {\u0027capabilities\u0027: \u0027{\"boot_option\": \"local\"}\u0027}"},{"line_number":975,"context_line":"            task.node.instance_info \u003d boot_option"},{"line_number":976,"context_line":"            self.passthru.reboot_to_instance(task)"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"            self.assertFalse(clean_pxe_mock.called)"},{"line_number":979,"context_line":"            check_deploy_mock.assert_called_once_with(mock.ANY, task.node)"},{"line_number":980,"context_line":"            self.assertFalse(bootdev_mock.called)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_7794b9e1","side":"PARENT","line":977,"in_reply_to":"9a89bdaa_e808f0db","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"ba1e15e3a9810e32f06b747f7d9426c495f4775a"}],"ironic/tests/unit/drivers/modules/test_agent_base_vendor.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        driver_info \u003d self.node.driver_info"},{"line_number":774,"context_line":"        driver_info[\u0027deploy_forces_oob_reboot\u0027] \u003d True"},{"line_number":775,"context_line":"        self.node.driver_info \u003d driver_info"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"        self.node.provision_state \u003d states.DEPLOYING"},{"line_number":778,"context_line":"        self.node.target_provision_state \u003d states.ACTIVE"},{"line_number":779,"context_line":"        self.node.save()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_68f5c0c9","side":"PARENT","line":776,"updated":"2016-09-06 10:13:14.000000000","message":"not needed","commit_id":"ba1e15e3a9810e32f06b747f7d9426c495f4775a"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        driver_info \u003d self.node.driver_info"},{"line_number":774,"context_line":"        driver_info[\u0027deploy_forces_oob_reboot\u0027] \u003d True"},{"line_number":775,"context_line":"        self.node.driver_info \u003d driver_info"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"        self.node.provision_state \u003d states.DEPLOYING"},{"line_number":778,"context_line":"        self.node.target_provision_state \u003d states.ACTIVE"},{"line_number":779,"context_line":"        self.node.save()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_b7bc816d","side":"PARENT","line":776,"in_reply_to":"9a89bdaa_68f5c0c9","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"ba1e15e3a9810e32f06b747f7d9426c495f4775a"}],"releasenotes/notes/poweroff-for-set-boot-device-dbd73f050c575e76.yaml":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c64ab4733148823426d03cf71fdfca230b971acf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - New boolean field \u0027power_off_for_set_boot_device\u0027 "},{"line_number":4,"context_line":"    can be set in driver_internal_info for certain "},{"line_number":5,"context_line":"    driver, which ensures turning the node off before "},{"line_number":6,"context_line":"    setting boot device action"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"da7fb54a_6a934bfb","line":3,"range":{"start_line":3,"start_character":53,"end_line":3,"end_character":54},"updated":"2016-09-02 16:22:04.000000000","message":"whitespace","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4bcbac4bfb27ad508654a42c0bc9eb1bc72b73b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - New boolean field \u0027power_off_for_set_boot_device\u0027 "},{"line_number":4,"context_line":"    can be set in driver_internal_info for certain "},{"line_number":5,"context_line":"    driver, which ensures turning the node off before "},{"line_number":6,"context_line":"    setting boot device action"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a89bdaa_84d6a3c3","line":3,"range":{"start_line":3,"start_character":53,"end_line":3,"end_character":54},"in_reply_to":"da7fb54a_6a934bfb","updated":"2016-09-05 08:55:01.000000000","message":"Done","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c64ab4733148823426d03cf71fdfca230b971acf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - New boolean field \u0027power_off_for_set_boot_device\u0027 "},{"line_number":4,"context_line":"    can be set in driver_internal_info for certain "},{"line_number":5,"context_line":"    driver, which ensures turning the node off before "},{"line_number":6,"context_line":"    setting boot device action"},{"line_number":7,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"da7fb54a_cac0d7e3","line":4,"range":{"start_line":4,"start_character":50,"end_line":4,"end_character":51},"updated":"2016-09-02 16:22:04.000000000","message":"ditto","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4bcbac4bfb27ad508654a42c0bc9eb1bc72b73b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - New boolean field \u0027power_off_for_set_boot_device\u0027 "},{"line_number":4,"context_line":"    can be set in driver_internal_info for certain "},{"line_number":5,"context_line":"    driver, which ensures turning the node off before "},{"line_number":6,"context_line":"    setting boot device action"},{"line_number":7,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a89bdaa_e4e5afa8","line":4,"range":{"start_line":4,"start_character":50,"end_line":4,"end_character":51},"in_reply_to":"da7fb54a_cac0d7e3","updated":"2016-09-05 08:55:01.000000000","message":"Done","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c64ab4733148823426d03cf71fdfca230b971acf","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - New boolean field \u0027power_off_for_set_boot_device\u0027 "},{"line_number":4,"context_line":"    can be set in driver_internal_info for certain "},{"line_number":5,"context_line":"    driver, which ensures turning the node off before "},{"line_number":6,"context_line":"    setting boot device action"},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - Oneview driver now turns the node power off before "}],"source_content_type":"text/x-yaml","patch_set":5,"id":"da7fb54a_eab59b7e","line":5,"range":{"start_line":5,"start_character":53,"end_line":5,"end_character":54},"updated":"2016-09-02 16:22:04.000000000","message":"ditto","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4bcbac4bfb27ad508654a42c0bc9eb1bc72b73b3","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - New boolean field \u0027power_off_for_set_boot_device\u0027 "},{"line_number":4,"context_line":"    can be set in driver_internal_info for certain "},{"line_number":5,"context_line":"    driver, which ensures turning the node off before "},{"line_number":6,"context_line":"    setting boot device action"},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - Oneview driver now turns the node power off before "}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a89bdaa_04e373a4","line":5,"range":{"start_line":5,"start_character":53,"end_line":5,"end_character":54},"in_reply_to":"da7fb54a_eab59b7e","updated":"2016-09-05 08:55:01.000000000","message":"Done","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c64ab4733148823426d03cf71fdfca230b971acf","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    driver, which ensures turning the node off before "},{"line_number":6,"context_line":"    setting boot device action"},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - Oneview driver now turns the node power off before "},{"line_number":9,"context_line":"    setting boot device as it is required for this platform"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"da7fb54a_6aaa6b1b","line":8,"range":{"start_line":8,"start_character":54,"end_line":8,"end_character":55},"updated":"2016-09-02 16:22:04.000000000","message":"ditto","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4bcbac4bfb27ad508654a42c0bc9eb1bc72b73b3","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    driver, which ensures turning the node off before "},{"line_number":6,"context_line":"    setting boot device action"},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - Oneview driver now turns the node power off before "},{"line_number":9,"context_line":"    setting boot device as it is required for this platform"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a89bdaa_24eeb78b","line":8,"range":{"start_line":8,"start_character":54,"end_line":8,"end_character":55},"in_reply_to":"da7fb54a_6aaa6b1b","updated":"2016-09-05 08:55:01.000000000","message":"Done","commit_id":"5f29d955437958aed9a904b4f0a96ad52c98397e"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"dd68d6cc0229c40be6289b5867b18cf94eafe597","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    driver, which ensures turning the node off before"},{"line_number":6,"context_line":"    setting boot device action"},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - Oneview driver now turns the node power off before"},{"line_number":9,"context_line":"    setting boot device as it is required for this platform"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a89bdaa_67128164","line":8,"updated":"2016-09-05 09:20:13.000000000","message":"How it works now when in the code POWER_OFF_SET_BOOT_DEVICE \u003d False?","commit_id":"436d52ce1b45fd97d11a3e6362990701f75724f1"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"5b06f634020539f47463e5250180d7d7a6360bf8","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    driver, which ensures turning the node off before"},{"line_number":6,"context_line":"    setting boot device action"},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - Oneview driver now turns the node power off before"},{"line_number":9,"context_line":"    setting boot device as it is required for this platform"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a89bdaa_b3a682bf","line":8,"in_reply_to":"9a89bdaa_67128164","updated":"2016-09-05 11:57:23.000000000","message":"Done","commit_id":"436d52ce1b45fd97d11a3e6362990701f75724f1"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6409df12bfd9f389fc6a2cf470f1828a56cf548a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"fixes:"},{"line_number":2,"context_line":"  - Oneview driver now turns the node power off before"},{"line_number":3,"context_line":"    setting boot device as it is required for this platform"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9a89bdaa_689f8050","line":3,"updated":"2016-09-06 10:13:14.000000000","message":"features:\n  - New config option was added  ``[oneviw]/power_off_for_set_boot_device`` which indicates whether we should power off node before setting boot device.\nfixes:\n  - Oneview driver now turns the node power off before\n    setting boot device as it is required for this platform if ``[oneviw]/power_off_for_set_boot_device\u003dTrue``","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"058ca6cea811aada02b367a8adfeb7547902ef34","unresolved":false,"context_lines":[{"line_number":1,"context_line":"fixes:"},{"line_number":2,"context_line":"  - Oneview driver now turns the node power off before"},{"line_number":3,"context_line":"    setting boot device as it is required for this platform"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9a89bdaa_d7bf455e","line":3,"in_reply_to":"9a89bdaa_689f8050","updated":"2016-09-06 11:36:40.000000000","message":"Done","commit_id":"2bb53cac80ce177b1fc5841499cecd314a73b32b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"b48f68563ac5618e886be8d3a83c46a8e78baed1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - New config option was added "},{"line_number":3,"context_line":"    ``[oneview]/power_off_for_set_boot_device``"},{"line_number":4,"context_line":"    which indicates whether node will be powered off"},{"line_number":5,"context_line":"    by oneview driver before setting boot device."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9a89bdaa_5778952b","line":2,"range":{"start_line":2,"start_character":31,"end_line":2,"end_character":32},"updated":"2016-09-06 11:57:32.000000000","message":"nit: whitespace","commit_id":"2e59126f51c1f3980cd03f915528ae762cd5c119"}]}
