)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"72e906c2236269efe975a1579a26a7d1b5da8e1f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Get root device hints from the node object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In order to support a more complex syntax for root device hints (e.g"},{"line_number":10,"context_line":"operators: greater than, less than, in, etc...) we need to stop to rely"},{"line_number":11,"context_line":"on the kernel command line for passing the root device hints. Since the"},{"line_number":12,"context_line":"hardware managers already have a representation of the Ironic\u0027s node"},{"line_number":13,"context_line":"object we should use it and get the root device hints directly from its"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"dab17558_c18ee977","line":10,"updated":"2016-05-17 16:29:26.000000000","message":"Nit: \"to stop relying\"","commit_id":"2ebb81f851441f02f597c1c13eea8ae3fbf21341"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"72e906c2236269efe975a1579a26a7d1b5da8e1f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"In order to support a more complex syntax for root device hints (e.g"},{"line_number":10,"context_line":"operators: greater than, less than, in, etc...) we need to stop to rely"},{"line_number":11,"context_line":"on the kernel command line for passing the root device hints. Since the"},{"line_number":12,"context_line":"hardware managers already have a representation of the Ironic\u0027s node"},{"line_number":13,"context_line":"object we should use it and get the root device hints directly from its"},{"line_number":14,"context_line":"properties."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"dab17558_a1e00527","line":12,"updated":"2016-05-17 16:29:26.000000000","message":"Nit: \"the Ironic node\u0027s object\"","commit_id":"2ebb81f851441f02f597c1c13eea8ae3fbf21341"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"72e906c2236269efe975a1579a26a7d1b5da8e1f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"properties."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"For context, the kernel command line was used in the past because of the"},{"line_number":17,"context_line":"old bash ramdisk, since we\u0027ve used the same [i]PXE template for both"},{"line_number":18,"context_line":"ramdisks we needed a generic way to pass the hints for both deploy"},{"line_number":19,"context_line":"ramdisks."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"dab17558_013911a4","line":17,"updated":"2016-05-17 16:29:26.000000000","message":"\", since we\u0027ve used\" -\u003e \". Since we used\"","commit_id":"2ebb81f851441f02f597c1c13eea8ae3fbf21341"}],"ironic_python_agent/hardware.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"de722d251b6747ff4bac549f628ed00bebb797fe","unresolved":false,"context_lines":[{"line_number":489,"context_line":"    def get_os_install_device(self, node\u003dNone):"},{"line_number":490,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":493,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":494,"context_line":"        #                    command line."},{"line_number":495,"context_line":"        root_device_hints \u003d None"},{"line_number":496,"context_line":"        if node is not None:"},{"line_number":497,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_b9440db7","line":494,"range":{"start_line":492,"start_character":8,"end_line":494,"end_character":42},"updated":"2016-03-31 12:41:50.000000000","message":"I\u0027m a bit confused, where\u0027s the check for kernel command line here?","commit_id":"d9cc33ac0d68769fc5feb51254b06299d9a7847a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ed0f690cae86b12c2e588b828421b4bd7fe6af98","unresolved":false,"context_lines":[{"line_number":489,"context_line":"    def get_os_install_device(self, node\u003dNone):"},{"line_number":490,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":493,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":494,"context_line":"        #                    command line."},{"line_number":495,"context_line":"        root_device_hints \u003d None"},{"line_number":496,"context_line":"        if node is not None:"},{"line_number":497,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_7277d1d4","line":494,"range":{"start_line":492,"start_character":8,"end_line":494,"end_character":42},"in_reply_to":"ba0121b8_b9440db7","updated":"2016-04-12 07:23:46.000000000","message":"Oh I think I thought about adding a fallback here but I ended up not doing it. \n\nI will add on the next patch set","commit_id":"d9cc33ac0d68769fc5feb51254b06299d9a7847a"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"bd53713da3ef0abfa5eb206d3ea93a23ca4f805c","unresolved":false,"context_lines":[{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    def get_os_install_device(self):"},{"line_number":500,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":501,"context_line":"        root_device_hints \u003d utils.parse_root_device_hints()"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        if not root_device_hints:"},{"line_number":504,"context_line":"            return utils.guess_root_disk(block_devices).name"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_80b48535","side":"PARENT","line":501,"range":{"start_line":501,"start_character":8,"end_line":501,"end_character":59},"updated":"2016-04-23 22:26:20.000000000","message":"This needs to be retained as a fallback to check in the kernel command line.","commit_id":"8ce07c88bef9826a00187b555a9406b4febe276d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1d4261a52502a6d683b2a58a84e7320922efcabe","unresolved":false,"context_lines":[{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    def get_os_install_device(self):"},{"line_number":500,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":501,"context_line":"        root_device_hints \u003d utils.parse_root_device_hints()"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        if not root_device_hints:"},{"line_number":504,"context_line":"            return utils.guess_root_disk(block_devices).name"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_083f8eb4","side":"PARENT","line":501,"range":{"start_line":501,"start_character":8,"end_line":501,"end_character":59},"in_reply_to":"1a122d0e_80b48535","updated":"2016-04-28 12:39:59.000000000","message":"No, see the next comment","commit_id":"8ce07c88bef9826a00187b555a9406b4febe276d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"bd53713da3ef0abfa5eb206d3ea93a23ca4f805c","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_e081f94e","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"updated":"2016-04-23 22:26:20.000000000","message":"This check is not present.","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1d4261a52502a6d683b2a58a84e7320922efcabe","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_a84f7a69","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"1a122d0e_a05958ff","updated":"2016-04-28 12:39:59.000000000","message":"We don\u0027t need the check, the node object has always been passed","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6e3a3c592e90ce2a335fce416fb0c5d4c297ff56","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_a88ada18","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"1a122d0e_a84f7a69","updated":"2016-04-28 12:49:44.000000000","message":"Since this fix will not support the bash ramdisk, it is fine. The comments needs to be corrected.","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2a4a82f36119d883bb59c6a0d67b9d55428e6986","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_e8333260","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"1a122d0e_a84f7a69","updated":"2016-04-28 12:57:23.000000000","message":"than we need to make it as required parameter at L503.","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"54df68f0e75ac07f4dfe7fc859f46af7b649cdd4","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_a05958ff","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"1a122d0e_e081f94e","updated":"2016-04-28 10:31:02.000000000","message":"Do we need to check kernel command line? bash ramdisk has been deprecated.","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e53b7df581a41848e98bc00ed669deea384b2870","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_fde5dc08","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"1a122d0e_e8333260","updated":"2016-05-17 10:25:18.000000000","message":"@Vasyl, I can\u0027t make it mandatory or I might break out-of-tree Hardware Managers... Perhaps the right way would be to keep the kernel command line as a fallback here :-/","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"398ce096e35eb32608752785e6f09dd856e58889","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_70a0c042","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"dab17558_50281c86","updated":"2016-05-17 10:38:25.000000000","message":"It\u0027s not mandatory, so when one invoke get_os_install_device() it should not break them (see [0]).\n\nAbout falling back to kernel command line, in the situation in [0], if hints are passed in the kernel cmdline but the node is None, it may return a different device after this patch is applied.\n\n[0] https://github.com/rackerlabs/onmetal-ironic-hardware-manager/blob/master/onmetal_ironic_hardware_manager/__init__.py#L167","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"897e49f4a800b99f4bf593d69d9b456bafb41557","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_d027ecc7","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"dab17558_70a0c042","updated":"2016-05-17 10:39:59.000000000","message":"It might make sense, but you already break out-of-tree hardware managers by providing a new node argument to *their* get_os_install_device. I suspect we might need to pass node in a different way.","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f6565b6e86b99e087bb3a5d4dc1968230722f17a","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_1b04f512","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"dab17558_d027ecc7","updated":"2016-05-17 10:41:33.000000000","message":"Oh right, yeah, if they overwrite the function that\u0027s possible indeed :-/","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"adcdd69e0a2f042ada67aaafc524c6fe9c3f6528","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        block_devices \u003d self.list_block_devices()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # NOTE(lucasagomes): Try to get the root device hints directly from"},{"line_number":507,"context_line":"        #                    the node object, if not passed check the kernel"},{"line_number":508,"context_line":"        #                    command line."},{"line_number":509,"context_line":"        root_device_hints \u003d None"},{"line_number":510,"context_line":"        if node is not None:"},{"line_number":511,"context_line":"            root_device_hints \u003d node[\u0027properties\u0027].get(\u0027root_device\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_50281c86","line":508,"range":{"start_line":507,"start_character":46,"end_line":508,"end_character":42},"in_reply_to":"dab17558_fde5dc08","updated":"2016-05-17 10:26:15.000000000","message":"You are already breaking them by providing an unexpected argument to get_os_install_device, no?","commit_id":"b6fbd36a531fd146e977aa6d894fcf23efcb756d"}],"ironic_python_agent/utils.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"54df68f0e75ac07f4dfe7fc859f46af7b649cdd4","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    return parse.unquote(string).lower().strip()"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"def parse_root_device_hints():"},{"line_number":237,"context_line":"    \"\"\"Parse the root device hints."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    Parse the root device hints given by Ironic via kernel cmdline"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_00a64cad","side":"PARENT","line":236,"updated":"2016-04-28 10:31:02.000000000","message":"It should be removed in separate patch as part of bash ramdisk deprecation.","commit_id":"8ce07c88bef9826a00187b555a9406b4febe276d"}]}
