Bug 1599322

Summary: POSTing to /realms with invalid realm_proxy_id doesn't trigger any validation
Product: Red Hat Satellite Reporter: Roman Plevka <rplevka>
Component: RealmAssignee: Stephen Benjamin <stbenjam>
Status: CLOSED ERRATA QA Contact: Jan Hutaƙ <jhutar>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.4CC: akarsale, apatel, jhutar, mhulan, stbenjam, tstrachota
Target Milestone: 6.4.0Keywords: Regression, Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: foreman-1.18.0.34-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-16 19:22:23 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 Roman Plevka 2018-07-09 13:43:11 UTC
Description of problem:

This is visible from hammer too:
hammer -v -u admin -p changeme --output=csv realm create --name="foo" --realm-proxy-id="P0D2T027xd" --realm-type="Red Hat Identity Management"'

ERROR 2018-07-06T13:33:23 API] 500 Internal Server Error
[ERROR 2018-07-06T13:33:23 Exception] PG::ForeignKeyViolation: ERROR:  insert or update on table "realms" violates foreign key constraint "realms_realm_proxy_id_fk"
DETAIL:  Key (realm_proxy_id)=(0) is not present in table "smart_proxies".
: INSERT INTO "realms" ("name", "realm_type", "realm_proxy_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"
Could not create the realm:
  PG::ForeignKeyViolation: ERROR:  insert or update on table "realms" violates foreign key constraint "realms_realm_proxy_id_fk"
  DETAIL:  Key (realm_proxy_id)=(0) is not present in table "smart_proxies".
  : INSERT INTO "realms" ("name", "realm_type", "realm_proxy_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"
[ERROR 2018-07-06T13:33:23 Exception] 


- I can see 2 issues here:
 #1 hammer does not validate the parameter type (this used to work in 6.3 therefore it's a regression)
 #2 there is an improper error handling (ther ecould be a 404 instead of ISE) - this one might be present in 6.3 as well.

Version-Release number of selected component (if applicable):
6.4.0-11

How reproducible:
always

Steps to Reproduce:
1. POST to /realms endpoint with specifying invalid realm proxy id

Comment 2 Satellite Program 2018-09-13 18:01:36 UTC
Upstream bug assigned to stbenjam

Comment 3 Satellite Program 2018-09-13 18:01:40 UTC
Upstream bug assigned to stbenjam

Comment 4 Satellite Program 2018-09-21 08:01:58 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue https://projects.theforeman.org/issues/24935 has been resolved.

Comment 7 Bryan Kearney 2018-10-16 19:22:23 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, 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-2018:2927