Bug 2046573

Summary: update puppet classes via API to empty puppet classes does not update the classes
Product: Red Hat Satellite Reporter: tstrych
Component: PuppetAssignee: Ondřej Ezr <oezr>
Status: CLOSED ERRATA QA Contact: Vladimír Sedmík <vsedmik>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.11.0CC: oezr
Target Milestone: 6.11.0Keywords: Regression, Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: foreman-3.1.1.7-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-07-05 14:32:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description tstrych 2022-01-27 00:47:36 UTC
Description of problem:
host has some puppet class,
update host puppet classes via API to empty puppet classes does not update the classes


Version-Release number of selected component (if applicable):
7.0 snap 5 and 6
regression from sat 6.10

How reproducible:
Always

Steps to Reproduce:
0. Enable puppet on satellite 7
1. Import puppet class to some <puppet_env>, e.g <generic_1> (puppet module install)
2. create host with puppet environment, default proxy, puppet class
3. check that host has the puppet class assigned, by api request or by ui puppet YAML button, cli is not showing puppet classes

UI shows:
classes:
  <generic_1>: 
environment: <puppet_env>


4. update the host with empty puppet class, remove the puppet class
5. puppet class is not removed
still showing the same info and in UI Puppet environment -> <puppet_env> -> Classes, shows <generic_1> has 1 one host. 


Actual results:
puppet class is not updated

Expected results:
puppet class is updated
classes: {}

Additional info:
adding works fine and removing as well if we do not update via API to empty list of puppet classes

removal via UI works

Comment 2 tstrych 2022-02-02 11:22:34 UTC
# CLI
hammer -d host update --id <host-id> --puppetclasses 

# API 
{"host": {"puppetclass_ids": []}}

FYI, puppetclass_ids are deprecated, the path looks like host/puppet_attributes/puppetclass_ids

The same problem occurs also for:
{"host": { "puppet_attributes": {"puppetclass_ids": []}}}

running under admin/root

Comment 5 aabramov 2022-02-02 17:11:59 UTC
Upstream bug assigned to oezr

Comment 6 aabramov 2022-02-02 17:12:01 UTC
Upstream bug assigned to oezr

Comment 7 Bryan Kearney 2022-02-17 16:06:18 UTC
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/34375 has been resolved.

Comment 9 Vladimír Sedmík 2022-03-04 15:28:26 UTC
Verified on 7.0.0 snap 12 - host can be successfully updated with empty classes via API.

Comment 13 errata-xmlrpc 2022-07-05 14:32:26 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: Satellite 6.11 Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2022:5498