)]}'
{"galaxy.yml":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"ac523052b7dbde5d37f557bb7a94306659a7f3a8","unresolved":true,"context_lines":[{"line_number":14,"context_line":"homepage: https://opendev.org/openstack/ansible-collections-openstack"},{"line_number":15,"context_line":"issues: https://storyboard.openstack.org/#!/project/openstack/ansible-collections-openstack"},{"line_number":16,"context_line":"build_ignore:"},{"line_number":17,"context_line":"  - \u0027*.tar.gz\u0027"},{"line_number":18,"context_line":"  - build_artifact"},{"line_number":19,"context_line":"  - ci"},{"line_number":20,"context_line":"  - galaxy.yml.in"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"d314d0a3_f21856d8","line":17,"range":{"start_line":17,"start_character":3,"end_line":17,"end_character":14},"updated":"2020-12-14 09:16:51.000000000","message":"not necessary change for this patch","commit_id":"4b97e11600b6355b02fd29c81ea87ad1d8f2e78f"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"ac523052b7dbde5d37f557bb7a94306659a7f3a8","unresolved":true,"context_lines":[{"line_number":34,"context_line":"  - contrib"},{"line_number":35,"context_line":"  - changelogs/.plugin-cache.yaml"},{"line_number":36,"context_line":"  - changelogs/fragments"},{"line_number":37,"context_line":"version: 1.2.1-dev25"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"e41ec6d9_07e2830f","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":20},"updated":"2020-12-14 09:16:51.000000000","message":"leftovers from debug?","commit_id":"4b97e11600b6355b02fd29c81ea87ad1d8f2e78f"}],"plugins/modules/baremetal_node.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"458f88886bf3e599ad46dc0efe80aede5597192e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        - The network interface provider to use when describing"},{"line_number":53,"context_line":"          connections for this node."},{"line_number":54,"context_line":"      type: str"},{"line_number":55,"context_line":"    boot_interface:"},{"line_number":56,"context_line":"      description:"},{"line_number":57,"context_line":"        - The boot interface for this node, e.g. \"pxe\"."},{"line_number":58,"context_line":"      type: str"}],"source_content_type":"text/x-python","patch_set":3,"id":"cbc89b87_58138916","line":55,"updated":"2020-12-14 14:01:14.000000000","message":"Could you sort interfaces for readability? Also double-check if all are present, e.g. I don\u0027t see the BIOS interface.","commit_id":"4b97e11600b6355b02fd29c81ea87ad1d8f2e78f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"458f88886bf3e599ad46dc0efe80aede5597192e","unresolved":false,"context_lines":[{"line_number":76,"context_line":"      type: str"},{"line_number":77,"context_line":"    console_interface:"},{"line_number":78,"context_line":"      description:"},{"line_number":79,"context_line":"        - The console interface for this node, e.g.\"no-console\"."},{"line_number":80,"context_line":"      type: str"},{"line_number":81,"context_line":"    vendor_interface:"},{"line_number":82,"context_line":"      description:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5bade601_997b7de5","line":79,"updated":"2020-12-14 14:01:14.000000000","message":"missing space after \"e.g.\"","commit_id":"4b97e11600b6355b02fd29c81ea87ad1d8f2e78f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"06b54f90c067ba66cc31521323878fb0ac19c322","unresolved":true,"context_lines":[{"line_number":351,"context_line":"                raid_interface\u003dmodule.params[\u0027raid_interface\u0027],"},{"line_number":352,"context_line":"                rescue_interface\u003dmodule.params[\u0027rescue_interface\u0027],"},{"line_number":353,"context_line":"                storage_interface\u003dmodule.params[\u0027storage_interface\u0027],"},{"line_number":354,"context_line":"                vendor_interface\u003dmodule.params[\u0027vendor_interface\u0027],"},{"line_number":355,"context_line":"            )"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"            if module.params[\u0027chassis_uuid\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"df02ce7f_cec4a5b3","line":354,"updated":"2020-12-31 15:40:07.000000000","message":"This seems likely okay. Creating nodes with the value equaling none, should be fine.","commit_id":"671e9e7a88e466ecbaf741924ceac9a35cec07b7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"06b54f90c067ba66cc31521323878fb0ac19c322","unresolved":true,"context_lines":[{"line_number":353,"context_line":"                storage_interface\u003dmodule.params[\u0027storage_interface\u0027],"},{"line_number":354,"context_line":"                vendor_interface\u003dmodule.params[\u0027vendor_interface\u0027],"},{"line_number":355,"context_line":"            )"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"            if module.params[\u0027chassis_uuid\u0027]:"},{"line_number":358,"context_line":"                kwargs[\u0027chassis_uuid\u0027] \u003d module.params[\u0027chassis_uuid\u0027]"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"514e55f4_f765fb06","line":356,"updated":"2020-12-31 15:40:07.000000000","message":"Following up from my comment below. Perhaps the logic should loop through the rest of the fields and only add them to the kwargs if they are defined? Something like\n\nPerhaps something like this? \n \n optional_field_names \u003d (\u0027resource_class\u0027, \u0027bios_interface\u0027, \u0027boot_interface\u0027... )\n for i in optional_field_names\n    test_value \u003d module.params[i]\n    if test_value:\n        kwargs[i] \u003d test_value","commit_id":"671e9e7a88e466ecbaf741924ceac9a35cec07b7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"06b54f90c067ba66cc31521323878fb0ac19c322","unresolved":true,"context_lines":[{"line_number":398,"context_line":""},{"line_number":399,"context_line":"                # Note(TheJulia): If a password is defined and concealed, a"},{"line_number":400,"context_line":"                # patch will always be generated and re-asserted."},{"line_number":401,"context_line":"                patch \u003d jsonpatch.JsonPatch.from_diff(server_config, kwargs)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"                if not patch:"},{"line_number":404,"context_line":"                    _exit_node_not_updated(module, server)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1b748cd2_a356c797","line":401,"updated":"2020-12-31 15:40:07.000000000","message":"So here is the real quiestion.\n\nIf the server has configuration.\n\nSay an operator previously set\n\nresource_class: \"CUSTOM_BAREMETAL\"\n\nand\n\nIronic, upon the node being created with a boot_interface of being being posted, being auto-assigned server side to \"ipxe\", then wouldn\u0027t this json patch attempt to update the value in the server configuration to None if not present in the request. ?\n\nIf the JsonPatch operation *does* attempt to create a none field update to the API, then the update will fail. We should only be updating fields that change after the creation of the node, that is unless it is explicitly unset.\n\nNote: This entire question likely requires additional discussion, but there is an easier way to ease into this, if a value is provided or not. See my second comment.","commit_id":"671e9e7a88e466ecbaf741924ceac9a35cec07b7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f99827aebada186a747cb1765fb9ea9e21379f86","unresolved":true,"context_lines":[{"line_number":271,"context_line":"            )"},{"line_number":272,"context_line":"            optional_field_names \u003d (\u0027resource_class\u0027, \u0027bios_interface\u0027, \u0027boot_interface\u0027, \u0027console_interface\u0027, \u0027deploy_interface\u0027,"},{"line_number":273,"context_line":"                                    \u0027inspect_interface\u0027, \u0027management_interface\u0027, \u0027network_interface\u0027, \u0027power_interface\u0027, \u0027raid_interface\u0027,"},{"line_number":274,"context_line":"                                    \u0027rescue_interface\u0027, \u0027storage_interface\u0027, \u0027vendor_interface\u0027)"},{"line_number":275,"context_line":"            for i in optional_field_names:"},{"line_number":276,"context_line":"                if module.params[i]:"},{"line_number":277,"context_line":"                    kwargs[i] \u003d module.params[i]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a22f6dc_0152cffc","line":274,"range":{"start_line":274,"start_character":93,"end_line":274,"end_character":94},"updated":"2021-01-04 17:09:06.000000000","message":"So... how will these values be loaded? They aren\u0027t in the argument spec anymore?","commit_id":"6e0b50644f5bf8116e7b8b720975902f84822795"},{"author":{"_account_id":32541,"name":"Tosin Farai","email":"tosinfarai@gmail.com","username":"tosinfarai"},"change_message_id":"09b09390668b6c8c47c4c072ecdc616f0bf475fa","unresolved":false,"context_lines":[{"line_number":271,"context_line":"            )"},{"line_number":272,"context_line":"            optional_field_names \u003d (\u0027resource_class\u0027, \u0027bios_interface\u0027, \u0027boot_interface\u0027, \u0027console_interface\u0027, \u0027deploy_interface\u0027,"},{"line_number":273,"context_line":"                                    \u0027inspect_interface\u0027, \u0027management_interface\u0027, \u0027network_interface\u0027, \u0027power_interface\u0027, \u0027raid_interface\u0027,"},{"line_number":274,"context_line":"                                    \u0027rescue_interface\u0027, \u0027storage_interface\u0027, \u0027vendor_interface\u0027)"},{"line_number":275,"context_line":"            for i in optional_field_names:"},{"line_number":276,"context_line":"                if module.params[i]:"},{"line_number":277,"context_line":"                    kwargs[i] \u003d module.params[i]"}],"source_content_type":"text/x-python","patch_set":5,"id":"80b44f49_b408e368","line":274,"range":{"start_line":274,"start_character":93,"end_line":274,"end_character":94},"in_reply_to":"7a22f6dc_0152cffc","updated":"2021-01-05 00:05:13.000000000","message":"\u003e So... how will these values be loaded? They aren\u0027t in the argument spec anymore?\n\nThat was a mistake with git.","commit_id":"6e0b50644f5bf8116e7b8b720975902f84822795"}]}
