Project

General

Profile

Actions

Bug #36497

closed

Can't remove GPG and SSL Keys from existing Product using the API

Added by Evgeni Golov over 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Repositories
Target version:
Difficulty:
Triaged:
Yes
Fixed in Releases:
Found in Releases:

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.


Related issues 1 (1 open0 closed)

Related to Foreman - Tracker #27680: API bugs that need workarounds in foreman-ansible-modulesNew

Actions
Actions

Also available in: Atom PDF