Bug #36497
closedCan't remove GPG and SSL Keys from existing Product using the API
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=2213777
Description of problem:
It's not possible to unset GPG keys when I use the theforeman.foreman.product module (and it's the same with the satellite modules as well.
I have the following product defined as a variable:
product_list:
- name: test_product
label: prod_test_product
description: "Test Product"
gpg_key: MyCustomGPG
sync_play: Daily
I have a task in a playbook defined as follows:
- name: Manage Satellite products
theforeman.foreman.product:
username: "{{ rhs_satellite_admin }}"
password: "{{ rhs_satellite_admin_password }}"
server_url: "{{ rhs_satellite_server_url }}"
organization: "{{ rhs_org }}"
validate_certs: "{{ rhs_validate_certs }}"
gpg_key: "{{ item.gpg_key | default(omit) }}"
name: "{{ item.product_name }}"
label: "{{ item.label | default (omit) }}"
description: "{{ item.description | default(omit) }}"
sync_plan: "{{ item.sync_plan | default(omit) }}"
ssl_ca_cert: "{{ item.ssl_ca_cert | default(omit) }}"
ssl_client_cert: "{{ item.ssl_client_cert | default(omit) }}"
ssl_client_key: "{{ item.ssl_client_key | default(omit) }}"
state: "{{ item.state | default('present_with_defaults') }}"
loop: "{{ product_list }}"
Provided that the GPG Key and/or the sync plan we define in the variable exist, the task will be completed successfully.
Now, if for any reason I want to modify the product and disassociate the defined GPG key, or the sync plan, I change the variable as follows:
product_list:
- name: test_product
label: prod_test_product
description: "Test Product"
gpg_key: ""
sync_play: ""
Now when I run the playbook, the specific task fails with the following error:
-----
msg: 'Error while performing update on products: gpg_key_id can''t be None'
-----
How reproducible: Always
Steps to Reproduce:
1. Create a new playbook with a single task as above
2. Define the variable as above
3. Run the playbook against a Satellite/Katello server
Actual results: Error
Expected results: Product is updated and the sync plan/GPG key is disassociated.
Additional info: I don't know if the the SSL options have the same issue, but it is quite possible. I haven't tested them.