)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b6f507bf19d28e611a1233e54093d583b56fa79","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As part of the process to stop the use of python-oneviewclient"},{"line_number":10,"context_line":"in favor of python-hpOneView and python-ilorest-library, the"},{"line_number":11,"context_line":"validations of the python-oneviewclient have to be migrated to"},{"line_number":12,"context_line":"the Ironic OneView drivers."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: If1eb72192ed58b7d3b8bae780924879fed947a77"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"5f4e5783_42f733f7","line":11,"range":{"start_line":11,"start_character":1,"end_line":11,"end_character":61},"updated":"2017-10-10 09:17:11.000000000","message":"So does it mean the validation will be removed from python-oneviewclient?","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"}],"doc/source/admin/drivers/oneview.rst":[{"author":{"_account_id":20123,"name":"Saulo-Aislan","email":"sauloa@lsd.ufcg.edu.br","username":"SauloAislan"},"change_message_id":"e0ab4be8363bfcaa251fdb6a6484f5ebcd90bc96","unresolved":false,"context_lines":[{"line_number":232,"context_line":"     extra validations for the given node. If this parameter is set, the driver"},{"line_number":233,"context_line":"     will consider the use of plugin OneView ML2 Driver [11]_ to perform these"},{"line_number":234,"context_line":"     validations on the ironic node port configuration to maintain consistency"},{"line_number":235,"context_line":"     with OneView."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"* In ``properties/capabilities``"},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ff346bd7_2b17f947","line":235,"updated":"2017-07-26 17:13:27.000000000","message":"Which default value?","commit_id":"45bbe7961505aa59496f773979adebc9a8ca9035"}],"ironic/drivers/modules/oneview/common.py":[{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        validate_connections("},{"line_number":239,"context_line":"            oneview_client, node_ports, oneview_info, network_interface"},{"line_number":240,"context_line":"        )"},{"line_number":241,"context_line":"    except exception.OneViewError as oneview_exc:"},{"line_number":242,"context_line":"        raise oneview_exc"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"def validate_oneview_resources_compatibility(oneview_client, task):"}],"source_content_type":"text/x-python","patch_set":12,"id":"ff346bd7_fba8bfdb","line":242,"range":{"start_line":241,"start_character":0,"end_line":242,"end_character":25},"updated":"2017-10-17 13:16:33.000000000","message":"?","commit_id":"45bbe7961505aa59496f773979adebc9a8ca9035"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":267,"context_line":"            task.node.properties.get(\u0027cpus\u0027)"},{"line_number":268,"context_line":"        )"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    except exception.OneViewError as oneview_exc:"},{"line_number":271,"context_line":"        raise oneview_exc"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"def translate_oneview_power_state(power_state):"}],"source_content_type":"text/x-python","patch_set":12,"id":"ff346bd7_9bb9b32f","line":271,"range":{"start_line":270,"start_character":0,"end_line":271,"end_character":25},"updated":"2017-10-17 13:16:33.000000000","message":"ditto","commit_id":"45bbe7961505aa59496f773979adebc9a8ca9035"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        validate_connections("},{"line_number":246,"context_line":"            oneview_client, node_ports, oneview_info, network_interface"},{"line_number":247,"context_line":"        )"},{"line_number":248,"context_line":"    except exception.OneViewError as oneview_exc:"},{"line_number":249,"context_line":"        raise oneview_exc"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_6b122f64","line":248,"updated":"2017-08-31 06:28:07.000000000","message":"There is no any sense for re-raising of the same exception.","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        validate_connections("},{"line_number":246,"context_line":"            oneview_client, node_ports, oneview_info, network_interface"},{"line_number":247,"context_line":"        )"},{"line_number":248,"context_line":"    except exception.OneViewError as oneview_exc:"},{"line_number":249,"context_line":"        raise oneview_exc"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_5d135e5d","line":248,"in_reply_to":"7f287b81_6b122f64","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        validate_node_server_hardware_type(oneview_client, oneview_info)"},{"line_number":269,"context_line":"        validate_node_enclosure_group(oneview_client, oneview_info)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    except exception.OneViewError as oneview_exc:"},{"line_number":272,"context_line":"        raise oneview_exc"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_2b10a756","line":271,"updated":"2017-08-31 06:28:07.000000000","message":"ditto l248","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        validate_node_server_hardware_type(oneview_client, oneview_info)"},{"line_number":269,"context_line":"        validate_node_enclosure_group(oneview_client, oneview_info)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    except exception.OneViewError as oneview_exc:"},{"line_number":272,"context_line":"        raise oneview_exc"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_dd374eb0","line":271,"in_reply_to":"7f287b81_2b10a756","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"975210382d19d1c48804312d7f0592133aa29faa","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            remoteConsoleUrl"},{"line_number":364,"context_line":"    \"\"\""},{"line_number":365,"context_line":"    client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":366,"context_line":"    hardware \u003d json.loads(client.get(\"/rest/v1/systems/1\").text)"},{"line_number":367,"context_line":"    hardware_mac \u003d hardware[\u0027HostCorrelation\u0027][\u0027HostMACAddress\u0027][0]"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    return hardware_mac"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_5fd4ffe8","line":366,"range":{"start_line":366,"start_character":38,"end_line":366,"end_character":56},"updated":"2017-10-27 15:45:05.000000000","message":"I\u0027m 95% sure this is not compatible with moonshots, if it matters :)","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            remoteConsoleUrl"},{"line_number":364,"context_line":"    \"\"\""},{"line_number":365,"context_line":"    client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":366,"context_line":"    hardware \u003d json.loads(client.get(\"/rest/v1/systems/1\").text)"},{"line_number":367,"context_line":"    hardware_mac \u003d hardware[\u0027HostCorrelation\u0027][\u0027HostMACAddress\u0027][0]"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    return hardware_mac"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_4e0ae11f","line":366,"updated":"2017-08-31 06:28:07.000000000","message":"There is exception possible from json.loads() if data is \ncorrupt.","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            remoteConsoleUrl"},{"line_number":364,"context_line":"    \"\"\""},{"line_number":365,"context_line":"    client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":366,"context_line":"    hardware \u003d json.loads(client.get(\"/rest/v1/systems/1\").text)"},{"line_number":367,"context_line":"    hardware_mac \u003d hardware[\u0027HostCorrelation\u0027][\u0027HostMACAddress\u0027][0]"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    return hardware_mac"}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_9d41c60e","line":366,"in_reply_to":"7f287b81_4e0ae11f","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    \"\"\""},{"line_number":365,"context_line":"    client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":366,"context_line":"    hardware \u003d json.loads(client.get(\"/rest/v1/systems/1\").text)"},{"line_number":367,"context_line":"    hardware_mac \u003d hardware[\u0027HostCorrelation\u0027][\u0027HostMACAddress\u0027][0]"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    return hardware_mac"},{"line_number":370,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_ce15b13e","line":367,"updated":"2017-08-31 06:28:07.000000000","message":"Are you sure that TypeError or IndexError impossible here?","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    \"\"\""},{"line_number":365,"context_line":"    client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":366,"context_line":"    hardware \u003d json.loads(client.get(\"/rest/v1/systems/1\").text)"},{"line_number":367,"context_line":"    hardware_mac \u003d hardware[\u0027HostCorrelation\u0027][\u0027HostMACAddress\u0027][0]"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    return hardware_mac"},{"line_number":370,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_3d465223","line":367,"in_reply_to":"7f287b81_ce15b13e","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                # to make a deploy."},{"line_number":391,"context_line":"                if virtual_port.get(\u0027portFunction\u0027) \u003d\u003d \u0027a\u0027:"},{"line_number":392,"context_line":"                    return virtual_port.get(\u0027mac\u0027).lower()"},{"line_number":393,"context_line":"        except Exception:"},{"line_number":394,"context_line":"            raise exception.OneViewError("},{"line_number":395,"context_line":"                _(\"There is no Ethernet port on the Server Hardware: %s\") %"},{"line_number":396,"context_line":"                server_hardware.get(\u0027uri\u0027))"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_8b68bbf4","line":393,"range":{"start_line":393,"start_character":15,"end_line":393,"end_character":24},"updated":"2017-08-31 06:28:07.000000000","message":"Please use TypeError, AttributeError here which are only possible from l381.","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                # to make a deploy."},{"line_number":391,"context_line":"                if virtual_port.get(\u0027portFunction\u0027) \u003d\u003d \u0027a\u0027:"},{"line_number":392,"context_line":"                    return virtual_port.get(\u0027mac\u0027).lower()"},{"line_number":393,"context_line":"        except Exception:"},{"line_number":394,"context_line":"            raise exception.OneViewError("},{"line_number":395,"context_line":"                _(\"There is no Ethernet port on the Server Hardware: %s\") %"},{"line_number":396,"context_line":"                server_hardware.get(\u0027uri\u0027))"}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_fd4faa31","line":393,"range":{"start_line":393,"start_character":15,"end_line":393,"end_character":24},"in_reply_to":"7f287b81_8b68bbf4","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":539,"context_line":"    :raises: OneViewError if there is a port which the MAC address does not"},{"line_number":540,"context_line":"             match any server hardware in OneView"},{"line_number":541,"context_line":"    \"\"\""},{"line_number":542,"context_line":"    if net_interface !\u003d \u0027neutron\u0027:"},{"line_number":543,"context_line":"        _validate_node_port_mac_server_hardware("},{"line_number":544,"context_line":"            oneview_client, oneview_info, ports)"},{"line_number":545,"context_line":"        _validate_server_profile_template_mac_type("}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_0eda9976","line":542,"updated":"2017-08-31 06:28:07.000000000","message":"Better do not use dependencies like this. I can add custom modified \"neutron\" interface and call it \"mysuperneutron\". This check will not work.","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":539,"context_line":"    :raises: OneViewError if there is a port which the MAC address does not"},{"line_number":540,"context_line":"             match any server hardware in OneView"},{"line_number":541,"context_line":"    \"\"\""},{"line_number":542,"context_line":"    if net_interface !\u003d \u0027neutron\u0027:"},{"line_number":543,"context_line":"        _validate_node_port_mac_server_hardware("},{"line_number":544,"context_line":"            oneview_client, oneview_info, ports)"},{"line_number":545,"context_line":"        _validate_server_profile_template_mac_type("}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_dd606ea8","line":542,"in_reply_to":"7f287b81_0eda9976","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            oneview_client, oneview_info, ports)"},{"line_number":545,"context_line":"        _validate_server_profile_template_mac_type("},{"line_number":546,"context_line":"            oneview_client, oneview_info)"},{"line_number":547,"context_line":"    elif oneview_info[\u0027use_oneview_ml2_driver\u0027]:"},{"line_number":548,"context_line":"        valid_ports \u003d get_oneview_valid_ports(ports)"},{"line_number":549,"context_line":"        _validate_node_and_port_server_hardware_id(oneview_info, valid_ports)"},{"line_number":550,"context_line":"        _validate_connection_mac(oneview_client, oneview_info, valid_ports)"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_ce5c911a","line":547,"updated":"2017-08-31 06:28:07.000000000","message":"In the documentation this option enables extra validation, but elif used here. Is it correct?","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"72f9d884fd0b60f3ef63e9e4b01147c1fa692a59","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            oneview_client, oneview_info, ports)"},{"line_number":545,"context_line":"        _validate_server_profile_template_mac_type("},{"line_number":546,"context_line":"            oneview_client, oneview_info)"},{"line_number":547,"context_line":"    elif oneview_info[\u0027use_oneview_ml2_driver\u0027]:"},{"line_number":548,"context_line":"        valid_ports \u003d get_oneview_valid_ports(ports)"},{"line_number":549,"context_line":"        _validate_node_and_port_server_hardware_id(oneview_info, valid_ports)"},{"line_number":550,"context_line":"        _validate_connection_mac(oneview_client, oneview_info, valid_ports)"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_4ede613e","line":547,"range":{"start_line":547,"start_character":23,"end_line":547,"end_character":45},"updated":"2017-08-31 06:34:17.000000000","message":"Is there any check that this driver is used? Looks like this can cause unpredictable exceptions from functions below.","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            oneview_client, oneview_info, ports)"},{"line_number":545,"context_line":"        _validate_server_profile_template_mac_type("},{"line_number":546,"context_line":"            oneview_client, oneview_info)"},{"line_number":547,"context_line":"    elif oneview_info[\u0027use_oneview_ml2_driver\u0027]:"},{"line_number":548,"context_line":"        valid_ports \u003d get_oneview_valid_ports(ports)"},{"line_number":549,"context_line":"        _validate_node_and_port_server_hardware_id(oneview_info, valid_ports)"},{"line_number":550,"context_line":"        _validate_connection_mac(oneview_client, oneview_info, valid_ports)"}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_bd6362b1","line":547,"in_reply_to":"7f287b81_ce5c911a","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":730,"context_line":"    \"\"\""},{"line_number":731,"context_line":"    switch_info \u003d port.local_link_connection.get(\u0027switch_info\u0027)"},{"line_number":732,"context_line":"    if switch_info and isinstance(switch_info, six.text_type):"},{"line_number":733,"context_line":"        switch_info \u003d json.loads(switch_info)"},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"    return switch_info"},{"line_number":736,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_4bd2d3d2","line":733,"range":{"start_line":733,"start_character":22,"end_line":733,"end_character":32},"updated":"2017-08-31 06:28:07.000000000","message":"switch_info can be any string, not only json encoded","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":730,"context_line":"    \"\"\""},{"line_number":731,"context_line":"    switch_info \u003d port.local_link_connection.get(\u0027switch_info\u0027)"},{"line_number":732,"context_line":"    if switch_info and isinstance(switch_info, six.text_type):"},{"line_number":733,"context_line":"        switch_info \u003d json.loads(switch_info)"},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"    return switch_info"},{"line_number":736,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_9d0f86e0","line":733,"range":{"start_line":733,"start_character":22,"end_line":733,"end_character":32},"in_reply_to":"7f287b81_4bd2d3d2","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":742,"context_line":"    ports in the server fabric devices of a server hardware."},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"    :param: server_hardware: OneView server hardware object"},{"line_number":745,"context_line":"    :returns: a list of unique server hardware\u0027s macs"},{"line_number":746,"context_line":"    \"\"\""},{"line_number":747,"context_line":"    macs \u003d []"},{"line_number":748,"context_line":"    device_slots \u003d server_hardware.get(\u0027portMap\u0027).get(\u0027deviceSlots\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_6b334f63","line":745,"range":{"start_line":745,"start_character":14,"end_line":745,"end_character":20},"updated":"2017-08-31 06:28:07.000000000","message":"a set","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":742,"context_line":"    ports in the server fabric devices of a server hardware."},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"    :param: server_hardware: OneView server hardware object"},{"line_number":745,"context_line":"    :returns: a list of unique server hardware\u0027s macs"},{"line_number":746,"context_line":"    \"\"\""},{"line_number":747,"context_line":"    macs \u003d []"},{"line_number":748,"context_line":"    device_slots \u003d server_hardware.get(\u0027portMap\u0027).get(\u0027deviceSlots\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_5df91ec6","line":745,"range":{"start_line":745,"start_character":14,"end_line":745,"end_character":20},"in_reply_to":"7f287b81_6b334f63","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":754,"context_line":"    return set(macs)"},{"line_number":755,"context_line":""},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"def _get_physical_ports(device_slots):"},{"line_number":758,"context_line":"    \"\"\"Get all physical ports from a list of server fabric devices."},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"    :param: physical_ports: a list of server fabric devices"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_ebf17f96","line":757,"updated":"2017-08-31 06:28:07.000000000","message":"This is identical as next function, \u0027physicalPorts\u0027 and strings like this can be a parameter.","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":754,"context_line":"    return set(macs)"},{"line_number":755,"context_line":""},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"def _get_physical_ports(device_slots):"},{"line_number":758,"context_line":"    \"\"\"Get all physical ports from a list of server fabric devices."},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"    :param: physical_ports: a list of server fabric devices"}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_1d0396ba","line":757,"in_reply_to":"7f287b81_ebf17f96","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":775,"context_line":"    \"\"\""},{"line_number":776,"context_line":"    virtual_ports \u003d []"},{"line_number":777,"context_line":"    for physical_port in physical_ports:"},{"line_number":778,"context_line":"        if physical_port and physical_port.get(\u0027virtualPorts\u0027):"},{"line_number":779,"context_line":"            virtual_ports.extend(physical_port.get(\u0027virtualPorts\u0027))"},{"line_number":780,"context_line":"    return virtual_ports"},{"line_number":781,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_2bd30706","line":778,"range":{"start_line":778,"start_character":11,"end_line":778,"end_character":24},"updated":"2017-08-31 06:28:07.000000000","message":"ditto l795","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":775,"context_line":"    \"\"\""},{"line_number":776,"context_line":"    virtual_ports \u003d []"},{"line_number":777,"context_line":"    for physical_port in physical_ports:"},{"line_number":778,"context_line":"        if physical_port and physical_port.get(\u0027virtualPorts\u0027):"},{"line_number":779,"context_line":"            virtual_ports.extend(physical_port.get(\u0027virtualPorts\u0027))"},{"line_number":780,"context_line":"    return virtual_ports"},{"line_number":781,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_dd2e2e42","line":778,"range":{"start_line":778,"start_character":11,"end_line":778,"end_character":24},"in_reply_to":"7f287b81_2bd30706","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":792,"context_line":"    \"\"\""},{"line_number":793,"context_line":"    macs \u003d []"},{"line_number":794,"context_line":"    for oneview_port in oneview_ports:"},{"line_number":795,"context_line":"        if oneview_port and oneview_port.get(\u0027mac\u0027):"},{"line_number":796,"context_line":"            macs.append(oneview_port.get(\u0027mac\u0027).lower())"},{"line_number":797,"context_line":"    return macs"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f287b81_abdff70a","line":795,"range":{"start_line":795,"start_character":11,"end_line":795,"end_character":23},"updated":"2017-08-31 06:28:07.000000000","message":"This is not needed if oneview_port is dict-like and oneview_ports is a list.","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"e836f873af8aa7dd96528fb039129b32b42fdc09","unresolved":false,"context_lines":[{"line_number":792,"context_line":"    \"\"\""},{"line_number":793,"context_line":"    macs \u003d []"},{"line_number":794,"context_line":"    for oneview_port in oneview_ports:"},{"line_number":795,"context_line":"        if oneview_port and oneview_port.get(\u0027mac\u0027):"},{"line_number":796,"context_line":"            macs.append(oneview_port.get(\u0027mac\u0027).lower())"},{"line_number":797,"context_line":"    return macs"}],"source_content_type":"text/x-python","patch_set":19,"id":"5f2577a7_bd3122a5","line":795,"range":{"start_line":795,"start_character":11,"end_line":795,"end_character":23},"in_reply_to":"7f287b81_abdff70a","updated":"2017-09-12 21:31:00.000000000","message":"Done","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c52a1b66300ec9ea5b9ab62cdc9dfc420ceb8ca","unresolved":false,"context_lines":[{"line_number":341,"context_line":"    \"\"\""},{"line_number":342,"context_line":"    if server_hardware.get(\u0027portMap\u0027):"},{"line_number":343,"context_line":"        try:"},{"line_number":344,"context_line":"            for device in server_hardware.get(\u0027portMap\u0027).get(\u0027deviceSlots\u0027):"},{"line_number":345,"context_line":"                for physical_port in device.get(\u0027physicalPorts\u0027):"},{"line_number":346,"context_line":"                    if physical_port.get(\u0027type\u0027) \u003d\u003d \u0027Ethernet\u0027:"},{"line_number":347,"context_line":"                        sh_physical_port \u003d physical_port"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f515b1d_75ded9da","line":344,"range":{"start_line":344,"start_character":75,"end_line":344,"end_character":76},"updated":"2017-10-09 13:21:38.000000000","message":"the 2nd get() will raise if the 1st returns None. And the loop will raise if the 2nd get() returns None. I think you meant\n\n get(\u0027portMap\u0027, {}).get(\u0027deviceSlots\u0027, ())","commit_id":"d37b75eb95e02718a387e453e3002128975161dd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c52a1b66300ec9ea5b9ab62cdc9dfc420ceb8ca","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    if server_hardware.get(\u0027portMap\u0027):"},{"line_number":343,"context_line":"        try:"},{"line_number":344,"context_line":"            for device in server_hardware.get(\u0027portMap\u0027).get(\u0027deviceSlots\u0027):"},{"line_number":345,"context_line":"                for physical_port in device.get(\u0027physicalPorts\u0027):"},{"line_number":346,"context_line":"                    if physical_port.get(\u0027type\u0027) \u003d\u003d \u0027Ethernet\u0027:"},{"line_number":347,"context_line":"                        sh_physical_port \u003d physical_port"},{"line_number":348,"context_line":"                        break"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f515b1d_359bc118","line":345,"updated":"2017-10-09 13:21:38.000000000","message":"ditto, get(\u0027physicalPorts\u0027, ()) otherwise it will raise if it\u0027s missing","commit_id":"d37b75eb95e02718a387e453e3002128975161dd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c52a1b66300ec9ea5b9ab62cdc9dfc420ceb8ca","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                    if physical_port.get(\u0027type\u0027) \u003d\u003d \u0027Ethernet\u0027:"},{"line_number":347,"context_line":"                        sh_physical_port \u003d physical_port"},{"line_number":348,"context_line":"                        break"},{"line_number":349,"context_line":"            for virtual_port in sh_physical_port.get(\u0027virtualPorts\u0027):"},{"line_number":350,"context_line":"                # NOTE(nicodemos): Ironic oneview drivers needs to use a"},{"line_number":351,"context_line":"                # port that type is Ethernet and function \u0027a\u0027 to be able"},{"line_number":352,"context_line":"                # to make a deploy."}],"source_content_type":"text/x-python","patch_set":23,"id":"7f515b1d_d5890dca","line":349,"updated":"2017-10-09 13:21:38.000000000","message":"ditto","commit_id":"d37b75eb95e02718a387e453e3002128975161dd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c52a1b66300ec9ea5b9ab62cdc9dfc420ceb8ca","unresolved":false,"context_lines":[{"line_number":351,"context_line":"                # port that type is Ethernet and function \u0027a\u0027 to be able"},{"line_number":352,"context_line":"                # to make a deploy."},{"line_number":353,"context_line":"                if virtual_port.get(\u0027portFunction\u0027) \u003d\u003d \u0027a\u0027:"},{"line_number":354,"context_line":"                    return virtual_port.get(\u0027mac\u0027).lower()"},{"line_number":355,"context_line":"        except (TypeError, AttributeError):"},{"line_number":356,"context_line":"            raise exception.OneViewError("},{"line_number":357,"context_line":"                _(\"There is no Ethernet port on the Server Hardware: %s\") %"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f515b1d_15b5657e","line":354,"range":{"start_line":354,"start_character":40,"end_line":354,"end_character":58},"updated":"2017-10-09 13:21:38.000000000","message":"similar problem: if you use get(), you expect it to return None. None does not have lower().","commit_id":"d37b75eb95e02718a387e453e3002128975161dd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c52a1b66300ec9ea5b9ab62cdc9dfc420ceb8ca","unresolved":false,"context_lines":[{"line_number":436,"context_line":"    :raises: OneViewError if the Server Profile Template does not allows to"},{"line_number":437,"context_line":"             manage the boot order."},{"line_number":438,"context_line":"    \"\"\""},{"line_number":439,"context_line":"    manage_boot \u003d server_profile_template.get(\u0027boot\u0027).get(\u0027manageBoot\u0027)"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    if not manage_boot:"},{"line_number":442,"context_line":"        message \u003d _(\"Server Profile Template: %s, does not allow to manage \""}],"source_content_type":"text/x-python","patch_set":23,"id":"7f515b1d_356981f8","line":439,"updated":"2017-10-09 13:21:38.000000000","message":"get(\u0027boot\u0027, {})","commit_id":"d37b75eb95e02718a387e453e3002128975161dd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c52a1b66300ec9ea5b9ab62cdc9dfc420ceb8ca","unresolved":false,"context_lines":[{"line_number":478,"context_line":"    sh_enclosure_group_uri \u003d server_hardware.get(\u0027serverGroupUri\u0027)"},{"line_number":479,"context_line":"    node_enclosure_group_uri \u003d oneview_info[\u0027enclosure_group_uri\u0027]"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    if node_enclosure_group_uri:"},{"line_number":482,"context_line":"        if sh_enclosure_group_uri !\u003d node_enclosure_group_uri:"},{"line_number":483,"context_line":"            message \u003d _("},{"line_number":484,"context_line":"                \"Node enclosure_group_uri \u0027%(node_enclosure_group_uri)s\u0027 \""},{"line_number":485,"context_line":"                \"is inconsistent with OneView\u0027s server hardware \""}],"source_content_type":"text/x-python","patch_set":23,"id":"7f515b1d_3552a13c","line":482,"range":{"start_line":481,"start_character":1,"end_line":482,"end_character":62},"updated":"2017-10-09 13:21:38.000000000","message":"nit: you can use one \"if\"\n\n if node_enclosure_group_uri and sh_enclosure_group_uri !\u003d node_enclosure_group_uri:","commit_id":"d37b75eb95e02718a387e453e3002128975161dd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c52a1b66300ec9ea5b9ab62cdc9dfc420ceb8ca","unresolved":false,"context_lines":[{"line_number":498,"context_line":"    :param: oneview_client: the HP OneView Client"},{"line_number":499,"context_line":"    :param: oneview_info: the OneView related info in an Ironic node"},{"line_number":500,"context_line":"    :param: ports: a list of Ironic node\u0027s ports"},{"line_number":501,"context_line":"    :raises: OneViewError if there is a port which the MAC address does not"},{"line_number":502,"context_line":"             match any server hardware in OneView"},{"line_number":503,"context_line":"    \"\"\""},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    if not ports:"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f515b1d_f00ad71d","line":502,"range":{"start_line":501,"start_character":0,"end_line":502,"end_character":49},"updated":"2017-10-09 13:21:38.000000000","message":"this does not match logic on lines 520 - 522. what you actually do is\n\n :raises: OneViewError if there is no port with MAC address matching one in OneView","commit_id":"d37b75eb95e02718a387e453e3002128975161dd"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"6d695a41382ae3b24044a7cda6831bf336fb4ea0","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log as logging"},{"line_number":19,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_5a504133","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":11},"updated":"2017-10-10 07:03:00.000000000","message":"Use from oslo_serialization import jsonutils instead of import json. Please refer to docs here for more detail https://wiki.openstack.org/wiki/Python3#Serialization:_base64.2C_JSON.2C_etc.","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"1c5de835b0c44130a2ef384c64d394996fa13522","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log as logging"},{"line_number":19,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_871b597f","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":11},"in_reply_to":"5f4e5783_5a504133","updated":"2017-10-16 12:37:41.000000000","message":"Done","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b6f507bf19d28e611a1233e54093d583b56fa79","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    return manager_url"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"def get_hponeview_client():"},{"line_number":109,"context_line":"    \"\"\"Generate an instance of the hpOneView client."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    Generates an instance of the hpOneView client using the hpOneView library."}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_e75bd151","line":108,"range":{"start_line":108,"start_character":4,"end_line":108,"end_character":24},"updated":"2017-10-10 09:17:11.000000000","message":"probably better time to rename it as hpeoneview_client as you are now using that in other places in this patch.","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"1c5de835b0c44130a2ef384c64d394996fa13522","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    return manager_url"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"def get_hponeview_client():"},{"line_number":109,"context_line":"    \"\"\"Generate an instance of the hpOneView client."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    Generates an instance of the hpOneView client using the hpOneView library."}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_6714dc44","line":108,"range":{"start_line":108,"start_character":4,"end_line":108,"end_character":24},"in_reply_to":"5f4e5783_e75bd151","updated":"2017-10-16 12:37:41.000000000","message":"The library name is hpOneView, so I think its better keep that way.","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b6f507bf19d28e611a1233e54093d583b56fa79","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        raise exception.OneViewError(error\u003dexc)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC addres from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: remote_console: OneView Remote Console object with a"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_4734e54a","line":310,"range":{"start_line":310,"start_character":38,"end_line":310,"end_character":69},"updated":"2017-10-10 09:17:11.000000000","message":"requires docstring to be defined.","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"1c5de835b0c44130a2ef384c64d394996fa13522","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        raise exception.OneViewError(error\u003dexc)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC addres from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: remote_console: OneView Remote Console object with a"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_073088e7","line":310,"range":{"start_line":310,"start_character":38,"end_line":310,"end_character":69},"in_reply_to":"5f4e5783_4734e54a","updated":"2017-10-16 12:37:41.000000000","message":"Done","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b6f507bf19d28e611a1233e54093d583b56fa79","unresolved":false,"context_lines":[{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC addres from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: remote_console: OneView Remote Console object with a"},{"line_number":314,"context_line":"            remoteConsoleUrl"},{"line_number":315,"context_line":"    :raises: OneViewError if can\u0027t get mac from a server hardware via iLO"},{"line_number":316,"context_line":"    \"\"\""},{"line_number":317,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_a7ef19af","line":314,"range":{"start_line":313,"start_character":12,"end_line":314,"end_character":28},"updated":"2017-10-10 09:17:11.000000000","message":"I dont see this param in the function.","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"1c5de835b0c44130a2ef384c64d394996fa13522","unresolved":false,"context_lines":[{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC addres from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: remote_console: OneView Remote Console object with a"},{"line_number":314,"context_line":"            remoteConsoleUrl"},{"line_number":315,"context_line":"    :raises: OneViewError if can\u0027t get mac from a server hardware via iLO"},{"line_number":316,"context_line":"    \"\"\""},{"line_number":317,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_e74e8c6d","line":314,"range":{"start_line":313,"start_character":12,"end_line":314,"end_character":28},"in_reply_to":"5f4e5783_a7ef19af","updated":"2017-10-16 12:37:41.000000000","message":"Done","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b6f507bf19d28e611a1233e54093d583b56fa79","unresolved":false,"context_lines":[{"line_number":335,"context_line":"    \"\"\"Get the MAC addres of the first PXE bootable port of an Ethernet port."},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    :param: server_hardware: OneView Server Hardware object"},{"line_number":338,"context_line":"    :raises: OneViewError if there is no Ethernet port on the Server Hardware"},{"line_number":339,"context_line":"    :raises: OneViewError if there is no portMap on the Server Hardware"},{"line_number":340,"context_line":"             requested"},{"line_number":341,"context_line":"    \"\"\""},{"line_number":342,"context_line":"    if server_hardware.get(\u0027portMap\u0027):"},{"line_number":343,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_671801d3","line":340,"range":{"start_line":338,"start_character":5,"end_line":340,"end_character":22},"updated":"2017-10-10 09:17:11.000000000","message":"May be you can combine both the statements in one \"raises\"","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"1c5de835b0c44130a2ef384c64d394996fa13522","unresolved":false,"context_lines":[{"line_number":335,"context_line":"    \"\"\"Get the MAC addres of the first PXE bootable port of an Ethernet port."},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    :param: server_hardware: OneView Server Hardware object"},{"line_number":338,"context_line":"    :raises: OneViewError if there is no Ethernet port on the Server Hardware"},{"line_number":339,"context_line":"    :raises: OneViewError if there is no portMap on the Server Hardware"},{"line_number":340,"context_line":"             requested"},{"line_number":341,"context_line":"    \"\"\""},{"line_number":342,"context_line":"    if server_hardware.get(\u0027portMap\u0027):"},{"line_number":343,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_a75414ff","line":340,"range":{"start_line":338,"start_character":5,"end_line":340,"end_character":22},"in_reply_to":"5f4e5783_671801d3","updated":"2017-10-16 12:37:41.000000000","message":"Done","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b6f507bf19d28e611a1233e54093d583b56fa79","unresolved":false,"context_lines":[{"line_number":366,"context_line":"def validate_node_server_profile_template(oneview_client, oneview_info):"},{"line_number":367,"context_line":"    \"\"\"Validate if the Server Profile Template is consistent."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    :param: oneview_client: the HP OneView Client"},{"line_number":370,"context_line":"    :param: oneview_info: the OneView related info in an Ironic node"},{"line_number":371,"context_line":"    :raises: OneViewError if the node\u0027s Server Profile Template is not"},{"line_number":372,"context_line":"             consistent"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_c7fc5540","line":369,"range":{"start_line":369,"start_character":32,"end_line":369,"end_character":42},"updated":"2017-10-10 09:17:11.000000000","message":"probably HPE OneView or remove HP.","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"1c5de835b0c44130a2ef384c64d394996fa13522","unresolved":false,"context_lines":[{"line_number":366,"context_line":"def validate_node_server_profile_template(oneview_client, oneview_info):"},{"line_number":367,"context_line":"    \"\"\"Validate if the Server Profile Template is consistent."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    :param: oneview_client: the HP OneView Client"},{"line_number":370,"context_line":"    :param: oneview_info: the OneView related info in an Ironic node"},{"line_number":371,"context_line":"    :raises: OneViewError if the node\u0027s Server Profile Template is not"},{"line_number":372,"context_line":"             consistent"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_67429c40","line":369,"range":{"start_line":369,"start_character":32,"end_line":369,"end_character":42},"in_reply_to":"5f4e5783_c7fc5540","updated":"2017-10-16 12:37:41.000000000","message":"Done","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"de2fa9042ea3cb316abfb7bdc0ac673ac4987bd0","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    validation fails, the driver will raise an appropriate OneViewError."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    :param oneview_client: an instance of the OneView client"},{"line_number":238,"context_line":"    :param: task: a TaskManager instance containing the node to act on."},{"line_number":239,"context_line":"    \"\"\""},{"line_number":240,"context_line":"    ports \u003d task.ports"},{"line_number":241,"context_line":"    oneview_info \u003d get_oneview_info(task.node)"}],"source_content_type":"text/x-python","patch_set":26,"id":"5f4e5783_97581456","line":238,"range":{"start_line":238,"start_character":4,"end_line":238,"end_character":12},"updated":"2017-10-17 09:14:54.000000000","message":"Add \u0027:raises:\u0027 to docstring","commit_id":"31d74d99caf9ca4acfc14264818292842968d437"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"3cf8750705415c54ed160c27dd58eb00210b79f9","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    validation fails, the driver will raise an appropriate OneViewError."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    :param oneview_client: an instance of the OneView client"},{"line_number":238,"context_line":"    :param: task: a TaskManager instance containing the node to act on."},{"line_number":239,"context_line":"    \"\"\""},{"line_number":240,"context_line":"    ports \u003d task.ports"},{"line_number":241,"context_line":"    oneview_info \u003d get_oneview_info(task.node)"}],"source_content_type":"text/x-python","patch_set":26,"id":"5f4e5783_ab4720bc","line":238,"range":{"start_line":238,"start_character":4,"end_line":238,"end_character":12},"in_reply_to":"5f4e5783_97581456","updated":"2017-10-17 12:30:58.000000000","message":"Done","commit_id":"31d74d99caf9ca4acfc14264818292842968d437"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"de2fa9042ea3cb316abfb7bdc0ac673ac4987bd0","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    :param: oneview_client: an instance of the OneView client"},{"line_number":313,"context_line":"    :param: server_hardware: a server hardware uuid or uri"},{"line_number":314,"context_line":"    :raises: OneViewError if can\u0027t get mac from a server hardware via iLO"},{"line_number":315,"context_line":"    \"\"\""},{"line_number":316,"context_line":"    try:"},{"line_number":317,"context_line":"        client \u003d get_ilorest_client(oneview_client, server_hardware)"}],"source_content_type":"text/x-python","patch_set":26,"id":"5f4e5783_d2433a41","line":314,"range":{"start_line":314,"start_character":13,"end_line":314,"end_character":25},"updated":"2017-10-17 09:14:54.000000000","message":"It can also raise InvalidParameterValue","commit_id":"31d74d99caf9ca4acfc14264818292842968d437"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"3cf8750705415c54ed160c27dd58eb00210b79f9","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    :param: oneview_client: an instance of the OneView client"},{"line_number":313,"context_line":"    :param: server_hardware: a server hardware uuid or uri"},{"line_number":314,"context_line":"    :raises: OneViewError if can\u0027t get mac from a server hardware via iLO"},{"line_number":315,"context_line":"    \"\"\""},{"line_number":316,"context_line":"    try:"},{"line_number":317,"context_line":"        client \u003d get_ilorest_client(oneview_client, server_hardware)"}],"source_content_type":"text/x-python","patch_set":26,"id":"5f4e5783_cb3c9c30","line":314,"range":{"start_line":314,"start_character":13,"end_line":314,"end_character":25},"in_reply_to":"5f4e5783_d2433a41","updated":"2017-10-17 12:30:58.000000000","message":"Done","commit_id":"31d74d99caf9ca4acfc14264818292842968d437"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"de2fa9042ea3cb316abfb7bdc0ac673ac4987bd0","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":318,"context_line":"        hardware \u003d jsonutils.loads(client.get(\"/rest/v1/systems/1\").text)"},{"line_number":319,"context_line":"        hardware_mac \u003d hardware[\u0027HostCorrelation\u0027][\u0027HostMACAddress\u0027][0]"},{"line_number":320,"context_line":"    except (ValueError, TypeError, IndexError) as exc:"},{"line_number":321,"context_line":"        LOG.error("},{"line_number":322,"context_line":"            \"Failed to get mac from server hardware %(server_hardware)s \""},{"line_number":323,"context_line":"            \"via iLO. Error: %(message)s\", {"}],"source_content_type":"text/x-python","patch_set":26,"id":"5f4e5783_523aaa98","line":320,"range":{"start_line":320,"start_character":11,"end_line":320,"end_character":46},"updated":"2017-10-17 09:14:54.000000000","message":"Aren\u0027t there any redfish library specific exceptions that needs to be handled here?\nhttps://github.com/HewlettPackard/python-ilorest-library/blob/3bfe83d6f8f58ec24a80eb5a22f6ac469cb90b8c/src/redfish/rest/v1.py#L653-L668","commit_id":"31d74d99caf9ca4acfc14264818292842968d437"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"3cf8750705415c54ed160c27dd58eb00210b79f9","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":318,"context_line":"        hardware \u003d jsonutils.loads(client.get(\"/rest/v1/systems/1\").text)"},{"line_number":319,"context_line":"        hardware_mac \u003d hardware[\u0027HostCorrelation\u0027][\u0027HostMACAddress\u0027][0]"},{"line_number":320,"context_line":"    except (ValueError, TypeError, IndexError) as exc:"},{"line_number":321,"context_line":"        LOG.error("},{"line_number":322,"context_line":"            \"Failed to get mac from server hardware %(server_hardware)s \""},{"line_number":323,"context_line":"            \"via iLO. Error: %(message)s\", {"}],"source_content_type":"text/x-python","patch_set":26,"id":"5f4e5783_0b37544f","line":320,"range":{"start_line":320,"start_character":11,"end_line":320,"end_character":46},"in_reply_to":"5f4e5783_523aaa98","updated":"2017-10-17 12:30:58.000000000","message":"Done","commit_id":"31d74d99caf9ca4acfc14264818292842968d437"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"de2fa9042ea3cb316abfb7bdc0ac673ac4987bd0","unresolved":false,"context_lines":[{"line_number":333,"context_line":"def _get_server_hardware_mac(server_hardware):"},{"line_number":334,"context_line":"    \"\"\"Get the MAC addres of the first PXE bootable port of an Ethernet port."},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"    :param: server_hardware: OneView Server Hardware object"},{"line_number":337,"context_line":"    :raises: OneViewError if there is no Ethernet port on the Server Hardware"},{"line_number":338,"context_line":"             or if there is no portMap on the Server Hardware requested"},{"line_number":339,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":26,"id":"5f4e5783_295b4087","line":336,"range":{"start_line":336,"start_character":4,"end_line":336,"end_character":12},"updated":"2017-10-17 09:14:54.000000000","message":"Add \u0027:return:\u0027 to the docstring.","commit_id":"31d74d99caf9ca4acfc14264818292842968d437"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"3cf8750705415c54ed160c27dd58eb00210b79f9","unresolved":false,"context_lines":[{"line_number":333,"context_line":"def _get_server_hardware_mac(server_hardware):"},{"line_number":334,"context_line":"    \"\"\"Get the MAC addres of the first PXE bootable port of an Ethernet port."},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"    :param: server_hardware: OneView Server Hardware object"},{"line_number":337,"context_line":"    :raises: OneViewError if there is no Ethernet port on the Server Hardware"},{"line_number":338,"context_line":"             or if there is no portMap on the Server Hardware requested"},{"line_number":339,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":26,"id":"5f4e5783_eb4198aa","line":336,"range":{"start_line":336,"start_character":4,"end_line":336,"end_character":12},"in_reply_to":"5f4e5783_295b4087","updated":"2017-10-17 12:30:58.000000000","message":"Done","commit_id":"31d74d99caf9ca4acfc14264818292842968d437"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        raise exception.OneViewError(error\u003dexc)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC addres from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: oneview_client: an instance of the OneView client"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_2b532f3b","line":310,"range":{"start_line":310,"start_character":38,"end_line":310,"end_character":52},"updated":"2017-10-17 13:16:33.000000000","message":"On patch 510644 we should remove all these `oneview_client` parameters :)","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        raise exception.OneViewError(error\u003dexc)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC addres from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: oneview_client: an instance of the OneView client"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_ceca699f","line":310,"range":{"start_line":310,"start_character":38,"end_line":310,"end_character":52},"in_reply_to":"5f4e5783_2b532f3b","updated":"2017-10-17 13:34:52.000000000","message":"this is a private function, that\u0027s why the oneview_client stills a parameter","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":23375,"name":"Stenio Araujo","email":"stenioaraujo@lsd.ufcg.edu.br","username":"stenioaraujo"},"change_message_id":"94d69d26bebe763f4cfb9e8775a545e41e715669","unresolved":false,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC addres from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: oneview_client: an instance of the OneView client"},{"line_number":314,"context_line":"    :param: server_hardware: a server hardware uuid or uri"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_2e445d46","line":311,"range":{"start_line":311,"start_character":37,"end_line":311,"end_character":43},"updated":"2017-10-17 13:20:05.000000000","message":"nit: address","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC addres from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: oneview_client: an instance of the OneView client"},{"line_number":314,"context_line":"    :param: server_hardware: a server hardware uuid or uri"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_6e013538","line":311,"range":{"start_line":311,"start_character":37,"end_line":311,"end_character":43},"in_reply_to":"5f4e5783_2e445d46","updated":"2017-10-17 13:34:52.000000000","message":"Done","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":23375,"name":"Stenio Araujo","email":"stenioaraujo@lsd.ufcg.edu.br","username":"stenioaraujo"},"change_message_id":"94d69d26bebe763f4cfb9e8775a545e41e715669","unresolved":false,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"def _get_server_hardware_mac(server_hardware):"},{"line_number":340,"context_line":"    \"\"\"Get the MAC addres of the first PXE bootable port of an Ethernet port."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    :param: server_hardware: OneView Server Hardware object"},{"line_number":343,"context_line":"    :return: MAC of the first Ethernet and function \u0027a\u0027 port of the"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_ae584d30","line":340,"range":{"start_line":340,"start_character":19,"end_line":340,"end_character":25},"updated":"2017-10-17 13:20:05.000000000","message":"ditto","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"def _get_server_hardware_mac(server_hardware):"},{"line_number":340,"context_line":"    \"\"\"Get the MAC addres of the first PXE bootable port of an Ethernet port."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    :param: server_hardware: OneView Server Hardware object"},{"line_number":343,"context_line":"    :return: MAC of the first Ethernet and function \u0027a\u0027 port of the"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_4efc393d","line":340,"range":{"start_line":340,"start_character":19,"end_line":340,"end_character":25},"in_reply_to":"5f4e5783_ae584d30","updated":"2017-10-17 13:34:52.000000000","message":"Done","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d3a7441697b28daf7c08cb34a0dd56170f2d7bda","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                for physical_port in device.get(\u0027physicalPorts\u0027, ()):"},{"line_number":354,"context_line":"                    if physical_port.get(\u0027type\u0027) \u003d\u003d \u0027Ethernet\u0027:"},{"line_number":355,"context_line":"                        sh_physical_port \u003d physical_port"},{"line_number":356,"context_line":"                        break"},{"line_number":357,"context_line":"            for virtual_port in sh_physical_port.get(\u0027virtualPorts\u0027, ()):"},{"line_number":358,"context_line":"                # NOTE(nicodemos): Ironic oneview drivers needs to use a"},{"line_number":359,"context_line":"                # port that type is Ethernet and function \u0027a\u0027 to be able"}],"source_content_type":"text/x-python","patch_set":32,"id":"3f4b6375_c05efb74","line":356,"updated":"2017-10-24 08:35:40.000000000","message":"there has to be a check here that sh_physical_port was actually set to something in the \"for\" loop","commit_id":"029ca1ce92708ee898bf2cf241c2c782056416f2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d3a7441697b28daf7c08cb34a0dd56170f2d7bda","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                # to make a deploy."},{"line_number":361,"context_line":"                if virtual_port.get(\u0027portFunction\u0027) \u003d\u003d \u0027a\u0027:"},{"line_number":362,"context_line":"                    return virtual_port.get(\u0027mac\u0027, ()).lower()"},{"line_number":363,"context_line":"        except (TypeError, AttributeError):"},{"line_number":364,"context_line":"            raise exception.OneViewError("},{"line_number":365,"context_line":"                _(\"There is no Ethernet port on the Server Hardware: %s\") %"},{"line_number":366,"context_line":"                server_hardware.get(\u0027uri\u0027))"}],"source_content_type":"text/x-python","patch_set":32,"id":"3f4b6375_a0577f58","line":363,"updated":"2017-10-24 08:35:40.000000000","message":"the try..except block is not needed now that we have proper checks. since you use return on line 362, you can raise unconditionally at this point","commit_id":"029ca1ce92708ee898bf2cf241c2c782056416f2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"199b4c2226bd730ccf5eafca0c1aa07d5c243fd7","unresolved":false,"context_lines":[{"line_number":346,"context_line":"    :raises: OneViewError if there is no Ethernet port on the Server Hardware"},{"line_number":347,"context_line":"             or if there is no portMap on the Server Hardware requested"},{"line_number":348,"context_line":"    \"\"\""},{"line_number":349,"context_line":"    if server_hardware.get(\u0027portMap\u0027):"},{"line_number":350,"context_line":"        for device in server_hardware.get("},{"line_number":351,"context_line":"                \u0027portMap\u0027, {}).get(\u0027deviceSlots\u0027, ()):"},{"line_number":352,"context_line":"            for physical_port in device.get(\u0027physicalPorts\u0027, ()):"}],"source_content_type":"text/x-python","patch_set":37,"id":"3f4b6375_3be832e0","line":349,"updated":"2017-10-25 14:54:32.000000000","message":"please initialize sh_physical_port to None, otherwise it can be left non-initialized","commit_id":"18b3f8006bcc0545fe9b56853f492d7c48ee5c49"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"18d615e0404d2e0917805f4753bd61a487a840e1","unresolved":false,"context_lines":[{"line_number":346,"context_line":"    :raises: OneViewError if there is no Ethernet port on the Server Hardware"},{"line_number":347,"context_line":"             or if there is no portMap on the Server Hardware requested"},{"line_number":348,"context_line":"    \"\"\""},{"line_number":349,"context_line":"    if server_hardware.get(\u0027portMap\u0027):"},{"line_number":350,"context_line":"        for device in server_hardware.get("},{"line_number":351,"context_line":"                \u0027portMap\u0027, {}).get(\u0027deviceSlots\u0027, ()):"},{"line_number":352,"context_line":"            for physical_port in device.get(\u0027physicalPorts\u0027, ()):"}],"source_content_type":"text/x-python","patch_set":37,"id":"3f4b6375_36dcc7e2","line":349,"in_reply_to":"3f4b6375_3be832e0","updated":"2017-10-25 15:43:48.000000000","message":"Done","commit_id":"18b3f8006bcc0545fe9b56853f492d7c48ee5c49"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6284e5f1785b19b5588bd8248a6b2593c6293689","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            server_hardware.get(\u0027uri\u0027))"},{"line_number":368,"context_line":"    else:"},{"line_number":369,"context_line":"        raise exception.OneViewError("},{"line_number":370,"context_line":"            _(\"There is no portMap on the Server Hardware requested. \""},{"line_number":371,"context_line":"              \"Is this a Rack server?\"))"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"3f4b6375_69fc816f","line":370,"range":{"start_line":370,"start_character":42,"end_line":370,"end_character":57},"updated":"2017-10-27 03:57:14.000000000","message":"Add server hardware URI to the message.","commit_id":"4f366093b66fb5e39a95e2f626b731ed34c91943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"3eb5524ff7483a0e4e22df0fdb76f91e707c29ad","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            server_hardware.get(\u0027uri\u0027))"},{"line_number":368,"context_line":"    else:"},{"line_number":369,"context_line":"        raise exception.OneViewError("},{"line_number":370,"context_line":"            _(\"There is no portMap on the Server Hardware requested. \""},{"line_number":371,"context_line":"              \"Is this a Rack server?\"))"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"3f4b6375_cdd8081f","line":370,"range":{"start_line":370,"start_character":42,"end_line":370,"end_character":57},"in_reply_to":"3f4b6375_69fc816f","updated":"2017-10-27 12:34:40.000000000","message":"Done","commit_id":"4f366093b66fb5e39a95e2f626b731ed34c91943"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6284e5f1785b19b5588bd8248a6b2593c6293689","unresolved":false,"context_lines":[{"line_number":529,"context_line":"        if port.address.lower() \u003d\u003d mac.lower():"},{"line_number":530,"context_line":"            return"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    message \u003d _(\"The ports of the node are not compatible with its \""},{"line_number":533,"context_line":"                \"server hardware %(server_hardware_uri)s.\") % {"},{"line_number":534,"context_line":"                    \u0027server_hardware_uri\u0027: server_hardware.get(\u0027uri\u0027)}"},{"line_number":535,"context_line":"    raise exception.OneViewError(message)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3f4b6375_f5b6f43d","line":532,"range":{"start_line":532,"start_character":17,"end_line":532,"end_character":57},"updated":"2017-10-27 03:57:14.000000000","message":"It would be helpful to user if we could provide mac of the incompatible ports in this message.","commit_id":"4f366093b66fb5e39a95e2f626b731ed34c91943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"3eb5524ff7483a0e4e22df0fdb76f91e707c29ad","unresolved":false,"context_lines":[{"line_number":529,"context_line":"        if port.address.lower() \u003d\u003d mac.lower():"},{"line_number":530,"context_line":"            return"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    message \u003d _(\"The ports of the node are not compatible with its \""},{"line_number":533,"context_line":"                \"server hardware %(server_hardware_uri)s.\") % {"},{"line_number":534,"context_line":"                    \u0027server_hardware_uri\u0027: server_hardware.get(\u0027uri\u0027)}"},{"line_number":535,"context_line":"    raise exception.OneViewError(message)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3f4b6375_add38c00","line":532,"range":{"start_line":532,"start_character":17,"end_line":532,"end_character":57},"in_reply_to":"3f4b6375_f5b6f43d","updated":"2017-10-27 12:34:40.000000000","message":"Done","commit_id":"4f366093b66fb5e39a95e2f626b731ed34c91943"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"949bfc2bd1554a5b0836f6a4aead4b6f7f96ea96","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    ports \u003d task.ports"},{"line_number":242,"context_line":"    oneview_info \u003d get_oneview_info(task.node)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"    validate_node_server_profile_template(oneview_client, oneview_info)"},{"line_number":245,"context_line":"    validate_node_server_hardware_type(oneview_client, oneview_info)"},{"line_number":246,"context_line":"    validate_node_enclosure_group(oneview_client, oneview_info)"},{"line_number":247,"context_line":"    validate_node_port_mac_server_hardware(oneview_client, oneview_info, ports)"},{"line_number":248,"context_line":"    validate_server_profile_template_mac_type(oneview_client, oneview_info)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"def _verify_node_info(node_namespace, node_info_dict, info_required):"}],"source_content_type":"text/x-python","patch_set":39,"id":"3f4b6375_6e51e762","line":248,"range":{"start_line":244,"start_character":4,"end_line":248,"end_character":75},"updated":"2017-10-30 09:16:25.000000000","message":"All of these can be private methods in this file as they are not used outside of this file.","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"975210382d19d1c48804312d7f0592133aa29faa","unresolved":false,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"def _get_server_hardware_mac_from_ilo(oneview_client, server_hardware):"},{"line_number":311,"context_line":"    \"\"\"Get the Server Hardware\u0027s MAC address from ilo."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    :param: oneview_client: an instance of the HPE OneView client"},{"line_number":314,"context_line":"    :param: server_hardware: a server hardware uuid or uri"}],"source_content_type":"text/x-python","patch_set":39,"id":"3f4b6375_240c5293","line":311,"updated":"2017-10-27 15:45:05.000000000","message":"nit: you might want to detail this as machine/node ilo controller.","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"975210382d19d1c48804312d7f0592133aa29faa","unresolved":false,"context_lines":[{"line_number":315,"context_line":"    :raises: InvalidParameterValue if required iLO credentials are missing."},{"line_number":316,"context_line":"    :raises: OneViewError if can\u0027t get mac from a server hardware via iLO or"},{"line_number":317,"context_line":"             if fails to get JSON object with the default path."},{"line_number":318,"context_line":"    \"\"\""},{"line_number":319,"context_line":"    try:"},{"line_number":320,"context_line":"        client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":321,"context_line":"        ilo_path \u003d \"/rest/v1/systems/1\""}],"source_content_type":"text/x-python","patch_set":39,"id":"3f4b6375_44098e93","line":318,"range":{"start_line":318,"start_character":0,"end_line":318,"end_character":7},"updated":"2017-10-27 15:45:05.000000000","message":"Docstring is lacking what is returned. :)","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"949bfc2bd1554a5b0836f6a4aead4b6f7f96ea96","unresolved":false,"context_lines":[{"line_number":315,"context_line":"    :raises: InvalidParameterValue if required iLO credentials are missing."},{"line_number":316,"context_line":"    :raises: OneViewError if can\u0027t get mac from a server hardware via iLO or"},{"line_number":317,"context_line":"             if fails to get JSON object with the default path."},{"line_number":318,"context_line":"    \"\"\""},{"line_number":319,"context_line":"    try:"},{"line_number":320,"context_line":"        client \u003d get_ilorest_client(oneview_client, server_hardware)"},{"line_number":321,"context_line":"        ilo_path \u003d \"/rest/v1/systems/1\""}],"source_content_type":"text/x-python","patch_set":39,"id":"3f4b6375_0ea033a5","line":318,"range":{"start_line":318,"start_character":0,"end_line":318,"end_character":7},"in_reply_to":"3f4b6375_44098e93","updated":"2017-10-30 09:16:25.000000000","message":"+1","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"949bfc2bd1554a5b0836f6a4aead4b6f7f96ea96","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                # NOTE(nicodemos): Ironic oneview drivers needs to use a"},{"line_number":361,"context_line":"                # port that type is Ethernet and function \u0027a\u0027 to be able"},{"line_number":362,"context_line":"                # to make a deploy."},{"line_number":363,"context_line":"                if virtual_port.get(\u0027portFunction\u0027) \u003d\u003d \u0027a\u0027:"},{"line_number":364,"context_line":"                    return virtual_port.get(\u0027mac\u0027, ()).lower()"},{"line_number":365,"context_line":"        raise exception.OneViewError("},{"line_number":366,"context_line":"            _(\"There is no Ethernet port on the Server Hardware: %s\") %"}],"source_content_type":"text/x-python","patch_set":39,"id":"3f4b6375_6e79e72d","line":363,"range":{"start_line":363,"start_character":55,"end_line":363,"end_character":58},"updated":"2017-10-30 09:16:25.000000000","message":"Are there any other possible values? I think it would be better to add some description to what is function \"a\"?","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"949bfc2bd1554a5b0836f6a4aead4b6f7f96ea96","unresolved":false,"context_lines":[{"line_number":356,"context_line":"                    sh_physical_port \u003d physical_port"},{"line_number":357,"context_line":"                    break"},{"line_number":358,"context_line":"        if sh_physical_port:"},{"line_number":359,"context_line":"            for virtual_port in sh_physical_port.get(\u0027virtualPorts\u0027, ()):"},{"line_number":360,"context_line":"                # NOTE(nicodemos): Ironic oneview drivers needs to use a"},{"line_number":361,"context_line":"                # port that type is Ethernet and function \u0027a\u0027 to be able"},{"line_number":362,"context_line":"                # to make a deploy."},{"line_number":363,"context_line":"                if virtual_port.get(\u0027portFunction\u0027) \u003d\u003d \u0027a\u0027:"},{"line_number":364,"context_line":"                    return virtual_port.get(\u0027mac\u0027, ()).lower()"},{"line_number":365,"context_line":"        raise exception.OneViewError("},{"line_number":366,"context_line":"            _(\"There is no Ethernet port on the Server Hardware: %s\") %"},{"line_number":367,"context_line":"            server_hardware.get(\u0027uri\u0027))"}],"source_content_type":"text/x-python","patch_set":39,"id":"3f4b6375_0eb713db","line":364,"range":{"start_line":359,"start_character":12,"end_line":364,"end_character":62},"updated":"2017-10-30 09:16:25.000000000","message":"And if there is no such port as \"virtualPorts\" or with function \"a\", then what is the expected return value? In this case it would return None.","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"975210382d19d1c48804312d7f0592133aa29faa","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            server_hardware.get(\u0027uri\u0027))"},{"line_number":368,"context_line":"    else:"},{"line_number":369,"context_line":"        raise exception.OneViewError("},{"line_number":370,"context_line":"            _(\"There is no portMap on the requested Server Hardware: %s. \""},{"line_number":371,"context_line":"              \"Is this a Rack server?\") % server_hardware.get(\u0027uri\u0027))"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"3f4b6375_e453da6b","line":370,"range":{"start_line":370,"start_character":26,"end_line":370,"end_character":34},"updated":"2017-10-27 15:45:05.000000000","message":"nit: It might be good to make this a little more verbose?","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"975210382d19d1c48804312d7f0592133aa29faa","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    else:"},{"line_number":369,"context_line":"        raise exception.OneViewError("},{"line_number":370,"context_line":"            _(\"There is no portMap on the requested Server Hardware: %s. \""},{"line_number":371,"context_line":"              \"Is this a Rack server?\") % server_hardware.get(\u0027uri\u0027))"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"def validate_node_server_profile_template(oneview_client, oneview_info):"}],"source_content_type":"text/x-python","patch_set":39,"id":"3f4b6375_844ae6a9","line":371,"range":{"start_line":371,"start_character":24,"end_line":371,"end_character":37},"updated":"2017-10-27 15:45:05.000000000","message":"nit: as opposed to???","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"}],"ironic/drivers/modules/oneview/deploy.py":[{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).__init__()"},{"line_number":223,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":224,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":225,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def get_properties(self):"},{"line_number":228,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_6b012738","line":225,"range":{"start_line":225,"start_character":0,"end_line":225,"end_character":51},"updated":"2017-10-17 13:16:33.000000000","message":"duplicated code","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":23375,"name":"Stenio Araujo","email":"stenioaraujo@lsd.ufcg.edu.br","username":"stenioaraujo"},"change_message_id":"94d69d26bebe763f4cfb9e8775a545e41e715669","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).__init__()"},{"line_number":223,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":224,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":225,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def get_properties(self):"},{"line_number":228,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_abeb9f75","line":225,"updated":"2017-10-17 13:20:05.000000000","message":"nit: this is duplicated.","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        super(OneViewIscsiDeploy, self).__init__()"},{"line_number":223,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":224,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":225,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def get_properties(self):"},{"line_number":228,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_6e86d5bb","line":225,"in_reply_to":"5f4e5783_abeb9f75","updated":"2017-10-17 13:34:52.000000000","message":"Done","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":23375,"name":"Stenio Araujo","email":"stenioaraujo@lsd.ufcg.edu.br","username":"stenioaraujo"},"change_message_id":"94d69d26bebe763f4cfb9e8775a545e41e715669","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        super(OneViewAgentDeploy, self).__init__()"},{"line_number":268,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":269,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":270,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def get_properties(self):"},{"line_number":273,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_2bf7af5b","line":270,"updated":"2017-10-17 13:20:05.000000000","message":"ditto","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        super(OneViewAgentDeploy, self).__init__()"},{"line_number":268,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":269,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":270,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def get_properties(self):"},{"line_number":273,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_eb1f5769","line":270,"range":{"start_line":270,"start_character":0,"end_line":270,"end_character":51},"updated":"2017-10-17 13:16:33.000000000","message":"ditto","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        super(OneViewAgentDeploy, self).__init__()"},{"line_number":268,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":269,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":270,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def get_properties(self):"},{"line_number":273,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_4e91d9f0","line":270,"in_reply_to":"5f4e5783_2bf7af5b","updated":"2017-10-17 13:34:52.000000000","message":"Done","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"}],"ironic/drivers/modules/oneview/inspect.py":[{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        super(OneViewInspect, self).__init__()"},{"line_number":40,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":41,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":42,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_properties(self):"},{"line_number":45,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_ebc19755","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":51},"updated":"2017-10-17 13:16:33.000000000","message":"Whats the diference from this to L40?","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":23375,"name":"Stenio Araujo","email":"stenioaraujo@lsd.ufcg.edu.br","username":"stenioaraujo"},"change_message_id":"94d69d26bebe763f4cfb9e8775a545e41e715669","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        super(OneViewInspect, self).__init__()"},{"line_number":40,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":41,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":42,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_properties(self):"},{"line_number":45,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_2b8c4fd5","line":42,"updated":"2017-10-17 13:20:05.000000000","message":"ditto","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        common.verify_node_info(task.node)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            common.validate_oneview_resources_compatibility(self.client, task)"},{"line_number":65,"context_line":"        except exception.OneViewError as oneview_exc:"},{"line_number":66,"context_line":"            raise exception.InvalidParameterValue(oneview_exc)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_8bcea360","line":64,"range":{"start_line":64,"start_character":19,"end_line":64,"end_character":59},"updated":"2017-10-17 13:16:33.000000000","message":"Just a thought, why don\u0027t call `common.get_hponeview_client()` instead of instantiate in all interfaces? Maybe this could be addressed on 1693788?","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        common.verify_node_info(task.node)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            common.validate_oneview_resources_compatibility(self.client, task)"},{"line_number":65,"context_line":"        except exception.OneViewError as oneview_exc:"},{"line_number":66,"context_line":"            raise exception.InvalidParameterValue(oneview_exc)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_eec1a555","line":64,"range":{"start_line":64,"start_character":19,"end_line":64,"end_character":59},"in_reply_to":"5f4e5783_8bcea360","updated":"2017-10-17 13:34:52.000000000","message":"This is not related to this patch. See 510644.","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    @METRICS.timer(\u0027OneViewInspect.inspect_hardware\u0027)"},{"line_number":69,"context_line":"    def inspect_hardware(self, task):"},{"line_number":70,"context_line":"        profile_name \u003d \u0027Ironic Inspecting [%s]\u0027 % task.node.uuid"},{"line_number":71,"context_line":"        deploy_utils.allocate_server_hardware_to_ironic("},{"line_number":72,"context_line":"            self.oneview_client, task.node, profile_name"},{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        return super(OneViewInspect, self).inspect_hardware(task)"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_cb337b61","line":71,"range":{"start_line":71,"start_character":21,"end_line":71,"end_character":55},"updated":"2017-10-17 13:16:33.000000000","message":"why in `allocate_server_hardware_to_ironic` method we use self.oneview_client while in `deallocate_server_hardware_from_ironic` we use self.client?","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    @METRICS.timer(\u0027OneViewInspect.inspect_hardware\u0027)"},{"line_number":69,"context_line":"    def inspect_hardware(self, task):"},{"line_number":70,"context_line":"        profile_name \u003d \u0027Ironic Inspecting [%s]\u0027 % task.node.uuid"},{"line_number":71,"context_line":"        deploy_utils.allocate_server_hardware_to_ironic("},{"line_number":72,"context_line":"            self.oneview_client, task.node, profile_name"},{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        return super(OneViewInspect, self).inspect_hardware(task)"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_0e8d2131","line":71,"range":{"start_line":71,"start_character":21,"end_line":71,"end_character":55},"in_reply_to":"5f4e5783_cb337b61","updated":"2017-10-17 13:34:52.000000000","message":"ditto about this patch.","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    def inspect_hardware(self, task):"},{"line_number":70,"context_line":"        profile_name \u003d \u0027Ironic Inspecting [%s]\u0027 % task.node.uuid"},{"line_number":71,"context_line":"        deploy_utils.allocate_server_hardware_to_ironic("},{"line_number":72,"context_line":"            self.oneview_client, task.node, profile_name"},{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        return super(OneViewInspect, self).inspect_hardware(task)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_4bd9cb1f","line":72,"range":{"start_line":72,"start_character":17,"end_line":72,"end_character":31},"updated":"2017-10-17 13:16:33.000000000","message":"ditto thought","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    def inspect_hardware(self, task):"},{"line_number":70,"context_line":"        profile_name \u003d \u0027Ironic Inspecting [%s]\u0027 % task.node.uuid"},{"line_number":71,"context_line":"        deploy_utils.allocate_server_hardware_to_ironic("},{"line_number":72,"context_line":"            self.oneview_client, task.node, profile_name"},{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        return super(OneViewInspect, self).inspect_hardware(task)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_8e80f1f6","line":72,"range":{"start_line":72,"start_character":17,"end_line":72,"end_character":31},"in_reply_to":"5f4e5783_4bd9cb1f","updated":"2017-10-17 13:34:52.000000000","message":"ditto.","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                states.MANAGEABLE, states.INSPECTFAIL"},{"line_number":102,"context_line":"        ]:"},{"line_number":103,"context_line":"            deploy_utils.deallocate_server_hardware_from_ironic("},{"line_number":104,"context_line":"                self.client, task.node"},{"line_number":105,"context_line":"            )"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return result"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_abe83fb2","line":104,"range":{"start_line":104,"start_character":16,"end_line":104,"end_character":27},"updated":"2017-10-17 13:16:33.000000000","message":"ditto thought","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                states.MANAGEABLE, states.INSPECTFAIL"},{"line_number":102,"context_line":"        ]:"},{"line_number":103,"context_line":"            deploy_utils.deallocate_server_hardware_from_ironic("},{"line_number":104,"context_line":"                self.client, task.node"},{"line_number":105,"context_line":"            )"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return result"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_0e92c14c","line":104,"range":{"start_line":104,"start_character":16,"end_line":104,"end_character":27},"in_reply_to":"5f4e5783_abe83fb2","updated":"2017-10-17 13:34:52.000000000","message":"ditto.","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"}],"ironic/drivers/modules/oneview/management.py":[{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        super(OneViewManagement, self).__init__()"},{"line_number":169,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":170,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":171,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def get_properties(self):"},{"line_number":174,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_0e2be182","line":171,"updated":"2017-10-17 13:16:33.000000000","message":"ditto","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":23375,"name":"Stenio Araujo","email":"stenioaraujo@lsd.ufcg.edu.br","username":"stenioaraujo"},"change_message_id":"94d69d26bebe763f4cfb9e8775a545e41e715669","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        super(OneViewManagement, self).__init__()"},{"line_number":169,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":170,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":171,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def get_properties(self):"},{"line_number":174,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_ebc3d7eb","line":171,"updated":"2017-10-17 13:20:05.000000000","message":"ditto","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        super(OneViewManagement, self).__init__()"},{"line_number":169,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":170,"context_line":"        self.oneview_client \u003d common.get_oneview_client()"},{"line_number":171,"context_line":"        self.client \u003d common.get_hponeview_client()"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def get_properties(self):"},{"line_number":174,"context_line":"        return deploy_utils.get_properties()"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f4e5783_6eaff529","line":171,"in_reply_to":"5f4e5783_ebc3d7eb","updated":"2017-10-17 13:34:52.000000000","message":"Done","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"}],"ironic/tests/unit/drivers/modules/oneview/test_common.py":[{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b6f507bf19d28e611a1233e54093d583b56fa79","unresolved":false,"context_lines":[{"line_number":281,"context_line":"            task.ports \u003d [fake_port]"},{"line_number":282,"context_line":"            common.validate_oneview_resources_compatibility(oneview_client,"},{"line_number":283,"context_line":"                                                            task)"},{"line_number":284,"context_line":"            self.assertTrue(common.validate_node_server_profile_template)"},{"line_number":285,"context_line":"            self.assertTrue(common.validate_node_server_hardware_type)"},{"line_number":286,"context_line":"            self.assertTrue(common.validate_node_enclosure_group)"},{"line_number":287,"context_line":"            self.assertTrue(common.validate_node_port_mac_server_hardware)"},{"line_number":288,"context_line":"            self.assertTrue(common.validate_server_profile_template_mac_type)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    @mock.patch.object(common, \u0027get_hponeview_client\u0027, autospec\u003dTrue)"},{"line_number":291,"context_line":"    def test_validate_server_profile_template_mac_type_virtual("}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_0266dbee","line":288,"range":{"start_line":284,"start_character":12,"end_line":288,"end_character":77},"updated":"2017-10-10 09:17:11.000000000","message":"\".called\" should be retained here.","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"1c5de835b0c44130a2ef384c64d394996fa13522","unresolved":false,"context_lines":[{"line_number":281,"context_line":"            task.ports \u003d [fake_port]"},{"line_number":282,"context_line":"            common.validate_oneview_resources_compatibility(oneview_client,"},{"line_number":283,"context_line":"                                                            task)"},{"line_number":284,"context_line":"            self.assertTrue(common.validate_node_server_profile_template)"},{"line_number":285,"context_line":"            self.assertTrue(common.validate_node_server_hardware_type)"},{"line_number":286,"context_line":"            self.assertTrue(common.validate_node_enclosure_group)"},{"line_number":287,"context_line":"            self.assertTrue(common.validate_node_port_mac_server_hardware)"},{"line_number":288,"context_line":"            self.assertTrue(common.validate_server_profile_template_mac_type)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    @mock.patch.object(common, \u0027get_hponeview_client\u0027, autospec\u003dTrue)"},{"line_number":291,"context_line":"    def test_validate_server_profile_template_mac_type_virtual("}],"source_content_type":"text/x-python","patch_set":25,"id":"5f4e5783_c71a70ca","line":288,"range":{"start_line":284,"start_character":12,"end_line":288,"end_character":77},"in_reply_to":"5f4e5783_0266dbee","updated":"2017-10-16 12:37:41.000000000","message":"Done","commit_id":"abb7f32315962cf776aed9c1ad01acdfa0507dd5"}],"releasenotes/notes/oneview-validations-f6d702d1fab77f91.yaml":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"3277d64ec8cd52fb624c70f1b5acdcc69a42f3a4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView drivers,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to the Ironic itself. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient in pro of"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"7f287b81_4b3c13e0","line":4,"updated":"2017-08-31 06:28:07.000000000","message":"Please add info about new driver_info option here, and also remove internal not operator-relate things.","commit_id":"b9add54a8ff5e7e1e1ef29e129f85d3e0d0ea5f9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c52a1b66300ec9ea5b9ab62cdc9dfc420ceb8ca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView drivers,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to the Ironic itself. This"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"7f515b1d_702f0788","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"updated":"2017-10-09 13:21:38.000000000","message":"This is not a new feature - you\u0027re moving the existing validations, right? This can go to the \"other\" section.","commit_id":"d37b75eb95e02718a387e453e3002128975161dd"},{"author":{"_account_id":23375,"name":"Stenio Araujo","email":"stenioaraujo@lsd.ufcg.edu.br","username":"stenioaraujo"},"change_message_id":"94d69d26bebe763f4cfb9e8775a545e41e715669","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView drivers,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to the Ironic itself. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient in pro of"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f4e5783_cb449b76","line":4,"updated":"2017-10-17 13:20:05.000000000","message":"May we say OneView hardware type instead?","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView drivers,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to the Ironic itself. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient in pro of"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f4e5783_aeebad75","line":4,"in_reply_to":"5f4e5783_cb449b76","updated":"2017-10-17 13:34:52.000000000","message":"Done","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView drivers,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to the Ironic itself. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient in pro of"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f4e5783_cbcffb26","line":5,"range":{"start_line":5,"start_character":55,"end_line":5,"end_character":68},"updated":"2017-10-17 13:16:33.000000000","message":"I think you mean \u0027to oneview driver\u0027, right? :)","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView drivers,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to the Ironic itself. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient in pro of"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f4e5783_cee8297d","line":5,"range":{"start_line":5,"start_character":55,"end_line":5,"end_character":68},"in_reply_to":"5f4e5783_cbcffb26","updated":"2017-10-17 13:34:52.000000000","message":"Done","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"f4082e12f831e3085f9433165c0d5f0cc787e57f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView drivers,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to the Ironic itself. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient in pro of"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f4e5783_4be30ba5","line":6,"range":{"start_line":6,"start_character":67,"end_line":6,"end_character":70},"updated":"2017-10-17 13:16:33.000000000","message":"pro?","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":14675,"name":"Hugo Nicodemos","email":"hugo.brito@windriver.com","username":"nicodemos"},"change_message_id":"2e91367a72e82d74e811c592a5a6b46e3ddfcef6","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView drivers,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to the Ironic itself. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient in pro of"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f4e5783_eef52558","line":6,"range":{"start_line":6,"start_character":67,"end_line":6,"end_character":70},"in_reply_to":"5f4e5783_4be30ba5","updated":"2017-10-17 13:34:52.000000000","message":"Done","commit_id":"7ed33f35920a8ed2ea9f137f9d8048f8312dd943"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"975210382d19d1c48804312d7f0592133aa29faa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView hardware type,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to OneView driver. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient to"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":39,"id":"3f4b6375_e7107c52","line":4,"range":{"start_line":4,"start_character":27,"end_line":4,"end_character":28},"updated":"2017-10-27 15:45:05.000000000","message":"This likely shouldn\u0027t be plural as validations is plural.","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"975210382d19d1c48804312d7f0592133aa29faa","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds the implementations of the validations for the OneView hardware type,"},{"line_number":5,"context_line":"    migrating from python-oneviewclient library to OneView driver. This"},{"line_number":6,"context_line":"    process is part of removing the use of python-oneviewclient to"},{"line_number":7,"context_line":"    python-hpOneView and python-ilorest-library."}],"source_content_type":"text/x-yaml","patch_set":39,"id":"3f4b6375_075a7829","line":6,"range":{"start_line":6,"start_character":23,"end_line":6,"end_character":31},"updated":"2017-10-27 15:45:05.000000000","message":"s/removing/migrating from/?\n\nAlso, we may want to wrap the library names in the ``text`` style for visibility, but this is just a thought.","commit_id":"c615eb3f9c45eb64d38ef66cf000389dca860e07"}]}
