Bug #21552
openHost parameters added/updated via API do not make it to userscript on provisioning to EC2
Description
Description
Host parameters set in API call do not make it to the userscript when provisioning via API to AWS EC2
Description of problem:
When creating host via API V2 through POST/api/hosts and using EC2 the parameters added/updated in API call either are empty or not updated (if pre-defined in hostgroup)
Version-Release number of selected component (if applicable):
Foreman Version 1.15.6 and at least 1.15.4
How reproducible:
Easily Reproducible
Steps to Reproduce:
API call:
curl -XPOST "$FOREMAN_URL/api/v2/hosts" -u $USER:$PASS -H "Accept:application/json,version=2" -H "Content-Type:application/json" -k -d'
{ "host" :
{"build": "1",
"enabled": "1",
"architecture_id": 1,
"hostgroup_id":"1",
"name": "hostname",
"compute_resource_id": 1,
"compute_profile_id": 1,
"image_id": 1,
"domain_id": 1,
"environment_id": 1,
"medium_id": 1,
"operatingsystem_id": 1,
"owner_id": 1,
"organization_id":1,
"location_id":1,
"provision_method": "image",
"host_parameters_attributes": [{"name":"foo", "value":"bar"}]
}}'
Actual results:
Host yaml snippet from Foreman after creation :
parameters:
foo: bar
Snip from User Data script preview for host from Foreman:
cat > /etc/test << EOF
FOO=<%= host_param('foo') %>
EOF
Snip from User data preview of the created host
cat > /etc/test << EOF
FOO=bar
EOF
Actual results:
[root@hostname]# cat /etc/test
FOO=
Actual results IF parameter "foo" pre-defined in hostgroup as "initial":
[root@hostname]# cat /etc/test
FOO=initial
Expected results
[root@hostname]# cat /etc/test
FOO=bar
Additional info:
Tested only on EC2 instance creation as we do not use other compute service providers. Might affect others also.