)]}'
{"plugins/modules/baremetal_node_action.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"36ded15834a180b9b9b80da093e988533534f2ba","unresolved":true,"context_lines":[{"line_number":232,"context_line":""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"def _initiate_node_validate(module, cloud, node):"},{"line_number":235,"context_line":"    if _is_true(module.params[\u0027deploy\u0027]):"},{"line_number":236,"context_line":"        if _is_false(node[\u0027deploy\u0027]):"},{"line_number":237,"context_line":"            cloud.validate_machine(node[\u0027uuid\u0027], True)"},{"line_number":238,"context_line":"            module.exit_json(changed\u003dTrue, msg\u003d\"Node validate initiated.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"0fd59365_cc85cc81","line":235,"range":{"start_line":235,"start_character":0,"end_line":235,"end_character":41},"updated":"2021-01-11 11:58:02.000000000","message":"Not sure what you meant here, but I think this line should be removed.","commit_id":"9ab62e5bf6412eeb1b2367a7485bf29329c6f248"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"36ded15834a180b9b9b80da093e988533534f2ba","unresolved":true,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"def _initiate_node_validate(module, cloud, node):"},{"line_number":235,"context_line":"    if _is_true(module.params[\u0027deploy\u0027]):"},{"line_number":236,"context_line":"        if _is_false(node[\u0027deploy\u0027]):"},{"line_number":237,"context_line":"            cloud.validate_machine(node[\u0027uuid\u0027], True)"},{"line_number":238,"context_line":"            module.exit_json(changed\u003dTrue, msg\u003d\"Node validate initiated.\")"},{"line_number":239,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"b156f242_1ec845c5","line":236,"range":{"start_line":236,"start_character":0,"end_line":236,"end_character":37},"updated":"2021-01-11 11:58:02.000000000","message":"Same, nodes don\u0027t have a \"deploy\" field","commit_id":"9ab62e5bf6412eeb1b2367a7485bf29329c6f248"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"36aa7e5606c0e1b28506d66b0f507515e4a4d144","unresolved":true,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"def _initiate_node_validate(module, cloud, node):"},{"line_number":235,"context_line":"    if _is_true(module.params[\u0027deploy\u0027]):"},{"line_number":236,"context_line":"        if _is_false(node[\u0027deploy\u0027]):"},{"line_number":237,"context_line":"            cloud.validate_machine(node[\u0027uuid\u0027], True)"},{"line_number":238,"context_line":"            module.exit_json(changed\u003dTrue, msg\u003d\"Node validate initiated.\")"},{"line_number":239,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"eb5221af_fc5374f3","line":236,"range":{"start_line":236,"start_character":0,"end_line":236,"end_character":37},"in_reply_to":"b156f242_1ec845c5","updated":"2021-01-11 17:21:01.000000000","message":"I think she is attempting to case the conditional check of if deploy or not. Maybe?!? Still, seems odd.\n\nIt seems like a validation check flag should be added. But maybe the question is \"what does validation mean in this context?\"\n\nIs calling it just a pre-flight check for deployment?\n\nIs it a one time check/validate/return results? I think this would be a bad idea, and I like the pre-deployment validation flag because we return all interfaces in validation detailing if there are issues. As values change, context changes and the validation response changes.\n\nFor example if no instance_info is supplied, the deploy interface will supply a validation error, and say the bios interface may always return a validation error, but everything else would work.","commit_id":"9ab62e5bf6412eeb1b2367a7485bf29329c6f248"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"36ded15834a180b9b9b80da093e988533534f2ba","unresolved":true,"context_lines":[{"line_number":235,"context_line":"    if _is_true(module.params[\u0027deploy\u0027]):"},{"line_number":236,"context_line":"        if _is_false(node[\u0027deploy\u0027]):"},{"line_number":237,"context_line":"            cloud.validate_machine(node[\u0027uuid\u0027], True)"},{"line_number":238,"context_line":"            module.exit_json(changed\u003dTrue, msg\u003d\"Node validate initiated.\")"},{"line_number":239,"context_line":"            return True"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1389b89a_87d7b8b9","line":238,"range":{"start_line":238,"start_character":0,"end_line":238,"end_character":74},"updated":"2021-01-11 11:58:02.000000000","message":"Validation is a synchronous code, you get the results right away.","commit_id":"9ab62e5bf6412eeb1b2367a7485bf29329c6f248"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"36aa7e5606c0e1b28506d66b0f507515e4a4d144","unresolved":true,"context_lines":[{"line_number":251,"context_line":"        power\u003ddict(required\u003dFalse, default\u003d\u0027present\u0027),"},{"line_number":252,"context_line":"        deploy\u003ddict(required\u003dFalse, default\u003d\u0027yes\u0027),"},{"line_number":253,"context_line":"        wait\u003ddict(type\u003d\u0027bool\u0027, required\u003dFalse, default\u003dFalse),"},{"line_number":254,"context_line":"        timeout\u003ddict(required\u003dFalse, type\u003d\u0027int\u0027, default\u003d1800),"},{"line_number":255,"context_line":"    )"},{"line_number":256,"context_line":"    module_kwargs \u003d openstack_module_kwargs()"},{"line_number":257,"context_line":"    module \u003d IronicModule(argument_spec, **module_kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"13d36d23_2e225c3b","line":254,"updated":"2021-01-11 17:21:01.000000000","message":"I would add an option to the argument spec for explicit validation.","commit_id":"9ab62e5bf6412eeb1b2367a7485bf29329c6f248"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"374f4a67ce40c8c72b306a0498dd0201ab5a5895","unresolved":true,"context_lines":[{"line_number":235,"context_line":"    return False"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"def _initiate_node_validate(module, cloud, node):"},{"line_number":239,"context_line":"    if _is_true(module.params[\u0027validate\u0027]):"},{"line_number":240,"context_line":"        cloud.validate_machine(node[\u0027uuid\u0027], True)"},{"line_number":241,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":3,"id":"38c249ee_d41a9ae9","line":238,"updated":"2021-01-19 16:58:26.000000000","message":"This works \\o/\n\n        }\n    },\n    \"msg\": \"Validation failed for required interfaces of node 4e41df61-84b1-5856-bfb6-6b5f2cd3dd11: boot (Cannot validate image information for node 4e41df61-84b1-5856-bfb6-6b5f2cd3dd11 because one or more parameters are missing from its instance_info and insufficent information is present to boot from a remote volume. Missing are: [\u0027image_source\u0027, \u0027kernel\u0027, \u0027ramdisk\u0027]), deploy (Cannot validate image information for node 4e41df61-84b1-5856-bfb6-6b5f2cd3dd11 because one or more parameters are missing from its instance_info and insufficent information is present to boot from a remote volume. Missing are: [\u0027image_source\u0027, \u0027kernel\u0027, \u0027ramdisk\u0027])\"\n}","commit_id":"c76aba5ff90dd6f325ab0c60d89d47efbe1dd156"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"374f4a67ce40c8c72b306a0498dd0201ab5a5895","unresolved":true,"context_lines":[{"line_number":339,"context_line":"            # support, although there is a known desire to remove"},{"line_number":340,"context_line":"            # rebuild support from Ironic at some point in the future."},{"line_number":341,"context_line":"            cloud.update_machine(uuid, instance_info\u003dinstance_info)"},{"line_number":342,"context_line":"            cloud.validate_node(uuid)"},{"line_number":343,"context_line":"            if not wait:"},{"line_number":344,"context_line":"                cloud.activate_node(uuid, module.params[\u0027config_drive\u0027])"},{"line_number":345,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"e6d1a6a1_7ce57355","line":342,"updated":"2021-01-19 16:58:26.000000000","message":"You may want to replace your validate node method with this validate_node method call here.","commit_id":"c76aba5ff90dd6f325ab0c60d89d47efbe1dd156"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"fcb43ce256c9be6f7f8f182b78955de881d7f0cd","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            # support, although there is a known desire to remove"},{"line_number":340,"context_line":"            # rebuild support from Ironic at some point in the future."},{"line_number":341,"context_line":"            cloud.update_machine(uuid, instance_info\u003dinstance_info)"},{"line_number":342,"context_line":"            cloud.validate_node(uuid)"},{"line_number":343,"context_line":"            if not wait:"},{"line_number":344,"context_line":"                cloud.activate_node(uuid, module.params[\u0027config_drive\u0027])"},{"line_number":345,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fc5a223d_42e59964","line":342,"in_reply_to":"8857cf48_c7e0c5c2","updated":"2021-01-21 17:02:53.000000000","message":"Resolving comment as my idea was not valid.","commit_id":"c76aba5ff90dd6f325ab0c60d89d47efbe1dd156"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ef0ffc9422cbb265e7941ebbe3d95c2167e2d758","unresolved":true,"context_lines":[{"line_number":339,"context_line":"            # support, although there is a known desire to remove"},{"line_number":340,"context_line":"            # rebuild support from Ironic at some point in the future."},{"line_number":341,"context_line":"            cloud.update_machine(uuid, instance_info\u003dinstance_info)"},{"line_number":342,"context_line":"            cloud.validate_node(uuid)"},{"line_number":343,"context_line":"            if not wait:"},{"line_number":344,"context_line":"                cloud.activate_node(uuid, module.params[\u0027config_drive\u0027])"},{"line_number":345,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"8857cf48_c7e0c5c2","line":342,"in_reply_to":"e6d1a6a1_7ce57355","updated":"2021-01-21 11:14:49.000000000","message":"Actually.. validation must happen here, otherwise it\u0027s not possible to create a node that passes validation (instance_info is set afterwards).\n\nOr instance_info setting must be moved above.","commit_id":"c76aba5ff90dd6f325ab0c60d89d47efbe1dd156"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8b954d85d750fc8dc0c1d1ae39ccc7f948574084","unresolved":true,"context_lines":[{"line_number":254,"context_line":"        deploy\u003ddict(required\u003dFalse, default\u003d\u0027yes\u0027),"},{"line_number":255,"context_line":"        wait\u003ddict(type\u003d\u0027bool\u0027, required\u003dFalse, default\u003dFalse),"},{"line_number":256,"context_line":"        timeout\u003ddict(required\u003dFalse, type\u003d\u0027int\u0027, default\u003d1800),"},{"line_number":257,"context_line":"        validate\u003ddict(type\u003d\u0027bool\u0027, required\u003dFalse),"},{"line_number":258,"context_line":"    )"},{"line_number":259,"context_line":"    module_kwargs \u003d openstack_module_kwargs()"},{"line_number":260,"context_line":"    module \u003d IronicModule(argument_spec, **module_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7cb3410a_ea1581f3","line":257,"updated":"2021-01-28 16:20:25.000000000","message":"you _might_ want to add \"default\u003dFalse\" to this argument spec definition on the line above.","commit_id":"10a19633b1a98df237634046d00e54e38cefa3c4"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"2a319991a1f5c09ecfe0bdd02ac5c93be61b004f","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    validate:"},{"line_number":95,"context_line":"      description:"},{"line_number":96,"context_line":"        - A boolean value instructing the module to validate a node."},{"line_number":97,"context_line":"      type: bool"},{"line_number":98,"context_line":"requirements:"},{"line_number":99,"context_line":"    - \"python \u003e\u003d 3.6\""},{"line_number":100,"context_line":"    - \"openstacksdk\""}],"source_content_type":"text/x-python","patch_set":8,"id":"b5cb6969_00e51a15","line":97,"updated":"2021-01-29 11:55:11.000000000","message":"Need to add default false here","commit_id":"494ede2b55748a125de088e091082393ac5ff7bd"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9be4870df222a18f7168ccc450f6b792c7f2ab09","unresolved":true,"context_lines":[{"line_number":238,"context_line":""},{"line_number":239,"context_line":"def _initiate_node_validate(module, cloud, node):"},{"line_number":240,"context_line":"    if _is_true(module.params[\u0027validate\u0027]):"},{"line_number":241,"context_line":"        cloud.validate_machine(node[\u0027uuid\u0027], True)"},{"line_number":242,"context_line":"        return True"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"64cbb8da_70ab8f9c","line":241,"updated":"2021-02-02 17:20:25.000000000","message":"We should collect what is. so:\n\nresults \u003d cloud.validate_machine(...\nmodule.exit_json(results)\n\nAnd return the value. Thoughts?","commit_id":"63464065f269d22f1a2313ff915ef6827743cd84"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d57099f29accbe7171db4573181a1586e68e6513","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            changed \u003d True"},{"line_number":312,"context_line":"            node \u003d cloud.get_machine(node_id)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        _initiate_node_validate(module, cloud, node)"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        if _is_true(module.params[\u0027state\u0027]):"},{"line_number":317,"context_line":"            if _is_false(module.params[\u0027deploy\u0027]):"}],"source_content_type":"text/x-python","patch_set":10,"id":"e571791a_550e9110","line":314,"updated":"2021-02-22 12:43:34.000000000","message":"Julia, I didn\u0027t quite get your response earlier, but my comment holds: this action will *normally* fail because instance_info is not populated, and validate_machine will check it.","commit_id":"7a0544db0de7ac5d733828801c4f568821897aea"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d57099f29accbe7171db4573181a1586e68e6513","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            # support, although there is a known desire to remove"},{"line_number":339,"context_line":"            # rebuild support from Ironic at some point in the future."},{"line_number":340,"context_line":"            cloud.update_machine(uuid, instance_info\u003dinstance_info)"},{"line_number":341,"context_line":"            cloud.validate_node(uuid)"},{"line_number":342,"context_line":"            if not wait:"},{"line_number":343,"context_line":"                cloud.activate_node(uuid, module.params[\u0027config_drive\u0027])"},{"line_number":344,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"2e17646b_27c16c7f","line":341,"updated":"2021-02-22 12:43:34.000000000","message":"... this is where the call should go. And since we already have validation, I\u0027m not sure what this patch adds.\n\nMaybe you want to add validation to baremetal_node? So that a user can immediately validate the node they create (and delete it if validation fails)?","commit_id":"7a0544db0de7ac5d733828801c4f568821897aea"}]}
