)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add RedfishInspect Interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds the InspectInterface for Redfish driver."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: 1668487"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df7087c5_72f7fe8c","line":9,"range":{"start_line":9,"start_character":41,"end_line":9,"end_character":55},"updated":"2018-03-22 13:57:58.000000000","message":"s/ Redfish driver / \u0027redfish\u0027 hardware type/","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add RedfishInspect Interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds the InspectInterface for Redfish driver."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: 1668487"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5f7c97a3_0bf3bf6e","line":9,"range":{"start_line":9,"start_character":41,"end_line":9,"end_character":55},"in_reply_to":"df7087c5_72f7fe8c","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: 1668487"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: I19acd74e26a861147df747f3d3f34852decf5403"},{"line_number":14,"context_line":"            I82da7166a1f9024c71c9bc5349bd1ba430058923"},{"line_number":15,"context_line":"Change-Id: Ie3167569db060620fe0b9784bc7d7a854f2ef754"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df7087c5_b201166d","line":13,"range":{"start_line":13,"start_character":12,"end_line":13,"end_character":53},"updated":"2018-03-22 13:57:58.000000000","message":"This is merged, it can be removed from dependency list.","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: 1668487"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: I19acd74e26a861147df747f3d3f34852decf5403"},{"line_number":14,"context_line":"            I82da7166a1f9024c71c9bc5349bd1ba430058923"},{"line_number":15,"context_line":"Change-Id: Ie3167569db060620fe0b9784bc7d7a854f2ef754"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5f7c97a3_cb9627f0","line":13,"range":{"start_line":13,"start_character":12,"end_line":13,"end_character":53},"in_reply_to":"df7087c5_b201166d","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b786c6b02adf47cb6d6b0be9fba7dfd7fb2796f8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Task: 10571"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Ilya Etingof \u003cetingof@gmail.com\u003e"},{"line_number":15,"context_line":"Depends-On: I19acd74e26a861147df747f3d3f34852decf5403"},{"line_number":16,"context_line":"            I82da7166a1f9024c71c9bc5349bd1ba430058923"},{"line_number":17,"context_line":"Change-Id: Ie3167569db060620fe0b9784bc7d7a854f2ef754"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5f7c97a3_ae7f7415","line":15,"range":{"start_line":15,"start_character":12,"end_line":15,"end_character":53},"updated":"2018-07-16 18:04:23.000000000","message":"Looks like this merged long ago.","commit_id":"825855ca8f1a2628b0daa0ad563220f717556e31"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Task: 10571"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Ilya Etingof \u003cetingof@gmail.com\u003e"},{"line_number":15,"context_line":"Depends-On: I19acd74e26a861147df747f3d3f34852decf5403"},{"line_number":16,"context_line":"            I82da7166a1f9024c71c9bc5349bd1ba430058923"},{"line_number":17,"context_line":"Change-Id: Ie3167569db060620fe0b9784bc7d7a854f2ef754"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5f7c97a3_3c7b6c7a","line":15,"range":{"start_line":15,"start_character":12,"end_line":15,"end_character":53},"in_reply_to":"5f7c97a3_ae7f7415","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"825855ca8f1a2628b0daa0ad563220f717556e31"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b786c6b02adf47cb6d6b0be9fba7dfd7fb2796f8","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Ilya Etingof \u003cetingof@gmail.com\u003e"},{"line_number":15,"context_line":"Depends-On: I19acd74e26a861147df747f3d3f34852decf5403"},{"line_number":16,"context_line":"            I82da7166a1f9024c71c9bc5349bd1ba430058923"},{"line_number":17,"context_line":"Change-Id: Ie3167569db060620fe0b9784bc7d7a854f2ef754"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5f7c97a3_6e795c2e","line":16,"range":{"start_line":16,"start_character":11,"end_line":16,"end_character":53},"updated":"2018-07-16 18:04:23.000000000","message":"This has negative feedback and I\u0027m curious if it is still needed or if it blocks this interface from landing?","commit_id":"825855ca8f1a2628b0daa0ad563220f717556e31"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Ilya Etingof \u003cetingof@gmail.com\u003e"},{"line_number":15,"context_line":"Depends-On: I19acd74e26a861147df747f3d3f34852decf5403"},{"line_number":16,"context_line":"            I82da7166a1f9024c71c9bc5349bd1ba430058923"},{"line_number":17,"context_line":"Change-Id: Ie3167569db060620fe0b9784bc7d7a854f2ef754"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5f7c97a3_1c20f04a","line":16,"range":{"start_line":16,"start_character":11,"end_line":16,"end_character":53},"in_reply_to":"5f7c97a3_6e795c2e","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"825855ca8f1a2628b0daa0ad563220f717556e31"}],"doc/source/admin/drivers/redfish.rst":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"adcca32d15531fb07ae86d236ae54a9c54e319ec","unresolved":false,"context_lines":[{"line_number":110,"context_line":"^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"The ``redfish`` hardware type can inspect the bare metal node by querying"},{"line_number":113,"context_line":"Redfish BMC. This process if quick and reliable compared to the way"},{"line_number":114,"context_line":"how the ``inspector`` hardware type works e.g. booting bare metal node into"},{"line_number":115,"context_line":"the introspection ramdisk."},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_c95f13e2","line":113,"range":{"start_line":113,"start_character":7,"end_line":113,"end_character":8},"updated":"2018-11-07 22:20:57.000000000","message":"nit: s/Redfish/Redfish compatible\"","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":110,"context_line":"^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"The ``redfish`` hardware type can inspect the bare metal node by querying"},{"line_number":113,"context_line":"Redfish BMC. This process if quick and reliable compared to the way"},{"line_number":114,"context_line":"how the ``inspector`` hardware type works e.g. booting bare metal node into"},{"line_number":115,"context_line":"the introspection ramdisk."},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_60973b48","line":113,"updated":"2018-11-20 11:09:32.000000000","message":"s/if/is/","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"The ``redfish`` hardware type can inspect the bare metal node by querying"},{"line_number":113,"context_line":"Redfish BMC. This process if quick and reliable compared to the way"},{"line_number":114,"context_line":"how the ``inspector`` hardware type works e.g. booting bare metal node into"},{"line_number":115,"context_line":"the introspection ramdisk."},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_5e8d2c34","line":113,"in_reply_to":"3f79a3b5_60973b48","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"The ``redfish`` hardware type can inspect the bare metal node by querying"},{"line_number":113,"context_line":"Redfish BMC. This process if quick and reliable compared to the way"},{"line_number":114,"context_line":"how the ``inspector`` hardware type works e.g. booting bare metal node into"},{"line_number":115,"context_line":"the introspection ramdisk."},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_9ea3c4b0","line":113,"range":{"start_line":113,"start_character":7,"end_line":113,"end_character":8},"in_reply_to":"3f79a3b5_c95f13e2","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"The ``redfish`` hardware type can inspect the bare metal node by querying"},{"line_number":113,"context_line":"Redfish BMC. This process if quick and reliable compared to the way"},{"line_number":114,"context_line":"how the ``inspector`` hardware type works e.g. booting bare metal node into"},{"line_number":115,"context_line":"the introspection ramdisk."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_80929754","line":114,"updated":"2018-11-20 11:09:32.000000000","message":"s/how//, s/e.g./i.e./ (or I\u0027d drop the last part completely).","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"The ``redfish`` hardware type can inspect the bare metal node by querying"},{"line_number":113,"context_line":"Redfish BMC. This process if quick and reliable compared to the way"},{"line_number":114,"context_line":"how the ``inspector`` hardware type works e.g. booting bare metal node into"},{"line_number":115,"context_line":"the introspection ramdisk."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_9e7c2423","line":114,"in_reply_to":"3f79a3b5_80929754","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. note::"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   The ``redfish`` inspect interface largely relies on the optional parts"},{"line_number":120,"context_line":"   of the Redfish specification. Not all Redfish-compliant BMCs might serve"},{"line_number":121,"context_line":"   the required information, in which case bare metal node inspection would"},{"line_number":122,"context_line":"   fail."}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_20838308","line":119,"updated":"2018-11-20 11:09:32.000000000","message":"s/largely//","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. note::"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   The ``redfish`` inspect interface largely relies on the optional parts"},{"line_number":120,"context_line":"   of the Redfish specification. Not all Redfish-compliant BMCs might serve"},{"line_number":121,"context_line":"   the required information, in which case bare metal node inspection would"},{"line_number":122,"context_line":"   fail."}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_fe8af80f","line":119,"in_reply_to":"3f79a3b5_20838308","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   The ``redfish`` inspect interface largely relies on the optional parts"},{"line_number":120,"context_line":"   of the Redfish specification. Not all Redfish-compliant BMCs might serve"},{"line_number":121,"context_line":"   the required information, in which case bare metal node inspection would"},{"line_number":122,"context_line":"   fail."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":".. _Redfish: http://redfish.dmtf.org/"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_4086bf17","line":121,"updated":"2018-11-20 11:09:32.000000000","message":"s/would/will/ (I think)","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   The ``redfish`` inspect interface largely relies on the optional parts"},{"line_number":120,"context_line":"   of the Redfish specification. Not all Redfish-compliant BMCs might serve"},{"line_number":121,"context_line":"   the required information, in which case bare metal node inspection would"},{"line_number":122,"context_line":"   fail."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":".. _Redfish: http://redfish.dmtf.org/"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f79a3b5_5e9bec63","line":121,"in_reply_to":"3f79a3b5_4086bf17","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"564b37f87a2b27373fa52aebcee5778f56e356fd","unresolved":false,"context_lines":[{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    \"\"\""},{"line_number":574,"context_line":"    node \u003d task.node"},{"line_number":575,"context_line":"    for port_num, mac in macs.items():"},{"line_number":576,"context_line":"        port_dict \u003d {\u0027address\u0027: mac, \u0027node_id\u0027: node.id}"},{"line_number":577,"context_line":"        port \u003d objects.Port(task.context, **port_dict)"},{"line_number":578,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_d29d0fbc","line":575,"updated":"2018-08-29 15:17:18.000000000","message":"Why do you need port_num? Also iLO does not have it, are you sure you\u0027re not breaking iLO inspection?","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    \"\"\""},{"line_number":574,"context_line":"    node \u003d task.node"},{"line_number":575,"context_line":"    for port_num, mac in macs.items():"},{"line_number":576,"context_line":"        port_dict \u003d {\u0027address\u0027: mac, \u0027node_id\u0027: node.id}"},{"line_number":577,"context_line":"        port \u003d objects.Port(task.context, **port_dict)"},{"line_number":578,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_e8aae681","line":575,"in_reply_to":"3f79a3b5_d29d0fbc","updated":"2018-09-07 17:26:00.000000000","message":"Hold on, is not this function taken right from ilo almost intact?\n\nI just replaced `macs.values()` with `macs.items()` to improve logging a bit. Does port information in the log make any sense?\n\nWhy do you think ilo does not have port IDs in the `macs` dict [1]?\n\n1. https://github.com/openstack/ironic/blob/master/ironic/tests/unit/drivers/modules/ilo/test_inspect.py#L70","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":579,"context_line":"            return port.address"},{"line_number":580,"context_line":""},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"def create_ports_if_not_exist(task, macs):"},{"line_number":583,"context_line":"    \"\"\"Create ironic ports for the mac addresses."},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    Creates ironic ports for the mac addresses returned with inspection"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_60a5fb9f","line":582,"updated":"2018-11-20 11:09:32.000000000","message":"nit: I don\u0027t think this belongs in deploy_utils. time for inspect_utils? :)","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":579,"context_line":"            return port.address"},{"line_number":580,"context_line":""},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"def create_ports_if_not_exist(task, macs):"},{"line_number":583,"context_line":"    \"\"\"Create ironic ports for the mac addresses."},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    Creates ironic ports for the mac addresses returned with inspection"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_64097a27","line":582,"in_reply_to":"3f79a3b5_60a5fb9f","updated":"2018-11-21 10:02:28.000000000","message":"Moved","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":592,"context_line":"    \"\"\""},{"line_number":593,"context_line":"    node \u003d task.node"},{"line_number":594,"context_line":"    for port_num, mac in macs.items():"},{"line_number":595,"context_line":"        port_dict \u003d {\u0027address\u0027: mac, \u0027node_id\u0027: node.id}"},{"line_number":596,"context_line":"        port \u003d objects.Port(task.context, **port_dict)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_80a05790","line":595,"updated":"2018-11-20 11:09:32.000000000","message":"We should really detect pxe_enabled one day..","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":592,"context_line":"    \"\"\""},{"line_number":593,"context_line":"    node \u003d task.node"},{"line_number":594,"context_line":"    for port_num, mac in macs.items():"},{"line_number":595,"context_line":"        port_dict \u003d {\u0027address\u0027: mac, \u0027node_id\u0027: node.id}"},{"line_number":596,"context_line":"        port \u003d objects.Port(task.context, **port_dict)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_2447021e","line":595,"in_reply_to":"3f79a3b5_80a05790","updated":"2018-11-21 10:02:28.000000000","message":"Added a TODO item, perhaps we\u0027d better have a Story.\n\nWould you mind drafting some basic logic behind --pxe-enabled processing here (or open up a Story).","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"}],"ironic/drivers/modules/redfish/inspect.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"27a94e5f41444f8cfa593e2ef5509f1a164c1cb0","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # get the essential properties and update the node properties"},{"line_number":90,"context_line":"        # with it."},{"line_number":91,"context_line":"        inspected_properties \u003d {}"},{"line_number":92,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d system.memory_gib * 1024"},{"line_number":93,"context_line":"        (cpus, arch) \u003d system.processor_summary()"},{"line_number":94,"context_line":"        inspected_properties.update({\u0027cpus\u0027, cpus})"},{"line_number":95,"context_line":"        inspected_properties.update({\u0027cpu_arch\u0027, arch})"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_44035c0e","line":92,"range":{"start_line":92,"start_character":44,"end_line":92,"end_character":61},"updated":"2017-06-23 06:09:21.000000000","message":"It should be system.memory_summary.size_gib\nhttps://github.com/openstack/sushy/blob/963c83ab783ad829fe385e33a059c4f5a8718a99/sushy/resources/system/system.py#L119","commit_id":"6e175c7ca046ce46e23eac89e13c686ea20a7152"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"27a94e5f41444f8cfa593e2ef5509f1a164c1cb0","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        # with it."},{"line_number":91,"context_line":"        inspected_properties \u003d {}"},{"line_number":92,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d system.memory_gib * 1024"},{"line_number":93,"context_line":"        (cpus, arch) \u003d system.processor_summary()"},{"line_number":94,"context_line":"        inspected_properties.update({\u0027cpus\u0027, cpus})"},{"line_number":95,"context_line":"        inspected_properties.update({\u0027cpu_arch\u0027, arch})"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_2a5b87f7","line":93,"range":{"start_line":93,"start_character":8,"end_line":93,"end_character":49},"updated":"2017-06-23 06:09:21.000000000","message":"This is incorrect. It should be:-\n(cpus, arch) \u003d system.processors.summary","commit_id":"6e175c7ca046ce46e23eac89e13c686ea20a7152"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"27a94e5f41444f8cfa593e2ef5509f1a164c1cb0","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        if not(system.memory_gib and cpus and arch and local_gb and macs):"},{"line_number":104,"context_line":"            raise exception.HardwareInspectionFailure("},{"line_number":105,"context_line":"                (\"Few or all mandatory attributes \""},{"line_number":106,"context_line":"                 \"are missing on node %(node)s: \", {\u0027node\u0027: task.node.uuid}))"},{"line_number":107,"context_line":"        task.node.save()"},{"line_number":108,"context_line":"        # Create ports for the nics detected."}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_4a6483b9","line":105,"range":{"start_line":105,"start_character":15,"end_line":105,"end_character":51},"updated":"2017-06-23 06:09:21.000000000","message":"Better to mention expected/missing fields explicitly.","commit_id":"6e175c7ca046ce46e23eac89e13c686ea20a7152"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"27a94e5f41444f8cfa593e2ef5509f1a164c1cb0","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                   \u0027node\u0027: task.node.uuid})"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        LOG.info((\"Node %s inspected.\"), task.node.uuid)"},{"line_number":117,"context_line":"        return states.MANAGEABLE"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_84a85477","line":117,"range":{"start_line":117,"start_character":8,"end_line":117,"end_character":32},"updated":"2017-06-23 06:09:21.000000000","message":"Need to handle sushy errors for all sushy calls.","commit_id":"6e175c7ca046ce46e23eac89e13c686ea20a7152"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"5083c5b6ed0ab269f2ff1635dfe46da922ea297c","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        properties \u003d {}"},{"line_number":92,"context_line":"        properties[\u0027memory_mb\u0027] \u003d system.memory_summary.size_gib * 1024"},{"line_number":93,"context_line":"        (cpus, arch) \u003d system.processors.summary()"},{"line_number":94,"context_line":"        inspected_properties.update({\u0027cpus\u0027, cpus})"},{"line_number":95,"context_line":"        inspected_properties.update({\u0027cpu_arch\u0027, arch})"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        # TODO(nisha): Add the disk size and mac inspection to sushy."}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_20740735","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":28},"updated":"2017-07-13 06:32:48.000000000","message":"Where is this dict initialized?","commit_id":"ed71260131f2bac99dd9dd67882846dc18afbe9c"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"5083c5b6ed0ab269f2ff1635dfe46da922ea297c","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        # TODO(nisha): Add the disk size and mac inspection to sushy."},{"line_number":98,"context_line":"        local_gb \u003d system.storage_summary()"},{"line_number":99,"context_line":"        macs \u003d system.ethernet_interfaces.eth_summary"},{"line_number":100,"context_line":"        inspected_properties.update({\u0027local_gb\u0027, local_gb})"},{"line_number":101,"context_line":"        valid_keys \u003d self.ESSENTIAL_PROPERTIES"},{"line_number":102,"context_line":"        missing_keys \u003d valid_keys - set(properties)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_40aca38b","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":12},"updated":"2017-07-13 06:32:48.000000000","message":"macs is not updated in properties dict. Do we need to do that?\nIf not I think we can bring this statement to L111 where it is actually used.","commit_id":"ed71260131f2bac99dd9dd67882846dc18afbe9c"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c2a30978870c2f06f5c5ac1d74b0b4a9d682b173","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    or as requested by operator."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    :param task: a TaskManager instance."},{"line_number":37,"context_line":"    :param macs: A dictionary of port numbers to mac addresses"},{"line_number":38,"context_line":"                 returned by node inspection."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_891e370b","line":37,"range":{"start_line":37,"start_character":17,"end_line":37,"end_character":45},"updated":"2018-07-03 12:36:58.000000000","message":"Those port numbers do not seem to be used here. May be just pass a list of macs?","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    or as requested by operator."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    :param task: a TaskManager instance."},{"line_number":37,"context_line":"    :param macs: A dictionary of port numbers to mac addresses"},{"line_number":38,"context_line":"                 returned by node inspection."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_4a2f5aa6","line":37,"range":{"start_line":37,"start_character":17,"end_line":37,"end_character":45},"in_reply_to":"5f7c97a3_891e370b","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":27,"context_line":"sushy \u003d importutils.try_import(\u0027sushy\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _create_ports_if_not_exist(task, macs):"},{"line_number":31,"context_line":"    \"\"\"Create ironic ports for the mac addresses."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Creates ironic ports for the mac addresses returned with inspection"},{"line_number":34,"context_line":"    or as requested by operator."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    :param task: a TaskManager instance."},{"line_number":37,"context_line":"    :param macs: A dictionary of port numbers to mac addresses"},{"line_number":38,"context_line":"                 returned by node inspection."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    \"\"\""},{"line_number":41,"context_line":"    node \u003d task.node"},{"line_number":42,"context_line":"    for mac in macs.values():"},{"line_number":43,"context_line":"        port_dict \u003d {\u0027address\u0027: mac, \u0027node_id\u0027: node.id}"},{"line_number":44,"context_line":"        port \u003d objects.Port(task.context, **port_dict)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        try:"},{"line_number":47,"context_line":"            port.create()"},{"line_number":48,"context_line":"            LOG.info((\"Port created for MAC address %(address)s for node \""},{"line_number":49,"context_line":"                      \"%(node)s\"), {\u0027address\u0027: mac, \u0027node\u0027: node.uuid})"},{"line_number":50,"context_line":"        except exception.MACAlreadyExists:"},{"line_number":51,"context_line":"            LOG.warning((\"Port already exists for MAC address %(address)s \""},{"line_number":52,"context_line":"                         \"for node %(node)s\"),"},{"line_number":53,"context_line":"                        {\u0027address\u0027: mac, \u0027node\u0027: node.uuid})"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class RedfishInspect(base.InspectInterface):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_2f8cbdd5","line":53,"range":{"start_line":30,"start_character":0,"end_line":53,"end_character":60},"updated":"2018-03-22 13:57:58.000000000","message":"This code exists in https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/ilo/inspect.py#L51-L74\nInstead of duplication, better to move it to some common place (deploy_utils?)","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"sushy \u003d importutils.try_import(\u0027sushy\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _create_ports_if_not_exist(task, macs):"},{"line_number":31,"context_line":"    \"\"\"Create ironic ports for the mac addresses."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Creates ironic ports for the mac addresses returned with inspection"},{"line_number":34,"context_line":"    or as requested by operator."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    :param task: a TaskManager instance."},{"line_number":37,"context_line":"    :param macs: A dictionary of port numbers to mac addresses"},{"line_number":38,"context_line":"                 returned by node inspection."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    \"\"\""},{"line_number":41,"context_line":"    node \u003d task.node"},{"line_number":42,"context_line":"    for mac in macs.values():"},{"line_number":43,"context_line":"        port_dict \u003d {\u0027address\u0027: mac, \u0027node_id\u0027: node.id}"},{"line_number":44,"context_line":"        port \u003d objects.Port(task.context, **port_dict)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        try:"},{"line_number":47,"context_line":"            port.create()"},{"line_number":48,"context_line":"            LOG.info((\"Port created for MAC address %(address)s for node \""},{"line_number":49,"context_line":"                      \"%(node)s\"), {\u0027address\u0027: mac, \u0027node\u0027: node.uuid})"},{"line_number":50,"context_line":"        except exception.MACAlreadyExists:"},{"line_number":51,"context_line":"            LOG.warning((\"Port already exists for MAC address %(address)s \""},{"line_number":52,"context_line":"                         \"for node %(node)s\"),"},{"line_number":53,"context_line":"                        {\u0027address\u0027: mac, \u0027node\u0027: node.uuid})"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class RedfishInspect(base.InspectInterface):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_aae5ce08","line":53,"range":{"start_line":30,"start_character":0,"end_line":53,"end_character":60},"in_reply_to":"df7087c5_2f8cbdd5","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class RedfishInspect(base.InspectInterface):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def get_properties(self):"},{"line_number":59,"context_line":"        return redfish_utils.COMMON_PROPERTIES.copy()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def validate(self, task):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_6f5dd545","line":58,"range":{"start_line":58,"start_character":4,"end_line":58,"end_character":29},"updated":"2018-03-22 13:57:58.000000000","message":"Add docstring for this method.","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class RedfishInspect(base.InspectInterface):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def get_properties(self):"},{"line_number":59,"context_line":"        return redfish_utils.COMMON_PROPERTIES.copy()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def validate(self, task):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_ea066621","line":58,"range":{"start_line":58,"start_character":4,"end_line":58,"end_character":29},"in_reply_to":"df7087c5_6f5dd545","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return redfish_utils.COMMON_PROPERTIES.copy()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def validate(self, task):"},{"line_number":62,"context_line":"        \"\"\"Check that \u0027driver_info\u0027 contains required credentials."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        Validates whether the \u0027driver_info\u0027 property of the supplied"},{"line_number":65,"context_line":"        task\u0027s node contains the required credentials information."}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_af152d4b","line":62,"range":{"start_line":62,"start_character":54,"end_line":62,"end_character":65},"updated":"2018-03-22 13:57:58.000000000","message":"It would validate all the information present in driver_info and not just credentials.","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return redfish_utils.COMMON_PROPERTIES.copy()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def validate(self, task):"},{"line_number":62,"context_line":"        \"\"\"Check that \u0027driver_info\u0027 contains required credentials."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        Validates whether the \u0027driver_info\u0027 property of the supplied"},{"line_number":65,"context_line":"        task\u0027s node contains the required credentials information."}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_a558a124","line":62,"range":{"start_line":62,"start_character":54,"end_line":62,"end_character":65},"in_reply_to":"df7087c5_af152d4b","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c2a30978870c2f06f5c5ac1d74b0b4a9d682b173","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def validate(self, task):"},{"line_number":62,"context_line":"        \"\"\"Check that \u0027driver_info\u0027 contains required credentials."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        Validates whether the \u0027driver_info\u0027 property of the supplied"},{"line_number":65,"context_line":"        task\u0027s node contains the required credentials information."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        :param task: a task from TaskManager."},{"line_number":68,"context_line":"        :raises: InvalidParameterValue if required parameters"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_e9cb2ba1","line":65,"range":{"start_line":64,"start_character":8,"end_line":65,"end_character":66},"updated":"2018-07-03 12:36:58.000000000","message":"Looking at the `parse_driver_info`, I am not sure it really ensures the presence of the credentials (meaning username and password).","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def validate(self, task):"},{"line_number":62,"context_line":"        \"\"\"Check that \u0027driver_info\u0027 contains required credentials."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        Validates whether the \u0027driver_info\u0027 property of the supplied"},{"line_number":65,"context_line":"        task\u0027s node contains the required credentials information."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        :param task: a task from TaskManager."},{"line_number":68,"context_line":"        :raises: InvalidParameterValue if required parameters"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_a586615e","line":65,"range":{"start_line":64,"start_character":8,"end_line":65,"end_character":66},"in_reply_to":"5f7c97a3_e9cb2ba1","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c2a30978870c2f06f5c5ac1d74b0b4a9d682b173","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        inspected_properties \u003d {}"},{"line_number":92,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":93,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":94,"context_line":"        (cpus, arch) \u003d system.processors.summary()"},{"line_number":95,"context_line":"        inspected_properties.update({\u0027cpus\u0027, cpus})"},{"line_number":96,"context_line":"        inspected_properties.update({\u0027cpu_arch\u0027, arch})"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_e9400b09","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":9},"updated":"2018-07-03 12:36:58.000000000","message":"nit: parenthesis not required","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        inspected_properties \u003d {}"},{"line_number":92,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":93,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":94,"context_line":"        (cpus, arch) \u003d system.processors.summary()"},{"line_number":95,"context_line":"        inspected_properties.update({\u0027cpus\u0027, cpus})"},{"line_number":96,"context_line":"        inspected_properties.update({\u0027cpu_arch\u0027, arch})"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_3e55db1e","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":9},"in_reply_to":"5f7c97a3_e9400b09","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":93,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":94,"context_line":"        (cpus, arch) \u003d system.processors.summary()"},{"line_number":95,"context_line":"        inspected_properties.update({\u0027cpus\u0027, cpus})"},{"line_number":96,"context_line":"        inspected_properties.update({\u0027cpu_arch\u0027, arch})"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # TODO(nisha): Add the disk size and mac inspection to sushy."}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_12e32236","line":95,"range":{"start_line":95,"start_character":43,"end_line":95,"end_character":44},"updated":"2018-03-22 13:57:58.000000000","message":"Shouldn\u0027t this be\ninspected_properties.update({\u0027cpus\u0027: cpus})?","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":93,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":94,"context_line":"        (cpus, arch) \u003d system.processors.summary()"},{"line_number":95,"context_line":"        inspected_properties.update({\u0027cpus\u0027, cpus})"},{"line_number":96,"context_line":"        inspected_properties.update({\u0027cpu_arch\u0027, arch})"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # TODO(nisha): Add the disk size and mac inspection to sushy."}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_1e301f06","line":95,"range":{"start_line":95,"start_character":43,"end_line":95,"end_character":44},"in_reply_to":"5f7c97a3_694cfb3e","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c2a30978870c2f06f5c5ac1d74b0b4a9d682b173","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":93,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":94,"context_line":"        (cpus, arch) \u003d system.processors.summary()"},{"line_number":95,"context_line":"        inspected_properties.update({\u0027cpus\u0027, cpus})"},{"line_number":96,"context_line":"        inspected_properties.update({\u0027cpu_arch\u0027, arch})"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # TODO(nisha): Add the disk size and mac inspection to sushy."}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_694cfb3e","line":95,"range":{"start_line":95,"start_character":43,"end_line":95,"end_character":44},"in_reply_to":"df7087c5_12e32236","updated":"2018-07-03 12:36:58.000000000","message":"or:\n\ninspected_properties[\u0027cpus\u0027] \u003d cpus","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        valid_keys \u003d self.ESSENTIAL_PROPERTIES"},{"line_number":103,"context_line":"        missing_keys \u003d valid_keys - set(inspected_properties)"},{"line_number":104,"context_line":"        if missing_keys:"},{"line_number":105,"context_line":"            error \u003d ((\u0027Failed to discover the following properties: \u0027"},{"line_number":106,"context_line":"                      \u0027%(missing_keys)s on node %(node)s\u0027) %"},{"line_number":107,"context_line":"                     {\u0027missing_keys\u0027: \u0027, \u0027.join(missing_keys),"},{"line_number":108,"context_line":"                      \u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_1251e2d9","line":105,"range":{"start_line":105,"start_character":20,"end_line":105,"end_character":41},"updated":"2018-03-22 13:57:58.000000000","message":"This should have localization:\nerror\u003d(_(\u0027Failed to discover...))","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        valid_keys \u003d self.ESSENTIAL_PROPERTIES"},{"line_number":103,"context_line":"        missing_keys \u003d valid_keys - set(inspected_properties)"},{"line_number":104,"context_line":"        if missing_keys:"},{"line_number":105,"context_line":"            error \u003d ((\u0027Failed to discover the following properties: \u0027"},{"line_number":106,"context_line":"                      \u0027%(missing_keys)s on node %(node)s\u0027) %"},{"line_number":107,"context_line":"                     {\u0027missing_keys\u0027: \u0027, \u0027.join(missing_keys),"},{"line_number":108,"context_line":"                      \u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_89d87780","line":105,"range":{"start_line":105,"start_character":20,"end_line":105,"end_character":41},"in_reply_to":"df7087c5_1251e2d9","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b786c6b02adf47cb6d6b0be9fba7dfd7fb2796f8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":95,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":96,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":97,"context_line":"        inspected_properties[\u0027cpu_arch\u0027] \u003d arch"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # TODO(nisha): Add the disk size and mac inspection to sushy."},{"line_number":100,"context_line":"        local_gb \u003d system.storage_summary()"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_4ea3409c","line":97,"updated":"2018-07-16 18:04:23.000000000","message":"do we know if the returned arch will always be in lower case?","commit_id":"825855ca8f1a2628b0daa0ad563220f717556e31"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":95,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":96,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":97,"context_line":"        inspected_properties[\u0027cpu_arch\u0027] \u003d arch"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # TODO(nisha): Add the disk size and mac inspection to sushy."},{"line_number":100,"context_line":"        local_gb \u003d system.storage_summary()"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_bc93fc58","line":97,"in_reply_to":"5f7c97a3_4ea3409c","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"825855ca8f1a2628b0daa0ad563220f717556e31"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"90a4362be579b35f18f619be4d2a092408f12678","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # get the essential properties and update the node properties"},{"line_number":72,"context_line":"        # with it."},{"line_number":73,"context_line":"        inspected_properties \u003d {}"},{"line_number":74,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":75,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_cbef64e7","line":73,"updated":"2018-08-21 11:00:03.000000000","message":"I am just placing a snippet (not the full list of values) code to put together the values that can be collated.\n\n    CPU_ARCH_MAP \u003d {\n      sushy.PROCESSOR_ARCH_x86: \u0027x86\u0027,  # please check\n      ... etc.\n    }\n    \n    inspected_properties \u003d {\n      \u0027memory_mb\u0027: system.memory_summary.size_gib * oslu_utils.units.k\n      \u0027cpus\u0027: system.processors.summary.count\n      \u0027cpu_arch\u0027: CPU_ARCH_MAP.get(system.processors.summary.architecture)  # possible mapping is to be done here what Ironic users expect!\n      ...\n    }","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # get the essential properties and update the node properties"},{"line_number":72,"context_line":"        # with it."},{"line_number":73,"context_line":"        inspected_properties \u003d {}"},{"line_number":74,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":75,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_2161eca9","line":73,"in_reply_to":"3f79a3b5_cbef64e7","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"90a4362be579b35f18f619be4d2a092408f12678","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # with it."},{"line_number":73,"context_line":"        inspected_properties \u003d {}"},{"line_number":74,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":75,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":77,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":78,"context_line":"        if arch:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_0b123c59","line":75,"range":{"start_line":75,"start_character":42,"end_line":75,"end_character":49},"updated":"2018-08-21 11:00:03.000000000","message":"any plans to use any one of these? \nhttps://docs.openstack.org/oslo.utils/latest/reference/units.html","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # with it."},{"line_number":73,"context_line":"        inspected_properties \u003d {}"},{"line_number":74,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":75,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":77,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":78,"context_line":"        if arch:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_3b991b1e","line":75,"range":{"start_line":75,"start_character":42,"end_line":75,"end_character":49},"in_reply_to":"3f79a3b5_0b123c59","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"564b37f87a2b27373fa52aebcee5778f56e356fd","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        inspected_properties \u003d {}"},{"line_number":74,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":75,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":77,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":78,"context_line":"        if arch:"},{"line_number":79,"context_line":"            inspected_properties[\u0027cpu_arch\u0027] \u003d arch.lower()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_927237ad","line":76,"updated":"2018-08-29 15:17:18.000000000","message":"++","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"90a4362be579b35f18f619be4d2a092408f12678","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        inspected_properties \u003d {}"},{"line_number":74,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":75,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":77,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":78,"context_line":"        if arch:"},{"line_number":79,"context_line":"            inspected_properties[\u0027cpu_arch\u0027] \u003d arch.lower()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_eb2fc085","line":76,"range":{"start_line":76,"start_character":38,"end_line":76,"end_character":48},"updated":"2018-08-21 11:00:03.000000000","message":"``summary`` is a property of processor collection resource. https://github.com/openstack/sushy/blob/master/sushy/resources/system/processor.py#L111","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        inspected_properties \u003d {}"},{"line_number":74,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":75,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":77,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":78,"context_line":"        if arch:"},{"line_number":79,"context_line":"            inspected_properties[\u0027cpu_arch\u0027] \u003d arch.lower()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_9b04ef4b","line":76,"in_reply_to":"3f79a3b5_927237ad","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        inspected_properties \u003d {}"},{"line_number":74,"context_line":"        inspected_properties[\u0027memory_mb\u0027] \u003d ("},{"line_number":75,"context_line":"            system.memory_summary.size_gib * 1024)"},{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":77,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":78,"context_line":"        if arch:"},{"line_number":79,"context_line":"            inspected_properties[\u0027cpu_arch\u0027] \u003d arch.lower()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_fbe9637e","line":76,"range":{"start_line":76,"start_character":38,"end_line":76,"end_character":48},"in_reply_to":"3f79a3b5_eb2fc085","updated":"2018-09-07 17:26:00.000000000","message":"We really need to unit test this...","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"90a4362be579b35f18f619be4d2a092408f12678","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":77,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":78,"context_line":"        if arch:"},{"line_number":79,"context_line":"            inspected_properties[\u0027cpu_arch\u0027] \u003d arch.lower()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        try:"},{"line_number":82,"context_line":"            simple_storage_size \u003d system.simple_storage.max_size_bytes"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_0baebce6","line":79,"range":{"start_line":79,"start_character":47,"end_line":79,"end_character":59},"updated":"2018-08-21 11:00:03.000000000","message":"arch value will be one of the values from this list of values: https://github.com/openstack/sushy/blob/master/sushy/resources/system/constants.py#L120-L124","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        cpus, arch \u003d system.processors.summary()"},{"line_number":77,"context_line":"        inspected_properties[\u0027cpus\u0027] \u003d cpus"},{"line_number":78,"context_line":"        if arch:"},{"line_number":79,"context_line":"            inspected_properties[\u0027cpu_arch\u0027] \u003d arch.lower()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        try:"},{"line_number":82,"context_line":"            simple_storage_size \u003d system.simple_storage.max_size_bytes"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_01ccf0b8","line":79,"range":{"start_line":79,"start_character":47,"end_line":79,"end_character":59},"in_reply_to":"3f79a3b5_0baebce6","updated":"2018-09-07 17:26:00.000000000","message":"Refactored. I could not find a canonical enumeration of CPU arch values.","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"564b37f87a2b27373fa52aebcee5778f56e356fd","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            inspected_properties[\u0027cpu_arch\u0027] \u003d arch.lower()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        try:"},{"line_number":82,"context_line":"            simple_storage_size \u003d system.simple_storage.max_size_bytes"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        except AttributeError:"},{"line_number":85,"context_line":"            simple_storage_size \u003d 0"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_3267a3ed","line":82,"updated":"2018-08-29 15:17:18.000000000","message":"Why max_size_bytes? IPA will pick the *smallest* disk that is larger than 4GiB. Won\u0027t it make sense to use the same logic here?","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            inspected_properties[\u0027cpu_arch\u0027] \u003d arch.lower()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        try:"},{"line_number":82,"context_line":"            simple_storage_size \u003d system.simple_storage.max_size_bytes"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        except AttributeError:"},{"line_number":85,"context_line":"            simple_storage_size \u003d 0"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_25ed6724","line":82,"in_reply_to":"3f79a3b5_3267a3ed","updated":"2018-09-07 17:26:00.000000000","message":"Done via [1]\n\n1. https://review.openstack.org/600664","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"72e076997b9eeabc4c8378a157afc35affb66a75","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        try:"},{"line_number":82,"context_line":"            simple_storage_size \u003d system.simple_storage.max_size_bytes"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        except AttributeError:"},{"line_number":85,"context_line":"            simple_storage_size \u003d 0"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_52a2d5af","line":84,"range":{"start_line":84,"start_character":15,"end_line":84,"end_character":29},"updated":"2018-08-13 07:10:20.000000000","message":"it will be ``SushyError``","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        try:"},{"line_number":82,"context_line":"            simple_storage_size \u003d system.simple_storage.max_size_bytes"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        except AttributeError:"},{"line_number":85,"context_line":"            simple_storage_size \u003d 0"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_010f10e0","line":84,"range":{"start_line":84,"start_character":15,"end_line":84,"end_character":29},"in_reply_to":"3f79a3b5_52a2d5af","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"564b37f87a2b27373fa52aebcee5778f56e356fd","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            simple_storage_size \u003d 0"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        try:"},{"line_number":88,"context_line":"            storage_size \u003d system.storage.max_volume_size_bytes"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        except AttributeError:"},{"line_number":91,"context_line":"            storage_size \u003d 0"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_52649fe5","line":88,"updated":"2018-08-29 15:17:18.000000000","message":"ditto","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            simple_storage_size \u003d 0"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        try:"},{"line_number":88,"context_line":"            storage_size \u003d system.storage.max_volume_size_bytes"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        except AttributeError:"},{"line_number":91,"context_line":"            storage_size \u003d 0"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_a1f97cc8","line":88,"in_reply_to":"3f79a3b5_52649fe5","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"72e076997b9eeabc4c8378a157afc35affb66a75","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        try:"},{"line_number":88,"context_line":"            storage_size \u003d system.storage.max_volume_size_bytes"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        except AttributeError:"},{"line_number":91,"context_line":"            storage_size \u003d 0"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        local_gb \u003d max(simple_storage_size, storage_size)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_d2958541","line":90,"range":{"start_line":90,"start_character":15,"end_line":90,"end_character":29},"updated":"2018-08-13 07:10:20.000000000","message":"ditto","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        try:"},{"line_number":88,"context_line":"            storage_size \u003d system.storage.max_volume_size_bytes"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        except AttributeError:"},{"line_number":91,"context_line":"            storage_size \u003d 0"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        local_gb \u003d max(simple_storage_size, storage_size)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_61ffe4aa","line":90,"range":{"start_line":90,"start_character":15,"end_line":90,"end_character":29},"in_reply_to":"3f79a3b5_d2958541","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"564b37f87a2b27373fa52aebcee5778f56e356fd","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        # Note(deray): Convert the received size to GiB and reduce the"},{"line_number":96,"context_line":"        # value by 1 GB as consumers like Ironic requires the ``local_gb``"},{"line_number":97,"context_line":"        # to be returned 1 less than actual size."},{"line_number":98,"context_line":"        local_gb \u003d max(0, int(local_gb / (1024 * 1024 * 1024) - 1))"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        if not local_gb:"},{"line_number":101,"context_line":"            LOG.warning(_(\"Could not provide a valid storage size configured \""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_f2604bd2","line":98,"updated":"2018-08-29 15:17:18.000000000","message":"++ for units","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"90a4362be579b35f18f619be4d2a092408f12678","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        # Note(deray): Convert the received size to GiB and reduce the"},{"line_number":96,"context_line":"        # value by 1 GB as consumers like Ironic requires the ``local_gb``"},{"line_number":97,"context_line":"        # to be returned 1 less than actual size."},{"line_number":98,"context_line":"        local_gb \u003d max(0, int(local_gb / (1024 * 1024 * 1024) - 1))"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        if not local_gb:"},{"line_number":101,"context_line":"            LOG.warning(_(\"Could not provide a valid storage size configured \""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_cb1be470","line":98,"range":{"start_line":98,"start_character":42,"end_line":98,"end_character":61},"updated":"2018-08-21 11:00:03.000000000","message":"same here https://docs.openstack.org/oslo.utils/latest/reference/units.html ?","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        # Note(deray): Convert the received size to GiB and reduce the"},{"line_number":96,"context_line":"        # value by 1 GB as consumers like Ironic requires the ``local_gb``"},{"line_number":97,"context_line":"        # to be returned 1 less than actual size."},{"line_number":98,"context_line":"        local_gb \u003d max(0, int(local_gb / (1024 * 1024 * 1024) - 1))"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        if not local_gb:"},{"line_number":101,"context_line":"            LOG.warning(_(\"Could not provide a valid storage size configured \""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_81fa40b7","line":98,"range":{"start_line":98,"start_character":42,"end_line":98,"end_character":61},"in_reply_to":"3f79a3b5_cb1be470","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        # Note(deray): Convert the received size to GiB and reduce the"},{"line_number":96,"context_line":"        # value by 1 GB as consumers like Ironic requires the ``local_gb``"},{"line_number":97,"context_line":"        # to be returned 1 less than actual size."},{"line_number":98,"context_line":"        local_gb \u003d max(0, int(local_gb / (1024 * 1024 * 1024) - 1))"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        if not local_gb:"},{"line_number":101,"context_line":"            LOG.warning(_(\"Could not provide a valid storage size configured \""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_212fac3f","line":98,"in_reply_to":"3f79a3b5_f2604bd2","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"564b37f87a2b27373fa52aebcee5778f56e356fd","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                          \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        macs \u003d system.ethernet_interfaces.eth_summary"},{"line_number":105,"context_line":"        inspected_properties.update({\u0027local_gb\u0027, local_gb})"},{"line_number":106,"context_line":"        valid_keys \u003d self.ESSENTIAL_PROPERTIES"},{"line_number":107,"context_line":"        missing_keys \u003d valid_keys - set(inspected_properties)"},{"line_number":108,"context_line":"        if missing_keys:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_125e2712","line":105,"updated":"2018-08-29 15:17:18.000000000","message":", -\u003e :","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                          \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        macs \u003d system.ethernet_interfaces.eth_summary"},{"line_number":105,"context_line":"        inspected_properties.update({\u0027local_gb\u0027, local_gb})"},{"line_number":106,"context_line":"        valid_keys \u003d self.ESSENTIAL_PROPERTIES"},{"line_number":107,"context_line":"        missing_keys \u003d valid_keys - set(inspected_properties)"},{"line_number":108,"context_line":"        if missing_keys:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_253b279c","line":105,"in_reply_to":"3f79a3b5_125e2712","updated":"2018-09-07 17:26:00.000000000","message":"Rephrased","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"564b37f87a2b27373fa52aebcee5778f56e356fd","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                     {\u0027missing_keys\u0027: \u0027, \u0027.join(missing_keys),"},{"line_number":112,"context_line":"                      \u0027node\u0027: task.node.uuid})"},{"line_number":113,"context_line":"            raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":114,"context_line":"        task.node.properties.update(inspected_properties)"},{"line_number":115,"context_line":"        task.node.save()"},{"line_number":116,"context_line":"        # Create ports for the nics detected."},{"line_number":117,"context_line":"        deploy_utils.create_ports_if_not_exist(task, macs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_b29893cc","line":114,"updated":"2018-08-29 15:17:18.000000000","message":"IIRC this won\u0027t work, you need to copy properties, then replace it. like\n\n properties \u003d task.node.properties\n ...\n task.node.properties \u003d properties","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"3826d3cf5abae01ed76a640b9ec942b247198838","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                     {\u0027missing_keys\u0027: \u0027, \u0027.join(missing_keys),"},{"line_number":112,"context_line":"                      \u0027node\u0027: task.node.uuid})"},{"line_number":113,"context_line":"            raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":114,"context_line":"        task.node.properties.update(inspected_properties)"},{"line_number":115,"context_line":"        task.node.save()"},{"line_number":116,"context_line":"        # Create ports for the nics detected."},{"line_number":117,"context_line":"        deploy_utils.create_ports_if_not_exist(task, macs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_c556f3ce","line":114,"in_reply_to":"3f79a3b5_b29893cc","updated":"2018-09-07 17:26:00.000000000","message":"Done","commit_id":"ac314f315062239064f94c2beceb2894f007bf26"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"8b954ced25d9f926dd7ab2d4c42c07d10f5875a0","unresolved":false,"context_lines":[{"line_number":32,"context_line":"class RedfishInspect(base.InspectInterface):"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    # sushy to cpu_arch map"},{"line_number":35,"context_line":"    CPU_ARCH_MAP \u003d {"},{"line_number":36,"context_line":"        sushy.PROCESSOR_ARCH_x86: \u0027x86_64\u0027,"},{"line_number":37,"context_line":"        sushy.PROCESSOR_ARCH_IA_64: \u0027ia64\u0027,"},{"line_number":38,"context_line":"        sushy.PROCESSOR_ARCH_ARM: \u0027arm\u0027,"},{"line_number":39,"context_line":"        sushy.PROCESSOR_ARCH_MIPS: \u0027mips\u0027,"},{"line_number":40,"context_line":"        sushy.PROCESSOR_ARCH_OEM: \u0027oem\u0027"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_properties(self):"},{"line_number":44,"context_line":"        \"\"\"Return the properties of the interface."}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_9ebfba5f","line":41,"range":{"start_line":35,"start_character":4,"end_line":41,"end_character":5},"updated":"2018-09-10 16:20:44.000000000","message":"Since we do try_import() for sushy library, this needs to be defined only if sushy is present. Also better to move this out of class definition as it is just a mapping.\n\nif sushy:\n    CPU_ARCH_MAP \u003d { ... }\n\nThis is also causing tox failure.\nhttp://logs.openstack.org/25/449425/11/check/openstack-tox-docs/f302ea2/job-output.txt.gz#_2018-09-07_18_26_03_360587","commit_id":"b3ae6d66d642a1352fc38dd181eab1aebc40def3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"27555da4349f8d97b7bfa376f4385c114c55400e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"class RedfishInspect(base.InspectInterface):"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    # sushy to cpu_arch map"},{"line_number":35,"context_line":"    CPU_ARCH_MAP \u003d {"},{"line_number":36,"context_line":"        sushy.PROCESSOR_ARCH_x86: \u0027x86_64\u0027,"},{"line_number":37,"context_line":"        sushy.PROCESSOR_ARCH_IA_64: \u0027ia64\u0027,"},{"line_number":38,"context_line":"        sushy.PROCESSOR_ARCH_ARM: \u0027arm\u0027,"},{"line_number":39,"context_line":"        sushy.PROCESSOR_ARCH_MIPS: \u0027mips\u0027,"},{"line_number":40,"context_line":"        sushy.PROCESSOR_ARCH_OEM: \u0027oem\u0027"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_properties(self):"},{"line_number":44,"context_line":"        \"\"\"Return the properties of the interface."}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_7c7ad477","line":41,"range":{"start_line":35,"start_character":4,"end_line":41,"end_character":5},"in_reply_to":"3f79a3b5_9ebfba5f","updated":"2018-09-11 12:21:51.000000000","message":"Done. Thank you!","commit_id":"b3ae6d66d642a1352fc38dd181eab1aebc40def3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1d55bf3f65042a3389e8c1463a579aaa90a248ce","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    }"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class RedfishInspect(base.InspectInterface):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_properties(self):"},{"line_number":44,"context_line":"        \"\"\"Return the properties of the interface."}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_a17eaebd","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":20},"updated":"2018-10-23 08:57:23.000000000","message":"Would it be useful to have method __init__() as we have for power[1] and management[2] interface to check the availability of sushy library?\n[1] https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/redfish/management.py#L59-L69\n[2] https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/redfish/management.py#L59-L69","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"7c2fb5f5de6764d935f426930abcbec36a639f8c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    }"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class RedfishInspect(base.InspectInterface):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_properties(self):"},{"line_number":44,"context_line":"        \"\"\"Return the properties of the interface."}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_11d1145b","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":20},"in_reply_to":"3f79a3b5_4704c77d","updated":"2018-11-02 15:47:45.000000000","message":"Done","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"7c2fb5f5de6764d935f426930abcbec36a639f8c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    }"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class RedfishInspect(base.InspectInterface):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_properties(self):"},{"line_number":44,"context_line":"        \"\"\"Return the properties of the interface."}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_f1d57849","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":20},"in_reply_to":"3f79a3b5_a17eaebd","updated":"2018-11-02 15:47:45.000000000","message":"Done","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c86f44198d8da49af5cfe0e423f4561f742c451a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    }"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class RedfishInspect(base.InspectInterface):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_properties(self):"},{"line_number":44,"context_line":"        \"\"\"Return the properties of the interface."}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_4704c77d","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":20},"in_reply_to":"3f79a3b5_a17eaebd","updated":"2018-11-01 19:27:30.000000000","message":"I think it does, but I think this is a good follow-up item. It doesn\u0027t need to be the case for this to merge.","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1d55bf3f65042a3389e8c1463a579aaa90a248ce","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        redfish_utils.parse_driver_info(task.node)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def inspect_hardware(self, task):"},{"line_number":67,"context_line":"        \"\"\"Inspect hardware to get the hardware properties."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        Inspects hardware to get the essential properties."}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_ccfa0176","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":24},"updated":"2018-10-23 08:57:23.000000000","message":"Need to add test cases for this method.","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"7c2fb5f5de6764d935f426930abcbec36a639f8c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        redfish_utils.parse_driver_info(task.node)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def inspect_hardware(self, task):"},{"line_number":67,"context_line":"        \"\"\"Inspect hardware to get the hardware properties."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        Inspects hardware to get the essential properties."}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_f4f2469c","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":24},"in_reply_to":"3f79a3b5_ccfa0176","updated":"2018-11-02 15:47:45.000000000","message":"Done","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        inspected_properties \u003d task.node.properties"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        if system.memory_summary and system.memory_summary.size_gib:"},{"line_number":98,"context_line":"            inspected_properties[\u0027memory_mb\u0027] \u003d str("},{"line_number":99,"context_line":"                system.memory_summary.size_gib * units.Ki)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if system.processors and system.processors.summary:"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_e07cab23","line":98,"updated":"2018-11-20 11:09:32.000000000","message":"str is not needed here, I think","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        inspected_properties \u003d task.node.properties"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        if system.memory_summary and system.memory_summary.size_gib:"},{"line_number":98,"context_line":"            inspected_properties[\u0027memory_mb\u0027] \u003d str("},{"line_number":99,"context_line":"                system.memory_summary.size_gib * units.Ki)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if system.processors and system.processors.summary:"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_a4e1d2d0","line":98,"in_reply_to":"3f79a3b5_e07cab23","updated":"2018-11-21 10:02:28.000000000","message":"I think it\u0027s a str in the t.n.p so I try to keep it consistent","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                except KeyError:"},{"line_number":111,"context_line":"                    LOG.warning("},{"line_number":112,"context_line":"                        _(\"Unknown CPU arch %(arch)s discovered \""},{"line_number":113,"context_line":"                          \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid,"},{"line_number":114,"context_line":"                                                 \u0027arch\u0027: arch})"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        simple_storage_size \u003d 0"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_0080c7f5","line":113,"updated":"2018-11-20 11:09:32.000000000","message":"nit: s/Node/node/","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                except KeyError:"},{"line_number":111,"context_line":"                    LOG.warning("},{"line_number":112,"context_line":"                        _(\"Unknown CPU arch %(arch)s discovered \""},{"line_number":113,"context_line":"                          \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid,"},{"line_number":114,"context_line":"                                                 \u0027arch\u0027: arch})"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        simple_storage_size \u003d 0"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_24b862bf","line":113,"in_reply_to":"3f79a3b5_0080c7f5","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                simple_storage_size \u003d ["},{"line_number":122,"context_line":"                    size for size in system.simple_storage.disks_sizes_bytes"},{"line_number":123,"context_line":"                    if size \u003e\u003d 4 * units.Gi"},{"line_number":124,"context_line":"                ] or [0]"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"                simple_storage_size \u003d simple_storage_size[0]"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_a076b33f","line":124,"updated":"2018-11-20 11:09:32.000000000","message":"should we sort the resulting list, so that we pick the smallest?","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                simple_storage_size \u003d ["},{"line_number":122,"context_line":"                    size for size in system.simple_storage.disks_sizes_bytes"},{"line_number":123,"context_line":"                    if size \u003e\u003d 4 * units.Gi"},{"line_number":124,"context_line":"                ] or [0]"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"                simple_storage_size \u003d simple_storage_size[0]"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_04e9a6aa","line":124,"in_reply_to":"3f79a3b5_a076b33f","updated":"2018-11-21 10:02:28.000000000","message":"I think it\u0027s already sorted that way [1].\n\n1. https://github.com/openstack/sushy/blob/master/sushy/resources/system/simple_storage.py#L73","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                    if size \u003e\u003d 4 * units.Gi"},{"line_number":124,"context_line":"                ] or [0]"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"                simple_storage_size \u003d simple_storage_size[0]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        except sushy.SushyError:"},{"line_number":129,"context_line":"            LOG.info("}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_c0716f48","line":126,"updated":"2018-11-20 11:09:32.000000000","message":"fun idea for a follow-up: respect root device hints here ;)","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                    if size \u003e\u003d 4 * units.Gi"},{"line_number":124,"context_line":"                ] or [0]"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"                simple_storage_size \u003d simple_storage_size[0]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        except sushy.SushyError:"},{"line_number":129,"context_line":"            LOG.info("}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_641e5abd","line":126,"in_reply_to":"3f79a3b5_c0716f48","updated":"2018-11-21 10:02:28.000000000","message":"I\u0027ve added a comment on that, though what\u0027b be the basic logic? Skip storage analysis and local_gb computing if root device hint is given?","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                simple_storage_size \u003d simple_storage_size[0]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        except sushy.SushyError:"},{"line_number":129,"context_line":"            LOG.info("},{"line_number":130,"context_line":"                _(\"No simple storage information discovered \""},{"line_number":131,"context_line":"                  \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_60709b42","line":129,"updated":"2018-11-20 11:09:32.000000000","message":"s/info/warning/ (or debug if it\u0027s of no importance)","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                simple_storage_size \u003d simple_storage_size[0]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        except sushy.SushyError:"},{"line_number":129,"context_line":"            LOG.info("},{"line_number":130,"context_line":"                _(\"No simple storage information discovered \""},{"line_number":131,"context_line":"                  \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_848e1623","line":129,"in_reply_to":"3f79a3b5_60709b42","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        except sushy.SushyError:"},{"line_number":129,"context_line":"            LOG.info("},{"line_number":130,"context_line":"                _(\"No simple storage information discovered \""},{"line_number":131,"context_line":"                  \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        storage_size \u003d 0"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_806b7752","line":131,"updated":"2018-11-20 11:09:32.000000000","message":"s/Node/node/, also let\u0027s log the error message","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        except sushy.SushyError:"},{"line_number":129,"context_line":"            LOG.info("},{"line_number":130,"context_line":"                _(\"No simple storage information discovered \""},{"line_number":131,"context_line":"                  \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        storage_size \u003d 0"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_449c7e5b","line":131,"in_reply_to":"3f79a3b5_806b7752","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                storage_size \u003d storage_size[0]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        except sushy.SushyError:"},{"line_number":145,"context_line":"            LOG.info(_(\"No storage volume information discovered \""},{"line_number":146,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        local_gb \u003d max(simple_storage_size, storage_size)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_20886318","line":145,"updated":"2018-11-20 11:09:32.000000000","message":"ditto re warning/debug","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                storage_size \u003d storage_size[0]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        except sushy.SushyError:"},{"line_number":145,"context_line":"            LOG.info(_(\"No storage volume information discovered \""},{"line_number":146,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        local_gb \u003d max(simple_storage_size, storage_size)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_e48d8a29","line":145,"in_reply_to":"3f79a3b5_20886318","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        except sushy.SushyError:"},{"line_number":145,"context_line":"            LOG.info(_(\"No storage volume information discovered \""},{"line_number":146,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        local_gb \u003d max(simple_storage_size, storage_size)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_408b1f15","line":146,"updated":"2018-11-20 11:09:32.000000000","message":"s/Node/node/","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        except sushy.SushyError:"},{"line_number":145,"context_line":"            LOG.info(_(\"No storage volume information discovered \""},{"line_number":146,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        local_gb \u003d max(simple_storage_size, storage_size)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_64741a38","line":146,"in_reply_to":"3f79a3b5_408b1f15","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            LOG.info(_(\"No storage volume information discovered \""},{"line_number":146,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        local_gb \u003d max(simple_storage_size, storage_size)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # Note(deray): Convert the received size to GiB and reduce the"},{"line_number":151,"context_line":"        # value by 1 GB as consumers like Ironic requires the ``local_gb``"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_e0910b47","line":148,"updated":"2018-11-20 11:09:32.000000000","message":"Why max? worth a NOTE.","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            LOG.info(_(\"No storage volume information discovered \""},{"line_number":146,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        local_gb \u003d max(simple_storage_size, storage_size)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # Note(deray): Convert the received size to GiB and reduce the"},{"line_number":151,"context_line":"        # value by 1 GB as consumers like Ironic requires the ``local_gb``"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_44779e3d","line":148,"in_reply_to":"3f79a3b5_e0910b47","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            LOG.warning(_(\"Could not provide a valid storage size configured \""},{"line_number":160,"context_line":"                          \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        valid_keys \u003d self.ESSENTIAL_PROPERTIES"},{"line_number":163,"context_line":"        missing_keys \u003d valid_keys - set(inspected_properties)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_00952731","line":160,"updated":"2018-11-20 11:09:32.000000000","message":"nit: s/Node/node/","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            LOG.warning(_(\"Could not provide a valid storage size configured \""},{"line_number":160,"context_line":"                          \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        valid_keys \u003d self.ESSENTIAL_PROPERTIES"},{"line_number":163,"context_line":"        missing_keys \u003d valid_keys - set(inspected_properties)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_24e38205","line":160,"in_reply_to":"3f79a3b5_00952731","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            deploy_utils.create_ports_if_not_exist(task, macs)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        else:"},{"line_number":187,"context_line":"            LOG.info(_(\"No NIC information discovered \""},{"line_number":188,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        LOG.info(_(\"Node %(node)s inspected.\"), {\u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_a09b1363","line":187,"updated":"2018-11-20 11:09:32.000000000","message":"s/info/warning/ here for sure","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            deploy_utils.create_ports_if_not_exist(task, macs)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        else:"},{"line_number":187,"context_line":"            LOG.info(_(\"No NIC information discovered \""},{"line_number":188,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        LOG.info(_(\"Node %(node)s inspected.\"), {\u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_44c9de77","line":187,"in_reply_to":"3f79a3b5_a09b1363","updated":"2018-11-21 10:02:28.000000000","message":"Done","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c2b8720a0ed6889719c2e8e56989124706a3686","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            LOG.info(_(\"No NIC information discovered \""},{"line_number":188,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        LOG.info(_(\"Node %(node)s inspected.\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        return states.MANAGEABLE"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_c0964f3c","line":190,"updated":"2018-11-20 11:09:32.000000000","message":"nit: this does not look overly useful to me.","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"831060d37ee9440b385efefb138ed72347796b0e","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            LOG.info(_(\"No NIC information discovered \""},{"line_number":188,"context_line":"                       \"for Node %(node)s\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        LOG.info(_(\"Node %(node)s inspected.\"), {\u0027node\u0027: task.node.uuid})"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        return states.MANAGEABLE"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_e4ba6ade","line":190,"in_reply_to":"3f79a3b5_c0964f3c","updated":"2018-11-21 10:02:28.000000000","message":"Removed","commit_id":"41d3356571eafd7f3192d05d7c7523ac295ff5c0"}],"ironic/drivers/redfish.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"27a94e5f41444f8cfa593e2ef5509f1a164c1cb0","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def supported_inspect_interfaces(self):"},{"line_number":38,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":39,"context_line":"        return [redfish_inspect.RedfishInspect, inspector.Inspector]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_a4c6b047","line":38,"range":{"start_line":38,"start_character":29,"end_line":38,"end_character":34},"updated":"2017-06-23 06:09:21.000000000","message":"s/ power / inspect","commit_id":"6e175c7ca046ce46e23eac89e13c686ea20a7152"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def supported_inspect_interfaces(self):"},{"line_number":38,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":39,"context_line":"        return [redfish_inspect.RedfishInspect, inspector.Inspector]"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_b2acb69f","line":38,"range":{"start_line":38,"start_character":29,"end_line":38,"end_character":34},"updated":"2018-03-22 13:57:58.000000000","message":"s/power/inspect","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"98a985759039cd1a295ae65a00c212e266e510a9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def supported_inspect_interfaces(self):"},{"line_number":38,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":39,"context_line":"        return [redfish_inspect.RedfishInspect, inspector.Inspector]"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_148b8d22","line":39,"range":{"start_line":39,"start_character":48,"end_line":39,"end_character":67},"updated":"2018-07-23 07:45:12.000000000","message":"This should also inlcude \u0027no-inspect\u0027 to provide backward compatibility. The \u0027no-inspect is the default inspect interface [0].\nIf this is included, it should fix [1] Otherwise we need to update devstack script [2] for inspect interface.\n\n[0] https://github.com/openstack/ironic/blob/master/ironic/conf/default.py#L132-L134\n\n[1] http://logs.openstack.org/25/449425/7/check/ironic-tempest-dsvm-ipa-partition-redfish-tinyipa/c5ead22/controller/logs/screen-ir-cond.txt.gz#_Jul_22_19_09_54_720527\n\n[2] https://github.com/openstack/ironic/blob/master/devstack/lib/ironic#L1241-L1246","commit_id":"f80e8fab9e0781aa0d39cbe4f9b06a741178abeb"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"ac7b8a912fd5f47ccbe8509978f742c53037888f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def supported_inspect_interfaces(self):"},{"line_number":38,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":39,"context_line":"        return [redfish_inspect.RedfishInspect, inspector.Inspector]"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_505d6852","line":39,"range":{"start_line":39,"start_character":48,"end_line":39,"end_character":67},"in_reply_to":"5f7c97a3_148b8d22","updated":"2018-07-24 14:56:34.000000000","message":"`NoInspect` added, thank you!","commit_id":"f80e8fab9e0781aa0d39cbe4f9b06a741178abeb"}],"ironic/tests/unit/drivers/modules/redfish/test_inspect.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.config(enabled_hardware_types\u003d[\u0027redfish\u0027],"},{"line_number":40,"context_line":"                    enabled_power_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":41,"context_line":"                    enabled_management_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":42,"context_line":"                    enabled_inspect_interface\u003d[\u0027redfish\u0027])"},{"line_number":43,"context_line":"        mgr_utils.mock_the_extension_manager("},{"line_number":44,"context_line":"            driver\u003d\u0027redfish\u0027, namespace\u003d\u0027ironic.hardware.types\u0027)"},{"line_number":45,"context_line":"        self.node \u003d obj_utils.create_test_node("}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_32bf46ab","line":42,"range":{"start_line":42,"start_character":20,"end_line":42,"end_character":57},"updated":"2018-03-22 13:57:58.000000000","message":"You also need to add default_inspect_interface.\nhttp://logs.openstack.org/25/449425/5/check/openstack-tox-py27/03ebc07/job-output.txt.gz#_2018-03-21_07_23_46_171377","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.config(enabled_hardware_types\u003d[\u0027redfish\u0027],"},{"line_number":40,"context_line":"                    enabled_power_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":41,"context_line":"                    enabled_management_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":42,"context_line":"                    enabled_inspect_interface\u003d[\u0027redfish\u0027])"},{"line_number":43,"context_line":"        mgr_utils.mock_the_extension_manager("},{"line_number":44,"context_line":"            driver\u003d\u0027redfish\u0027, namespace\u003d\u0027ironic.hardware.types\u0027)"},{"line_number":45,"context_line":"        self.node \u003d obj_utils.create_test_node("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_4518ad82","line":42,"range":{"start_line":42,"start_character":20,"end_line":42,"end_character":57},"in_reply_to":"5f7c97a3_9161a613","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b786c6b02adf47cb6d6b0be9fba7dfd7fb2796f8","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.config(enabled_hardware_types\u003d[\u0027redfish\u0027],"},{"line_number":40,"context_line":"                    enabled_power_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":41,"context_line":"                    enabled_management_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":42,"context_line":"                    enabled_inspect_interface\u003d[\u0027redfish\u0027])"},{"line_number":43,"context_line":"        mgr_utils.mock_the_extension_manager("},{"line_number":44,"context_line":"            driver\u003d\u0027redfish\u0027, namespace\u003d\u0027ironic.hardware.types\u0027)"},{"line_number":45,"context_line":"        self.node \u003d obj_utils.create_test_node("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_9161a613","line":42,"range":{"start_line":42,"start_character":20,"end_line":42,"end_character":57},"in_reply_to":"df7087c5_32bf46ab","updated":"2018-07-16 18:04:23.000000000","message":"+1","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.config(enabled_hardware_types\u003d[\u0027redfish\u0027],"},{"line_number":40,"context_line":"                    enabled_power_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":41,"context_line":"                    enabled_management_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":42,"context_line":"                    enabled_inspect_interface\u003d[\u0027redfish\u0027])"},{"line_number":43,"context_line":"        mgr_utils.mock_the_extension_manager("},{"line_number":44,"context_line":"            driver\u003d\u0027redfish\u0027, namespace\u003d\u0027ironic.hardware.types\u0027)"},{"line_number":45,"context_line":"        self.node \u003d obj_utils.create_test_node("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_a523c1ba","line":42,"range":{"start_line":42,"start_character":20,"end_line":42,"end_character":57},"in_reply_to":"df7087c5_32bf46ab","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"19adc272e8142ef79c4617248e6bdf0b17804775","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                              mock_get_system):"},{"line_number":66,"context_line":"        system \u003d mock_get_system.return_value"},{"line_number":67,"context_line":"        system.memory_summary.size_gib \u003d 2"},{"line_number":68,"context_line":"        system.processors.summary \u003d \u00278\u0027, \u0027MIPS\u0027"},{"line_number":69,"context_line":"        system.simple_storage.disks_sizes_bytes \u003d ("},{"line_number":70,"context_line":"            1 * units.Gi, units.Gi * 3, units.Gi * 5)"},{"line_number":71,"context_line":"        system.storage.volumes_sizes_bytes \u003d ("}],"source_content_type":"text/x-python","patch_set":14,"id":"3f79a3b5_17eee4b5","line":68,"updated":"2018-11-02 16:11:49.000000000","message":"NICE","commit_id":"62d5b574210fb022c585e09dc991e573d28dc58e"}],"ironic/tests/unit/drivers/test_redfish.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1d55bf3f65042a3389e8c1463a579aaa90a248ce","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                    enabled_management_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":33,"context_line":"                    enabled_inspect_interfaces\u003d[\u0027redfish\u0027])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def test_default_interfaces(self):"},{"line_number":36,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027redfish\u0027)"},{"line_number":37,"context_line":"        with task_manager.acquire(self.context, node.id) as task:"},{"line_number":38,"context_line":"            self.assertIsInstance(task.driver.management,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_ec801dc1","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":31},"updated":"2018-10-23 08:57:23.000000000","message":"This testcase needs to be updated for inspection interface.","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"7c2fb5f5de6764d935f426930abcbec36a639f8c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                    enabled_management_interfaces\u003d[\u0027redfish\u0027],"},{"line_number":33,"context_line":"                    enabled_inspect_interfaces\u003d[\u0027redfish\u0027])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def test_default_interfaces(self):"},{"line_number":36,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027redfish\u0027)"},{"line_number":37,"context_line":"        with task_manager.acquire(self.context, node.id) as task:"},{"line_number":38,"context_line":"            self.assertIsInstance(task.driver.management,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_7472b61a","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":31},"in_reply_to":"3f79a3b5_ec801dc1","updated":"2018-11-02 15:47:45.000000000","message":"Done","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"}],"releasenotes/notes/add-redfish-inspect-interface-1577e70167f24ae4.yaml":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1d55bf3f65042a3389e8c1463a579aaa90a248ce","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 inspecton support to ``redfish`` hardware type in ironic."},{"line_number":5,"context_line":"    Successful inspection populates mandatory properties: \"cpus\","},{"line_number":6,"context_line":"    \"local_gb\", \"cpu_arch\", \"memory_mb\" and creates ironic ports"},{"line_number":7,"context_line":"    for inspected nodes."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3f79a3b5_ac36a5de","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":55},"updated":"2018-10-23 08:57:23.000000000","message":"This looks bit incorrect as \u0027redfish\u0027 hardware type has support for inspection via \u0027inspector\u0027. May be we can add it something like\"\n\u0027Adds out-of-band inspection support to ``redfish`` hardware type\u0027\n\nAlso add the name of the inspection interface \u0027redfish\u0027 to the notes.","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1d55bf3f65042a3389e8c1463a579aaa90a248ce","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 inspecton support to ``redfish`` hardware type in ironic."},{"line_number":5,"context_line":"    Successful inspection populates mandatory properties: \"cpus\","},{"line_number":6,"context_line":"    \"local_gb\", \"cpu_arch\", \"memory_mb\" and creates ironic ports"},{"line_number":7,"context_line":"    for inspected nodes."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3f79a3b5_cc51a10f","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":18},"updated":"2018-10-23 08:57:23.000000000","message":"s/ inspecton / inspection /","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"7c2fb5f5de6764d935f426930abcbec36a639f8c","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 inspecton support to ``redfish`` hardware type in ironic."},{"line_number":5,"context_line":"    Successful inspection populates mandatory properties: \"cpus\","},{"line_number":6,"context_line":"    \"local_gb\", \"cpu_arch\", \"memory_mb\" and creates ironic ports"},{"line_number":7,"context_line":"    for inspected nodes."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3f79a3b5_d46aaa16","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":55},"in_reply_to":"3f79a3b5_ac36a5de","updated":"2018-11-02 15:47:45.000000000","message":"Done","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"7c2fb5f5de6764d935f426930abcbec36a639f8c","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 inspecton support to ``redfish`` hardware type in ironic."},{"line_number":5,"context_line":"    Successful inspection populates mandatory properties: \"cpus\","},{"line_number":6,"context_line":"    \"local_gb\", \"cpu_arch\", \"memory_mb\" and creates ironic ports"},{"line_number":7,"context_line":"    for inspected nodes."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3f79a3b5_5458da87","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":18},"in_reply_to":"3f79a3b5_cc51a10f","updated":"2018-11-02 15:47:45.000000000","message":"Done","commit_id":"cab33fb2c70f62269004ffb9514de8ca7043bc15"}],"releasenotes/notes/add_inpsect_interface-1577e70167f24ae4.yaml":[{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"5083c5b6ed0ab269f2ff1635dfe46da922ea297c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This patch adds the RedfishInspect Interface in ironic."},{"line_number":5,"context_line":"    This adds the mandatory properties \"cpus\", \"local_gb\","},{"line_number":6,"context_line":"    \"cpu_arch\", and \"memory_mb\" properties. "}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1f1a1f67_e0504f35","line":6,"range":{"start_line":6,"start_character":43,"end_line":6,"end_character":44},"updated":"2017-07-13 06:32:48.000000000","message":"nit: Remove extra space.","commit_id":"ed71260131f2bac99dd9dd67882846dc18afbe9c"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","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":"    This patch adds the RedfishInspect Interface in ironic."},{"line_number":5,"context_line":"    This adds the mandatory properties \"cpus\", \"local_gb\","},{"line_number":6,"context_line":"    \"cpu_arch\", and \"memory_mb\" properties."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"df7087c5_32718645","line":4,"range":{"start_line":4,"start_character":24,"end_line":4,"end_character":48},"updated":"2018-03-22 13:57:58.000000000","message":"May be:\ns/ \"RedfishInspect Interface\" / \"\u0027redfish\u0027 inspect interface to \u0027redfish\u0027 hardware type\"/","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","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":"    This patch adds the RedfishInspect Interface in ironic."},{"line_number":5,"context_line":"    This adds the mandatory properties \"cpus\", \"local_gb\","},{"line_number":6,"context_line":"    \"cpu_arch\", and \"memory_mb\" properties."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"df7087c5_d2b84ac9","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":19},"updated":"2018-03-22 13:57:58.000000000","message":"s/ \u0027This patch adds\u0027/ \u0027Adds\u0027/","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","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":"    This patch adds the RedfishInspect Interface in ironic."},{"line_number":5,"context_line":"    This adds the mandatory properties \"cpus\", \"local_gb\","},{"line_number":6,"context_line":"    \"cpu_arch\", and \"memory_mb\" properties."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"df7087c5_f2946e39","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":14},"updated":"2018-03-22 13:57:58.000000000","message":"s/ patch //","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"155a784e24f855d33880900d5b4183073713d467","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This patch adds the RedfishInspect Interface in ironic."},{"line_number":5,"context_line":"    This adds the mandatory properties \"cpus\", \"local_gb\","},{"line_number":6,"context_line":"    \"cpu_arch\", and \"memory_mb\" properties."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"df7087c5_3298a673","line":6,"range":{"start_line":6,"start_character":32,"end_line":6,"end_character":42},"updated":"2018-03-22 13:57:58.000000000","message":"s/properties//","commit_id":"04a518ac9cbf13631a22464fdb61b934ad589fe3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b786c6b02adf47cb6d6b0be9fba7dfd7fb2796f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5f7c97a3_0e2d4844","line":7,"updated":"2018-07-16 18:04:23.000000000","message":"Looks like the patch also adds network interfaces, we should mention that..","commit_id":"825855ca8f1a2628b0daa0ad563220f717556e31"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0e2b63dced07f99630b7bbfac549189fec5a8e3b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5f7c97a3_1c06b075","line":7,"in_reply_to":"5f7c97a3_0e2d4844","updated":"2018-07-19 13:02:58.000000000","message":"Done","commit_id":"825855ca8f1a2628b0daa0ad563220f717556e31"}],"setup.cfg":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f378ea8c4e5d6cab2cc2a646f3ea52fa264f2ffa","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    irmc \u003d ironic.drivers.modules.irmc.inspect:IRMCInspect"},{"line_number":89,"context_line":"    no-inspect \u003d ironic.drivers.modules.noop:NoInspect"},{"line_number":90,"context_line":"    oneview \u003d ironic.drivers.modules.oneview.inspect:OneViewInspect"},{"line_number":91,"context_line":"    redfish \u003d ironic.drivers.modules.redfish.inspect:RedfishInspect"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"ironic.hardware.interfaces.management \u003d"},{"line_number":94,"context_line":"    cimc \u003d ironic.drivers.modules.cimc.management:CIMCManagement"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"5f7c97a3_2992f54b","line":91,"range":{"start_line":91,"start_character":1,"end_line":91,"end_character":67},"updated":"2018-07-22 21:11:52.000000000","message":"redfish will need to be added as an option in ironic/conf/default.py","commit_id":"f80e8fab9e0781aa0d39cbe4f9b06a741178abeb"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"98a985759039cd1a295ae65a00c212e266e510a9","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    irmc \u003d ironic.drivers.modules.irmc.inspect:IRMCInspect"},{"line_number":89,"context_line":"    no-inspect \u003d ironic.drivers.modules.noop:NoInspect"},{"line_number":90,"context_line":"    oneview \u003d ironic.drivers.modules.oneview.inspect:OneViewInspect"},{"line_number":91,"context_line":"    redfish \u003d ironic.drivers.modules.redfish.inspect:RedfishInspect"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"ironic.hardware.interfaces.management \u003d"},{"line_number":94,"context_line":"    cimc \u003d ironic.drivers.modules.cimc.management:CIMCManagement"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"5f7c97a3_776f63c7","line":91,"range":{"start_line":91,"start_character":1,"end_line":91,"end_character":67},"in_reply_to":"5f7c97a3_2992f54b","updated":"2018-07-23 07:45:12.000000000","message":"@Julia, We have not included \u0027redfish\u0027 to default for power or management interface. Should we do it just for \u0027inspect\u0027 interface?","commit_id":"f80e8fab9e0781aa0d39cbe4f9b06a741178abeb"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d3d266ce8e8a8487efddd23384109e0ca77a7aad","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    irmc \u003d ironic.drivers.modules.irmc.inspect:IRMCInspect"},{"line_number":89,"context_line":"    no-inspect \u003d ironic.drivers.modules.noop:NoInspect"},{"line_number":90,"context_line":"    oneview \u003d ironic.drivers.modules.oneview.inspect:OneViewInspect"},{"line_number":91,"context_line":"    redfish \u003d ironic.drivers.modules.redfish.inspect:RedfishInspect"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"ironic.hardware.interfaces.management \u003d"},{"line_number":94,"context_line":"    cimc \u003d ironic.drivers.modules.cimc.management:CIMCManagement"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"5f7c97a3_f8f837c2","line":91,"range":{"start_line":91,"start_character":1,"end_line":91,"end_character":67},"in_reply_to":"5f7c97a3_776f63c7","updated":"2018-07-23 15:20:59.000000000","message":"So the alternative is that the tests will need to be updated to set that, otherwise they will fail. I think that is why I saw tests failing when I last looked.","commit_id":"f80e8fab9e0781aa0d39cbe4f9b06a741178abeb"}]}
