)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bb0dddcdc83fa81f2700d7f3161b4e9d801c4b68","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch adds a warning for Prolaint Gen8 server\u0027s"},{"line_number":10,"context_line":"inspection."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"story: #2004950"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I71feefa3d0593fd185a286bec4ce38607203641d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fdfeff1_40761841","line":12,"updated":"2019-02-06 04:12:15.000000000","message":"Greetings Nisha,\n\nPlease put the task: #number down in along with the story so we the story is marked completed once the change has merged.","commit_id":"442693237ed49f906d3db213a15739041ea68968"}],"ironic/drivers/modules/ilo/inspect.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bb0dddcdc83fa81f2700d7f3161b4e9d801c4b68","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                task.node.properties \u003d node_properties"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        if model is not None and \u0027Gen8\u0027 in model:"},{"line_number":247,"context_line":"            LOG.warning(\u0027iLO cannot detect if the NICs are physically \u0027"},{"line_number":248,"context_line":"                        \u0027connected or not for ProLiant Gen8 servers. \u0027"},{"line_number":249,"context_line":"                        \u0027Hence returns all the MACs present on the server.\u0027"},{"line_number":250,"context_line":"                        \u0027Node %(node) is %(model)\u0027, "}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_609a3c6f","line":247,"updated":"2019-02-06 04:12:15.000000000","message":"It seems like this is purely for Gen8 gear, so why not start off the error explicitly stating that?\n\nIt seems a little misleading at present when the logic is if model is not None and \u0027Gen8\u0027 in model, to then talk about the ilo not being able to detect if nics are physically connected _OR_ not for proliant gen8...","commit_id":"442693237ed49f906d3db213a15739041ea68968"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"0580cc960c03626ddf8714367a73e9e65c1d26e8","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                task.node.properties \u003d node_properties"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        if model is not None and \u0027Gen8\u0027 in model:"},{"line_number":247,"context_line":"            LOG.warning(\u0027iLO cannot detect if the NICs are physically \u0027"},{"line_number":248,"context_line":"                        \u0027connected or not for ProLiant Gen8 servers. \u0027"},{"line_number":249,"context_line":"                        \u0027Hence returns all the MACs present on the server.\u0027"},{"line_number":250,"context_line":"                        \u0027Node %(node) is %(model)\u0027, "}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_f0b583ce","line":247,"in_reply_to":"9fdfeff1_609a3c6f","updated":"2019-02-07 08:55:25.000000000","message":"I have added the comment in the code now. pasting the same here for more clarity.\n\n\"RIBCL(Gen8) protocol cannot determine if a NIC is physically connected with cable or not when the server is not provisioned. However it is possible to determine the same using RIS(Gen9) and Redfish(Gen10) protocols. Hence proliantutils return ALL MACs for Gen8 while returns only active MACs for Gen9 and Gen10. A warning is been added for the user so that he knows that he needs to remove the ironic ports created for inactive ports for Gen8.\"","commit_id":"442693237ed49f906d3db213a15739041ea68968"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bb0dddcdc83fa81f2700d7f3161b4e9d801c4b68","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            LOG.warning(\u0027iLO cannot detect if the NICs are physically \u0027"},{"line_number":248,"context_line":"                        \u0027connected or not for ProLiant Gen8 servers. \u0027"},{"line_number":249,"context_line":"                        \u0027Hence returns all the MACs present on the server.\u0027"},{"line_number":250,"context_line":"                        \u0027Node %(node) is %(model)\u0027, "},{"line_number":251,"context_line":"                        {\"node\": task.node.uuid, \"model\": model})"},{"line_number":252,"context_line":"        task.node.save()"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_20a514b6","line":250,"updated":"2019-02-06 04:12:15.000000000","message":"nit: excess space.","commit_id":"442693237ed49f906d3db213a15739041ea68968"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"0580cc960c03626ddf8714367a73e9e65c1d26e8","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            LOG.warning(\u0027iLO cannot detect if the NICs are physically \u0027"},{"line_number":248,"context_line":"                        \u0027connected or not for ProLiant Gen8 servers. \u0027"},{"line_number":249,"context_line":"                        \u0027Hence returns all the MACs present on the server.\u0027"},{"line_number":250,"context_line":"                        \u0027Node %(node) is %(model)\u0027, "},{"line_number":251,"context_line":"                        {\"node\": task.node.uuid, \"model\": model})"},{"line_number":252,"context_line":"        task.node.save()"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_90caf74c","line":250,"in_reply_to":"9fdfeff1_20a514b6","updated":"2019-02-07 08:55:25.000000000","message":"Done","commit_id":"442693237ed49f906d3db213a15739041ea68968"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"bee8155f3b9a36061b8a8969441838d4d3a6e7c3","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    if data.get(\u0027macs\u0027):"},{"line_number":103,"context_line":"        if not isinstance(data[\u0027macs\u0027], dict):"},{"line_number":104,"context_line":"            error \u003d (_(\"Node %(node)s didn\u0027t return MACs %(macs)s \""},{"line_number":105,"context_line":"                       \"in dictionary format.\")"},{"line_number":106,"context_line":"                     % {\"macs\": data[\u0027macs\u0027], \u0027node\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_6bc1a62e","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":46},"updated":"2019-02-07 06:54:16.000000000","message":"We need to add another check that dictionary is not empty. Both RIS [1] and Redfish [2] implementation can return empty dictionary.\n[1] https://review.openstack.org/#/c/632039/2/proliantutils/ilo/ris.py\n[2] https://github.com/openstack/proliantutils/blob/master/proliantutils/redfish/resources/system/ethernet_interface.py#L36-L56","commit_id":"913e4cebb2bdb96dad0562a09926d9aed76eaf13"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"c1407d3059a5d7b46438067d77a3ff6d72dd7460","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    if data.get(\u0027macs\u0027):"},{"line_number":103,"context_line":"        if not isinstance(data[\u0027macs\u0027], dict):"},{"line_number":104,"context_line":"            error \u003d (_(\"Node %(node)s didn\u0027t return MACs %(macs)s \""},{"line_number":105,"context_line":"                       \"in dictionary format.\")"},{"line_number":106,"context_line":"                     % {\"macs\": data[\u0027macs\u0027], \u0027node\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_47837605","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":46},"in_reply_to":"9fdfeff1_6bc1a62e","updated":"2019-02-07 08:11:32.000000000","message":"Oops, this check is present at L102. Nothing is required.","commit_id":"913e4cebb2bdb96dad0562a09926d9aed76eaf13"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8467e1a3db59904a434be90d8783227ef8aed86b","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        # Hence proliantutils return ALL MACs for Gen8 while returns"},{"line_number":251,"context_line":"        # only active MACs for Gen9 and Gen10. A warning is been added"},{"line_number":252,"context_line":"        # for the user so that he knows that he needs to remove the"},{"line_number":253,"context_line":"        # ironic ports created for inactive ports for Gen8."},{"line_number":254,"context_line":"        if model is not None and \u0027Gen8\u0027 in model:"},{"line_number":255,"context_line":"            LOG.warning(\u0027iLO cannot determine if the NICs are physically \u0027"},{"line_number":256,"context_line":"                        \u0027connected or not for ProLiant Gen8 servers. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_905e7743","line":253,"updated":"2019-02-07 05:23:12.000000000","message":"Thanks you for enhancing the inline note. :)","commit_id":"913e4cebb2bdb96dad0562a09926d9aed76eaf13"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8467e1a3db59904a434be90d8783227ef8aed86b","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                        \u0027connected or not for ProLiant Gen8 servers. \u0027"},{"line_number":257,"context_line":"                        \u0027Hence returns all the MACs present on the server. \u0027"},{"line_number":258,"context_line":"                        \u0027Please remove the ironic ports created for inactive \u0027"},{"line_number":259,"context_line":"                        \u0027NICs manually for the node %(node)\u0027,"},{"line_number":260,"context_line":"                        {\"node\": task.node.uuid})"},{"line_number":261,"context_line":"        task.node.save()"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_d044ff76","line":259,"updated":"2019-02-07 05:23:12.000000000","message":"Okay, that makes more sense now. Thanks Nisha!","commit_id":"913e4cebb2bdb96dad0562a09926d9aed76eaf13"}],"ironic/tests/unit/drivers/modules/ilo/test_inspect.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bb0dddcdc83fa81f2700d7f3161b4e9d801c4b68","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                       autospec\u003dTrue)"},{"line_number":142,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027, spec_set\u003dTrue,"},{"line_number":143,"context_line":"                       autospec\u003dTrue)"},{"line_number":144,"context_line":"    def test_inspect_ok_gen8(self, get_ilo_object_mock,"},{"line_number":145,"context_line":"                                                power_mock,"},{"line_number":146,"context_line":"                                                get_essential_mock,"},{"line_number":147,"context_line":"                                                create_port_mock,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_807c0021","line":144,"updated":"2019-02-06 04:12:15.000000000","message":"What exactly is this test trying to test?  Gen8.... but then wouldn\u0027t it also make sense to have a Gen9 to verify that the logging does not occur?","commit_id":"442693237ed49f906d3db213a15739041ea68968"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"0580cc960c03626ddf8714367a73e9e65c1d26e8","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                       autospec\u003dTrue)"},{"line_number":142,"context_line":"    @mock.patch.object(ilo_common, \u0027get_ilo_object\u0027, spec_set\u003dTrue,"},{"line_number":143,"context_line":"                       autospec\u003dTrue)"},{"line_number":144,"context_line":"    def test_inspect_ok_gen8(self, get_ilo_object_mock,"},{"line_number":145,"context_line":"                                                power_mock,"},{"line_number":146,"context_line":"                                                get_essential_mock,"},{"line_number":147,"context_line":"                                                create_port_mock,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_30e1cbd1","line":144,"in_reply_to":"9fdfeff1_807c0021","updated":"2019-02-07 08:55:25.000000000","message":"Done","commit_id":"442693237ed49f906d3db213a15739041ea68968"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8467e1a3db59904a434be90d8783227ef8aed86b","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            power_mock.assert_called_once_with(mock.ANY, task)"},{"line_number":209,"context_line":"            get_essential_mock.assert_called_once_with(task.node,"},{"line_number":210,"context_line":"                                                       ilo_object_mock)"},{"line_number":211,"context_line":"            self.assertFalse(log_mock.called)"},{"line_number":212,"context_line":"            get_capabilities_mock.assert_called_once_with(task.node,"},{"line_number":213,"context_line":"                                                          ilo_object_mock)"},{"line_number":214,"context_line":"            create_port_mock.assert_called_once_with(task, macs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_7055131d","line":211,"updated":"2019-02-07 05:23:12.000000000","message":"Thanks! With the enhanced inline note, that makes enough sense now to link the two when comparing/contrasting.","commit_id":"913e4cebb2bdb96dad0562a09926d9aed76eaf13"}]}
