Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1120800 - Can't create a host via the API because params aren't correctly wrapped
Summary: Can't create a host via the API because params aren't correctly wrapped
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Provisioning
Version: 6.0.4
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: Unspecified
Assignee: jmagen@redhat.com
QA Contact: Katello QA List
URL: http://projects.theforeman.org/issues...
Whiteboard:
Depends On: 1135651
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-07-17 18:03 UTC by Tom McKay
Modified: 2017-02-23 21:12 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-05-04 13:44:33 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 6696 0 None None None 2016-04-22 16:35:31 UTC

Description Tom McKay 2014-07-17 18:03:37 UTC
When I try the following curl command, I get "Name can't be blank":

<pre>
$ curl -k -u admin:changeme -H "Content-Type: application/json" -X POST http://localhost:3000/api/v2/hosts -d '{"name": "TEST"}'
</pre>

It looks like the name param is getting wrapped in params[:base] instead of params[:host].

Comment 1 Tom McKay 2014-07-17 18:03:38 UTC
Created from redmine issue http://projects.theforeman.org/issues/6674

Comment 3 Bryan Kearney 2014-07-18 12:04:09 UTC
Upstream bug assigned to tomckay

Comment 4 Bryan Kearney 2014-07-28 20:29:23 UTC
Connecting redmine issue http://projects.theforeman.org/issues/6696 from this bug

Comment 5 Bryan Kearney 2014-08-11 10:03:46 UTC
Moving to POST since upstream bug http://projects.theforeman.org/issues/6696 has been closed
-------------
Joseph Magen
Applied in changeset commit:a2610e980c66663db2a200cedceb2a0b53918f3a.

Comment 8 sthirugn@redhat.com 2014-08-29 22:23:33 UTC
Currently failed because of https://bugzilla.redhat.com/show_bug.cgi?id=1135651.

Comment 9 sthirugn@redhat.com 2014-08-29 22:26:15 UTC
Failed based on Comment 8

Comment 10 jmagen@redhat.com 2014-09-03 08:15:01 UTC
Comment 8 refers to https://bugzilla.redhat.com/show_bug.cgi?id=1135651 which is fixed by https://github.com/theforeman/foreman/pull/1732

However, fix to this bug was already merged with commit a2610e980c66663db2a200cedceb2a0b53918f3a

Comment 11 jmagen@redhat.com 2014-09-03 09:19:02 UTC
PR #1732 reached an impasse. The parameters are technically required on all situations. It depends on various scenarios. See also http://projects.theforeman.org/issues/6997

Comment 14 jaudet 2015-03-11 19:51:26 UTC
POSTing to `api/v2/host` with this JSON payload:

    {
        u'host': {
            'architecture_id': 73,
            'domain_id': 67,
            'environment_id': 105,
            'location_id': 341,
            'mac': u'12:16:49:91:72:21',
            'medium_id': 68,
            'operatingsystem_id': 67,
            'organization_id': 342,
            'ptable_id': 64,
            'root_pass': u'…',
        },
        'name': u'dPRwSiClzbUNZeLLApBC',
    }

Results in this JSON response:

    {
        u'error': {
            u'errors': {u'name': [u"can't be blank", u'is invalid']},
            u'id': None,
            u'full_messages': [u"Name can't be blank", u'Name is invalid']
        }
    }

Moving the "name" parameter into the inner hash succeeds:

    {
        u'host': {
            'architecture_id': 73,
            'domain_id': 67,
            'environment_id': 105,
            'location_id': 341,
            'mac': u'12:16:49:91:72:21',
            'medium_id': 68,
            'name': u'dPRwSiClzbUNZeLLApBC',
            'operatingsystem_id': 67,
            'organization_id': 342,
            'ptable_id': 64,
            'root_pass': u'…',
        }
    }

This bug has not been fixed. Placing "name" in the outer hash still prevents
API users from creating hosts. However, it's worth noting that the API doc
specifically shows that the "name" parameter should be in the inner hash in the
first place, along with all other parameters:

> host[name]
> required
> Value: String 

If you do try to create a host by plaing all parameters in an outer hash,
you'll receive this response:

    {
        u'error': {
            u'message': u'operatingsystem_id is not allowed as nested parameter
            for hosts. Allowed parameters are hostgroup_id, location_id,
            organization_id, environment_id'
        }
    }

I do not think that this bug is valid. It is possible to create a host via the
API, and this bug describes an action which is not listed as being possible.

Comment 15 jaudet 2015-03-11 19:54:19 UTC
Ah, I forgot to mention that this bug was tested against systems running:

* Satellite-6.1.0-RHEL-6-20150310.0
* Satellite-6.1.0-RHEL-7-20150310.0

Comment 16 jaudet 2015-03-11 19:59:05 UTC
Automated tests should be added to QE's test suite shortly. See: https://github.com/SatelliteQE/robottelo/pull/1978

Comment 17 Bryan Kearney 2015-05-04 13:44:33 UTC
Per #c14, I am closing this out. Discussions wit Jmagen agree.


Note You need to log in before you can comment on or make changes to this bug.