)]}'
{"ironic/conf/oneview.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    cfg.IntOpt(\u0027max_polling_attempts\u0027,"},{"line_number":35,"context_line":"               default\u003d12,"},{"line_number":36,"context_line":"               help\u003d_(\u0027Max connection retries to check changes on OneView.\u0027)),"},{"line_number":37,"context_line":"    cfg.IntOpt(\u0027periodic_check_interval\u0027,"},{"line_number":38,"context_line":"               default\u003d300,"},{"line_number":39,"context_line":"               help\u003d_(\u0027Period (in seconds) for periodic tasks to be \u0027"},{"line_number":40,"context_line":"                      \u0027executed.\u0027)),"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_35bb74c6","line":37,"updated":"2016-07-04 08:48:38.000000000","message":"Please update ironic.conf.sample","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    cfg.IntOpt(\u0027max_polling_attempts\u0027,"},{"line_number":35,"context_line":"               default\u003d12,"},{"line_number":36,"context_line":"               help\u003d_(\u0027Max connection retries to check changes on OneView.\u0027)),"},{"line_number":37,"context_line":"    cfg.IntOpt(\u0027periodic_check_interval\u0027,"},{"line_number":38,"context_line":"               default\u003d300,"},{"line_number":39,"context_line":"               help\u003d_(\u0027Period (in seconds) for periodic tasks to be \u0027"},{"line_number":40,"context_line":"                      \u0027executed.\u0027)),"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_3b4b0c89","line":37,"in_reply_to":"1aa78d24_35bb74c6","updated":"2016-07-13 00:10:39.000000000","message":"Done.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                      \u0027executed.\u0027)),"},{"line_number":41,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":42,"context_line":"                default\u003dTrue,"},{"line_number":43,"context_line":"                help\u003d_(\u0027Whether to enable the periodic tasks for OneView \u0027"},{"line_number":44,"context_line":"                       \u0027driver be aware when OneView hardware resources are \u0027"},{"line_number":45,"context_line":"                       \u0027taken and released by Ironic or OneView users \u0027"},{"line_number":46,"context_line":"                       \u0027and proactively manage nodes in clean fail state \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_a44d6a74","line":43,"updated":"2016-07-04 13:20:15.000000000","message":"Is this mandatory for dynamic allocation?","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                      \u0027executed.\u0027)),"},{"line_number":41,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":42,"context_line":"                default\u003dTrue,"},{"line_number":43,"context_line":"                help\u003d_(\u0027Whether to enable the periodic tasks for OneView \u0027"},{"line_number":44,"context_line":"                       \u0027driver be aware when OneView hardware resources are \u0027"},{"line_number":45,"context_line":"                       \u0027taken and released by Ironic or OneView users \u0027"},{"line_number":46,"context_line":"                       \u0027and proactively manage nodes in clean fail state \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_49337262","line":43,"in_reply_to":"1aa78d24_a44d6a74","updated":"2016-07-13 00:10:39.000000000","message":"Hi there, yes it is. :)\nhttps://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/oneview-drivers-dynamic-allocation.html#proposed-change","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f4e879f5b61724799034b06b09558674578caff2","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":42,"context_line":"                default\u003dTrue,"},{"line_number":43,"context_line":"                help\u003d_(\u0027Whether to enable the periodic tasks for OneView \u0027"},{"line_number":44,"context_line":"                       \u0027driver be aware when OneView hardware resources are \u0027"},{"line_number":45,"context_line":"                       \u0027taken and released by Ironic or OneView users \u0027"},{"line_number":46,"context_line":"                       \u0027and proactively manage nodes in clean fail state \u0027"},{"line_number":47,"context_line":"                       \u0027according to Dynamic Allocation model of hardware \u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"dada55a8_1002010a","line":44,"updated":"2016-07-21 20:16:01.000000000","message":"nit: Feels like \"driver\" is the end of a sentence and \"be\" is the beginning of another sentence.  Maybe a period?","commit_id":"b0927ea388818400c64e0587c71830bc0c4e842e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    cfg.IntOpt(\u0027periodic_check_interval\u0027,"},{"line_number":38,"context_line":"               default\u003d300,"},{"line_number":39,"context_line":"               help\u003d_(\u0027Period (in seconds) for periodic tasks to be \u0027"},{"line_number":40,"context_line":"                      \u0027executed.\u0027)),"},{"line_number":41,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":42,"context_line":"                default\u003dTrue,"},{"line_number":43,"context_line":"                help\u003d_(\u0027Whether to enable the periodic tasks for OneView \u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_72f5a8eb","line":40,"updated":"2016-08-04 14:46:32.000000000","message":"nit: Probably should mention that this is only used if enabled_periodic_task is True.","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    cfg.IntOpt(\u0027periodic_check_interval\u0027,"},{"line_number":38,"context_line":"               default\u003d300,"},{"line_number":39,"context_line":"               help\u003d_(\u0027Period (in seconds) for periodic tasks to be \u0027"},{"line_number":40,"context_line":"                      \u0027executed.\u0027)),"},{"line_number":41,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":42,"context_line":"                default\u003dTrue,"},{"line_number":43,"context_line":"                help\u003d_(\u0027Whether to enable the periodic tasks for OneView \u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_22759ff9","line":40,"in_reply_to":"bacf61ea_72f5a8eb","updated":"2016-08-04 16:10:54.000000000","message":"Done","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"}],"ironic/drivers/modules/oneview/common.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":"8a1a10bcaf4ed98c7b1a2f91669722312b33af4d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d_(\u0027Max connection retries to check changes on OneView\u0027)),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027periodic_check_interval\u0027,"},{"line_number":53,"context_line":"               default\u003d300,"},{"line_number":54,"context_line":"               help\u003d_(\u0027Period (in seconds) for execute periodic tasks\u0027)),"},{"line_number":55,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":56,"context_line":"                default\u003dTrue,"},{"line_number":57,"context_line":"                help\u003d_(\u0027Wheter to enable periodic tasks on OneView driver\u0027)),"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_9be686ae","line":54,"range":{"start_line":54,"start_character":43,"end_line":54,"end_character":69},"updated":"2016-04-19 15:10:44.000000000","message":"Maybe \"Period (in seconds) for periodic tasks to be executed\"?","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"a2880b9b801eb7079a43b28b480f667e08db8028","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d_(\u0027Max connection retries to check changes on OneView\u0027)),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027periodic_check_interval\u0027,"},{"line_number":53,"context_line":"               default\u003d300,"},{"line_number":54,"context_line":"               help\u003d_(\u0027Period (in seconds) for execute periodic tasks\u0027)),"},{"line_number":55,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":56,"context_line":"                default\u003dTrue,"},{"line_number":57,"context_line":"                help\u003d_(\u0027Wheter to enable periodic tasks on OneView driver\u0027)),"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_f794e143","line":54,"range":{"start_line":54,"start_character":43,"end_line":54,"end_character":69},"in_reply_to":"1a122d0e_9be686ae","updated":"2016-04-19 19:40:05.000000000","message":"Done","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8a1a10bcaf4ed98c7b1a2f91669722312b33af4d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               help\u003d_(\u0027Period (in seconds) for execute periodic tasks\u0027)),"},{"line_number":55,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":56,"context_line":"                default\u003dTrue,"},{"line_number":57,"context_line":"                help\u003d_(\u0027Wheter to enable periodic tasks on OneView driver\u0027)),"},{"line_number":58,"context_line":"]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_bbc9c25b","line":57,"updated":"2016-04-19 15:10:44.000000000","message":"s/Wheter/Whether/\n\nAdditionally, the immediate question that comes to mind is what are the periodic tasks for at a high level, so I can understand that maybe it is something not needed.  Perhaps make this slightly more verbose?","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"a2880b9b801eb7079a43b28b480f667e08db8028","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               help\u003d_(\u0027Period (in seconds) for execute periodic tasks\u0027)),"},{"line_number":55,"context_line":"    cfg.BoolOpt(\u0027enable_periodic_tasks\u0027,"},{"line_number":56,"context_line":"                default\u003dTrue,"},{"line_number":57,"context_line":"                help\u003d_(\u0027Wheter to enable periodic tasks on OneView driver\u0027)),"},{"line_number":58,"context_line":"]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_3772d949","line":57,"in_reply_to":"1a122d0e_bbc9c25b","updated":"2016-04-19 19:40:05.000000000","message":"Done, TheJulia. I think is better now (see patch set 7).","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":9628,"name":"Sivaramakrishna Garimella","email":"sivaramakrishna_g@yahoo.in","username":"sivaramakrishna-g"},"change_message_id":"f25b46b1dc309ebc72e505f6f8ef95f51ae0f744","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        if is_dynamic_allocation_enabled(task.node):"},{"line_number":237,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_hardware("},{"line_number":238,"context_line":"                oneview_info, node_ports"},{"line_number":239,"context_line":"            )"},{"line_number":240,"context_line":"            oneview_client.validate_node_server_profile_template(oneview_info)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_968e30ce","line":237,"range":{"start_line":237,"start_character":27,"end_line":237,"end_character":75},"updated":"2016-06-08 05:03:43.000000000","message":"this func needs to be logically split so that port validation and node validation don\u0027t mix.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"da3aae470d17309d13ecde48127f8d92fd3b7734","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        if is_dynamic_allocation_enabled(task.node):"},{"line_number":237,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_hardware("},{"line_number":238,"context_line":"                oneview_info, node_ports"},{"line_number":239,"context_line":"            )"},{"line_number":240,"context_line":"            oneview_client.validate_node_server_profile_template(oneview_info)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_5e594f34","line":237,"range":{"start_line":237,"start_character":27,"end_line":237,"end_character":75},"in_reply_to":"7aa08908_968e30ce","updated":"2016-06-08 16:00:51.000000000","message":"I didn\u0027t get your point here. Can you elaborate?","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"928cbb686c5792ebb2c7af6000c905748a5fe61a","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    return False"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"def uuid_from_uri(uri):"},{"line_number":341,"context_line":"    return uri.split(\"/\")[-1]"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_83e5100a","line":340,"updated":"2016-06-08 20:31:33.000000000","message":"This can reuse the function from python-oneviewclient:\n\nhttps://github.com/openstack/python-oneviewclient/blob/master/oneview_client/utils.py","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"786c1f8c04e4fe12406b194d8ce827a9cb09779e","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    return False"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"def uuid_from_uri(uri):"},{"line_number":341,"context_line":"    return uri.split(\"/\")[-1]"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_89149f9f","line":340,"in_reply_to":"7aa08908_83e5100a","updated":"2016-06-10 16:01:41.000000000","message":"Done.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d768b10673ad6fed04d0fe6d422676a9e64945a4","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"def is_dynamic_allocation_enabled(node):"},{"line_number":292,"context_line":"    flag \u003d node.driver_info.get(\u0027dynamic_allocation\u0027)"},{"line_number":293,"context_line":"    if flag:"},{"line_number":294,"context_line":"        if isinstance(flag, bool):"},{"line_number":295,"context_line":"            return flag is True"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_625c374d","line":292,"updated":"2016-07-01 17:50:37.000000000","message":"I don\u0027t see this referenced in the specification, perhaps the specification needs to be revised?","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"FAKE_ONEVIEW \u003d \u0027fake_oneview\u0027"},{"line_number":67,"context_line":"ONEVIEW_DRIVERS \u003d [ISCSI_PXE_ONEVIEW, AGENT_PXE_ONEVIEW, FAKE_ONEVIEW]"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"NODE_IN_USE_BY_ONEVIEW \u003d \u0027node in use by OneView\u0027"},{"line_number":70,"context_line":"SERVER_HARDWARE_ALLOCATION_ERROR \u003d \u0027server hardware allocation error\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_d81a206e","line":69,"updated":"2016-07-04 13:20:15.000000000","message":"Should be translated with _()","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":66,"context_line":"FAKE_ONEVIEW \u003d \u0027fake_oneview\u0027"},{"line_number":67,"context_line":"ONEVIEW_DRIVERS \u003d [ISCSI_PXE_ONEVIEW, AGENT_PXE_ONEVIEW, FAKE_ONEVIEW]"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"NODE_IN_USE_BY_ONEVIEW \u003d \u0027node in use by OneView\u0027"},{"line_number":70,"context_line":"SERVER_HARDWARE_ALLOCATION_ERROR \u003d \u0027server hardware allocation error\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_538ddc2f","line":69,"in_reply_to":"1aa78d24_d81a206e","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"ONEVIEW_DRIVERS \u003d [ISCSI_PXE_ONEVIEW, AGENT_PXE_ONEVIEW, FAKE_ONEVIEW]"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"NODE_IN_USE_BY_ONEVIEW \u003d \u0027node in use by OneView\u0027"},{"line_number":70,"context_line":"SERVER_HARDWARE_ALLOCATION_ERROR \u003d \u0027server hardware allocation error\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def get_oneview_client():"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_78204c9c","line":70,"updated":"2016-07-04 13:20:15.000000000","message":"ditto","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":67,"context_line":"ONEVIEW_DRIVERS \u003d [ISCSI_PXE_ONEVIEW, AGENT_PXE_ONEVIEW, FAKE_ONEVIEW]"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"NODE_IN_USE_BY_ONEVIEW \u003d \u0027node in use by OneView\u0027"},{"line_number":70,"context_line":"SERVER_HARDWARE_ALLOCATION_ERROR \u003d \u0027server hardware allocation error\u0027"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def get_oneview_client():"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b38080f8","line":70,"in_reply_to":"1aa78d24_78204c9c","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        if isinstance(flag, bool):"},{"line_number":295,"context_line":"            return flag is True"},{"line_number":296,"context_line":"        else:"},{"line_number":297,"context_line":"            error_msg \u003d (\"Invalid dynamic_allocation parameter value in \""},{"line_number":298,"context_line":"                         \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":299,"context_line":"                         \"are booleans true or false.\" %"},{"line_number":300,"context_line":"                         {\"node_uuid\": node.uuid})"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_49d82954","line":297,"updated":"2016-07-04 13:20:15.000000000","message":"missing \"_\" translations","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        if isinstance(flag, bool):"},{"line_number":295,"context_line":"            return flag is True"},{"line_number":296,"context_line":"        else:"},{"line_number":297,"context_line":"            error_msg \u003d (\"Invalid dynamic_allocation parameter value in \""},{"line_number":298,"context_line":"                         \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":299,"context_line":"                         \"are booleans true or false.\" %"},{"line_number":300,"context_line":"                         {\"node_uuid\": node.uuid})"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_9383c402","line":297,"in_reply_to":"1aa78d24_49d82954","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":299,"context_line":"                         \"are booleans true or false.\" %"},{"line_number":300,"context_line":"                         {\"node_uuid\": node.uuid})"},{"line_number":301,"context_line":"            LOG.error(error_msg)"},{"line_number":302,"context_line":"            raise exception.InvalidParameterValue(err\u003derror_msg)"},{"line_number":303,"context_line":"    return False"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_0969bc8b","line":302,"updated":"2016-07-05 17:24:45.000000000","message":"Just pass error_msg without err\u003d.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":299,"context_line":"                         \"are booleans true or false.\" %"},{"line_number":300,"context_line":"                         {\"node_uuid\": node.uuid})"},{"line_number":301,"context_line":"            LOG.error(error_msg)"},{"line_number":302,"context_line":"            raise exception.InvalidParameterValue(err\u003derror_msg)"},{"line_number":303,"context_line":"    return False"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_d379cc30","line":302,"in_reply_to":"1aa78d24_0969bc8b","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"def uuid_from_uri(uri):"},{"line_number":307,"context_line":"    return uri.split(\"/\")[-1]"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_89e12c01","line":307,"updated":"2016-07-05 17:24:45.000000000","message":"Not sure if it is possible to have a slash at the end in oneview, but may be worth doing uri.rstrip(\u0027/\u0027).split(\"/\")[-1]","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"def uuid_from_uri(uri):"},{"line_number":307,"context_line":"    return uri.split(\"/\")[-1]"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_d3a0ac92","line":307,"in_reply_to":"1aa78d24_89e12c01","updated":"2016-07-13 00:10:39.000000000","message":"removed in favor of a method in python-oneviewclient","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    try:"},{"line_number":191,"context_line":"        oneview_info \u003d get_oneview_info(task.node)"},{"line_number":192,"context_line":"    except exception.InvalidParameterValue as e:"},{"line_number":193,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":194,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":195,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":196,"context_line":"        LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_2d77d9d5","line":193,"range":{"start_line":193,"start_character":30,"end_line":193,"end_character":36},"updated":"2016-07-15 17:15:01.000000000","message":"s/abtain/obtain\nPlease replace _ by _LE","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    try:"},{"line_number":191,"context_line":"        oneview_info \u003d get_oneview_info(task.node)"},{"line_number":192,"context_line":"    except exception.InvalidParameterValue as e:"},{"line_number":193,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":194,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":195,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":196,"context_line":"        LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_845c6eee","line":193,"range":{"start_line":193,"start_character":30,"end_line":193,"end_character":36},"in_reply_to":"fad55976_2d77d9d5","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":194,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":195,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":196,"context_line":"        LOG.error(msg)"},{"line_number":197,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_5f558f1b","line":196,"updated":"2016-07-15 17:15:01.000000000","message":"The message will be showed twice here, first with LOG.error, second by raise exception.OneViewError(error\u003dmsg)","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":194,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":195,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":196,"context_line":"        LOG.error(msg)"},{"line_number":197,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_c46e6695","line":196,"in_reply_to":"fad55976_5f558f1b","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":215,"context_line":"        else:"},{"line_number":216,"context_line":"            oneview_client.check_server_profile_is_applied(oneview_info)"},{"line_number":217,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_profile("},{"line_number":218,"context_line":"                oneview_info, node_ports"},{"line_number":219,"context_line":"            )"},{"line_number":220,"context_line":"    except oneview_exceptions.OneViewException as oneview_exc:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_1fff9735","line":217,"updated":"2016-07-15 17:15:01.000000000","message":"It is a little wired when we checking that profile is applied and then checking that we can apply that profile to a node.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"907e8177f8b3194d7e49a458738a48cd86f59ee3","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":215,"context_line":"        else:"},{"line_number":216,"context_line":"            oneview_client.check_server_profile_is_applied(oneview_info)"},{"line_number":217,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_profile("},{"line_number":218,"context_line":"                oneview_info, node_ports"},{"line_number":219,"context_line":"            )"},{"line_number":220,"context_line":"    except oneview_exceptions.OneViewException as oneview_exc:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_a0b90331","line":217,"in_reply_to":"fad55976_1fff9735","updated":"2016-07-15 18:33:38.000000000","message":"I think you got it wrong. We check if the server profile is applied and then we check if the mac of node port is compliant with the server profile (because OneView has a feature of assigning virtual macs through the server profile, but we didn\u0027t support it).","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"cf08f834c671614a22c90b5f8116b88fc60d3cb2","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":215,"context_line":"        else:"},{"line_number":216,"context_line":"            oneview_client.check_server_profile_is_applied(oneview_info)"},{"line_number":217,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_profile("},{"line_number":218,"context_line":"                oneview_info, node_ports"},{"line_number":219,"context_line":"            )"},{"line_number":220,"context_line":"    except oneview_exceptions.OneViewException as oneview_exc:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_f803b374","line":217,"in_reply_to":"fad55976_a0b90331","updated":"2016-07-15 20:15:28.000000000","message":"What if profile is applied but the mac is not compliant? Could you please provide a link to the documentatiion for is_node_port_mac_compatible_with_server_profile ?","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"e00905419d852a807018a0ac8daea93af5244ee5","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":215,"context_line":"        else:"},{"line_number":216,"context_line":"            oneview_client.check_server_profile_is_applied(oneview_info)"},{"line_number":217,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_profile("},{"line_number":218,"context_line":"                oneview_info, node_ports"},{"line_number":219,"context_line":"            )"},{"line_number":220,"context_line":"    except oneview_exceptions.OneViewException as oneview_exc:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_d8998f21","line":217,"in_reply_to":"fad55976_f803b374","updated":"2016-07-15 20:30:45.000000000","message":"We don\u0027t have upstream docs for python-oneviewclient yet, but it shall fail with a subclass of OneView exception. You can see the code in [1] though.\n\n[1] https://github.com/openstack/python-oneviewclient/blob/master/oneview_client/client.py#L534","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    except oneview_exceptions.OneViewException as oneview_exc:"},{"line_number":221,"context_line":"        msg \u003d (_(\"Error validating node resources with OneView: %s\") %"},{"line_number":222,"context_line":"               oneview_exc)"},{"line_number":223,"context_line":"        LOG.error(msg)"},{"line_number":224,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_7f2fb3a1","line":223,"updated":"2016-07-15 17:15:01.000000000","message":"ditto","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    except oneview_exceptions.OneViewException as oneview_exc:"},{"line_number":221,"context_line":"        msg \u003d (_(\"Error validating node resources with OneView: %s\") %"},{"line_number":222,"context_line":"               oneview_exc)"},{"line_number":223,"context_line":"        LOG.error(msg)"},{"line_number":224,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_4409d6dc","line":223,"in_reply_to":"fad55976_7f2fb3a1","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":280,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":281,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":282,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":283,"context_line":"            LOG.error(msg)"},{"line_number":284,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":285,"context_line":"        oneview_client \u003d get_oneview_client()"},{"line_number":286,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_711a4770","line":283,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about duplication","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":280,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":281,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":282,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":283,"context_line":"            LOG.error(msg)"},{"line_number":284,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":285,"context_line":"        oneview_client \u003d get_oneview_client()"},{"line_number":286,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_a4109202","line":283,"in_reply_to":"fad55976_711a4770","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        if isinstance(flag, bool):"},{"line_number":310,"context_line":"            return flag is True"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            msg \u003d (_LE(\"Invalid dynamic_allocation parameter value in \""},{"line_number":313,"context_line":"                       \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":314,"context_line":"                       \"are booleans true or false.\") %"},{"line_number":315,"context_line":"                   {\"node_uuid\": node.uuid})"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_f0f2b805","line":312,"updated":"2016-07-15 17:15:01.000000000","message":"I think this check should be performed in validate() method.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"ee6029216ed2daf64adbbfdb520d03df8d5b9362","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        if isinstance(flag, bool):"},{"line_number":310,"context_line":"            return flag is True"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            msg \u003d (_LE(\"Invalid dynamic_allocation parameter value in \""},{"line_number":313,"context_line":"                       \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":314,"context_line":"                       \"are booleans true or false.\") %"},{"line_number":315,"context_line":"                   {\"node_uuid\": node.uuid})"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_411c3f13","line":312,"in_reply_to":"fad55976_1e882fe7","updated":"2016-07-19 13:32:56.000000000","message":"I don\u0027t think so. Since dynamic_allocation is a flag in the node\u0027s driver_info and prone to changes by API (node-update), we need to check it for bool since users can set the flag to anything they wish.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"cf08f834c671614a22c90b5f8116b88fc60d3cb2","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        if isinstance(flag, bool):"},{"line_number":310,"context_line":"            return flag is True"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            msg \u003d (_LE(\"Invalid dynamic_allocation parameter value in \""},{"line_number":313,"context_line":"                       \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":314,"context_line":"                       \"are booleans true or false.\") %"},{"line_number":315,"context_line":"                   {\"node_uuid\": node.uuid})"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_56545153","line":312,"in_reply_to":"fad55976_20ca33a2","updated":"2016-07-15 20:15:28.000000000","message":"I see, so why we need to validate settings multiple times? https://review.openstack.org/#/c/286192/26/ironic/drivers/modules/oneview/deploy.py@246\nPlease split validate and get dynamic_allocation status functionality to different methods.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"cc7ad20ac3ef1a9e19576a305d19d47dcbb0dfae","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        if isinstance(flag, bool):"},{"line_number":310,"context_line":"            return flag is True"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            msg \u003d (_LE(\"Invalid dynamic_allocation parameter value in \""},{"line_number":313,"context_line":"                       \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":314,"context_line":"                       \"are booleans true or false.\") %"},{"line_number":315,"context_line":"                   {\"node_uuid\": node.uuid})"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_1e882fe7","line":312,"in_reply_to":"fad55976_38126b63","updated":"2016-07-15 22:10:43.000000000","message":"I\u0027m fine with checking if dynamic_allocation is enabled or not, but why we need each time to validate that flag is bool? It is enough to do it only once. Please split validation and check functions between different methods.\nieg:\n\ndef is_dynamic_allocation_enabled(node):\n    return node.driver_info.get(\u0027dynamic_allocation\u0027)\n\ndef validate_dynamic_allocation_field(node):\n    ....\n\nat L210 call both is_dynamic_allocation_enabled(node) and validate_dynamic_allocation_field(node)\nwhile at the [0] call only is_dynamic_allocation_enabled(node)\n\n[0] https://review.openstack.org/#/c/286192/26/ironic/drivers/modules/oneview/deploy.py@246","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"e00905419d852a807018a0ac8daea93af5244ee5","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        if isinstance(flag, bool):"},{"line_number":310,"context_line":"            return flag is True"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            msg \u003d (_LE(\"Invalid dynamic_allocation parameter value in \""},{"line_number":313,"context_line":"                       \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":314,"context_line":"                       \"are booleans true or false.\") %"},{"line_number":315,"context_line":"                   {\"node_uuid\": node.uuid})"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_38126b63","line":312,"in_reply_to":"fad55976_56545153","updated":"2016-07-15 20:30:45.000000000","message":"Not sure I got your point here... but due to the necessity of supporting pre-allocation for the next cycle and maintain backwards compatibility, we need to check if dynamic_allocation is enabled on the node to know if we should perform some actions on it or not.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"907e8177f8b3194d7e49a458738a48cd86f59ee3","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        if isinstance(flag, bool):"},{"line_number":310,"context_line":"            return flag is True"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            msg \u003d (_LE(\"Invalid dynamic_allocation parameter value in \""},{"line_number":313,"context_line":"                       \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":314,"context_line":"                       \"are booleans true or false.\") %"},{"line_number":315,"context_line":"                   {\"node_uuid\": node.uuid})"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_20ca33a2","line":312,"in_reply_to":"fad55976_f0f2b805","updated":"2016-07-15 18:33:38.000000000","message":"This method is called in some of the validation methods that are defined here, but are called on the validate method of the deploy interfaces of both Agent and iSCSI drivers.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                       \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":314,"context_line":"                       \"are booleans true or false.\") %"},{"line_number":315,"context_line":"                   {\"node_uuid\": node.uuid})"},{"line_number":316,"context_line":"            LOG.error(msg)"},{"line_number":317,"context_line":"            raise exception.InvalidParameterValue(msg)"},{"line_number":318,"context_line":"    return False"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_3041f03a","line":316,"updated":"2016-07-15 17:15:01.000000000","message":"dittp about duplication","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                       \"node\u0027s %(node_uuid)s driver_info. Valid values \""},{"line_number":314,"context_line":"                       \"are booleans true or false.\") %"},{"line_number":315,"context_line":"                   {\"node_uuid\": node.uuid})"},{"line_number":316,"context_line":"            LOG.error(msg)"},{"line_number":317,"context_line":"            raise exception.InvalidParameterValue(msg)"},{"line_number":318,"context_line":"    return False"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_8413ce0c","line":316,"in_reply_to":"fad55976_3041f03a","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"ISCSI_PXE_ONEVIEW \u003d \u0027iscsi_pxe_oneview\u0027"},{"line_number":64,"context_line":"AGENT_PXE_ONEVIEW \u003d \u0027agent_pxe_oneview\u0027"},{"line_number":65,"context_line":"FAKE_ONEVIEW \u003d \u0027fake_oneview\u0027"},{"line_number":66,"context_line":"ONEVIEW_DRIVERS \u003d [ISCSI_PXE_ONEVIEW, AGENT_PXE_ONEVIEW, FAKE_ONEVIEW]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# NOTE(xavierr): We don\u0027t want to translate NODE_IN_USE_BY_ONEVIEW and"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_927f7c16","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":29},"updated":"2016-08-04 14:46:32.000000000","message":"This FAKE_ONEVIEW is only being used for unittests, so it should be moved there","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"ISCSI_PXE_ONEVIEW \u003d \u0027iscsi_pxe_oneview\u0027"},{"line_number":64,"context_line":"AGENT_PXE_ONEVIEW \u003d \u0027agent_pxe_oneview\u0027"},{"line_number":65,"context_line":"FAKE_ONEVIEW \u003d \u0027fake_oneview\u0027"},{"line_number":66,"context_line":"ONEVIEW_DRIVERS \u003d [ISCSI_PXE_ONEVIEW, AGENT_PXE_ONEVIEW, FAKE_ONEVIEW]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# NOTE(xavierr): We don\u0027t want to translate NODE_IN_USE_BY_ONEVIEW and"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_d3ae132d","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":29},"in_reply_to":"bacf61ea_927f7c16","updated":"2016-08-04 16:10:54.000000000","message":"removed","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"ISCSI_PXE_ONEVIEW \u003d \u0027iscsi_pxe_oneview\u0027"},{"line_number":64,"context_line":"AGENT_PXE_ONEVIEW \u003d \u0027agent_pxe_oneview\u0027"},{"line_number":65,"context_line":"FAKE_ONEVIEW \u003d \u0027fake_oneview\u0027"},{"line_number":66,"context_line":"ONEVIEW_DRIVERS \u003d [ISCSI_PXE_ONEVIEW, AGENT_PXE_ONEVIEW, FAKE_ONEVIEW]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# NOTE(xavierr): We don\u0027t want to translate NODE_IN_USE_BY_ONEVIEW and"},{"line_number":69,"context_line":"# SERVER_HARDWARE_ALLOCATION_ERROR to avoid inconsistency in the nodes"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_f2707842","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":70},"updated":"2016-08-04 14:46:32.000000000","message":"This list doesn\u0027t seem to be used anywhere","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"ISCSI_PXE_ONEVIEW \u003d \u0027iscsi_pxe_oneview\u0027"},{"line_number":64,"context_line":"AGENT_PXE_ONEVIEW \u003d \u0027agent_pxe_oneview\u0027"},{"line_number":65,"context_line":"FAKE_ONEVIEW \u003d \u0027fake_oneview\u0027"},{"line_number":66,"context_line":"ONEVIEW_DRIVERS \u003d [ISCSI_PXE_ONEVIEW, AGENT_PXE_ONEVIEW, FAKE_ONEVIEW]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# NOTE(xavierr): We don\u0027t want to translate NODE_IN_USE_BY_ONEVIEW and"},{"line_number":69,"context_line":"# SERVER_HARDWARE_ALLOCATION_ERROR to avoid inconsistency in the nodes"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_95792385","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":70},"in_reply_to":"bacf61ea_f2707842","updated":"2016-08-04 16:10:54.000000000","message":"removed","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":69,"context_line":"# SERVER_HARDWARE_ALLOCATION_ERROR to avoid inconsistency in the nodes"},{"line_number":70,"context_line":"# caused by updates on translation in upgrades of ironic."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"NODE_IN_USE_BY_ONEVIEW \u003d \u0027node in use by OneView\u0027"},{"line_number":73,"context_line":"SERVER_HARDWARE_ALLOCATION_ERROR \u003d \u0027server hardware allocation error\u0027"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_d2557450","line":72,"range":{"start_line":72,"start_character":25,"end_line":72,"end_character":49},"updated":"2016-08-04 14:46:32.000000000","message":"This message is set to the maintenance_reason attribute of the node which is a user facing field, it needs i18n.","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":69,"context_line":"# SERVER_HARDWARE_ALLOCATION_ERROR to avoid inconsistency in the nodes"},{"line_number":70,"context_line":"# caused by updates on translation in upgrades of ironic."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"NODE_IN_USE_BY_ONEVIEW \u003d \u0027node in use by OneView\u0027"},{"line_number":73,"context_line":"SERVER_HARDWARE_ALLOCATION_ERROR \u003d \u0027server hardware allocation error\u0027"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_55d16b56","line":72,"range":{"start_line":72,"start_character":25,"end_line":72,"end_character":49},"in_reply_to":"bacf61ea_d2557450","updated":"2016-08-04 16:10:54.000000000","message":"Please, see note above (L68-70)","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"8f3b4dc09d1e1beb9067b9c6470b2bb2ad6d5a6f","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        oneview_client.validate_node_server_hardware_type(oneview_info)"},{"line_number":212,"context_line":"        oneview_client.validate_node_enclosure_group(oneview_info)"},{"line_number":213,"context_line":"        oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        if is_dynamic_allocation_enabled(task.node):"},{"line_number":216,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_hardware("},{"line_number":217,"context_line":"                oneview_info, node_ports"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_ad19c27b","line":214,"updated":"2016-07-28 17:32:21.000000000","message":"Nit: would be nice to have a note about when support for NON-dynamic allocation planed for obsolescence","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"d5fe0b28b9a09b70cc8700d37b5e5f5e356562e1","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        oneview_client.validate_node_server_hardware_type(oneview_info)"},{"line_number":212,"context_line":"        oneview_client.validate_node_enclosure_group(oneview_info)"},{"line_number":213,"context_line":"        oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        if is_dynamic_allocation_enabled(task.node):"},{"line_number":216,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_hardware("},{"line_number":217,"context_line":"                oneview_info, node_ports"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_a877e99d","line":214,"in_reply_to":"bacf61ea_ad19c27b","updated":"2016-07-28 19:28:16.000000000","message":"Can we do this in a follow up?","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        oneview_client.validate_node_server_hardware_type(oneview_info)"},{"line_number":212,"context_line":"        oneview_client.validate_node_enclosure_group(oneview_info)"},{"line_number":213,"context_line":"        oneview_client.validate_node_server_profile_template(oneview_info)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        if is_dynamic_allocation_enabled(task.node):"},{"line_number":216,"context_line":"            oneview_client.is_node_port_mac_compatible_with_server_hardware("},{"line_number":217,"context_line":"                oneview_info, node_ports"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_622cb702","line":214,"in_reply_to":"bacf61ea_ad19c27b","updated":"2016-08-04 16:10:54.000000000","message":"Done","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"59d592052e606d8c40b63f3d3d4d7390d070c49e","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":201,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":202,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":203,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    try:"},{"line_number":206,"context_line":"        oneview_client \u003d get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_87a72bbc","line":203,"range":{"start_line":203,"start_character":24,"end_line":203,"end_character":36},"updated":"2016-08-04 20:51:59.000000000","message":"should this raise OneViewInvalidNodeParameter instead.","commit_id":"4483de30ba28e60d0f742441d928c3e28a291f90"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"59d592052e606d8c40b63f3d3d4d7390d070c49e","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":288,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":289,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":290,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":291,"context_line":"        oneview_client \u003d get_oneview_client()"},{"line_number":292,"context_line":"        try:"},{"line_number":293,"context_line":"            node_has_server_profile \u003d ("}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_679dd765","line":290,"range":{"start_line":290,"start_character":28,"end_line":290,"end_character":40},"updated":"2016-08-04 20:51:59.000000000","message":"ditto","commit_id":"4483de30ba28e60d0f742441d928c3e28a291f90"}],"ironic/drivers/modules/oneview/deploy.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":"8a1a10bcaf4ed98c7b1a2f91669722312b33af4d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_164a4d55","line":4,"range":{"start_line":3,"start_character":0,"end_line":4,"end_character":55},"updated":"2016-04-19 15:10:44.000000000","message":"Same nits regarding copyrights in deploy_utils.py","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"a2880b9b801eb7079a43b28b480f667e08db8028","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_97b80dca","line":4,"range":{"start_line":3,"start_character":0,"end_line":4,"end_character":55},"in_reply_to":"1a122d0e_164a4d55","updated":"2016-04-19 19:40:05.000000000","message":"Done","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1f41d36aca89fa8d1db58a1f8eb56fe2348b255","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_dc71a1aa","line":3,"range":{"start_line":3,"start_character":17,"end_line":3,"end_character":58},"updated":"2016-04-21 13:28:09.000000000","message":"nit: The text that I have been instructed to use since the HP/HPE split is:\nHewlett Packard Enterprise Development LP.","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"86ad9756884f3b2ca48978f7e25c66fcabde688b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_08a0e9a4","line":3,"range":{"start_line":3,"start_character":17,"end_line":3,"end_character":58},"in_reply_to":"1a122d0e_dc71a1aa","updated":"2016-04-21 16:41:37.000000000","message":"Done","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1f41d36aca89fa8d1db58a1f8eb56fe2348b255","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":55,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":56,"context_line":"    def _periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":57,"context_line":"        oneview_deploy_obj.periodic_check_nodes_taken_by_oneview("},{"line_number":58,"context_line":"            manager, context"},{"line_number":59,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_9c3a8997","line":56,"updated":"2016-04-21 13:28:09.000000000","message":"Nit: I can\u0027t help but wonder if the periodic task items should have some sort of short doc string to enable advanced users and future developers to better understand what each periodic task is doing","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"86ad9756884f3b2ca48978f7e25c66fcabde688b","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":55,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":56,"context_line":"    def _periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":57,"context_line":"        oneview_deploy_obj.periodic_check_nodes_taken_by_oneview("},{"line_number":58,"context_line":"            manager, context"},{"line_number":59,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_8824f9c6","line":56,"in_reply_to":"1a122d0e_9c3a8997","updated":"2016-04-21 16:41:37.000000000","message":"Done","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1f41d36aca89fa8d1db58a1f8eb56fe2348b255","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":100,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":101,"context_line":"    def _periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":102,"context_line":"        oneview_deploy_obj.periodic_check_nodes_taken_by_oneview("},{"line_number":103,"context_line":"            manager, context"},{"line_number":104,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_fc561dcd","line":101,"updated":"2016-04-21 13:28:09.000000000","message":"Same nit as above.","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"86ad9756884f3b2ca48978f7e25c66fcabde688b","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":100,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":101,"context_line":"    def _periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":102,"context_line":"        oneview_deploy_obj.periodic_check_nodes_taken_by_oneview("},{"line_number":103,"context_line":"            manager, context"},{"line_number":104,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_c8055115","line":101,"in_reply_to":"1a122d0e_fc561dcd","updated":"2016-04-21 16:41:37.000000000","message":"Done","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1268ca81ad0d93a303142efc9eed463783e051f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_09cf5e2a","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":1},"updated":"2016-07-01 16:56:52.000000000","message":"Nit: As I understand it, the encoding tag is not required.","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"ee2973a6bca6fba3f3ecdba15f3f126bd28090c4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_9d4c24ca","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":1},"in_reply_to":"3aaa91ec_09cf5e2a","updated":"2016-07-01 17:49:52.000000000","message":"Done.","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1268ca81ad0d93a303142efc9eed463783e051f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":71,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":72,"context_line":"    def _periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":73,"context_line":"        \"\"\"Periodically checks failed deploys due to Oneview users taking SH."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        This last driver periodic task will take care of nodes that would be"},{"line_number":76,"context_line":"        caught on a race condition between OneView and a deploy by Ironic. In"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_cc29e43c","line":73,"range":{"start_line":73,"start_character":11,"end_line":73,"end_character":76},"updated":"2016-07-01 16:56:52.000000000","message":"SH?","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"ee2973a6bca6fba3f3ecdba15f3f126bd28090c4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":71,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":72,"context_line":"    def _periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":73,"context_line":"        \"\"\"Periodically checks failed deploys due to Oneview users taking SH."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        This last driver periodic task will take care of nodes that would be"},{"line_number":76,"context_line":"        caught on a race condition between OneView and a deploy by Ironic. In"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_3d4ff0bf","line":73,"range":{"start_line":73,"start_character":11,"end_line":73,"end_character":76},"in_reply_to":"3aaa91ec_cc29e43c","updated":"2016-07-01 17:49:52.000000000","message":"Done.","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d768b10673ad6fed04d0fe6d422676a9e64945a4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":71,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":72,"context_line":"    def _periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":73,"context_line":"        \"\"\"Periodically checks failed deploys due to Oneview users taking SH."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        This last driver periodic task will take care of nodes that would be"},{"line_number":76,"context_line":"        caught on a race condition between OneView and a deploy by Ironic. In"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_025d7379","line":73,"range":{"start_line":73,"start_character":11,"end_line":73,"end_character":76},"in_reply_to":"3aaa91ec_cc29e43c","updated":"2016-07-01 17:50:37.000000000","message":"Okay, looked up the specification again and I see what it means.  I would prefer that we avoid abbreviations.","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import abc"},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from futurist import periodics"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_a126fcb7","line":18,"updated":"2016-07-04 13:20:15.000000000","message":"six is not part of standard library, this import should be moved to line 20","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import abc"},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from futurist import periodics"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_73b8d8c8","line":18,"in_reply_to":"1aa78d24_a126fcb7","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from ironic.drivers.modules.oneview import common"},{"line_number":25,"context_line":"from ironic.drivers.modules.oneview import deploy_utils"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"oneview_deploy \u003d deploy_utils.OneViewDeploy()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d common.CONF"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_813ca094","line":27,"updated":"2016-07-04 13:20:15.000000000","message":"Is this class and instance really needed? Or we can use deploy_utils as set of functions?","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from ironic.drivers.modules.oneview import common"},{"line_number":25,"context_line":"from ironic.drivers.modules.oneview import deploy_utils"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"oneview_deploy \u003d deploy_utils.OneViewDeploy()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d common.CONF"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_f3ccc86b","line":27,"in_reply_to":"1aa78d24_3f30219e","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from ironic.drivers.modules.oneview import common"},{"line_number":25,"context_line":"from ironic.drivers.modules.oneview import deploy_utils"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"oneview_deploy \u003d deploy_utils.OneViewDeploy()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d common.CONF"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_3f30219e","line":27,"in_reply_to":"1aa78d24_813ca094","updated":"2016-07-05 17:24:45.000000000","message":"++, that would be clearer","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from ironic.drivers.modules.oneview import common"},{"line_number":25,"context_line":"from ironic.drivers.modules.oneview import deploy_utils"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"oneview_deploy \u003d deploy_utils.OneViewDeploy()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d common.CONF"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_53bb1cc4","line":27,"in_reply_to":"1aa78d24_813ca094","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        This driver periodic task will check for nodes that were taken by"},{"line_number":45,"context_line":"        OneView users while the node is in available state, set the node to"},{"line_number":46,"context_line":"        maintenance mode with an appropriate maintenance reason message and"},{"line_number":47,"context_line":"        move the node to manageable state."},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        oneview_deploy.check_nodes_taken_by_oneview("},{"line_number":50,"context_line":"            self.oneview_driver, manager, context"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b5512465","line":47,"updated":"2016-07-04 08:48:38.000000000","message":"input params and return values are missed in docstring.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        This driver periodic task will check for nodes that were taken by"},{"line_number":45,"context_line":"        OneView users while the node is in available state, set the node to"},{"line_number":46,"context_line":"        maintenance mode with an appropriate maintenance reason message and"},{"line_number":47,"context_line":"        move the node to manageable state."},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        oneview_deploy.check_nodes_taken_by_oneview("},{"line_number":50,"context_line":"            self.oneview_driver, manager, context"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b67d531e","line":47,"in_reply_to":"1aa78d24_b5512465","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        \"\"\"Checks if nodes taken by OneView users were freed."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        This driver periodic task will be responsible to poll the nodes that"},{"line_number":59,"context_line":"        are in maintenance mode and on manageable state to check if the Server"},{"line_number":60,"context_line":"        Profile was removed, indicating that the node was freed by the OneView"},{"line_number":61,"context_line":"        user. If so, it\u0027ll provide the node, that will pass through the"},{"line_number":62,"context_line":"        cleaning process and become available to be provisioned."}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_154f58be","line":59,"updated":"2016-07-04 08:48:38.000000000","message":"ditto","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        \"\"\"Checks if nodes taken by OneView users were freed."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        This driver periodic task will be responsible to poll the nodes that"},{"line_number":59,"context_line":"        are in maintenance mode and on manageable state to check if the Server"},{"line_number":60,"context_line":"        Profile was removed, indicating that the node was freed by the OneView"},{"line_number":61,"context_line":"        user. If so, it\u0027ll provide the node, that will pass through the"},{"line_number":62,"context_line":"        cleaning process and become available to be provisioned."}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_d6729f48","line":59,"in_reply_to":"1aa78d24_154f58be","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        This task will set the node to maintenance mode with a proper reason"},{"line_number":79,"context_line":"        message and move it to manageable state, from where the second task"},{"line_number":80,"context_line":"        can rescue the node as soon as the Server Profile is removed."},{"line_number":81,"context_line":"        \"\"\""},{"line_number":82,"context_line":"        oneview_deploy.check_nodes_taken_on_cleanfail("},{"line_number":83,"context_line":"            self.oneview_driver, manager, context"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_75d69cc6","line":80,"updated":"2016-07-04 08:48:38.000000000","message":"ditto","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        This task will set the node to maintenance mode with a proper reason"},{"line_number":79,"context_line":"        message and move it to manageable state, from where the second task"},{"line_number":80,"context_line":"        can rescue the node as soon as the Server Profile is removed."},{"line_number":81,"context_line":"        \"\"\""},{"line_number":82,"context_line":"        oneview_deploy.check_nodes_taken_on_cleanfail("},{"line_number":83,"context_line":"            self.oneview_driver, manager, context"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_36904343","line":80,"in_reply_to":"1aa78d24_75d69cc6","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    \"\"\""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    oneview_driver \u003d common.ISCSI_PXE_ONEVIEW"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def get_properties(self):"},{"line_number":95,"context_line":"        oneview_deploy.get_properties()"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_9f6e75ff","line":92,"updated":"2016-07-05 17:24:45.000000000","message":"What is this field for?","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    \"\"\""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    oneview_driver \u003d common.ISCSI_PXE_ONEVIEW"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def get_properties(self):"},{"line_number":95,"context_line":"        oneview_deploy.get_properties()"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_53e2fcd5","line":92,"in_reply_to":"1aa78d24_9f6e75ff","updated":"2016-07-13 00:10:39.000000000","message":"It\u0027s used when periodic tasks uses filters to bring just nodes with that specific driver.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    oneview_driver \u003d common.AGENT_PXE_ONEVIEW"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_properties(self):"},{"line_number":121,"context_line":"        oneview_deploy.get_properties()"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def prepare(self, task):"},{"line_number":124,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_5f052d78","line":121,"updated":"2016-07-05 17:24:45.000000000","message":"Agent definitely needs some properties from AgentDeploy class","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    oneview_driver \u003d common.AGENT_PXE_ONEVIEW"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_properties(self):"},{"line_number":121,"context_line":"        oneview_deploy.get_properties()"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def prepare(self, task):"},{"line_number":124,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_33a93025","line":121,"in_reply_to":"1aa78d24_5f052d78","updated":"2016-07-13 00:10:39.000000000","message":"I think I didn\u0027t understand this comment, vdrok. :)","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":46,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":47,"context_line":"    def _periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":48,"context_line":"        \"\"\"Checks if nodes in Ironic were taken by OneView users."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        This driver periodic task will check for nodes that were taken by"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_71bb670f","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":46},"updated":"2016-07-15 17:15:01.000000000","message":"Where this method is called?","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"907e8177f8b3194d7e49a458738a48cd86f59ee3","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":46,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":47,"context_line":"    def _periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":48,"context_line":"        \"\"\"Checks if nodes in Ironic were taken by OneView users."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        This driver periodic task will check for nodes that were taken by"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_c03b579b","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":46},"in_reply_to":"fad55976_71bb670f","updated":"2016-07-15 18:33:38.000000000","message":"It\u0027s not. It\u0027s a periodic task.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"cf08f834c671614a22c90b5f8116b88fc60d3cb2","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":46,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":47,"context_line":"    def _periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":48,"context_line":"        \"\"\"Checks if nodes in Ironic were taken by OneView users."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        This driver periodic task will check for nodes that were taken by"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_b6cb0d1e","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":46},"in_reply_to":"fad55976_c03b579b","updated":"2016-07-15 20:15:28.000000000","message":"yeah, I\u0027ve missed that...","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":99,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":100,"context_line":"    def _periodic_check_nodes_freed_by_oneview(self, manager, context):"},{"line_number":101,"context_line":"        \"\"\"Checks if nodes taken by OneView users were freed."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        This driver periodic task will be responsible to poll the nodes that"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_b13b1f9c","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":46},"updated":"2016-07-15 17:15:01.000000000","message":"ditto","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"907e8177f8b3194d7e49a458738a48cd86f59ee3","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":99,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":100,"context_line":"    def _periodic_check_nodes_freed_by_oneview(self, manager, context):"},{"line_number":101,"context_line":"        \"\"\"Checks if nodes taken by OneView users were freed."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        This driver periodic task will be responsible to poll the nodes that"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_604b8b2c","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":46},"in_reply_to":"fad55976_b13b1f9c","updated":"2016-07-15 18:33:38.000000000","message":"Also a periodic task.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":157,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":158,"context_line":"    def _periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":159,"context_line":"        \"\"\"Checks failed deploys due to Oneview users taking Server Hardware."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        This last driver periodic task will take care of nodes that would be"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_f1459717","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":48},"updated":"2016-07-15 17:15:01.000000000","message":"ditto","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"907e8177f8b3194d7e49a458738a48cd86f59ee3","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @periodics.periodic(spacing\u003dCONF.oneview.periodic_check_interval,"},{"line_number":157,"context_line":"                        enabled\u003dCONF.oneview.enable_periodic_tasks)"},{"line_number":158,"context_line":"    def _periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":159,"context_line":"        \"\"\"Checks failed deploys due to Oneview users taking Server Hardware."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        This last driver periodic task will take care of nodes that would be"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_4048072e","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":48},"in_reply_to":"fad55976_f1459717","updated":"2016-07-15 18:33:38.000000000","message":"Also a periodic task.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        deploy_utils.get_properties()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def prepare(self, task):"},{"line_number":220,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"},{"line_number":221,"context_line":"            deploy_utils.prepare(task)"},{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).prepare(task)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_11e78be5","line":220,"updated":"2016-07-15 17:15:01.000000000","message":"I\u0027m a little bit concerned here. The dynamic_allocation field defacto specifies which deploy driver is used for node? Why not just change deploy_driver explicitly?","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9681ffa2814dcefeec325d4638f0c0f47f2e9642","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        deploy_utils.get_properties()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def prepare(self, task):"},{"line_number":220,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"},{"line_number":221,"context_line":"            deploy_utils.prepare(task)"},{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).prepare(task)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_674ba5b1","line":220,"in_reply_to":"fad55976_11e78be5","updated":"2016-07-15 17:22:30.000000000","message":"it is more like a preparation method and not a complete driver since it locks the node in oneview... and then the normal driver proceeds.  If that makes sense.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"e00905419d852a807018a0ac8daea93af5244ee5","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        deploy_utils.get_properties()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def prepare(self, task):"},{"line_number":220,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"},{"line_number":221,"context_line":"            deploy_utils.prepare(task)"},{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).prepare(task)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_b8aadb17","line":220,"in_reply_to":"fad55976_5892bf58","updated":"2016-07-15 20:30:45.000000000","message":"No. Dynamic allocation allows me to borrow servers from OneView inventory as needed by applying a server profile on it. In the previous model, we had to apply server profiles previously to a set of servers in OneView in order to use them and it kinda let the servers idle when not used for Ironic users and unable to be used by OneView-only users.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"ee6029216ed2daf64adbbfdb520d03df8d5b9362","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        deploy_utils.get_properties()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def prepare(self, task):"},{"line_number":220,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"},{"line_number":221,"context_line":"            deploy_utils.prepare(task)"},{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).prepare(task)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_3eacca34","line":220,"in_reply_to":"fad55976_61ceea5b","updated":"2016-07-19 13:32:56.000000000","message":"That\u0027s a really good question. We haven\u0027t thought about that... we need to remove the ServerProfile on tear_down() too. Will do.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f2810825aca0afad80b799586a3d4075016d9846","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        deploy_utils.get_properties()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def prepare(self, task):"},{"line_number":220,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"},{"line_number":221,"context_line":"            deploy_utils.prepare(task)"},{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).prepare(task)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_25e8857c","line":220,"in_reply_to":"fad55976_674ba5b1","updated":"2016-07-15 18:27:26.000000000","message":"Hi Vasyl, the dynamic_allocation field only specifies if the hardware will be allocated to Ironic when preparing the node, or during deploying. As Julia said, is all about preparing the node.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"907e8177f8b3194d7e49a458738a48cd86f59ee3","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        deploy_utils.get_properties()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def prepare(self, task):"},{"line_number":220,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"},{"line_number":221,"context_line":"            deploy_utils.prepare(task)"},{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).prepare(task)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_c00997df","line":220,"in_reply_to":"fad55976_674ba5b1","updated":"2016-07-15 18:33:38.000000000","message":"The dynamic_allocation field is used to check if the node is already allocated (with Server Profile) on OneView or uses the dynamic_allocation feature (applies the Server Profile during boot). Further clarifications about how this is supposed to work can be found on [1].\n\n[1] https://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/oneview-drivers-dynamic-allocation.html","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"cc7ad20ac3ef1a9e19576a305d19d47dcbb0dfae","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        deploy_utils.get_properties()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def prepare(self, task):"},{"line_number":220,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"},{"line_number":221,"context_line":"            deploy_utils.prepare(task)"},{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).prepare(task)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_61ceea5b","line":220,"in_reply_to":"fad55976_b8aadb17","updated":"2016-07-15 22:10:43.000000000","message":"What if cleaning is disabled, OneView resources will not be released?","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"cf08f834c671614a22c90b5f8116b88fc60d3cb2","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        deploy_utils.get_properties()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def prepare(self, task):"},{"line_number":220,"context_line":"        if common.is_dynamic_allocation_enabled(task.node):"},{"line_number":221,"context_line":"            deploy_utils.prepare(task)"},{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).prepare(task)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_5892bf58","line":220,"in_reply_to":"fad55976_c00997df","updated":"2016-07-15 20:15:28.000000000","message":"Thiago, I don\u0027t have any expertise with oneview. Please correct me if I\u0027m wrong. Dynamic allocation allows to dynamically build server with specified hardware on the fly right?","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5286e0263a1d5ba04f7a533131dba7eac505f679","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                       filters\u003dfilters)"},{"line_number":121,"context_line":"        for node_uuid, driver, maintenance_reason in node_iter:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            if maintenance_reason \u003d\u003d common.NODE_IN_USE_BY_ONEVIEW:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"                node \u003d objects.Node.get(context, node_uuid)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"dada55a8_8cb77ef4","line":123,"range":{"start_line":123,"start_character":37,"end_line":123,"end_character":66},"updated":"2016-07-25 17:01:20.000000000","message":"This is a translated string, which makes sense from a standpoint of being user.. viewable and understandable, however what happens if the translation changes between upgrades of Ironic.....","commit_id":"75e38b101e2678379618b03b2038300a59ed4954"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"7ef4601338eeb54ad284c0d0ddc3d1fd1fd2b3b4","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                       filters\u003dfilters)"},{"line_number":121,"context_line":"        for node_uuid, driver, maintenance_reason in node_iter:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            if maintenance_reason \u003d\u003d common.NODE_IN_USE_BY_ONEVIEW:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"                node \u003d objects.Node.get(context, node_uuid)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"dada55a8_65021d0b","line":123,"range":{"start_line":123,"start_character":37,"end_line":123,"end_character":66},"in_reply_to":"dada55a8_8cb77ef4","updated":"2016-07-25 17:46:35.000000000","message":"That\u0027s a nice question. The most reasonable solution is keep it as a non translatable string (a constraint), agree?","commit_id":"75e38b101e2678379618b03b2038300a59ed4954"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            try:"},{"line_number":72,"context_line":"                oneview_using \u003d deploy_utils.is_node_in_use_by_oneview("},{"line_number":73,"context_line":"                    node"},{"line_number":74,"context_line":"                )"},{"line_number":75,"context_line":"            except exception.OneViewError as e:"},{"line_number":76,"context_line":"                LOG.error(_LE(\"Error while determine if node \""},{"line_number":77,"context_line":"                              \"%(node_uuid)s is in use by OneView. \""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_12fa6c43","line":74,"updated":"2016-08-04 14:46:32.000000000","message":"Nit: that\u0027s an odd indentation. The function invocation and parameters fits in one line (it\u0027s under 80 characters)","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            try:"},{"line_number":72,"context_line":"                oneview_using \u003d deploy_utils.is_node_in_use_by_oneview("},{"line_number":73,"context_line":"                    node"},{"line_number":74,"context_line":"                )"},{"line_number":75,"context_line":"            except exception.OneViewError as e:"},{"line_number":76,"context_line":"                LOG.error(_LE(\"Error while determine if node \""},{"line_number":77,"context_line":"                              \"%(node_uuid)s is in use by OneView. \""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_b570a773","line":74,"in_reply_to":"bacf61ea_12fa6c43","updated":"2016-08-04 16:10:54.000000000","message":"Done","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"8f3b4dc09d1e1beb9067b9c6470b2bb2ad6d5a6f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                    node"},{"line_number":74,"context_line":"                )"},{"line_number":75,"context_line":"            except exception.OneViewError as e:"},{"line_number":76,"context_line":"                LOG.error(_LE(\"Error while determine if node \""},{"line_number":77,"context_line":"                              \"%(node_uuid)s is in use by OneView. \""},{"line_number":78,"context_line":"                              \"Error: %(error)s\"),"},{"line_number":79,"context_line":"                          {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_8dc5de8f","line":76,"range":{"start_line":76,"start_character":43,"end_line":76,"end_character":52},"updated":"2016-07-28 17:32:21.000000000","message":"nit: s/determine/determining/","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                    node"},{"line_number":74,"context_line":"                )"},{"line_number":75,"context_line":"            except exception.OneViewError as e:"},{"line_number":76,"context_line":"                LOG.error(_LE(\"Error while determine if node \""},{"line_number":77,"context_line":"                              \"%(node_uuid)s is in use by OneView. \""},{"line_number":78,"context_line":"                              \"Error: %(error)s\"),"},{"line_number":79,"context_line":"                          {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_8270cba5","line":76,"range":{"start_line":76,"start_character":43,"end_line":76,"end_character":52},"in_reply_to":"bacf61ea_283659e7","updated":"2016-08-04 16:10:54.000000000","message":"Done","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"d5fe0b28b9a09b70cc8700d37b5e5f5e356562e1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                    node"},{"line_number":74,"context_line":"                )"},{"line_number":75,"context_line":"            except exception.OneViewError as e:"},{"line_number":76,"context_line":"                LOG.error(_LE(\"Error while determine if node \""},{"line_number":77,"context_line":"                              \"%(node_uuid)s is in use by OneView. \""},{"line_number":78,"context_line":"                              \"Error: %(error)s\"),"},{"line_number":79,"context_line":"                          {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_283659e7","line":76,"range":{"start_line":76,"start_character":43,"end_line":76,"end_character":52},"in_reply_to":"bacf61ea_8dc5de8f","updated":"2016-07-28 19:28:16.000000000","message":"Can we do this in a follow up?","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"8f3b4dc09d1e1beb9067b9c6470b2bb2ad6d5a6f","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                        node"},{"line_number":130,"context_line":"                    )"},{"line_number":131,"context_line":"                except exception.OneViewError as e:"},{"line_number":132,"context_line":"                    LOG.error(_LE(\"Error while determine if node \""},{"line_number":133,"context_line":"                                  \"%(node_uuid)s is in use by OneView. \""},{"line_number":134,"context_line":"                                  \"Error: %(error)s\"),"},{"line_number":135,"context_line":"                              {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_6d850aac","line":132,"range":{"start_line":132,"start_character":47,"end_line":132,"end_character":56},"updated":"2016-07-28 17:32:21.000000000","message":"Nit: ditto","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"d5fe0b28b9a09b70cc8700d37b5e5f5e356562e1","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                        node"},{"line_number":130,"context_line":"                    )"},{"line_number":131,"context_line":"                except exception.OneViewError as e:"},{"line_number":132,"context_line":"                    LOG.error(_LE(\"Error while determine if node \""},{"line_number":133,"context_line":"                                  \"%(node_uuid)s is in use by OneView. \""},{"line_number":134,"context_line":"                                  \"Error: %(error)s\"),"},{"line_number":135,"context_line":"                              {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_e85a8129","line":132,"range":{"start_line":132,"start_character":47,"end_line":132,"end_character":56},"in_reply_to":"bacf61ea_6d850aac","updated":"2016-07-28 19:28:16.000000000","message":"Can we do this in a follow up?","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                        node"},{"line_number":130,"context_line":"                    )"},{"line_number":131,"context_line":"                except exception.OneViewError as e:"},{"line_number":132,"context_line":"                    LOG.error(_LE(\"Error while determine if node \""},{"line_number":133,"context_line":"                                  \"%(node_uuid)s is in use by OneView. \""},{"line_number":134,"context_line":"                                  \"Error: %(error)s\"),"},{"line_number":135,"context_line":"                              {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_c26643ec","line":132,"range":{"start_line":132,"start_character":47,"end_line":132,"end_character":56},"in_reply_to":"bacf61ea_e85a8129","updated":"2016-08-04 16:10:54.000000000","message":"Done","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                    LOG.info(purpose)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"                    node.maintenance \u003d False"},{"line_number":150,"context_line":"                    node.maintenance_reason \u003d \u0027\u0027"},{"line_number":151,"context_line":"                    manager.update_node(context, node)"},{"line_number":152,"context_line":"                    manager.do_provisioning_action("},{"line_number":153,"context_line":"                        context, node.uuid, \u0027provide\u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_92b3fc99","line":150,"range":{"start_line":150,"start_character":20,"end_line":150,"end_character":48},"updated":"2016-08-04 14:46:32.000000000","message":"I think it should be set to None instead of an empty string","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                    LOG.info(purpose)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"                    node.maintenance \u003d False"},{"line_number":150,"context_line":"                    node.maintenance_reason \u003d \u0027\u0027"},{"line_number":151,"context_line":"                    manager.update_node(context, node)"},{"line_number":152,"context_line":"                    manager.do_provisioning_action("},{"line_number":153,"context_line":"                        context, node.uuid, \u0027provide\u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_a2c7cf96","line":150,"range":{"start_line":150,"start_character":20,"end_line":150,"end_character":48},"in_reply_to":"bacf61ea_92b3fc99","updated":"2016-08-04 16:10:54.000000000","message":"Done","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"8f3b4dc09d1e1beb9067b9c6470b2bb2ad6d5a6f","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        This last driver periodic task will take care of nodes that would be"},{"line_number":162,"context_line":"        caught on a race condition between OneView and a deploy by Ironic. In"},{"line_number":163,"context_line":"        such cases, the validation will fail, throwing the node on deploy fail"},{"line_number":164,"context_line":"        and, afterwards on clean fail."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        This task will set the node to maintenance mode with a proper reason"},{"line_number":167,"context_line":"        message and move it to manageable state, from where the second task"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_50109901","line":164,"range":{"start_line":163,"start_character":46,"end_line":164,"end_character":38},"updated":"2016-07-28 17:32:21.000000000","message":"Question: what would happen here if cleaning was disabled. would the node return to AVAILABLE?","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"d5fe0b28b9a09b70cc8700d37b5e5f5e356562e1","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        This last driver periodic task will take care of nodes that would be"},{"line_number":162,"context_line":"        caught on a race condition between OneView and a deploy by Ironic. In"},{"line_number":163,"context_line":"        such cases, the validation will fail, throwing the node on deploy fail"},{"line_number":164,"context_line":"        and, afterwards on clean fail."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        This task will set the node to maintenance mode with a proper reason"},{"line_number":167,"context_line":"        message and move it to manageable state, from where the second task"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_85076e1b","line":164,"range":{"start_line":163,"start_character":46,"end_line":164,"end_character":38},"in_reply_to":"bacf61ea_50109901","updated":"2016-07-28 19:28:16.000000000","message":"Yes, it will. And the first periodic should get the node and take it off the allocation pool (by setting manageable/maintenance). If the cloud admin thinks it would happen frequently, he can shorten the periodic_check_interval to make it happen quickly. It for accident the node get scheduled for deploy again, the validation of the applied_server_profile_uri in deploy_utils.py@225 will break it.","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"fe4971327a294185be649b6b9f15370076678882","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        This last driver periodic task will take care of nodes that would be"},{"line_number":162,"context_line":"        caught on a race condition between OneView and a deploy by Ironic. In"},{"line_number":163,"context_line":"        such cases, the validation will fail, throwing the node on deploy fail"},{"line_number":164,"context_line":"        and, afterwards on clean fail."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        This task will set the node to maintenance mode with a proper reason"},{"line_number":167,"context_line":"        message and move it to manageable state, from where the second task"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_f552d833","line":164,"range":{"start_line":163,"start_character":46,"end_line":164,"end_character":38},"in_reply_to":"bacf61ea_85076e1b","updated":"2016-08-01 15:50:02.000000000","message":"Thank you for the reply Thiago. I am ok with this.","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class OneViewIscsiDeploy(iscsi_deploy.ISCSIDeploy, OneViewPeriodicTasks):"},{"line_number":210,"context_line":"    \"\"\"Class for OneView ISCSI deployment driver."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    \"\"\""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    oneview_driver \u003d common.ISCSI_PXE_ONEVIEW"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_4d2729b6","line":212,"range":{"start_line":210,"start_character":0,"end_line":212,"end_character":7},"updated":"2016-08-04 14:46:32.000000000","message":"Nit: this is a pep257 violation, one line docstrings should fit in one line.\n\nI thought our pep8 job would identify it, maybe it\u0027s disabled I will look at it later.\n\nhttps://www.python.org/dev/peps/pep-0257/#one-line-docstrings","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class OneViewIscsiDeploy(iscsi_deploy.ISCSIDeploy, OneViewPeriodicTasks):"},{"line_number":210,"context_line":"    \"\"\"Class for OneView ISCSI deployment driver."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    \"\"\""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    oneview_driver \u003d common.ISCSI_PXE_ONEVIEW"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_8211eb06","line":212,"range":{"start_line":210,"start_character":0,"end_line":212,"end_character":7},"in_reply_to":"bacf61ea_4d2729b6","updated":"2016-08-04 16:10:54.000000000","message":"Done","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"class OneViewAgentDeploy(agent.AgentDeploy, OneViewPeriodicTasks):"},{"line_number":242,"context_line":"    \"\"\"Class for OneView Agent deployment driver."},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"    \"\"\""},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    oneview_driver \u003d common.AGENT_PXE_ONEVIEW"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_ed453d43","line":244,"range":{"start_line":242,"start_character":0,"end_line":244,"end_character":7},"updated":"2016-08-04 14:46:32.000000000","message":"ditto re one line docstrings","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"class OneViewAgentDeploy(agent.AgentDeploy, OneViewPeriodicTasks):"},{"line_number":242,"context_line":"    \"\"\"Class for OneView Agent deployment driver."},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"    \"\"\""},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    oneview_driver \u003d common.AGENT_PXE_ONEVIEW"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_c2f763d1","line":244,"range":{"start_line":242,"start_character":0,"end_line":244,"end_character":7},"in_reply_to":"bacf61ea_ed453d43","updated":"2016-08-04 16:10:54.000000000","message":"Done","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"}],"ironic/drivers/modules/oneview/deploy_utils.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":"8a1a10bcaf4ed98c7b1a2f91669722312b33af4d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_db275ec8","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":58},"updated":"2016-04-19 15:10:44.000000000","message":"New file, so I believe it should read as:\nCopyright 2016 Hewlett Packard Enterprise Development LP.","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"a2880b9b801eb7079a43b28b480f667e08db8028","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_57c31538","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":58},"in_reply_to":"1a122d0e_db275ec8","updated":"2016-04-19 19:40:05.000000000","message":"Done","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8a1a10bcaf4ed98c7b1a2f91669722312b33af4d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_5b1a2e7e","line":4,"range":{"start_line":4,"start_character":12,"end_line":4,"end_character":17},"updated":"2016-04-19 15:10:44.000000000","message":"Shouldn\u0027t this be 2016?","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"a2880b9b801eb7079a43b28b480f667e08db8028","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_97df6d0c","line":4,"range":{"start_line":4,"start_character":12,"end_line":4,"end_character":17},"in_reply_to":"1a122d0e_5b1a2e7e","updated":"2016-04-19 19:40:05.000000000","message":"Done","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"8c56af8f8ae8575cb54a50ed99775abfc5bccf7a","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        filters \u003d {"},{"line_number":176,"context_line":"            \u0027provision_state\u0027: states.AVAILABLE,"},{"line_number":177,"context_line":"            \u0027maintenance\u0027: False,"},{"line_number":178,"context_line":"            \u0027maintenance_reason\u0027: NODE_IN_USE_BY_ONEVIEW"},{"line_number":179,"context_line":"        }"},{"line_number":180,"context_line":"        iter_nodes \u003d manager.iter_nodes("},{"line_number":181,"context_line":"            filters\u003dfilters, fields\u003d[\u0027driver_info\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_632f45a1","line":178,"range":{"start_line":178,"start_character":12,"end_line":178,"end_character":56},"updated":"2016-04-20 15:13:18.000000000","message":"Remove this check","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"fa222a7ce87e7bf2d971e8375d6f033187c4d97e","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        filters \u003d {"},{"line_number":176,"context_line":"            \u0027provision_state\u0027: states.AVAILABLE,"},{"line_number":177,"context_line":"            \u0027maintenance\u0027: False,"},{"line_number":178,"context_line":"            \u0027maintenance_reason\u0027: NODE_IN_USE_BY_ONEVIEW"},{"line_number":179,"context_line":"        }"},{"line_number":180,"context_line":"        iter_nodes \u003d manager.iter_nodes("},{"line_number":181,"context_line":"            filters\u003dfilters, fields\u003d[\u0027driver_info\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_a71ca46a","line":178,"range":{"start_line":178,"start_character":12,"end_line":178,"end_character":56},"in_reply_to":"1a122d0e_632f45a1","updated":"2016-04-21 07:15:36.000000000","message":"Done","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"8c56af8f8ae8575cb54a50ed99775abfc5bccf7a","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        for node_uuid, driver, driver_info in iter_nodes:"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"            server_profile_uri_on_node \u003d driver_info.get("},{"line_number":186,"context_line":"                \u0027applied_server_profile_uri\u0027"},{"line_number":187,"context_line":"            )"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"            server_hardware_uuid \u003d driver_info.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_dedc2c48","line":186,"range":{"start_line":186,"start_character":17,"end_line":186,"end_character":43},"updated":"2016-04-20 15:13:18.000000000","message":"Shouldn\u0027t exist at this point","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"fa222a7ce87e7bf2d971e8375d6f033187c4d97e","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        for node_uuid, driver, driver_info in iter_nodes:"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"            server_profile_uri_on_node \u003d driver_info.get("},{"line_number":186,"context_line":"                \u0027applied_server_profile_uri\u0027"},{"line_number":187,"context_line":"            )"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"            server_hardware_uuid \u003d driver_info.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_e7285c88","line":186,"range":{"start_line":186,"start_character":17,"end_line":186,"end_character":43},"in_reply_to":"1a122d0e_dedc2c48","updated":"2016-04-21 07:15:36.000000000","message":"Done","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"8c56af8f8ae8575cb54a50ed99775abfc5bccf7a","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            server_profile_uri_on_server_hardware \u003d server_hardware.\\"},{"line_number":197,"context_line":"                server_profile_uri"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"            if server_profile_uri_on_node !\u003d \\"},{"line_number":200,"context_line":"               server_profile_uri_on_server_hardware:"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"                purpose \u003d (\u0027Updating node %(node_uuid)s in use by OneView \u0027"},{"line_number":203,"context_line":"                           \u0027from %(provision_state)s state to \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_9e8bd41e","line":200,"range":{"start_line":199,"start_character":12,"end_line":200,"end_character":53},"updated":"2016-04-20 15:13:18.000000000","message":"Check if server_hardware.server_profile_uri exists. If so, in AVAILABLE, it means the node was taken.","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"fa222a7ce87e7bf2d971e8375d6f033187c4d97e","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            server_profile_uri_on_server_hardware \u003d server_hardware.\\"},{"line_number":197,"context_line":"                server_profile_uri"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"            if server_profile_uri_on_node !\u003d \\"},{"line_number":200,"context_line":"               server_profile_uri_on_server_hardware:"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"                purpose \u003d (\u0027Updating node %(node_uuid)s in use by OneView \u0027"},{"line_number":203,"context_line":"                           \u0027from %(provision_state)s state to \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_673d6cc3","line":200,"range":{"start_line":199,"start_character":12,"end_line":200,"end_character":53},"in_reply_to":"1a122d0e_9e8bd41e","updated":"2016-04-21 07:15:36.000000000","message":"Done","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"8c56af8f8ae8575cb54a50ed99775abfc5bccf7a","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        node_iter \u003d manager.iter_nodes(filters\u003dfilters, fields\u003d[\u0027driver_info\u0027])"},{"line_number":230,"context_line":"        for node_uuid, driver, driver_info in node_iter:"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"            node_server_profile_uri \u003d driver_info.get("},{"line_number":233,"context_line":"                \u0027applied_server_profile_uri\u0027"},{"line_number":234,"context_line":"            )"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            if not node_server_profile_uri:"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_6358e556","line":234,"range":{"start_line":232,"start_character":12,"end_line":234,"end_character":13},"updated":"2016-04-20 15:13:18.000000000","message":"The information on \u0027applied_server_profile_uri\u0027 only exists when the SP is applied by Ironic. It needs to go on OneView and check if the Server Profile applied by OneView was removed.","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"fa222a7ce87e7bf2d971e8375d6f033187c4d97e","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        node_iter \u003d manager.iter_nodes(filters\u003dfilters, fields\u003d[\u0027driver_info\u0027])"},{"line_number":230,"context_line":"        for node_uuid, driver, driver_info in node_iter:"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"            node_server_profile_uri \u003d driver_info.get("},{"line_number":233,"context_line":"                \u0027applied_server_profile_uri\u0027"},{"line_number":234,"context_line":"            )"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            if not node_server_profile_uri:"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_c779e094","line":234,"range":{"start_line":232,"start_character":12,"end_line":234,"end_character":13},"in_reply_to":"1a122d0e_6358e556","updated":"2016-04-21 07:15:36.000000000","message":"Done","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"8c56af8f8ae8575cb54a50ed99775abfc5bccf7a","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                    task.node.save()"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":260,"context_line":"        filters \u003d {\u0027provision_state\u0027: states.CLEANFAIL}"},{"line_number":261,"context_line":"        node_iter \u003d manager.iter_nodes(filters\u003dfilters, fields\u003d[\u0027driver_info\u0027])"},{"line_number":262,"context_line":"        for node_uuid, driver, driver_info in node_iter:"},{"line_number":263,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_5e55bcc3","line":260,"updated":"2016-04-20 15:13:18.000000000","message":"You need to validate with OneView or in the validation error message if the CLEANFAIL was because a Server Profile was applied. If not, don\u0027t move.","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"fa222a7ce87e7bf2d971e8375d6f033187c4d97e","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                    task.node.save()"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":260,"context_line":"        filters \u003d {\u0027provision_state\u0027: states.CLEANFAIL}"},{"line_number":261,"context_line":"        node_iter \u003d manager.iter_nodes(filters\u003dfilters, fields\u003d[\u0027driver_info\u0027])"},{"line_number":262,"context_line":"        for node_uuid, driver, driver_info in node_iter:"},{"line_number":263,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_e79dfcbc","line":260,"in_reply_to":"1a122d0e_5e55bcc3","updated":"2016-04-21 07:15:36.000000000","message":"See new implementation (patch set 8).","commit_id":"f82a6aa63c4d6d78ea2372d87010eda303cfb038"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1f41d36aca89fa8d1db58a1f8eb56fe2348b255","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_07dc6645","line":3,"range":{"start_line":3,"start_character":16,"end_line":3,"end_character":58},"updated":"2016-04-21 13:28:09.000000000","message":"Copyright company name.","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"86ad9756884f3b2ca48978f7e25c66fcabde688b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_0b2583ad","line":3,"range":{"start_line":3,"start_character":16,"end_line":3,"end_character":58},"in_reply_to":"1a122d0e_07dc6645","updated":"2016-04-21 16:41:37.000000000","message":"Done","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1f41d36aca89fa8d1db58a1f8eb56fe2348b255","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        node.driver_info \u003d driver_info"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":178,"context_line":"        oneview_client \u003d common.get_oneview_client()"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        filters \u003d {"},{"line_number":181,"context_line":"            \u0027provision_state\u0027: states.AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_1ccaf96e","line":178,"updated":"2016-04-21 13:28:09.000000000","message":"Alternatively to my nit the deploy driver, perhaps put docstrings in place on the periodic methods in this file.","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"86ad9756884f3b2ca48978f7e25c66fcabde688b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        node.driver_info \u003d driver_info"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def periodic_check_nodes_taken_by_oneview(self, manager, context):"},{"line_number":178,"context_line":"        oneview_client \u003d common.get_oneview_client()"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        filters \u003d {"},{"line_number":181,"context_line":"            \u0027provision_state\u0027: states.AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_ab30cfe9","line":178,"in_reply_to":"1a122d0e_1ccaf96e","updated":"2016-04-21 16:41:37.000000000","message":"I think that in the driver it\u0027ll be more useful.","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1f41d36aca89fa8d1db58a1f8eb56fe2348b255","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                        task.node.maintenance_reason \u003d NODE_IN_USE_BY_ONEVIEW"},{"line_number":220,"context_line":"                        task.node.save()"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def periodic_check_nodes_freed_by_oneview(self, manager, context):"},{"line_number":223,"context_line":"        oneview_client \u003d common.get_oneview_client()"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        filters \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_1c78392b","line":222,"updated":"2016-04-21 13:28:09.000000000","message":"Nit: Same as above, docstring would be good to have","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"86ad9756884f3b2ca48978f7e25c66fcabde688b","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                        task.node.maintenance_reason \u003d NODE_IN_USE_BY_ONEVIEW"},{"line_number":220,"context_line":"                        task.node.save()"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def periodic_check_nodes_freed_by_oneview(self, manager, context):"},{"line_number":223,"context_line":"        oneview_client \u003d common.get_oneview_client()"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        filters \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_8b407337","line":222,"in_reply_to":"1a122d0e_1c78392b","updated":"2016-04-21 16:41:37.000000000","message":"ditto","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1f41d36aca89fa8d1db58a1f8eb56fe2348b255","unresolved":false,"context_lines":[{"line_number":263,"context_line":"                        task.node.maintenance_reason \u003d \u0027\u0027"},{"line_number":264,"context_line":"                        task.node.save()"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    def periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":267,"context_line":"        oneview_client \u003d common.get_oneview_client()"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        filters \u003d {\u0027provision_state\u0027: states.CLEANFAIL}"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_bc8dc52c","line":266,"updated":"2016-04-21 13:28:09.000000000","message":"Nit: Same as above, docstring would be good to have","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"86ad9756884f3b2ca48978f7e25c66fcabde688b","unresolved":false,"context_lines":[{"line_number":263,"context_line":"                        task.node.maintenance_reason \u003d \u0027\u0027"},{"line_number":264,"context_line":"                        task.node.save()"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    def periodic_check_nodes_taken_on_cleanfail(self, manager, context):"},{"line_number":267,"context_line":"        oneview_client \u003d common.get_oneview_client()"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        filters \u003d {\u0027provision_state\u0027: states.CLEANFAIL}"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_2b72ffad","line":266,"in_reply_to":"1a122d0e_bc8dc52c","updated":"2016-04-21 16:41:37.000000000","message":"ditto","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"e3d418f5575f5ab6bb6c0e478788ab90667270b2","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            except exception.OneViewError as e:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"                \"\"\"If some error accours while allocate Server Hardware to"},{"line_number":98,"context_line":"                Ironic, set the error in the node\u0027s \u0027driver_internal_info\u0027."},{"line_number":99,"context_line":"                \"\"\""},{"line_number":100,"context_line":"                info \u003d {\u0027oneview_error\u0027:"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_49118903","line":97,"range":{"start_line":97,"start_character":33,"end_line":97,"end_character":34},"updated":"2016-06-08 20:38:41.000000000","message":"o","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"928cbb686c5792ebb2c7af6000c905748a5fe61a","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":150,"context_line":"                {\"node_uuid\": node.uuid}"},{"line_number":151,"context_line":"            )"},{"line_number":152,"context_line":"            raise exception.OneViewError(error\u003derror_msg)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        LOG.info(_LI("},{"line_number":155,"context_line":"            \"Node\u0027s %(node_uuid)s Server Hardware %(sh_uri)s is free for \""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_83523065","line":152,"updated":"2016-06-08 20:31:33.000000000","message":"Shouldn\u0027t this return a boolean instead of throwing an exception?","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"786c1f8c04e4fe12406b194d8ce827a9cb09779e","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":150,"context_line":"                {\"node_uuid\": node.uuid}"},{"line_number":151,"context_line":"            )"},{"line_number":152,"context_line":"            raise exception.OneViewError(error\u003derror_msg)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        LOG.info(_LI("},{"line_number":155,"context_line":"            \"Node\u0027s %(node_uuid)s Server Hardware %(sh_uri)s is free for \""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_6977b302","line":152,"in_reply_to":"7aa08908_83523065","updated":"2016-06-10 16:01:41.000000000","message":"Done. I will change the method name in another patch set.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"928cbb686c5792ebb2c7af6000c905748a5fe61a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            LOG.info(_LI("},{"line_number":182,"context_line":"                \"Inconsistent \u0027applied_server_profile_uri\u0027 parameter \""},{"line_number":183,"context_line":"                \"value in driver_info. There is no Server Profile \""},{"line_number":184,"context_line":"                \"applied to node %(node_uuid)s. Parameter deleted.\") %"},{"line_number":185,"context_line":"                {\"node_uuid\": node.uuid}"},{"line_number":186,"context_line":"            )"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_ce99ff7a","line":184,"range":{"start_line":184,"start_character":48,"end_line":184,"end_character":57},"updated":"2016-06-08 20:31:33.000000000","message":"Value?","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"786c1f8c04e4fe12406b194d8ce827a9cb09779e","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            LOG.info(_LI("},{"line_number":182,"context_line":"                \"Inconsistent \u0027applied_server_profile_uri\u0027 parameter \""},{"line_number":183,"context_line":"                \"value in driver_info. There is no Server Profile \""},{"line_number":184,"context_line":"                \"applied to node %(node_uuid)s. Parameter deleted.\") %"},{"line_number":185,"context_line":"                {\"node_uuid\": node.uuid}"},{"line_number":186,"context_line":"            )"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_e959e38f","line":184,"range":{"start_line":184,"start_character":48,"end_line":184,"end_character":57},"in_reply_to":"7aa08908_ce99ff7a","updated":"2016-06-10 16:01:41.000000000","message":"Done.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"928cbb686c5792ebb2c7af6000c905748a5fe61a","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            driver_info[\u0027applied_server_profile_uri\u0027] \u003d \\"},{"line_number":202,"context_line":"                applied_profile.uri"},{"line_number":203,"context_line":"            node.driver_info \u003d driver_info"},{"line_number":204,"context_line":"            node.maintenance \u003d False"},{"line_number":205,"context_line":"            node.maintenance_reason \u003d \u0027\u0027"},{"line_number":206,"context_line":"        except oneview_exception.OneViewServerProfileAssignmentError as e:"},{"line_number":207,"context_line":"            raise exception.OneViewError(error\u003de)"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_aea633ab","line":205,"range":{"start_line":204,"start_character":0,"end_line":205,"end_character":40},"updated":"2016-06-08 20:31:33.000000000","message":"this operation by itself should not touch maintenance mode","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"786c1f8c04e4fe12406b194d8ce827a9cb09779e","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            driver_info[\u0027applied_server_profile_uri\u0027] \u003d \\"},{"line_number":202,"context_line":"                applied_profile.uri"},{"line_number":203,"context_line":"            node.driver_info \u003d driver_info"},{"line_number":204,"context_line":"            node.maintenance \u003d False"},{"line_number":205,"context_line":"            node.maintenance_reason \u003d \u0027\u0027"},{"line_number":206,"context_line":"        except oneview_exception.OneViewServerProfileAssignmentError as e:"},{"line_number":207,"context_line":"            raise exception.OneViewError(error\u003de)"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_09d6efc2","line":205,"range":{"start_line":204,"start_character":0,"end_line":205,"end_character":40},"in_reply_to":"7aa08908_aea633ab","updated":"2016-06-10 16:01:41.000000000","message":"I will do this in another patch set.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"928cbb686c5792ebb2c7af6000c905748a5fe61a","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"                LOG.info(purpose)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"                with task_manager.acquire("},{"line_number":237,"context_line":"                    context, node_uuid, purpose"},{"line_number":238,"context_line":"                ) as task:"},{"line_number":239,"context_line":"                    task.node.maintenance \u003d True"},{"line_number":240,"context_line":"                    task.node.maintenance_reason \u003d \\"},{"line_number":241,"context_line":"                        common.NODE_IN_USE_BY_ONEVIEW"},{"line_number":242,"context_line":"                    task.process_event(\u0027manage\u0027)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"            except Exception as e:"},{"line_number":245,"context_line":"                LOG.warning(e)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_89ad31eb","line":242,"range":{"start_line":236,"start_character":0,"end_line":242,"end_character":48},"updated":"2016-06-08 20:31:33.000000000","message":"It seems like this can be extracted into a new method and be reused in line 313. Or event starting with 225 up to here, and be reused at 302.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"928cbb686c5792ebb2c7af6000c905748a5fe61a","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            OneView, try to realocate or realease from OneView."},{"line_number":259,"context_line":"            \"\"\""},{"line_number":260,"context_line":"            if maintenance_reason \u003d\u003d common.NODE_IN_USE_BY_ONEVIEW or \\"},{"line_number":261,"context_line":"               maintenance_reason \u003d\u003d common.SERVER_HARDWARE_ALLOCATION_ERROR:"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"                try:"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_ee803b8d","line":261,"updated":"2016-06-08 20:31:33.000000000","message":"See comment on line 321","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"786c1f8c04e4fe12406b194d8ce827a9cb09779e","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            OneView, try to realocate or realease from OneView."},{"line_number":259,"context_line":"            \"\"\""},{"line_number":260,"context_line":"            if maintenance_reason \u003d\u003d common.NODE_IN_USE_BY_ONEVIEW or \\"},{"line_number":261,"context_line":"               maintenance_reason \u003d\u003d common.SERVER_HARDWARE_ALLOCATION_ERROR:"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"                try:"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_09fd4f3b","line":261,"in_reply_to":"7aa08908_ee803b8d","updated":"2016-06-10 16:01:41.000000000","message":"I will do this in another patch set.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"e3d418f5575f5ab6bb6c0e478788ab90667270b2","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        for node_uuid, driver, driver_internal_info in node_iter:"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"            node_oneview_error \u003d driver_internal_info.get(\u0027oneview_error\u0027)"},{"line_number":300,"context_line":"            if node_oneview_error \u003d\u003d common.SERVER_HARDWARE_ALLOCATION_ERROR:"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"                purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":303,"context_line":"                           \u0027OneView from %(provision_state)s state to \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_c91459ea","line":300,"updated":"2016-06-08 20:38:41.000000000","message":"Shouldn\u0027t it also remove oneview_error from driver_internal_info?","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"786c1f8c04e4fe12406b194d8ce827a9cb09779e","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        for node_uuid, driver, driver_internal_info in node_iter:"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"            node_oneview_error \u003d driver_internal_info.get(\u0027oneview_error\u0027)"},{"line_number":300,"context_line":"            if node_oneview_error \u003d\u003d common.SERVER_HARDWARE_ALLOCATION_ERROR:"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"                purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":303,"context_line":"                           \u0027OneView from %(provision_state)s state to \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_c946a77a","line":300,"in_reply_to":"7aa08908_c91459ea","updated":"2016-06-10 16:01:41.000000000","message":"Oh sorry, a think I removed the line for that while testing, I will do this in another patch set.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":10917,"name":"Gabriel Bezerra","email":"gabrielb@lsd.ufcg.edu.br","username":"gabriel.bezerra"},"change_message_id":"928cbb686c5792ebb2c7af6000c905748a5fe61a","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                    task.node.driver_internal_info \u003d info"},{"line_number":319,"context_line":"                    task.node.maintenance \u003d True"},{"line_number":320,"context_line":"                    task.node.maintenance_reason \u003d \\"},{"line_number":321,"context_line":"                        common.SERVER_HARDWARE_ALLOCATION_ERROR"},{"line_number":322,"context_line":"                    task.process_event(\u0027manage\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_8eaed72b","line":321,"range":{"start_line":321,"start_character":31,"end_line":321,"end_character":63},"updated":"2016-06-08 20:31:33.000000000","message":"It can be NODE_IN_USE_BY_ONEVIEW. No need for this new message.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"786c1f8c04e4fe12406b194d8ce827a9cb09779e","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                    task.node.driver_internal_info \u003d info"},{"line_number":319,"context_line":"                    task.node.maintenance \u003d True"},{"line_number":320,"context_line":"                    task.node.maintenance_reason \u003d \\"},{"line_number":321,"context_line":"                        common.SERVER_HARDWARE_ALLOCATION_ERROR"},{"line_number":322,"context_line":"                    task.process_event(\u0027manage\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_699333fb","line":321,"range":{"start_line":321,"start_character":31,"end_line":321,"end_character":63},"in_reply_to":"7aa08908_8eaed72b","updated":"2016-06-10 16:01:41.000000000","message":"I will do this in another patch set.","commit_id":"f9facc598e0f7f2b2f8e68bcc470c89404e4f64e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1268ca81ad0d93a303142efc9eed463783e051f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_8cab5c75","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":25},"updated":"2016-07-01 16:56:52.000000000","message":"Nit: This is not required","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"ee2973a6bca6fba3f3ecdba15f3f126bd28090c4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_fd0e088b","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":25},"in_reply_to":"3aaa91ec_8cab5c75","updated":"2016-07-01 17:49:52.000000000","message":"Done.","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1268ca81ad0d93a303142efc9eed463783e051f","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class OneViewDeploy(object):"},{"line_number":36,"context_line":"    \"\"\"Deploy object for OneView deployment drivers."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    \"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_cc2e04ab","line":37,"updated":"2016-07-01 16:56:52.000000000","message":"Nit: empty line?","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"ee2973a6bca6fba3f3ecdba15f3f126bd28090c4","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class OneViewDeploy(object):"},{"line_number":36,"context_line":"    \"\"\"Deploy object for OneView deployment drivers."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    \"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_7d1b38cb","line":37,"in_reply_to":"3aaa91ec_cc2e04ab","updated":"2016-07-01 17:49:52.000000000","message":"Done.","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_35c1b4e5","line":1,"updated":"2016-07-04 08:48:38.000000000","message":"is it needed?","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_76e80bb5","line":1,"in_reply_to":"1aa78d24_35c1b4e5","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"oneview_exception \u003d importutils.try_import(\u0027oneview_client.exceptions\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class OneViewDeploy(object):"},{"line_number":36,"context_line":"    \"\"\"Deploy object for OneView deployment drivers.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_3bba3ee2","line":35,"updated":"2016-07-04 13:20:15.000000000","message":"Why this class mixes deploy and periodic methods?","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":32,"context_line":"oneview_exception \u003d importutils.try_import(\u0027oneview_client.exceptions\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class OneViewDeploy(object):"},{"line_number":36,"context_line":"    \"\"\"Deploy object for OneView deployment drivers.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_7f3f49d6","line":35,"in_reply_to":"1aa78d24_3bba3ee2","updated":"2016-07-05 17:24:45.000000000","message":"++, periodics can go straight to OneViewPeriodicTasks class","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":32,"context_line":"oneview_exception \u003d importutils.try_import(\u0027oneview_client.exceptions\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class OneViewDeploy(object):"},{"line_number":36,"context_line":"    \"\"\"Deploy object for OneView deployment drivers.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_7365781c","line":35,"in_reply_to":"1aa78d24_3bba3ee2","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":32,"context_line":"oneview_exception \u003d importutils.try_import(\u0027oneview_client.exceptions\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class OneViewDeploy(object):"},{"line_number":36,"context_line":"    \"\"\"Deploy object for OneView deployment drivers.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_936e24fe","line":35,"in_reply_to":"1aa78d24_7f3f49d6","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    \"\"\"Deploy object for OneView deployment drivers.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_properties(self):"},{"line_number":39,"context_line":"        return common.COMMON_PROPERTIES"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def prepare(self, task):"},{"line_number":42,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_04c27e85","line":39,"updated":"2016-07-04 13:20:15.000000000","message":"Looks like these properties are needed for this interface only if dynamic allocation enabled.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    \"\"\"Deploy object for OneView deployment drivers.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_properties(self):"},{"line_number":39,"context_line":"        return common.COMMON_PROPERTIES"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def prepare(self, task):"},{"line_number":42,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_53367c03","line":39,"in_reply_to":"1aa78d24_04c27e85","updated":"2016-07-13 00:10:39.000000000","message":"Yes Yuriy, they are.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def get_properties(self):"},{"line_number":39,"context_line":"        return common.COMMON_PROPERTIES"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def prepare(self, task):"},{"line_number":42,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if task.node.provision_state \u003d\u003d states.DEPLOYING:"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_589bd5c9","line":41,"updated":"2016-07-04 08:48:38.000000000","message":"Please add docstrings for all functions.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def get_properties(self):"},{"line_number":39,"context_line":"        return common.COMMON_PROPERTIES"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def prepare(self, task):"},{"line_number":42,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if task.node.provision_state \u003d\u003d states.DEPLOYING:"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_1608a790","line":41,"in_reply_to":"1aa78d24_589bd5c9","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        return common.COMMON_PROPERTIES"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def prepare(self, task):"},{"line_number":42,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if task.node.provision_state \u003d\u003d states.DEPLOYING:"},{"line_number":45,"context_line":"            if not self._is_node_in_use_by_oneview(task.node):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_98f37d0a","line":42,"range":{"start_line":42,"start_character":30,"end_line":42,"end_character":46},"updated":"2016-07-04 08:48:38.000000000","message":"get_oneview_info may raise an InvalidParameterValue should it be catched?","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        return common.COMMON_PROPERTIES"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def prepare(self, task):"},{"line_number":42,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if task.node.provision_state \u003d\u003d states.DEPLOYING:"},{"line_number":45,"context_line":"            if not self._is_node_in_use_by_oneview(task.node):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_362cc301","line":42,"range":{"start_line":42,"start_character":30,"end_line":42,"end_character":46},"in_reply_to":"1aa78d24_98f37d0a","updated":"2016-07-13 00:10:39.000000000","message":"Done. Vasyl, please see patch set 26.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        oneview_info, task.node, server_profile_name"},{"line_number":59,"context_line":"                    )"},{"line_number":60,"context_line":"                except exception.OneViewError as e:"},{"line_number":61,"context_line":"                    LOG.error(e)"},{"line_number":62,"context_line":"                    raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":63,"context_line":"            else:"},{"line_number":64,"context_line":"                msg \u003d ("}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_f87441fe","line":61,"updated":"2016-07-04 08:48:38.000000000","message":"I would add here some error message like: \"An error occurred during allocating server to ironic: {e}\"","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        oneview_info, task.node, server_profile_name"},{"line_number":59,"context_line":"                    )"},{"line_number":60,"context_line":"                except exception.OneViewError as e:"},{"line_number":61,"context_line":"                    LOG.error(e)"},{"line_number":62,"context_line":"                    raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":63,"context_line":"            else:"},{"line_number":64,"context_line":"                msg \u003d ("}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_9621f2a0","line":61,"in_reply_to":"1aa78d24_59bb8de5","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        oneview_info, task.node, server_profile_name"},{"line_number":59,"context_line":"                    )"},{"line_number":60,"context_line":"                except exception.OneViewError as e:"},{"line_number":61,"context_line":"                    LOG.error(e)"},{"line_number":62,"context_line":"                    raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":63,"context_line":"            else:"},{"line_number":64,"context_line":"                msg \u003d ("}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_59bb8de5","line":61,"in_reply_to":"1aa78d24_f87441fe","updated":"2016-07-05 17:24:45.000000000","message":"And if you\u0027ll use LOG.exception you don\u0027t even need to include e inside the string, it will be pulled out of the context.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        oneview_info, task.node, server_profile_name"},{"line_number":59,"context_line":"                    )"},{"line_number":60,"context_line":"                except exception.OneViewError as e:"},{"line_number":61,"context_line":"                    LOG.error(e)"},{"line_number":62,"context_line":"                    raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":63,"context_line":"            else:"},{"line_number":64,"context_line":"                msg \u003d ("}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_0e62103e","line":61,"in_reply_to":"1aa78d24_f87441fe","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                    raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":63,"context_line":"            else:"},{"line_number":64,"context_line":"                msg \u003d ("},{"line_number":65,"context_line":"                    \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":66,"context_line":"                    {\"node_uuid\": task.node.uuid}"},{"line_number":67,"context_line":"                )"},{"line_number":68,"context_line":"                raise exception.InstanceDeployFailure(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_c42b562f","line":65,"updated":"2016-07-04 13:20:15.000000000","message":"Missing _() translation.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                    raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":63,"context_line":"            else:"},{"line_number":64,"context_line":"                msg \u003d ("},{"line_number":65,"context_line":"                    \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":66,"context_line":"                    {\"node_uuid\": task.node.uuid}"},{"line_number":67,"context_line":"                )"},{"line_number":68,"context_line":"                raise exception.InstanceDeployFailure(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_162ea28b","line":65,"in_reply_to":"1aa78d24_c42b562f","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        \"\"\"Raise exception if the node is already in use by OneView."},{"line_number":77,"context_line":"        Node goes to a `clean failed` state."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        if self._is_node_in_use_by_oneview(task.node):"},{"line_number":80,"context_line":"            msg \u003d ("},{"line_number":81,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_630546c1","line":78,"updated":"2016-07-04 08:48:38.000000000","message":"please move docstring to L71","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        \"\"\"Raise exception if the node is already in use by OneView."},{"line_number":77,"context_line":"        Node goes to a `clean failed` state."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        if self._is_node_in_use_by_oneview(task.node):"},{"line_number":80,"context_line":"            msg \u003d ("},{"line_number":81,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b6555351","line":78,"in_reply_to":"1aa78d24_630546c1","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        Node goes to a `clean failed` state."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        if self._is_node_in_use_by_oneview(task.node):"},{"line_number":80,"context_line":"            msg \u003d ("},{"line_number":81,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":82,"context_line":"                {\"node_uuid\": task.node.uuid}"},{"line_number":83,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b8791932","line":80,"updated":"2016-07-04 08:48:38.000000000","message":"_LE","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        Node goes to a `clean failed` state."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        if self._is_node_in_use_by_oneview(task.node):"},{"line_number":80,"context_line":"            msg \u003d ("},{"line_number":81,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":82,"context_line":"                {\"node_uuid\": task.node.uuid}"},{"line_number":83,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b6550efb","line":80,"in_reply_to":"1aa78d24_999a1562","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        Node goes to a `clean failed` state."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        if self._is_node_in_use_by_oneview(task.node):"},{"line_number":80,"context_line":"            msg \u003d ("},{"line_number":81,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":82,"context_line":"                {\"node_uuid\": task.node.uuid}"},{"line_number":83,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_d6e1ff9b","line":80,"in_reply_to":"1aa78d24_b8791932","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        Node goes to a `clean failed` state."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        if self._is_node_in_use_by_oneview(task.node):"},{"line_number":80,"context_line":"            msg \u003d ("},{"line_number":81,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":82,"context_line":"                {\"node_uuid\": task.node.uuid}"},{"line_number":83,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_999a1562","line":80,"in_reply_to":"1aa78d24_b8791932","updated":"2016-07-05 17:24:45.000000000","message":"It is used in the exception so just _","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                self._allocate_server_hardware_to_ironic("},{"line_number":97,"context_line":"                    oneview_info, task.node, server_profile_name"},{"line_number":98,"context_line":"                )"},{"line_number":99,"context_line":"                task.node.maintenance \u003d False"},{"line_number":100,"context_line":"                task.node.maintenance_reason \u003d \u0027\u0027"},{"line_number":101,"context_line":"            except exception.OneViewError as e:"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_79a3e94f","line":99,"updated":"2016-07-05 17:24:45.000000000","message":"You can use _set_node_maintenance for this.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                self._allocate_server_hardware_to_ironic("},{"line_number":97,"context_line":"                    oneview_info, task.node, server_profile_name"},{"line_number":98,"context_line":"                )"},{"line_number":99,"context_line":"                task.node.maintenance \u003d False"},{"line_number":100,"context_line":"                task.node.maintenance_reason \u003d \u0027\u0027"},{"line_number":101,"context_line":"            except exception.OneViewError as e:"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b6a34eff","line":99,"in_reply_to":"1aa78d24_79a3e94f","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                \"\"\"If some error occours while allocate Server Hardware to"},{"line_number":104,"context_line":"                Ironic, set the error in the node\u0027s \u0027driver_internal_info\u0027."},{"line_number":105,"context_line":"                \"\"\""},{"line_number":106,"context_line":"                info \u003d {\u0027oneview_error\u0027:"},{"line_number":107,"context_line":"                        common.SERVER_HARDWARE_ALLOCATION_ERROR}"},{"line_number":108,"context_line":"                task.node.driver_internal_info \u003d info"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_e3ce5682","line":105,"updated":"2016-07-04 08:48:38.000000000","message":"We usually mark comments with #","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                \"\"\"If some error occours while allocate Server Hardware to"},{"line_number":104,"context_line":"                Ironic, set the error in the node\u0027s \u0027driver_internal_info\u0027."},{"line_number":105,"context_line":"                \"\"\""},{"line_number":106,"context_line":"                info \u003d {\u0027oneview_error\u0027:"},{"line_number":107,"context_line":"                        common.SERVER_HARDWARE_ALLOCATION_ERROR}"},{"line_number":108,"context_line":"                task.node.driver_internal_info \u003d info"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b6b1d391","line":105,"in_reply_to":"1aa78d24_e3ce5682","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                \"\"\""},{"line_number":106,"context_line":"                info \u003d {\u0027oneview_error\u0027:"},{"line_number":107,"context_line":"                        common.SERVER_HARDWARE_ALLOCATION_ERROR}"},{"line_number":108,"context_line":"                task.node.driver_internal_info \u003d info"},{"line_number":109,"context_line":"                LOG.error(e)"},{"line_number":110,"context_line":"                raise exception.NodeCleaningFailure("},{"line_number":111,"context_line":"                    node\u003dtask.node.uuid, reason\u003de"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_e45ad282","line":108,"updated":"2016-07-04 13:20:15.000000000","message":"1) l106-108 overwrites all node.driver_internal_info which can contain non oneview-related info (heartbeats ets).\n2) This change will not be saved in DB at this moment.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                \"\"\""},{"line_number":106,"context_line":"                info \u003d {\u0027oneview_error\u0027:"},{"line_number":107,"context_line":"                        common.SERVER_HARDWARE_ALLOCATION_ERROR}"},{"line_number":108,"context_line":"                task.node.driver_internal_info \u003d info"},{"line_number":109,"context_line":"                LOG.error(e)"},{"line_number":110,"context_line":"                raise exception.NodeCleaningFailure("},{"line_number":111,"context_line":"                    node\u003dtask.node.uuid, reason\u003de"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_fc7490cf","line":108,"in_reply_to":"1aa78d24_e45ad282","updated":"2016-07-13 00:10:39.000000000","message":"1) Done\n2) So, task.node.save() here, right? If so, done! :)","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"            LOG.info(_LI("},{"line_number":129,"context_line":"                \"Node\u0027s %(node_uuid)s Server Profile %(sp_uri)s was \""},{"line_number":130,"context_line":"                \"successfully deleted.\") %"},{"line_number":131,"context_line":"                {\"node_uuid\": task.node.uuid, \"sp_uri\": applied_sp_uri}"},{"line_number":132,"context_line":"            )"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_04aefe2d","line":130,"updated":"2016-07-04 13:20:15.000000000","message":"\"%\" -\u003e \",\" logger does formatting.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"            LOG.info(_LI("},{"line_number":129,"context_line":"                \"Node\u0027s %(node_uuid)s Server Profile %(sp_uri)s was \""},{"line_number":130,"context_line":"                \"successfully deleted.\") %"},{"line_number":131,"context_line":"                {\"node_uuid\": task.node.uuid, \"sp_uri\": applied_sp_uri}"},{"line_number":132,"context_line":"            )"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_d6ac1aef","line":130,"in_reply_to":"1aa78d24_04aefe2d","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            self._del_applied_server_profile_uri_field(task.node)"},{"line_number":135,"context_line":"            LOG.info(_LI("},{"line_number":136,"context_line":"                \"Parameter \u0027applied_server_profile_uri\u0027 deleted from \""},{"line_number":137,"context_line":"                \"driver_info on node %(node_uuid)s.\") %"},{"line_number":138,"context_line":"                {\"node_uuid\": task.node.uuid}"},{"line_number":139,"context_line":"            )"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_24785ac4","line":137,"updated":"2016-07-04 13:20:15.000000000","message":"ditto l130","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            self._del_applied_server_profile_uri_field(task.node)"},{"line_number":135,"context_line":"            LOG.info(_LI("},{"line_number":136,"context_line":"                \"Parameter \u0027applied_server_profile_uri\u0027 deleted from \""},{"line_number":137,"context_line":"                \"driver_info on node %(node_uuid)s.\") %"},{"line_number":138,"context_line":"                {\"node_uuid\": task.node.uuid}"},{"line_number":139,"context_line":"            )"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_7684465d","line":137,"in_reply_to":"1aa78d24_24785ac4","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        if (server_hardware.server_profile_uri not in (None, \u0027\u0027) and"},{"line_number":153,"context_line":"                applied_sp_uri !\u003d server_hardware.server_profile_uri):"},{"line_number":154,"context_line":"            LOG.warning(_LI("},{"line_number":155,"context_line":"                \"Node\u0027s %(node_uuid)s is already in use by OneView.\") %"},{"line_number":156,"context_line":"                {\"node_uuid\": node.uuid, \"sh_uri\": server_hardware.uri}"},{"line_number":157,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b8a0f991","line":154,"range":{"start_line":154,"start_character":24,"end_line":154,"end_character":27},"updated":"2016-07-04 08:48:38.000000000","message":"_LW","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        if (server_hardware.server_profile_uri not in (None, \u0027\u0027) and"},{"line_number":153,"context_line":"                applied_sp_uri !\u003d server_hardware.server_profile_uri):"},{"line_number":154,"context_line":"            LOG.warning(_LI("},{"line_number":155,"context_line":"                \"Node\u0027s %(node_uuid)s is already in use by OneView.\") %"},{"line_number":156,"context_line":"                {\"node_uuid\": node.uuid, \"sh_uri\": server_hardware.uri}"},{"line_number":157,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_f6ab5b1b","line":154,"range":{"start_line":154,"start_character":24,"end_line":154,"end_character":27},"in_reply_to":"1aa78d24_b8a0f991","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        if (server_hardware.server_profile_uri not in (None, \u0027\u0027) and"},{"line_number":153,"context_line":"                applied_sp_uri !\u003d server_hardware.server_profile_uri):"},{"line_number":154,"context_line":"            LOG.warning(_LI("},{"line_number":155,"context_line":"                \"Node\u0027s %(node_uuid)s is already in use by OneView.\") %"},{"line_number":156,"context_line":"                {\"node_uuid\": node.uuid, \"sh_uri\": server_hardware.uri}"},{"line_number":157,"context_line":"            )"},{"line_number":158,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_18ae6d85","line":155,"range":{"start_line":155,"start_character":70,"end_line":155,"end_character":71},"updated":"2016-07-04 08:48:38.000000000","message":"s/%/,","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        if (server_hardware.server_profile_uri not in (None, \u0027\u0027) and"},{"line_number":153,"context_line":"                applied_sp_uri !\u003d server_hardware.server_profile_uri):"},{"line_number":154,"context_line":"            LOG.warning(_LI("},{"line_number":155,"context_line":"                \"Node\u0027s %(node_uuid)s is already in use by OneView.\") %"},{"line_number":156,"context_line":"                {\"node_uuid\": node.uuid, \"sh_uri\": server_hardware.uri}"},{"line_number":157,"context_line":"            )"},{"line_number":158,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_2ed42cbb","line":155,"range":{"start_line":155,"start_character":70,"end_line":155,"end_character":71},"in_reply_to":"1aa78d24_18ae6d85","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                applied_sp_uri !\u003d server_hardware.server_profile_uri):"},{"line_number":154,"context_line":"            LOG.warning(_LI("},{"line_number":155,"context_line":"                \"Node\u0027s %(node_uuid)s is already in use by OneView.\") %"},{"line_number":156,"context_line":"                {\"node_uuid\": node.uuid, \"sh_uri\": server_hardware.uri}"},{"line_number":157,"context_line":"            )"},{"line_number":158,"context_line":"            return True"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_19caa56d","line":156,"range":{"start_line":156,"start_character":42,"end_line":156,"end_character":48},"updated":"2016-07-05 17:24:45.000000000","message":"Not in the message.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                applied_sp_uri !\u003d server_hardware.server_profile_uri):"},{"line_number":154,"context_line":"            LOG.warning(_LI("},{"line_number":155,"context_line":"                \"Node\u0027s %(node_uuid)s is already in use by OneView.\") %"},{"line_number":156,"context_line":"                {\"node_uuid\": node.uuid, \"sh_uri\": server_hardware.uri}"},{"line_number":157,"context_line":"            )"},{"line_number":158,"context_line":"            return True"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_25757497","line":156,"range":{"start_line":156,"start_character":42,"end_line":156,"end_character":48},"in_reply_to":"1aa78d24_19caa56d","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        else:"},{"line_number":161,"context_line":"            LOG.info(_LI("},{"line_number":162,"context_line":"                \"Node\u0027s %(node_uuid)s Server Hardware %(sh_uri)s is free for \""},{"line_number":163,"context_line":"                \"Ironic.\") %"},{"line_number":164,"context_line":"                {\"node_uuid\": node.uuid, \"sh_uri\": server_hardware.uri}"},{"line_number":165,"context_line":"            )"},{"line_number":166,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_58b635dd","line":163,"range":{"start_line":163,"start_character":27,"end_line":163,"end_character":28},"updated":"2016-07-04 08:48:38.000000000","message":"ditto","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        else:"},{"line_number":161,"context_line":"            LOG.info(_LI("},{"line_number":162,"context_line":"                \"Node\u0027s %(node_uuid)s Server Hardware %(sh_uri)s is free for \""},{"line_number":163,"context_line":"                \"Ironic.\") %"},{"line_number":164,"context_line":"                {\"node_uuid\": node.uuid, \"sh_uri\": server_hardware.uri}"},{"line_number":165,"context_line":"            )"},{"line_number":166,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_e55fec0c","line":163,"range":{"start_line":163,"start_character":27,"end_line":163,"end_character":28},"in_reply_to":"1aa78d24_58b635dd","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            node.driver_info \u003d driver_info"},{"line_number":173,"context_line":"            node.save()"},{"line_number":174,"context_line":"        except KeyError:"},{"line_number":175,"context_line":"            LOG.debug(_("},{"line_number":176,"context_line":"                \"There is no \u0027applied_server_profile_uri\u0027 field in \""},{"line_number":177,"context_line":"                \"node\u0027s %(node_uuid)s driver_info. Skipping deletion.\") %"},{"line_number":178,"context_line":"                {\"node_uuid\": node.uuid}"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_2714dc42","line":175,"updated":"2016-07-04 13:20:15.000000000","message":"Debug logging should not be translated.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            node.driver_info \u003d driver_info"},{"line_number":173,"context_line":"            node.save()"},{"line_number":174,"context_line":"        except KeyError:"},{"line_number":175,"context_line":"            LOG.debug(_("},{"line_number":176,"context_line":"                \"There is no \u0027applied_server_profile_uri\u0027 field in \""},{"line_number":177,"context_line":"                \"node\u0027s %(node_uuid)s driver_info. Skipping deletion.\") %"},{"line_number":178,"context_line":"                {\"node_uuid\": node.uuid}"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_e5aa4c70","line":175,"in_reply_to":"1aa78d24_2714dc42","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            node.save()"},{"line_number":174,"context_line":"        except KeyError:"},{"line_number":175,"context_line":"            LOG.debug(_("},{"line_number":176,"context_line":"                \"There is no \u0027applied_server_profile_uri\u0027 field in \""},{"line_number":177,"context_line":"                \"node\u0027s %(node_uuid)s driver_info. Skipping deletion.\") %"},{"line_number":178,"context_line":"                {\"node_uuid\": node.uuid}"},{"line_number":179,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_39f20170","line":176,"updated":"2016-07-05 17:24:45.000000000","message":"Is there any need in logging this? Why can\u0027t you just do driver_info.pop(\u0027applied_server_profile_uri\u0027, None)?","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            node.save()"},{"line_number":174,"context_line":"        except KeyError:"},{"line_number":175,"context_line":"            LOG.debug(_("},{"line_number":176,"context_line":"                \"There is no \u0027applied_server_profile_uri\u0027 field in \""},{"line_number":177,"context_line":"                \"node\u0027s %(node_uuid)s driver_info. Skipping deletion.\") %"},{"line_number":178,"context_line":"                {\"node_uuid\": node.uuid}"},{"line_number":179,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_a5a4c4a5","line":176,"in_reply_to":"1aa78d24_39f20170","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":186,"context_line":"            node.save()"},{"line_number":187,"context_line":"        except KeyError:"},{"line_number":188,"context_line":"            LOG.debug(_("},{"line_number":189,"context_line":"                \"There is no \u0027oneview_error\u0027 field in node\u0027s %(node_uuid)s \""},{"line_number":190,"context_line":"                \"driver_internal_info. Skipping deletion.\") %"},{"line_number":191,"context_line":"                {\"node_uuid\": node.uuid}"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_673544d9","line":188,"updated":"2016-07-04 13:20:15.000000000","message":"ditto l175","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":186,"context_line":"            node.save()"},{"line_number":187,"context_line":"        except KeyError:"},{"line_number":188,"context_line":"            LOG.debug(_("},{"line_number":189,"context_line":"                \"There is no \u0027oneview_error\u0027 field in node\u0027s %(node_uuid)s \""},{"line_number":190,"context_line":"                \"driver_internal_info. Skipping deletion.\") %"},{"line_number":191,"context_line":"                {\"node_uuid\": node.uuid}"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_45b240e6","line":188,"in_reply_to":"1aa78d24_673544d9","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            LOG.info(_LI("},{"line_number":211,"context_line":"                \"Inconsistent \u0027applied_server_profile_uri\u0027 parameter \""},{"line_number":212,"context_line":"                \"value in driver_info. There is no Server Profile \""},{"line_number":213,"context_line":"                \"applied to node %(node_uuid)s. Value deleted.\") %"},{"line_number":214,"context_line":"                {\"node_uuid\": node.uuid}"},{"line_number":215,"context_line":"            )"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_5804757d","line":213,"range":{"start_line":213,"start_character":65,"end_line":213,"end_character":66},"updated":"2016-07-04 08:48:38.000000000","message":"ditto","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            LOG.info(_LI("},{"line_number":211,"context_line":"                \"Inconsistent \u0027applied_server_profile_uri\u0027 parameter \""},{"line_number":212,"context_line":"                \"value in driver_info. There is no Server Profile \""},{"line_number":213,"context_line":"                \"applied to node %(node_uuid)s. Value deleted.\") %"},{"line_number":214,"context_line":"                {\"node_uuid\": node.uuid}"},{"line_number":215,"context_line":"            )"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_56878a60","line":213,"range":{"start_line":213,"start_character":65,"end_line":213,"end_character":66},"in_reply_to":"1aa78d24_5804757d","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                server_profile_template_uuid"},{"line_number":228,"context_line":"            )"},{"line_number":229,"context_line":"            driver_info \u003d node.driver_info"},{"line_number":230,"context_line":"            driver_info[\u0027applied_server_profile_uri\u0027] \u003d \\"},{"line_number":231,"context_line":"                applied_profile.uri"},{"line_number":232,"context_line":"            node.driver_info \u003d driver_info"},{"line_number":233,"context_line":"        except oneview_exception.OneViewServerProfileAssignmentError as e:"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_394e8196","line":230,"updated":"2016-07-05 17:24:45.000000000","message":"please use parentheses instead of \\, it\u0027s a common practice in our code, all the \\ were deleted at some point.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                server_profile_template_uuid"},{"line_number":228,"context_line":"            )"},{"line_number":229,"context_line":"            driver_info \u003d node.driver_info"},{"line_number":230,"context_line":"            driver_info[\u0027applied_server_profile_uri\u0027] \u003d \\"},{"line_number":231,"context_line":"                applied_profile.uri"},{"line_number":232,"context_line":"            node.driver_info \u003d driver_info"},{"line_number":233,"context_line":"        except oneview_exception.OneViewServerProfileAssignmentError as e:"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_368f5e76","line":230,"in_reply_to":"1aa78d24_394e8196","updated":"2016-07-13 00:10:39.000000000","message":"Done and sorry, vdrok. :)","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":229,"context_line":"            driver_info \u003d node.driver_info"},{"line_number":230,"context_line":"            driver_info[\u0027applied_server_profile_uri\u0027] \u003d \\"},{"line_number":231,"context_line":"                applied_profile.uri"},{"line_number":232,"context_line":"            node.driver_info \u003d driver_info"},{"line_number":233,"context_line":"        except oneview_exception.OneViewServerProfileAssignmentError as e:"},{"line_number":234,"context_line":"            raise exception.OneViewError(error\u003de)"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b921d1b6","line":232,"updated":"2016-07-05 17:24:45.000000000","message":"node.save()? (if it\u0027s needed)","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":229,"context_line":"            driver_info \u003d node.driver_info"},{"line_number":230,"context_line":"            driver_info[\u0027applied_server_profile_uri\u0027] \u003d \\"},{"line_number":231,"context_line":"                applied_profile.uri"},{"line_number":232,"context_line":"            node.driver_info \u003d driver_info"},{"line_number":233,"context_line":"        except oneview_exception.OneViewServerProfileAssignmentError as e:"},{"line_number":234,"context_line":"            raise exception.OneViewError(error\u003de)"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_168a2264","line":232,"in_reply_to":"1aa78d24_b921d1b6","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            node \u003d objects.Node.get(context, node_uuid)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"            if self._is_node_in_use_by_oneview(node):"},{"line_number":249,"context_line":"                purpose \u003d (\u0027Updating node %(node_uuid)s in use by OneView \u0027"},{"line_number":250,"context_line":"                           \u0027from %(provision_state)s state to \u0027"},{"line_number":251,"context_line":"                           \u0027%(target_state)s state and maintenance mode \u0027"},{"line_number":252,"context_line":"                           \u0027%(maintenance)s\u0027 %"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_d8f8657f","line":249,"updated":"2016-07-04 08:48:38.000000000","message":"_LI","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            node \u003d objects.Node.get(context, node_uuid)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"            if self._is_node_in_use_by_oneview(node):"},{"line_number":249,"context_line":"                purpose \u003d (\u0027Updating node %(node_uuid)s in use by OneView \u0027"},{"line_number":250,"context_line":"                           \u0027from %(provision_state)s state to \u0027"},{"line_number":251,"context_line":"                           \u0027%(target_state)s state and maintenance mode \u0027"},{"line_number":252,"context_line":"                           \u0027%(maintenance)s\u0027 %"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_71a65511","line":249,"in_reply_to":"1aa78d24_d8f8657f","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                purpose \u003d (\u0027Updating node %(node_uuid)s in use by OneView \u0027"},{"line_number":250,"context_line":"                           \u0027from %(provision_state)s state to \u0027"},{"line_number":251,"context_line":"                           \u0027%(target_state)s state and maintenance mode \u0027"},{"line_number":252,"context_line":"                           \u0027%(maintenance)s\u0027 %"},{"line_number":253,"context_line":"                           {\u0027node_uuid\u0027: node_uuid,"},{"line_number":254,"context_line":"                            \u0027provision_state\u0027: states.AVAILABLE,"},{"line_number":255,"context_line":"                            \u0027target_state\u0027: states.MANAGEABLE,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_476008cf","line":252,"updated":"2016-07-04 13:20:15.000000000","message":"\"%\" -\u003e \",\"","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                purpose \u003d (\u0027Updating node %(node_uuid)s in use by OneView \u0027"},{"line_number":250,"context_line":"                           \u0027from %(provision_state)s state to \u0027"},{"line_number":251,"context_line":"                           \u0027%(target_state)s state and maintenance mode \u0027"},{"line_number":252,"context_line":"                           \u0027%(maintenance)s\u0027 %"},{"line_number":253,"context_line":"                           {\u0027node_uuid\u0027: node_uuid,"},{"line_number":254,"context_line":"                            \u0027provision_state\u0027: states.AVAILABLE,"},{"line_number":255,"context_line":"                            \u0027target_state\u0027: states.MANAGEABLE,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_76eba613","line":252,"in_reply_to":"1aa78d24_476008cf","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        for node_uuid, driver, maintenance_reason in node_iter:"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"            \"\"\"If the node come from a deploy fail or it is in use by"},{"line_number":281,"context_line":"            OneView, try to realocate or realease from OneView."},{"line_number":282,"context_line":"            \"\"\""},{"line_number":283,"context_line":"            if maintenance_reason \u003d\u003d common.NODE_IN_USE_BY_ONEVIEW:"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_1530f800","line":281,"range":{"start_line":281,"start_character":32,"end_line":281,"end_character":33},"updated":"2016-07-04 08:48:38.000000000","message":"s/realocate/reallocate/\ns/realease/release/","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        for node_uuid, driver, maintenance_reason in node_iter:"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"            \"\"\"If the node come from a deploy fail or it is in use by"},{"line_number":281,"context_line":"            OneView, try to realocate or realease from OneView."},{"line_number":282,"context_line":"            \"\"\""},{"line_number":283,"context_line":"            if maintenance_reason \u003d\u003d common.NODE_IN_USE_BY_ONEVIEW:"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b1971d8f","line":281,"range":{"start_line":281,"start_character":32,"end_line":281,"end_character":33},"in_reply_to":"1aa78d24_1530f800","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"                if not self._is_node_in_use_by_oneview(node):"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"                    purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":290,"context_line":"                               \u0027OneView from %(provision_state)s state to \u0027"},{"line_number":291,"context_line":"                               \u0027%(target_state)s state and \u0027"},{"line_number":292,"context_line":"                               \u0027maintenance mode %(maintenance)s\u0027 %"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_18f30da0","line":289,"updated":"2016-07-04 08:48:38.000000000","message":"_LI","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"                if not self._is_node_in_use_by_oneview(node):"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"                    purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":290,"context_line":"                               \u0027OneView from %(provision_state)s state to \u0027"},{"line_number":291,"context_line":"                               \u0027%(target_state)s state and \u0027"},{"line_number":292,"context_line":"                               \u0027maintenance mode %(maintenance)s\u0027 %"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_31ea0d10","line":289,"in_reply_to":"1aa78d24_18f30da0","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"928dfa3c06616b26deaa90ef97a510a4e48f22a6","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                    purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":290,"context_line":"                               \u0027OneView from %(provision_state)s state to \u0027"},{"line_number":291,"context_line":"                               \u0027%(target_state)s state and \u0027"},{"line_number":292,"context_line":"                               \u0027maintenance mode %(maintenance)s\u0027 %"},{"line_number":293,"context_line":"                               {\u0027node_uuid\u0027: node_uuid,"},{"line_number":294,"context_line":"                                \u0027provision_state\u0027: states.MANAGEABLE,"},{"line_number":295,"context_line":"                                \u0027target_state\u0027: states.AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_670424c0","line":292,"updated":"2016-07-04 13:20:15.000000000","message":"ditto l252","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                    purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":290,"context_line":"                               \u0027OneView from %(provision_state)s state to \u0027"},{"line_number":291,"context_line":"                               \u0027%(target_state)s state and \u0027"},{"line_number":292,"context_line":"                               \u0027maintenance mode %(maintenance)s\u0027 %"},{"line_number":293,"context_line":"                               {\u0027node_uuid\u0027: node_uuid,"},{"line_number":294,"context_line":"                                \u0027provision_state\u0027: states.MANAGEABLE,"},{"line_number":295,"context_line":"                                \u0027target_state\u0027: states.AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_96f452f1","line":292,"in_reply_to":"1aa78d24_670424c0","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"                    LOG.info(purpose)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"                    \"\"\"Ensure node executes OneView driver"},{"line_number":301,"context_line":"                    cleaning step (prepare_cleaning) before"},{"line_number":302,"context_line":"                    become available."},{"line_number":303,"context_line":"                    \"\"\""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_03c60267","line":300,"updated":"2016-07-04 08:48:38.000000000","message":"ditto about #","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"                    LOG.info(purpose)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"                    \"\"\"Ensure node executes OneView driver"},{"line_number":301,"context_line":"                    cleaning step (prepare_cleaning) before"},{"line_number":302,"context_line":"                    become available."},{"line_number":303,"context_line":"                    \"\"\""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b1defd6a","line":300,"in_reply_to":"1aa78d24_03c60267","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        for node_uuid, driver, driver_internal_info in node_iter:"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"            node_oneview_error \u003d driver_internal_info.get(\u0027oneview_error\u0027)"},{"line_number":319,"context_line":"            if node_oneview_error \u003d\u003d common.SERVER_HARDWARE_ALLOCATION_ERROR:"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"                purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":322,"context_line":"                           \u0027OneView from %(provision_state)s state to \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_bcd7ffbd","line":319,"updated":"2016-07-05 17:24:45.000000000","message":"Are you sure that it is the only way this message can appear in driver_internal_info and no other error can put it there?","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        for node_uuid, driver, driver_internal_info in node_iter:"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"            node_oneview_error \u003d driver_internal_info.get(\u0027oneview_error\u0027)"},{"line_number":319,"context_line":"            if node_oneview_error \u003d\u003d common.SERVER_HARDWARE_ALLOCATION_ERROR:"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"                purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":322,"context_line":"                           \u0027OneView from %(provision_state)s state to \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_d6489a2f","line":319,"in_reply_to":"1aa78d24_bcd7ffbd","updated":"2016-07-13 00:10:39.000000000","message":"Yes, it can only be set by L108.","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"44b01fbca9df692e0b0193f74b3389f675c40e5a","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            node_oneview_error \u003d driver_internal_info.get(\u0027oneview_error\u0027)"},{"line_number":319,"context_line":"            if node_oneview_error \u003d\u003d common.SERVER_HARDWARE_ALLOCATION_ERROR:"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"                purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":322,"context_line":"                           \u0027OneView from %(provision_state)s state to \u0027"},{"line_number":323,"context_line":"                           \u0027%(target_state)s state and \u0027"},{"line_number":324,"context_line":"                           \u0027maintenance mode %(maintenance)s\u0027 %"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_582bd5eb","line":321,"updated":"2016-07-04 08:48:38.000000000","message":"_LI","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            node_oneview_error \u003d driver_internal_info.get(\u0027oneview_error\u0027)"},{"line_number":319,"context_line":"            if node_oneview_error \u003d\u003d common.SERVER_HARDWARE_ALLOCATION_ERROR:"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"                purpose \u003d (\u0027Bringing node %(node_uuid)s back from use by \u0027"},{"line_number":322,"context_line":"                           \u0027OneView from %(provision_state)s state to \u0027"},{"line_number":323,"context_line":"                           \u0027%(target_state)s state and \u0027"},{"line_number":324,"context_line":"                           \u0027maintenance mode %(maintenance)s\u0027 %"}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_11d43145","line":321,"in_reply_to":"1aa78d24_582bd5eb","updated":"2016-07-13 00:10:39.000000000","message":"Done","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a2266c714d125eb9c32043744bf74fdd4ae6d6dd","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                           \u0027%(target_state)s state and \u0027"},{"line_number":324,"context_line":"                           \u0027maintenance mode %(maintenance)s\u0027 %"},{"line_number":325,"context_line":"                           {\u0027node_uuid\u0027: node_uuid,"},{"line_number":326,"context_line":"                            \u0027provision_state\u0027: states.MANAGEABLE,"},{"line_number":327,"context_line":"                            \u0027target_state\u0027: states.AVAILABLE,"},{"line_number":328,"context_line":"                            \u0027maintenance\u0027: False})"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_7c02b770","line":326,"updated":"2016-07-05 17:24:45.000000000","message":"CLEANFAIL, also the text should be changed","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"57cec9d3a2d4c576b028ea23c945fe26159cbd55","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                           \u0027%(target_state)s state and \u0027"},{"line_number":324,"context_line":"                           \u0027maintenance mode %(maintenance)s\u0027 %"},{"line_number":325,"context_line":"                           {\u0027node_uuid\u0027: node_uuid,"},{"line_number":326,"context_line":"                            \u0027provision_state\u0027: states.MANAGEABLE,"},{"line_number":327,"context_line":"                            \u0027target_state\u0027: states.AVAILABLE,"},{"line_number":328,"context_line":"                            \u0027maintenance\u0027: False})"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1aa78d24_b656aecb","line":326,"in_reply_to":"1aa78d24_7c02b770","updated":"2016-07-13 00:10:39.000000000","message":"Done, Nice catch, vdrok!","commit_id":"aa93e2123de2fcaff5e47ae97d23da49c6262f67"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e6bb3b8472868c6485b911b2d048ecd1cce3b415","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    LOG.error("},{"line_number":70,"context_line":"                        _LE(\"An error occurred during allocating server \""},{"line_number":71,"context_line":"                            \"hardware to Ironic: %(error)s\") %"},{"line_number":72,"context_line":"                            {\u0027error\u0027: e}"},{"line_number":73,"context_line":"                    )"},{"line_number":74,"context_line":"                    raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":75,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_22973c3b","line":72,"range":{"start_line":72,"start_character":28,"end_line":72,"end_character":40},"updated":"2016-07-06 13:04:55.000000000","message":"./ironic/drivers/modules/oneview/deploy_utils.py:72:29: E131 continuation line unaligned for hanging indent","commit_id":"f434a068406ab4f623c3e1794494e14f87abcee9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e6bb3b8472868c6485b911b2d048ecd1cce3b415","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if self._is_node_in_use_by_oneview(task.node):"},{"line_number":96,"context_line":"            msg \u003d ("},{"line_number":97,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":98,"context_line":"                {\"node_uuid\": task.node.uuid}"},{"line_number":99,"context_line":"            )"},{"line_number":100,"context_line":"            LOG.error(_LE(msg))"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_a2d96c24","line":97,"range":{"start_line":97,"start_character":16,"end_line":97,"end_character":66},"updated":"2016-07-06 13:04:55.000000000","message":"Localization should be applied here, not line 100.","commit_id":"f434a068406ab4f623c3e1794494e14f87abcee9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e6bb3b8472868c6485b911b2d048ecd1cce3b415","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                \"Node %(node_uuid)s is already in use by OneView.\" %"},{"line_number":98,"context_line":"                {\"node_uuid\": task.node.uuid}"},{"line_number":99,"context_line":"            )"},{"line_number":100,"context_line":"            LOG.error(_LE(msg))"},{"line_number":101,"context_line":"            raise exception.NodeCleaningFailure("},{"line_number":102,"context_line":"                node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":103,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_e22c1404","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":31},"updated":"2016-07-06 13:04:55.000000000","message":"./ironic/drivers/modules/oneview/deploy_utils.py:100:27: H701  Empty localization string","commit_id":"f434a068406ab4f623c3e1794494e14f87abcee9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e6bb3b8472868c6485b911b2d048ecd1cce3b415","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                info \u003d {\u0027oneview_error\u0027:"},{"line_number":123,"context_line":"                        common.SERVER_HARDWARE_ALLOCATION_ERROR}"},{"line_number":124,"context_line":"                task.node.driver_internal_info \u003d info"},{"line_number":125,"context_line":"                LOG.error(_LE(e))"},{"line_number":126,"context_line":"                raise exception.NodeCleaningFailure("},{"line_number":127,"context_line":"                    node\u003dtask.node.uuid, reason\u003de"},{"line_number":128,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_220a9c79","line":125,"range":{"start_line":125,"start_character":16,"end_line":125,"end_character":33},"updated":"2016-07-06 13:04:55.000000000","message":"./ironic/drivers/modules/oneview/deploy_utils.py:125:31: H701  Empty localization string","commit_id":"f434a068406ab4f623c3e1794494e14f87abcee9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e6bb3b8472868c6485b911b2d048ecd1cce3b415","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                            \u0027target_state\u0027: states.MANAGEABLE,"},{"line_number":308,"context_line":"                            \u0027maintenance\u0027: True})"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"                LOG.info(_LI(purpose))"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"                with task_manager.acquire("},{"line_number":313,"context_line":"                    context, node_uuid, purpose"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_028680da","line":310,"range":{"start_line":310,"start_character":25,"end_line":310,"end_character":37},"updated":"2016-07-06 13:04:55.000000000","message":"Localization should be on line 301\n\n./ironic/drivers/modules/oneview/deploy_utils.py:310:30: H701  Empty localization string","commit_id":"f434a068406ab4f623c3e1794494e14f87abcee9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e6bb3b8472868c6485b911b2d048ecd1cce3b415","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                                \u0027target_state\u0027: states.AVAILABLE,"},{"line_number":348,"context_line":"                                \u0027maintenance\u0027: False})"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"                    LOG.info(_LI(purpose))"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"                    # Ensure node executes OneView driver cleaning step"},{"line_number":353,"context_line":"                    # (prepare_cleaning) before become available."}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_22cf3c2a","line":350,"range":{"start_line":350,"start_character":20,"end_line":350,"end_character":42},"updated":"2016-07-06 13:04:55.000000000","message":"Localization should be on line 341\n\n./ironic/drivers/modules/oneview/deploy_utils.py:350:34: H701  Empty localization string","commit_id":"f434a068406ab4f623c3e1794494e14f87abcee9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e6bb3b8472868c6485b911b2d048ecd1cce3b415","unresolved":false,"context_lines":[{"line_number":378,"context_line":"                            \u0027target_state\u0027: states.AVAILABLE,"},{"line_number":379,"context_line":"                            \u0027maintenance\u0027: False})"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"                LOG.info(_LI(purpose))"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"                with task_manager.acquire("},{"line_number":384,"context_line":"                    context, node_uuid, purpose"}],"source_content_type":"text/x-python","patch_set":23,"id":"1aa78d24_c2f4785c","line":381,"range":{"start_line":381,"start_character":11,"end_line":381,"end_character":38},"updated":"2016-07-06 13:04:55.000000000","message":"Localization should be on line 372.\n\n./ironic/drivers/modules/oneview/deploy_utils.py:381:30: H701  Empty localization string","commit_id":"f434a068406ab4f623c3e1794494e14f87abcee9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    Generates the TFTP configuration for PXE-booting both the deployment"},{"line_number":42,"context_line":"    and user images, fetches the TFTP image from Glance and add it to the"},{"line_number":43,"context_line":"    local cache."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_d3e123fe","line":44,"updated":"2016-07-15 14:40:44.000000000","message":"Was the description copied from elsewhere or is it intentional?  I really feel like the text should indicate, since this is inside the oneview driver, that this method attempts to lock the node in oneview.  I\u0027m fine if something like that comes as a follow-up revision though.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    Generates the TFTP configuration for PXE-booting both the deployment"},{"line_number":42,"context_line":"    and user images, fetches the TFTP image from Glance and add it to the"},{"line_number":43,"context_line":"    local cache."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_24f302d8","line":44,"in_reply_to":"1aa78d24_d3e123fe","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    and user images, fetches the TFTP image from Glance and add it to the"},{"line_number":43,"context_line":"    local cache."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    try:"},{"line_number":48,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_f371bf78","line":45,"updated":"2016-07-15 14:40:44.000000000","message":"nit: Missing what exceptions can be expected","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    and user images, fetches the TFTP image from Glance and add it to the"},{"line_number":43,"context_line":"    local cache."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    try:"},{"line_number":48,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_e4cf2a7d","line":45,"in_reply_to":"1aa78d24_f371bf78","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            msg \u003d (_(\"Error while determine if node %(node_uuid)s \""},{"line_number":63,"context_line":"                     \"is in use by OneView. Error: %(error)s\") %"},{"line_number":64,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":65,"context_line":"            LOG.error(msg)"},{"line_number":66,"context_line":"            raise exception.InstanceDeployFailure(reason\u003dmsg)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if not node_in_use_by_oneview:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_313c4f2f","line":65,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            msg \u003d (_(\"Error while determine if node %(node_uuid)s \""},{"line_number":63,"context_line":"                     \"is in use by OneView. Error: %(error)s\") %"},{"line_number":64,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":65,"context_line":"            LOG.error(msg)"},{"line_number":66,"context_line":"            raise exception.InstanceDeployFailure(reason\u003dmsg)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if not node_in_use_by_oneview:"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_4499d61e","line":65,"in_reply_to":"fad55976_313c4f2f","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"cc7ad20ac3ef1a9e19576a305d19d47dcbb0dfae","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                              \"hardware to Ironic during prepare: %s\"), e)"},{"line_number":86,"context_line":"                raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            msg \u003d (_(\"Node %s is already in use by OneView.\") %"},{"line_number":89,"context_line":"                   task.node.uuid)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            raise exception.InstanceDeployFailure(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_d267a623","line":88,"updated":"2016-07-15 22:10:43.000000000","message":"_LE ,","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                              \"hardware to Ironic during prepare: %s\"), e)"},{"line_number":86,"context_line":"                raise exception.InstanceDeployFailure(reason\u003de)"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            msg \u003d (_(\"Node %s is already in use by OneView.\") %"},{"line_number":89,"context_line":"                   task.node.uuid)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            raise exception.InstanceDeployFailure(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_6464da21","line":88,"in_reply_to":"fad55976_d267a623","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    try:"},{"line_number":104,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":105,"context_line":"    except exception.InvalidParameterValue as e:"},{"line_number":106,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":107,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":108,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":109,"context_line":"        LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_d15fb373","line":106,"updated":"2016-07-15 17:15:01.000000000","message":"_LE","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    try:"},{"line_number":104,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":105,"context_line":"    except exception.InvalidParameterValue as e:"},{"line_number":106,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":107,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":108,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":109,"context_line":"        LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_e478cac6","line":106,"in_reply_to":"fad55976_d15fb373","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":107,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":108,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":109,"context_line":"        LOG.error(msg)"},{"line_number":110,"context_line":"        raise exception.InstanceDeployFailure(reason\u003dmsg)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_11830bce","line":109,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":107,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":108,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":109,"context_line":"        LOG.error(msg)"},{"line_number":110,"context_line":"        raise exception.InstanceDeployFailure(reason\u003dmsg)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_2483029a","line":109,"in_reply_to":"fad55976_11830bce","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            task.node"},{"line_number":119,"context_line":"        )"},{"line_number":120,"context_line":"    except exception.OneViewError as e:"},{"line_number":121,"context_line":"        msg \u003d (_(\"Error while determine if node %(node_uuid)s \""},{"line_number":122,"context_line":"                 \"is in use by OneView. Error: %(error)s\") %"},{"line_number":123,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":124,"context_line":"        LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_b164bf49","line":121,"updated":"2016-07-15 17:15:01.000000000","message":"_LE","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            task.node"},{"line_number":119,"context_line":"        )"},{"line_number":120,"context_line":"    except exception.OneViewError as e:"},{"line_number":121,"context_line":"        msg \u003d (_(\"Error while determine if node %(node_uuid)s \""},{"line_number":122,"context_line":"                 \"is in use by OneView. Error: %(error)s\") %"},{"line_number":123,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":124,"context_line":"        LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_047ebead","line":121,"in_reply_to":"fad55976_b164bf49","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        msg \u003d (_(\"Error while determine if node %(node_uuid)s \""},{"line_number":122,"context_line":"                 \"is in use by OneView. Error: %(error)s\") %"},{"line_number":123,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":124,"context_line":"        LOG.error(msg)"},{"line_number":125,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":126,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":127,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_11d14bce","line":124,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        msg \u003d (_(\"Error while determine if node %(node_uuid)s \""},{"line_number":122,"context_line":"                 \"is in use by OneView. Error: %(error)s\") %"},{"line_number":123,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":124,"context_line":"        LOG.error(msg)"},{"line_number":125,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":126,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":127,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_644b3a88","line":124,"in_reply_to":"fad55976_11d14bce","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":123,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":124,"context_line":"        LOG.error(msg)"},{"line_number":125,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":126,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":127,"context_line":"        )"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    if node_in_use_by_oneview:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_d430410a","line":126,"updated":"2016-07-15 17:15:01.000000000","message":"ditto. Please cover this with unittests.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":123,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":124,"context_line":"        LOG.error(msg)"},{"line_number":125,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":126,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":127,"context_line":"        )"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    if node_in_use_by_oneview:"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_0f6ed794","line":126,"in_reply_to":"fad55976_8c2683cc","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"35089e0a44c90b0ad6deaa1d5f53dc5b3ec479df","unresolved":false,"context_lines":[{"line_number":123,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":124,"context_line":"        LOG.error(msg)"},{"line_number":125,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":126,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":127,"context_line":"        )"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    if node_in_use_by_oneview:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_8c2683cc","line":126,"in_reply_to":"fad55976_d430410a","updated":"2016-07-16 05:37:35.000000000","message":"please disregard this comment.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        LOG.error(_LE(\"Node %s is already in use by OneView.\"),"},{"line_number":132,"context_line":"                  task.node.uuid)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        msg \u003d _(\"Node is already in use by OneView.\")"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":137,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_d194d3e9","line":134,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        LOG.error(_LE(\"Node %s is already in use by OneView.\"),"},{"line_number":132,"context_line":"                  task.node.uuid)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        msg \u003d _(\"Node is already in use by OneView.\")"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":137,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_042cfea9","line":134,"in_reply_to":"fad55976_d194d3e9","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        msg \u003d _(\"Node is already in use by OneView.\")"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":137,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    if server_profile_uri is None:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_747eb5af","line":137,"updated":"2016-07-15 17:15:01.000000000","message":"It will not work, exception.NodeCleaningFailure( \ntakes only 1 argument.\n\nhttp://paste.openstack.org/show/533076/","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        msg \u003d _(\"Node is already in use by OneView.\")"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":137,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    if server_profile_uri is None:"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_4f060fcf","line":137,"in_reply_to":"fad55976_6c734fe8","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"35089e0a44c90b0ad6deaa1d5f53dc5b3ec479df","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        msg \u003d _(\"Node is already in use by OneView.\")"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        raise exception.NodeCleaningFailure("},{"line_number":137,"context_line":"            node\u003dtask.node.uuid, reason\u003dmsg"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    if server_profile_uri is None:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_6c734fe8","line":137,"in_reply_to":"fad55976_747eb5af","updated":"2016-07-16 05:37:35.000000000","message":"please disregard this comment.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            LOG.error(_LE(\"An error occurred during allocating server \""},{"line_number":163,"context_line":"                          \"to ironic during prepare_cleaning: %s\"), e)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            msg \u003d _(\"Node is already in use by OneView.\")"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            raise exception.NodeCleaningFailure("},{"line_number":168,"context_line":"                node\u003dtask.node.uuid, reason\u003dmsg"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_077c6971","line":165,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about log duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            LOG.error(_LE(\"An error occurred during allocating server \""},{"line_number":163,"context_line":"                          \"to ironic during prepare_cleaning: %s\"), e)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            msg \u003d _(\"Node is already in use by OneView.\")"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            raise exception.NodeCleaningFailure("},{"line_number":168,"context_line":"                node\u003dtask.node.uuid, reason\u003dmsg"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_4f00cf01","line":165,"in_reply_to":"fad55976_077c6971","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    :param node: an ironic node object"},{"line_number":205,"context_line":"    :returns: Boolean value. True if node is in use by OneView,"},{"line_number":206,"context_line":"              False otherwise."},{"line_number":207,"context_line":"    \"\"\""},{"line_number":208,"context_line":"    try:"},{"line_number":209,"context_line":"        oneview_info \u003d common.get_oneview_info(node)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_47966195","line":206,"updated":"2016-07-15 17:15:01.000000000","message":"raises?","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    :param node: an ironic node object"},{"line_number":205,"context_line":"    :returns: Boolean value. True if node is in use by OneView,"},{"line_number":206,"context_line":"              False otherwise."},{"line_number":207,"context_line":"    \"\"\""},{"line_number":208,"context_line":"    try:"},{"line_number":209,"context_line":"        oneview_info \u003d common.get_oneview_info(node)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_cf14bf45","line":206,"in_reply_to":"fad55976_47966195","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":212,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":213,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":214,"context_line":"        LOG.error(msg)"},{"line_number":215,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_c7e89119","line":214,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":212,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":213,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":214,"context_line":"        LOG.error(msg)"},{"line_number":215,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_af0fcb2c","line":214,"in_reply_to":"fad55976_c7e89119","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    else:"},{"line_number":236,"context_line":"        LOG.info(_LI("},{"line_number":237,"context_line":"            \"Hardware %(hardware_uri)s is free for use by \""},{"line_number":238,"context_line":"            \"Ironic on node %(node_uuid)s.\"),"},{"line_number":239,"context_line":"            {\"hardware_uri\": server_hardware.uri,"},{"line_number":240,"context_line":"             \"node_uuid\": node.uuid})"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_33f2279b","line":238,"range":{"start_line":238,"start_character":13,"end_line":238,"end_character":14},"updated":"2016-07-15 14:40:44.000000000","message":"nit: s/Ironic/ironic/","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    else:"},{"line_number":236,"context_line":"        LOG.info(_LI("},{"line_number":237,"context_line":"            \"Hardware %(hardware_uri)s is free for use by \""},{"line_number":238,"context_line":"            \"Ironic on node %(node_uuid)s.\"),"},{"line_number":239,"context_line":"            {\"hardware_uri\": server_hardware.uri,"},{"line_number":240,"context_line":"             \"node_uuid\": node.uuid})"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_c4cae66d","line":238,"range":{"start_line":238,"start_character":13,"end_line":238,"end_character":14},"in_reply_to":"1aa78d24_33f2279b","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":262,"context_line":"                         server hardware type, enclosure group and server"},{"line_number":263,"context_line":"                         profile template"},{"line_number":264,"context_line":"    :raises OneViewError: if an error occurs while allocating the server"},{"line_number":265,"context_line":"                          hardware to ironic"},{"line_number":266,"context_line":"    :returns: None."},{"line_number":267,"context_line":"    \"\"\""},{"line_number":268,"context_line":"    oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_a7511d11","line":265,"updated":"2016-07-15 17:15:01.000000000","message":"server_profile_name is not mentioned in params.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":262,"context_line":"                         server hardware type, enclosure group and server"},{"line_number":263,"context_line":"                         profile template"},{"line_number":264,"context_line":"    :raises OneViewError: if an error occurs while allocating the server"},{"line_number":265,"context_line":"                          hardware to ironic"},{"line_number":266,"context_line":"    :returns: None."},{"line_number":267,"context_line":"    \"\"\""},{"line_number":268,"context_line":"    oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_0f1ff75f","line":265,"in_reply_to":"fad55976_a7511d11","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f4e879f5b61724799034b06b09558674578caff2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            if the Server Profile can\u0027t be applied."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    \"\"\""},{"line_number":51,"context_line":"    try:"},{"line_number":52,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":53,"context_line":"    except exception.InvalidParameterValue as e:"},{"line_number":54,"context_line":"        msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":55,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":56,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":57,"context_line":"        raise exception.InstanceDeployFailure(reason\u003dmsg)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    if task.node.provision_state \u003d\u003d states.DEPLOYING:"},{"line_number":60,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":27,"id":"dada55a8_f065ad44","line":57,"range":{"start_line":51,"start_character":0,"end_line":57,"end_character":57},"updated":"2016-07-21 20:16:01.000000000","message":"Upon conductor failover, this will be called if dynamic allocation is enabled.  I kind of wonder if it makes sense to move under the check if the node provision state is deploying on line 59.\n\nI guess my worry is that we shouldn\u0027t generate any additional errors if we don\u0027t have to, and in a failover situation, such as a rack loosing power, I would worry if the OneView node is temporarilly offline, or if it is unreachable due to failover processes, or something along those lines.\n\nHopefully this makes sense. :)\n\nThis is not worth blocking over, but I would kind of like to see a follow-up revision if you guys feel it is appropriate.  It is after all, your driver. :)","commit_id":"b0927ea388818400c64e0587c71830bc0c4e842e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f0a7d830f93df412119fb65e674fe5f22aa6edee","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            if the Server Profile can\u0027t be applied."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    \"\"\""},{"line_number":51,"context_line":"    try:"},{"line_number":52,"context_line":"        oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":53,"context_line":"    except exception.InvalidParameterValue as e:"},{"line_number":54,"context_line":"        msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":55,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":56,"context_line":"               {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":57,"context_line":"        raise exception.InstanceDeployFailure(reason\u003dmsg)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    if task.node.provision_state \u003d\u003d states.DEPLOYING:"},{"line_number":60,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":27,"id":"dada55a8_1422f0a2","line":57,"range":{"start_line":51,"start_character":0,"end_line":57,"end_character":57},"in_reply_to":"dada55a8_f065ad44","updated":"2016-07-21 21:49:30.000000000","message":"Okay, for some reason I thought this was reaching out to oneview.  Disregard my rambling here.","commit_id":"b0927ea388818400c64e0587c71830bc0c4e842e"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"33c451bba5f08f59e6db6028ad3bf257eb041aed","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        node.driver_info.get(\u0027applied_server_profile_uri\u0027)"},{"line_number":263,"context_line":"    )"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    if (server_hardware.server_profile_uri not in (None, \u0027\u0027) and"},{"line_number":266,"context_line":"            applied_sp_uri !\u003d server_hardware.server_profile_uri):"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        LOG.warning(_LW(\"Node %s is already in use by OneView.\"),"},{"line_number":269,"context_line":"                    node.uuid)"}],"source_content_type":"text/x-python","patch_set":27,"id":"dada55a8_612dc894","line":266,"range":{"start_line":265,"start_character":4,"end_line":266,"end_character":66},"updated":"2016-07-20 12:42:00.000000000","message":"Checking if server_profile is applied isn\u0027t enough since it doesn\u0027t guarantee backwards compatibility. Please, check also if the dynamic_allocation flag is true.","commit_id":"b0927ea388818400c64e0587c71830bc0c4e842e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f4e879f5b61724799034b06b09558674578caff2","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        node.driver_info.get(\u0027applied_server_profile_uri\u0027)"},{"line_number":263,"context_line":"    )"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    if (server_hardware.server_profile_uri not in (None, \u0027\u0027) and"},{"line_number":266,"context_line":"            applied_sp_uri !\u003d server_hardware.server_profile_uri):"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        LOG.warning(_LW(\"Node %s is already in use by OneView.\"),"},{"line_number":269,"context_line":"                    node.uuid)"}],"source_content_type":"text/x-python","patch_set":27,"id":"dada55a8_75752fc9","line":266,"range":{"start_line":265,"start_character":4,"end_line":266,"end_character":66},"in_reply_to":"dada55a8_612dc894","updated":"2016-07-21 20:16:01.000000000","message":"I think I agree, although this compares both the state of the node in ironic and the state in oneview.  I would think only asking oneview what it currently knows would be the primary action to determine if it is in use...\n\nI guess the ultimate question is... who is the source of truth, and do we trust that source of truth.","commit_id":"b0927ea388818400c64e0587c71830bc0c4e842e"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"59d592052e606d8c40b63f3d3d4d7390d070c49e","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":145,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":146,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":147,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    oneview_client \u003d common.get_oneview_client()"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_e7ad4785","line":147,"range":{"start_line":147,"start_character":24,"end_line":147,"end_character":36},"updated":"2016-08-04 20:51:59.000000000","message":"should we raise OneViewInvalidNodeParameter here?","commit_id":"4483de30ba28e60d0f742441d928c3e28a291f90"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"59d592052e606d8c40b63f3d3d4d7390d070c49e","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        msg \u003d (_(\"Error while obtaining Server Hardware from node \""},{"line_number":161,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":162,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":163,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    applied_sp_uri \u003d ("},{"line_number":166,"context_line":"        node.driver_info.get(\u0027applied_server_profile_uri\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_07c97b59","line":163,"range":{"start_line":163,"start_character":24,"end_line":163,"end_character":36},"updated":"2016-08-04 20:51:59.000000000","message":"Ditto","commit_id":"4483de30ba28e60d0f742441d928c3e28a291f90"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"59d592052e606d8c40b63f3d3d4d7390d070c49e","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":231,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":232,"context_line":"                   {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":233,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        applied_sp_uri \u003d node.driver_info.get(\u0027applied_server_profile_uri\u0027)"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_47bff3a9","line":233,"range":{"start_line":233,"start_character":28,"end_line":233,"end_character":40},"updated":"2016-08-04 20:51:59.000000000","message":"Ditto","commit_id":"4483de30ba28e60d0f742441d928c3e28a291f90"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"59d592052e606d8c40b63f3d3d4d7390d070c49e","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":306,"context_line":"                 \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":307,"context_line":"               {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":308,"context_line":"        raise exception.OneViewError(error\u003dmsg)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    oneview_client \u003d common.get_oneview_client()"},{"line_number":311,"context_line":"    oneview_client.power_off(oneview_info)"}],"source_content_type":"text/x-python","patch_set":31,"id":"bacf61ea_87e3abd8","line":308,"range":{"start_line":308,"start_character":24,"end_line":308,"end_character":36},"updated":"2016-08-04 20:51:59.000000000","message":"ditto","commit_id":"4483de30ba28e60d0f742441d928c3e28a291f90"}],"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":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        try:"},{"line_number":101,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":102,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":103,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":104,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":105,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":106,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_8dd40548","line":103,"range":{"start_line":103,"start_character":34,"end_line":103,"end_character":40},"updated":"2016-07-15 14:40:44.000000000","message":"Can be fixed in a follow-up: s/abtain/obtaining/","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        try:"},{"line_number":101,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":102,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":103,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":104,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":105,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":106,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_64a21ab0","line":103,"range":{"start_line":103,"start_character":34,"end_line":103,"end_character":40},"in_reply_to":"fad55976_8dd40548","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":104,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":105,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":106,"context_line":"            LOG.error(msg)"},{"line_number":107,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if device not in self.get_supported_boot_devices(task):"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_c7cff1b1","line":106,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about log duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":104,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":105,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":106,"context_line":"            LOG.error(msg)"},{"line_number":107,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if device not in self.get_supported_boot_devices(task):"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_6f72f3ae","line":106,"in_reply_to":"fad55976_c7cff1b1","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        try:"},{"line_number":145,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":146,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":147,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":148,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":149,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":150,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_cd455d18","line":147,"range":{"start_line":147,"start_character":34,"end_line":147,"end_character":40},"updated":"2016-07-15 14:40:44.000000000","message":"ditto","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        try:"},{"line_number":145,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":146,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":147,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":148,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":149,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":150,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_44a556b3","line":147,"range":{"start_line":147,"start_character":34,"end_line":147,"end_character":40},"in_reply_to":"fad55976_cd455d18","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":148,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":149,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":150,"context_line":"            LOG.error(msg)"},{"line_number":151,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_07caa9a1","line":150,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about log duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":148,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":149,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":150,"context_line":"            LOG.error(msg)"},{"line_number":151,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_af64ebe4","line":150,"in_reply_to":"fad55976_07caa9a1","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0accd8d9489dc53b8d9b2a62639076aa92507ab5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        try:"},{"line_number":101,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":102,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":103,"context_line":"            msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":104,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":105,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":106,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_ed66ddb9","line":104,"range":{"start_line":103,"start_character":21,"end_line":104,"end_character":54},"updated":"2016-08-04 14:46:32.000000000","message":"nit: I see the same error message in many places (this file and power.py). Perhaps we should make a specific exception for that inheriting from OneViewError.","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"0857751db34d125827bd5ff703512892d5f23cc5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        try:"},{"line_number":101,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":102,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":103,"context_line":"            msg \u003d (_(\"Error while obtaining OneView info from node \""},{"line_number":104,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":105,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":106,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_3832eea7","line":104,"range":{"start_line":103,"start_character":21,"end_line":104,"end_character":54},"in_reply_to":"bacf61ea_ed66ddb9","updated":"2016-08-04 16:10:54.000000000","message":"Refactored to raise a specific exception inside common.get_oneview_info(). We think the code will get cleaner this way.","commit_id":"da03dcc36cfb284efe358b5d42653ee2bfb126d7"}],"ironic/drivers/modules/oneview/power.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":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":74,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":75,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":76,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":77,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":78,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_2df999c9","line":75,"range":{"start_line":75,"start_character":34,"end_line":75,"end_character":40},"updated":"2016-07-15 14:40:44.000000000","message":"s/abtain/obtaining/","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":74,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":75,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":76,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":77,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":78,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_44e1d6cf","line":75,"range":{"start_line":75,"start_character":34,"end_line":75,"end_character":40},"in_reply_to":"fad55976_2df999c9","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":76,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":77,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":78,"context_line":"            LOG.error(msg)"},{"line_number":79,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_c736d1b3","line":78,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about log duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":76,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":77,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":78,"context_line":"            LOG.error(msg)"},{"line_number":79,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_2f863b65","line":78,"in_reply_to":"fad55976_c736d1b3","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        try:"},{"line_number":106,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":107,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":108,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":109,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":110,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":111,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_4d004dab","line":108,"range":{"start_line":108,"start_character":34,"end_line":108,"end_character":40},"updated":"2016-07-15 14:40:44.000000000","message":"ditto","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        try:"},{"line_number":106,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":107,"context_line":"        except exception.InvalidParameterValue as e:"},{"line_number":108,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":109,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":110,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":111,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_84ebceaf","line":108,"range":{"start_line":108,"start_character":34,"end_line":108,"end_character":40},"in_reply_to":"fad55976_4d004dab","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2b851aba6ee2fed6e516b53b20fe12d02f20ba87","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":109,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":110,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":111,"context_line":"            LOG.error(msg)"},{"line_number":112,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_a73bdd9b","line":111,"updated":"2016-07-15 17:15:01.000000000","message":"ditto about log duplication.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            msg \u003d (_(\"Error while abtain OneView info from node \""},{"line_number":109,"context_line":"                     \"%(node_uuid)s. Error: %(error)s\") %"},{"line_number":110,"context_line":"                   {\u0027node_uuid\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":111,"context_line":"            LOG.error(msg)"},{"line_number":112,"context_line":"            raise exception.OneViewError(error\u003dmsg)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        oneview_client \u003d common.get_oneview_client()"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_8f7da770","line":111,"in_reply_to":"fad55976_a73bdd9b","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"}],"ironic/drivers/oneview.py":[{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"ee04cd0471d19e15294764c9456511786184c0b3","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class AgentPXEOneViewDriver(base.BaseDriver):"},{"line_number":35,"context_line":"    \"\"\"Agent + OneView driver."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    This driver implements the `core` functionality, combining"},{"line_number":38,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_004a07ac","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":13},"updated":"2016-04-19 14:54:15.000000000","message":"Put PXE here too. :)","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8a1a10bcaf4ed98c7b1a2f91669722312b33af4d","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class AgentPXEOneViewDriver(base.BaseDriver):"},{"line_number":35,"context_line":"    \"\"\"Agent + OneView driver."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    This driver implements the `core` functionality, combining"},{"line_number":38,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_fbf7ba56","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":13},"in_reply_to":"1a122d0e_004a07ac","updated":"2016-04-19 15:10:44.000000000","message":"+1","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"a2880b9b801eb7079a43b28b480f667e08db8028","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class AgentPXEOneViewDriver(base.BaseDriver):"},{"line_number":35,"context_line":"    \"\"\"Agent + OneView driver."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    This driver implements the `core` functionality, combining"},{"line_number":38,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_97a3edb1","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":13},"in_reply_to":"1a122d0e_fbf7ba56","updated":"2016-04-19 19:40:05.000000000","message":"Done","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"ee04cd0471d19e15294764c9456511786184c0b3","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class ISCSIPXEOneViewDriver(base.BaseDriver):"},{"line_number":65,"context_line":"    \"\"\"ISCSI + OneView driver."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    This driver implements the `core` functionality, combining"},{"line_number":68,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_e056eb5a","line":65,"range":{"start_line":65,"start_character":7,"end_line":65,"end_character":30},"updated":"2016-04-19 14:54:15.000000000","message":"I think, to be most accurate, \"iSCSI + PXE + OneView driver\"","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"a2880b9b801eb7079a43b28b480f667e08db8028","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class ISCSIPXEOneViewDriver(base.BaseDriver):"},{"line_number":65,"context_line":"    \"\"\"ISCSI + OneView driver."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    This driver implements the `core` functionality, combining"},{"line_number":68,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_77a8d18d","line":65,"range":{"start_line":65,"start_character":7,"end_line":65,"end_character":30},"in_reply_to":"1a122d0e_9b9de60c","updated":"2016-04-19 19:40:05.000000000","message":"Done","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8a1a10bcaf4ed98c7b1a2f91669722312b33af4d","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class ISCSIPXEOneViewDriver(base.BaseDriver):"},{"line_number":65,"context_line":"    \"\"\"ISCSI + OneView driver."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    This driver implements the `core` functionality, combining"},{"line_number":68,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_9b9de60c","line":65,"range":{"start_line":65,"start_character":7,"end_line":65,"end_character":30},"in_reply_to":"1a122d0e_e056eb5a","updated":"2016-04-19 15:10:44.000000000","message":"+1","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"},{"line_number":38,"context_line":"    on/off and reboot of virtual machines, with"},{"line_number":39,"context_line":"    :class:`ironic.drivers.modules.pxe.PXEBoot` for booting deploy kernel and"},{"line_number":40,"context_line":"    ramdisk and :class:`ironic.drivers.modules.agent.AgentDeploy` for"},{"line_number":41,"context_line":"    image deployment. Implementations are in those respective classes; this"},{"line_number":42,"context_line":"    class is merely the glue between them."},{"line_number":43,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_86df5b39","line":40,"range":{"start_line":40,"start_character":38,"end_line":40,"end_character":64},"updated":"2016-07-15 14:40:44.000000000","message":"nit: Not really sure how I feel about this, but truthfully the driver is mapping to ironic.drivers.modules.oneview.deploy.  Just seems kind of confusing looking at it if I didn\u0027t already understand how the driver model worked.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"},{"line_number":38,"context_line":"    on/off and reboot of virtual machines, with"},{"line_number":39,"context_line":"    :class:`ironic.drivers.modules.pxe.PXEBoot` for booting deploy kernel and"},{"line_number":40,"context_line":"    ramdisk and :class:`ironic.drivers.modules.agent.AgentDeploy` for"},{"line_number":41,"context_line":"    image deployment. Implementations are in those respective classes; this"},{"line_number":42,"context_line":"    class is merely the glue between them."},{"line_number":43,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_e4960a4b","line":40,"range":{"start_line":40,"start_character":38,"end_line":40,"end_character":64},"in_reply_to":"1aa78d24_86df5b39","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"},{"line_number":68,"context_line":"    on/off and reboot of virtual machines, with"},{"line_number":69,"context_line":"    :class:`ironic.drivers.modules.pxe.PXEBoot` for booting deploy kernel and"},{"line_number":70,"context_line":"    ramdisk and :class:`ironic.drivers.modules.iscsi_deploy.ISCSIDeploy` for"},{"line_number":71,"context_line":"    image deployment. Implementations are in those respective classes; this"},{"line_number":72,"context_line":"    class is merely the glue between them."},{"line_number":73,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":26,"id":"1aa78d24_c6c84378","line":70,"range":{"start_line":70,"start_character":23,"end_line":70,"end_character":72},"updated":"2016-07-15 14:40:44.000000000","message":"same nit as above.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    :class:`ironic.drivers.modules.oneview.power.OneViewPower` for power"},{"line_number":68,"context_line":"    on/off and reboot of virtual machines, with"},{"line_number":69,"context_line":"    :class:`ironic.drivers.modules.pxe.PXEBoot` for booting deploy kernel and"},{"line_number":70,"context_line":"    ramdisk and :class:`ironic.drivers.modules.iscsi_deploy.ISCSIDeploy` for"},{"line_number":71,"context_line":"    image deployment. Implementations are in those respective classes; this"},{"line_number":72,"context_line":"    class is merely the glue between them."},{"line_number":73,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_c4914654","line":70,"range":{"start_line":70,"start_character":23,"end_line":70,"end_character":72},"in_reply_to":"1aa78d24_c6c84378","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"}],"ironic/tests/unit/drivers/modules/oneview/test_common.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":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":280,"context_line":"    @mock.patch.object(common, \u0027get_oneview_client\u0027, spec_set\u003dTrue,"},{"line_number":281,"context_line":"                       autospec\u003dTrue)"},{"line_number":282,"context_line":"    def test_validate_oneview_resources_compatibility("},{"line_number":283,"context_line":"        self, mock_get_ov_client"},{"line_number":284,"context_line":"    ):"},{"line_number":285,"context_line":"        oneview_client \u003d mock_get_ov_client()"},{"line_number":286,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_6aaa571b","line":283,"updated":"2016-07-15 14:40:44.000000000","message":"Nit: I wouldn\u0027t mind seeing an docstring on this method since this is also the default state of the driver testing the default behavior.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":280,"context_line":"    @mock.patch.object(common, \u0027get_oneview_client\u0027, spec_set\u003dTrue,"},{"line_number":281,"context_line":"                       autospec\u003dTrue)"},{"line_number":282,"context_line":"    def test_validate_oneview_resources_compatibility("},{"line_number":283,"context_line":"        self, mock_get_ov_client"},{"line_number":284,"context_line":"    ):"},{"line_number":285,"context_line":"        oneview_client \u003d mock_get_ov_client()"},{"line_number":286,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_24a142a4","line":283,"in_reply_to":"fad55976_6aaa571b","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"80443e33b339c4d2debbaa6f5fc84242d9067bc0","unresolved":false,"context_lines":[{"line_number":356,"context_line":"            )"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"    def test_is_dynamic_allocation_enabled_none(self):"},{"line_number":359,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"},{"line_number":360,"context_line":"            self.assertFalse("},{"line_number":361,"context_line":"                common.is_dynamic_allocation_enabled(task.node)"},{"line_number":362,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":26,"id":"fad55976_caec2392","line":359,"range":{"start_line":359,"start_character":0,"end_line":359,"end_character":7},"updated":"2016-07-15 14:40:44.000000000","message":"Nit, it would be helpful to have a docstring on this test since it is testing the  driver default state, or maybe an in-line comment.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e2fdd12468438a583dc35e5e0ddea44e9508feb8","unresolved":false,"context_lines":[{"line_number":356,"context_line":"            )"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"    def test_is_dynamic_allocation_enabled_none(self):"},{"line_number":359,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"},{"line_number":360,"context_line":"            self.assertFalse("},{"line_number":361,"context_line":"                common.is_dynamic_allocation_enabled(task.node)"},{"line_number":362,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":26,"id":"dada55a8_a4837203","line":359,"range":{"start_line":359,"start_character":0,"end_line":359,"end_character":7},"in_reply_to":"fad55976_caec2392","updated":"2016-07-19 21:40:53.000000000","message":"Done","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"}],"ironic/tests/unit/drivers/modules/oneview/test_deploy_utils.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":"8a1a10bcaf4ed98c7b1a2f91669722312b33af4d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett Packard Development Company, LP"},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":8,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_d6df3567","line":5,"range":{"start_line":3,"start_character":0,"end_line":5,"end_character":1},"updated":"2016-04-19 15:10:44.000000000","message":"Same nit on copyrights as deploy_utils.py","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"a2880b9b801eb7079a43b28b480f667e08db8028","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett Packard Development Company, LP"},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":8,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_57daf517","line":5,"range":{"start_line":3,"start_character":0,"end_line":5,"end_character":1},"in_reply_to":"1a122d0e_d6df3567","updated":"2016-04-19 19:40:05.000000000","message":"Done","commit_id":"8e8ff3394ebdc1e916be810f3c5415a662216f4e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1f41d36aca89fa8d1db58a1f8eb56fe2348b255","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Development Company, LP"},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_474ade28","line":3,"range":{"start_line":3,"start_character":17,"end_line":3,"end_character":56},"updated":"2016-04-21 13:28:09.000000000","message":"Copyright company name.","commit_id":"48781bac73b1c4ef6693ff50863ccbe010b499c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f1268ca81ad0d93a303142efc9eed463783e051f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_a760f1d0","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":25},"updated":"2016-07-01 16:56:52.000000000","message":"nit: Encoding not required.","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"ee2973a6bca6fba3f3ecdba15f3f126bd28090c4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":4,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_bd62c03b","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":25},"in_reply_to":"3aaa91ec_a760f1d0","updated":"2016-07-01 17:49:52.000000000","message":"Done.","commit_id":"bbf3939398e7ae0ad7962aaa9abe04a3480c1856"}],"releasenotes/notes/add-dynamic-allocation-feature-2fd6b4df7943f178.yaml":[{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"907e8177f8b3194d7e49a458738a48cd86f59ee3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add Dynamic Allocation feature for the OneView drivers."},{"line_number":4,"context_line":"deprecations:"},{"line_number":5,"context_line":"  - Deprecates pre-allocation feature for the OneView drivers."}],"source_content_type":"text/x-yaml","patch_set":26,"id":"fad55976_40a00791","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":59},"updated":"2016-07-15 18:33:38.000000000","message":"xavierr: please add a little more details and a link to the spec.","commit_id":"2c5fcb8d02cd40c41bbe0106aaf1d846046464de"}]}
