)]}'
{"ironic/drivers/modules/oneview/common.py":[{"author":{"_account_id":21775,"name":"Ricardo Araújo Santos","email":"ricardo@lsd.ufcg.edu.br","username":"ricardoas"},"change_message_id":"68e724b7baee46fe992688a8d577134cd5c78d0d","unresolved":false,"context_lines":[{"line_number":250,"context_line":"    return inner"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"def has_server_profile(task, oneview_client):"},{"line_number":254,"context_line":"    \"\"\"Checks if the node\u0027s Server Hardware has a Server Profile associated."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    Function to check if the Server Profile is applied to the Server Hardware."}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_0b4ee3c0","line":253,"updated":"2017-07-20 14:31:33.000000000","message":"why not check_applied_server_profile? Each time i see has my heart expects a boolean in return :(","commit_id":"3afa0e97b79723b0df085e78f0f2fddfd4cae4a2"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e9d465a71a6083cbd3958089ad58aeb1d71813cd","unresolved":false,"context_lines":[{"line_number":250,"context_line":"    return inner"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"def has_server_profile(task, oneview_client):"},{"line_number":254,"context_line":"    \"\"\"Checks if the node\u0027s Server Hardware has a Server Profile associated."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    Function to check if the Server Profile is applied to the Server Hardware."}],"source_content_type":"text/x-python","patch_set":4,"id":"ff346bd7_951d0268","line":253,"in_reply_to":"1f1a1f67_0b4ee3c0","updated":"2017-07-25 20:17:06.000000000","message":"Done","commit_id":"3afa0e97b79723b0df085e78f0f2fddfd4cae4a2"},{"author":{"_account_id":21775,"name":"Ricardo Araújo Santos","email":"ricardo@lsd.ufcg.edu.br","username":"ricardoas"},"change_message_id":"68e724b7baee46fe992688a8d577134cd5c78d0d","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    \"\"\""},{"line_number":261,"context_line":"    oneview_info \u003d get_oneview_info(task.node)"},{"line_number":262,"context_line":"    try:"},{"line_number":263,"context_line":"        node_has_server_profile \u003d ("},{"line_number":264,"context_line":"            oneview_client.get_server_profile_from_hardware(oneview_info)"},{"line_number":265,"context_line":"        )"},{"line_number":266,"context_line":"    except oneview_exceptions.OneViewException as oneview_exc:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_2b23df07","line":263,"range":{"start_line":263,"start_character":8,"end_line":263,"end_character":31},"updated":"2017-07-20 14:31:33.000000000","message":"nit: this is not a boolean... I think you are checking for a None here, right? I\u0027d suggest to change this to applied_server_profile or something like that if there is a new patch set.","commit_id":"3afa0e97b79723b0df085e78f0f2fddfd4cae4a2"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e9d465a71a6083cbd3958089ad58aeb1d71813cd","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    \"\"\""},{"line_number":261,"context_line":"    oneview_info \u003d get_oneview_info(task.node)"},{"line_number":262,"context_line":"    try:"},{"line_number":263,"context_line":"        node_has_server_profile \u003d ("},{"line_number":264,"context_line":"            oneview_client.get_server_profile_from_hardware(oneview_info)"},{"line_number":265,"context_line":"        )"},{"line_number":266,"context_line":"    except oneview_exceptions.OneViewException as oneview_exc:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff346bd7_5529da87","line":263,"range":{"start_line":263,"start_character":8,"end_line":263,"end_character":31},"in_reply_to":"1f1a1f67_2b23df07","updated":"2017-07-25 20:17:06.000000000","message":"Done","commit_id":"3afa0e97b79723b0df085e78f0f2fddfd4cae4a2"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"4dc8aaf5349f86153af17d5c1d41cf7ba5aca137","unresolved":false,"context_lines":[{"line_number":237,"context_line":"def node_has_server_profile(func):"},{"line_number":238,"context_line":"    \"\"\"Checks if the node\u0027s Server Hardware has a Server Profile associated."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    Decorator to execute before the function execution if the Server Profile"},{"line_number":241,"context_line":"    is applied to the Server Hardware."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    :param func: a given decorated function."}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_620c0641","line":240,"range":{"start_line":240,"start_character":55,"end_line":240,"end_character":57},"updated":"2017-07-26 13:45:48.000000000","message":"to check if","commit_id":"8f45317d4345872c050b2fa347f7be033556d2f5"}],"ironic/drivers/modules/oneview/deploy.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"59a57666a25fafcec7234cef5ab74f811ca0b7cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 Hewlett Packard Enterprise Development Company LP."},{"line_number":2,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":3,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_c9b872e6","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":16},"updated":"2017-07-26 16:49:35.000000000","message":"nit: the year should only be fixed.","commit_id":"8f45317d4345872c050b2fa347f7be033556d2f5"}],"ironic/drivers/modules/oneview/management.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"868a717e3e8a8e9de957bd0e13ecbb96b61e4bb0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        boot_device \u003d next_boot_device.get(\u0027boot_device\u0027)"},{"line_number":66,"context_line":"        persistent \u003d next_boot_device.get(\u0027persistent\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if boot_device not in sorted(BOOT_DEVICE_MAPPING_TO_OV.keys()):"},{"line_number":69,"context_line":"            raise exception.InvalidParameterValue("},{"line_number":70,"context_line":"                _(\"Invalid boot device %s specified.\") % boot_device)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_7365e5e0","line":68,"updated":"2017-07-15 16:21:58.000000000","message":"nit: .keys() is redundant","commit_id":"6d8fdb3a1148013d24b703ec10340a708e9c9415"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"71d5384dce6e137fbd1ddd8baac055ffdb0475d7","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        boot_device \u003d next_boot_device.get(\u0027boot_device\u0027)"},{"line_number":66,"context_line":"        persistent \u003d next_boot_device.get(\u0027persistent\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if boot_device not in sorted(BOOT_DEVICE_MAPPING_TO_OV.keys()):"},{"line_number":69,"context_line":"            raise exception.InvalidParameterValue("},{"line_number":70,"context_line":"                _(\"Invalid boot device %s specified.\") % boot_device)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_d7d33703","line":68,"in_reply_to":"1f1a1f67_7365e5e0","updated":"2017-07-18 20:55:42.000000000","message":"Done","commit_id":"6d8fdb3a1148013d24b703ec10340a708e9c9415"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1fa1fb2437120a6d6c75471f5e3bc4d783d4221c","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":79,"context_line":"            device_to_oneview \u003d BOOT_DEVICE_MAPPING_TO_OV.get(boot_device)"},{"line_number":80,"context_line":"            oneview_client.set_boot_device(oneview_info,"},{"line_number":81,"context_line":"                                           device_to_oneview,"},{"line_number":82,"context_line":"                                           onetime\u003dnot persistent)"},{"line_number":83,"context_line":"        except oneview_exceptions.OneViewException as oneview_exc:"},{"line_number":84,"context_line":"            msg \u003d (_("},{"line_number":85,"context_line":"                \"Error setting boot device on OneView. Error: %s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_71e5cb08","line":82,"range":{"start_line":80,"start_character":12,"end_line":82,"end_character":66},"updated":"2017-07-17 10:43:26.000000000","message":"I think driver_internal_info[\u0027next_boot_device\u0027] be cleared after invoking oneview client call.\n    node \u003d task.node\n    driver_internal_info \u003d node.driver_internal_info\n    driver_internal_info.pop(\u0027next_boot_device\u0027, None)\n    node.driver_internal_info \u003d driver_internal_inf\n    node.save()","commit_id":"6d8fdb3a1148013d24b703ec10340a708e9c9415"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"71d5384dce6e137fbd1ddd8baac055ffdb0475d7","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            oneview_info \u003d common.get_oneview_info(task.node)"},{"line_number":79,"context_line":"            device_to_oneview \u003d BOOT_DEVICE_MAPPING_TO_OV.get(boot_device)"},{"line_number":80,"context_line":"            oneview_client.set_boot_device(oneview_info,"},{"line_number":81,"context_line":"                                           device_to_oneview,"},{"line_number":82,"context_line":"                                           onetime\u003dnot persistent)"},{"line_number":83,"context_line":"        except oneview_exceptions.OneViewException as oneview_exc:"},{"line_number":84,"context_line":"            msg \u003d (_("},{"line_number":85,"context_line":"                \"Error setting boot device on OneView. Error: %s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_0d3ac0e5","line":82,"range":{"start_line":80,"start_character":12,"end_line":82,"end_character":66},"in_reply_to":"1f1a1f67_71e5cb08","updated":"2017-07-18 20:55:42.000000000","message":"Done","commit_id":"6d8fdb3a1148013d24b703ec10340a708e9c9415"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1fa1fb2437120a6d6c75471f5e3bc4d783d4221c","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":150,"context_line":"    @common.node_has_server_profile"},{"line_number":151,"context_line":"    def set_boot_device(self, task, device, persistent\u003dFalse):"},{"line_number":152,"context_line":"        \"\"\"Set the boot device for a node."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        Set the boot device to use on next power on of the node."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        :param task: a task from TaskManager."},{"line_number":157,"context_line":"        :param device: the boot device, one of the supported devices"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_51e40f3c","line":154,"range":{"start_line":152,"start_character":8,"end_line":154,"end_character":64},"updated":"2017-07-17 10:43:26.000000000","message":"This method no more sets the boot device on the node, but sets it in the driver_internal_info[\u0027next_boot_device\u0027] .","commit_id":"6d8fdb3a1148013d24b703ec10340a708e9c9415"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"71d5384dce6e137fbd1ddd8baac055ffdb0475d7","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":150,"context_line":"    @common.node_has_server_profile"},{"line_number":151,"context_line":"    def set_boot_device(self, task, device, persistent\u003dFalse):"},{"line_number":152,"context_line":"        \"\"\"Set the boot device for a node."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        Set the boot device to use on next power on of the node."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        :param task: a task from TaskManager."},{"line_number":157,"context_line":"        :param device: the boot device, one of the supported devices"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_c3c93959","line":154,"range":{"start_line":152,"start_character":8,"end_line":154,"end_character":64},"in_reply_to":"1f1a1f67_51e40f3c","updated":"2017-07-18 20:55:42.000000000","message":"Done","commit_id":"6d8fdb3a1148013d24b703ec10340a708e9c9415"}],"ironic/tests/unit/drivers/modules/oneview/test_deploy.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"59a57666a25fafcec7234cef5ab74f811ca0b7cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 Hewlett Packard Enterprise Development Company LP."},{"line_number":2,"context_line":"# Copyright 2016 Hewlett Packard Enterprise Development LP."},{"line_number":3,"context_line":"# Copyright 2016 Universidade Federal de Campina Grande"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff346bd7_e93e9689","line":2,"range":{"start_line":1,"start_character":56,"end_line":2,"end_character":59},"updated":"2017-07-26 16:49:35.000000000","message":"nit: this should just be fixed year wise, it is the same company, I just don\u0027t know if the standard has changed sine I think it was \"Hewlett Packard Enterprise Development LP.\" when I was there.","commit_id":"8f45317d4345872c050b2fa347f7be033556d2f5"}],"ironic/tests/unit/drivers/modules/oneview/test_management.py":[{"author":{"_account_id":21775,"name":"Ricardo Araújo Santos","email":"ricardo@lsd.ufcg.edu.br","username":"ricardoas"},"change_message_id":"68e724b7baee46fe992688a8d577134cd5c78d0d","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        self.assertItemsEqual(expected,"},{"line_number":237,"context_line":"                              self.driver.management.get_properties())"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_set_boot_device_persistent_true(self, mock_get_ov_client):"},{"line_number":240,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"},{"line_number":241,"context_line":"            task.driver.management.set_boot_device("},{"line_number":242,"context_line":"                task, boot_devices.PXE, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_19e2b902","line":239,"updated":"2017-07-20 14:31:33.000000000","message":"I prefer the previous name... and test_set_boot_device_not_persistent (or non_persistent?) for the other case.","commit_id":"3afa0e97b79723b0df085e78f0f2fddfd4cae4a2"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"e9d465a71a6083cbd3958089ad58aeb1d71813cd","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        self.assertItemsEqual(expected,"},{"line_number":237,"context_line":"                              self.driver.management.get_properties())"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_set_boot_device_persistent_true(self, mock_get_ov_client):"},{"line_number":240,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"},{"line_number":241,"context_line":"            task.driver.management.set_boot_device("},{"line_number":242,"context_line":"                task, boot_devices.PXE, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff346bd7_1558f22f","line":239,"in_reply_to":"1f1a1f67_19e2b902","updated":"2017-07-25 20:17:06.000000000","message":"Done","commit_id":"3afa0e97b79723b0df085e78f0f2fddfd4cae4a2"}],"ironic/tests/unit/drivers/modules/oneview/test_power.py":[{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"71d5384dce6e137fbd1ddd8baac055ffdb0475d7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Hewlett Packard Development Company, LP"},{"line_number":4,"context_line":"# Copyright 2015 Universidade Federal de Campina Grande"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_235b4d87","side":"PARENT","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":25},"updated":"2017-07-18 20:55:42.000000000","message":"putting back because it\u0027s unrelated.","commit_id":"7a0632dd594b949621db5209e3168518822d83c4"}],"releasenotes/notes/oneview-agent-mixin-removal-b7277e8f20df5ef2.yaml":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f62a6b93c8c1ac8766f19e3d6e63a2c26255b0e0","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Update oneview driver for check if a set boot device"},{"line_number":5,"context_line":"    operation should be performed before powering the node"},{"line_number":6,"context_line":"    on according to the node\u0027s ``next_boot_device`` flag."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ff346bd7_be8fe921","line":6,"range":{"start_line":6,"start_character":23,"end_line":6,"end_character":57},"updated":"2017-07-25 03:45:34.000000000","message":"``next_boot_device`` is a driver_internal_info field. You need not mention that in these notes. May be you can say something like:-\n\"Oneview drivers caches the next boot device in node\u0027s internal info when set_boot_device() is called. It is applied on the bare metal when node is power cycled.\"","commit_id":"e8e3dff6f3322d8134c12d9303c9827264e20fb3"},{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"c906846961eed4591973d8c0b30852ba4a7a8905","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Update oneview driver for check if a set boot device"},{"line_number":5,"context_line":"    operation should be performed before powering the node"},{"line_number":6,"context_line":"    on according to the node\u0027s ``next_boot_device`` flag."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ff346bd7_5e346ffb","line":6,"range":{"start_line":6,"start_character":23,"end_line":6,"end_character":57},"in_reply_to":"ff346bd7_be8fe921","updated":"2017-07-25 12:04:40.000000000","message":"Done","commit_id":"e8e3dff6f3322d8134c12d9303c9827264e20fb3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a99d4378061f5a50c83841a30526a09773c02631","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Oneview drivers caches the next boot device in node\u0027s internal"},{"line_number":5,"context_line":"    info when set_boot_device() is called. It is applied on the"},{"line_number":6,"context_line":"    bare metal when node is power cycled."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"df3967d1_6c5fb241","line":6,"updated":"2017-07-31 13:37:41.000000000","message":"I don\u0027t see what changed from the user\u0027s perspective.","commit_id":"8f45317d4345872c050b2fa347f7be033556d2f5"}]}
