[Bug 1579891] Re: [SRU] Validating a stack fails as one nested stack can't find an id from another
Felipe Reyes
1579891 at bugs.launchpad.net
Mon May 9 20:24:01 UTC 2016
** Description changed:
[Impact]
- when a user tries to
+ when a user tries to create nested templates, the network id cannot be
+ retrieved raising an error, this works fine in Kilo.
[Test Case]
* Deploy openstack with heat enabled
- $ bzr branch lp:openstack-charm-testing
- $ cd openstack-charm-testing
- $ juju deployer -c default.yaml -d -v -s 10 wily-liberty
- $ juju action do heat/0 domain-setup
- $ ./configure
- $ cat << EOF > minimal_portneutron.yaml
+ $ bzr branch lp:openstack-charm-testing
+ $ cd openstack-charm-testing
+ $ juju deployer -c default.yaml -d -v -s 10 wily-liberty
+ $ juju action do heat/0 domain-setup
+ $ ./configure
+ $ cat << EOF > minimal_portneutron.yaml
heat_template_version: 2014-10-16
description: "Works well in Darmstadt Liberty LAB"
resources:
- network:
- type: network.yaml
- properties:
- name:
- list_join:
- - '_'
- - [ heat, { get_param: 'OS::stack_name' } ]
- port:
- type: OS::Neutron::Port
- properties:
- network_id: { get_attr: [ network, network ] }
+ network:
+ type: network.yaml
+ properties:
+ name:
+ list_join:
+ - '_'
+ - [ heat, { get_param: 'OS::stack_name' } ]
+ port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_attr: [ network, network ] }
EOF
- $ cat << EOF > minimal_portnested.yaml
+ $ cat << EOF > minimal_portnested.yaml
heat_template_version: 2014-10-16
description: "ERROR: Failed to validate: : resources.port: : At least one of the following properties must be specified: network, network_id"
resources:
+ network:
+ type: network.yaml
+ properties:
+ name:
+ list_join:
+ - '_'
+ - [ heat, { get_param: 'OS::stack_name' } ]
+ port:
+ type: port.yaml # Fails with 'Either network or network_id should be specified.'
+ properties:
+ network_id: { get_attr: [ network, network ] }
+ $ cat << EOF > port.yaml
+ heat_template_version: 2014-10-16
+ parameters:
+ network_id:
+ type: string
+ resources:
+ port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: network_id }
+ $ cat << EOF > network.yaml
+ heat_template_version: 2014-10-16
+ description: >
+ Creates a Neutron network/subnet combination, along with a security group
+ that allows all traffic from the subnet.
+ parameters:
+ name:
+ description: The name for the created network.
+ type: string
+ resources:
network:
- type: network.yaml
+ type: OS::Neutron::Net
properties:
- name:
- list_join:
- - '_'
- - [ heat, { get_param: 'OS::stack_name' } ]
- port:
- type: port.yaml # Fails with 'Either network or network_id should be specified.'
- properties:
- network_id: { get_attr: [ network, network ] }
- $ source novarc
- $ heat stack-create -f minimal_portneutron.yaml minimal_portneutron
- $ heat stack-create -f minimal_portnested.yaml minimal_portnested
+ name: { get_param: name }
+ outputs:
+ network:
+ description: The neutron network created.
+ value: { get_resource: network }
+ $ source novarc
+ $ heat stack-create -f minimal_portneutron.yaml minimal_portneutron
+ $ heat stack-create -f minimal_portnested.yaml minimal_portnested
Expected:
The nested port is created
Actual result:
Traceback (most recent call last):
- File "/usr/bin/heat", line 10, in <module>
- sys.exit(main())
- File "/usr/lib/python2.7/dist-packages/heatclient/shell.py", line 705, in main
- HeatShell().main(args)
- File "/usr/lib/python2.7/dist-packages/heatclient/shell.py", line 655, in main
- args.func(client, args)
- File "/usr/lib/python2.7/dist-packages/heatclient/v1/shell.py", line 140, in do_stack_create
- hc.stacks.create(**fields)
- File "/usr/lib/python2.7/dist-packages/heatclient/v1/stacks.py", line 136, in create
- data=kwargs, headers=headers)
- File "/usr/lib/python2.7/dist-packages/keystoneclient/adapter.py", line 176, in post
- return self.request(url, 'POST', **kwargs)
- File "/usr/lib/python2.7/dist-packages/heatclient/common/http.py", line 317, in request
- raise exc.from_response(resp)
+ File "/usr/bin/heat", line 10, in <module>
+ sys.exit(main())
+ File "/usr/lib/python2.7/dist-packages/heatclient/shell.py", line 705, in main
+ HeatShell().main(args)
+ File "/usr/lib/python2.7/dist-packages/heatclient/shell.py", line 655, in main
+ args.func(client, args)
+ File "/usr/lib/python2.7/dist-packages/heatclient/v1/shell.py", line 140, in do_stack_create
+ hc.stacks.create(**fields)
+ File "/usr/lib/python2.7/dist-packages/heatclient/v1/stacks.py", line 136, in create
+ data=kwargs, headers=headers)
+ File "/usr/lib/python2.7/dist-packages/keystoneclient/adapter.py", line 176, in post
+ return self.request(url, 'POST', **kwargs)
+ File "/usr/lib/python2.7/dist-packages/heatclient/common/http.py", line 317, in request
+ raise exc.from_response(resp)
heatclient.exc.HTTPBadRequest: ERROR: Failed to validate: : resources.port: : At least one of the following properties must be specified: network, network_id
[Regression Potential]
* This patch was tested in a production environment and also it was
already merged in the Liberty stable branch
https://review.openstack.org/306293 , so the regression potential is
minimum.
[Other Info]
* Upstream bug 1518676
--
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1579891
Title:
[SRU] Validating a stack fails as one nested stack can't find an id
from another
Status in heat package in Ubuntu:
Fix Released
Bug description:
[Impact]
when a user tries to create nested templates, the network id cannot be
retrieved raising an error, this works fine in Kilo.
[Test Case]
* Deploy openstack with heat enabled
$ bzr branch lp:openstack-charm-testing
$ cd openstack-charm-testing
$ juju deployer -c default.yaml -d -v -s 10 wily-liberty
$ juju action do heat/0 domain-setup
$ ./configure
$ cat << EOF > minimal_portneutron.yaml
heat_template_version: 2014-10-16
description: "Works well in Darmstadt Liberty LAB"
resources:
network:
type: network.yaml
properties:
name:
list_join:
- '_'
- [ heat, { get_param: 'OS::stack_name' } ]
port:
type: OS::Neutron::Port
properties:
network_id: { get_attr: [ network, network ] }
EOF
$ cat << EOF > minimal_portnested.yaml
heat_template_version: 2014-10-16
description: "ERROR: Failed to validate: : resources.port: : At least one of the following properties must be specified: network, network_id"
resources:
network:
type: network.yaml
properties:
name:
list_join:
- '_'
- [ heat, { get_param: 'OS::stack_name' } ]
port:
type: port.yaml # Fails with 'Either network or network_id should be specified.'
properties:
network_id: { get_attr: [ network, network ] }
$ cat << EOF > port.yaml
heat_template_version: 2014-10-16
parameters:
network_id:
type: string
resources:
port:
type: OS::Neutron::Port
properties:
network_id: { get_param: network_id }
$ cat << EOF > network.yaml
heat_template_version: 2014-10-16
description: >
Creates a Neutron network/subnet combination, along with a security group
that allows all traffic from the subnet.
parameters:
name:
description: The name for the created network.
type: string
resources:
network:
type: OS::Neutron::Net
properties:
name: { get_param: name }
outputs:
network:
description: The neutron network created.
value: { get_resource: network }
$ source novarc
$ heat stack-create -f minimal_portneutron.yaml minimal_portneutron
$ heat stack-create -f minimal_portnested.yaml minimal_portnested
Expected:
The nested port is created
Actual result:
Traceback (most recent call last):
File "/usr/bin/heat", line 10, in <module>
sys.exit(main())
File "/usr/lib/python2.7/dist-packages/heatclient/shell.py", line 705, in main
HeatShell().main(args)
File "/usr/lib/python2.7/dist-packages/heatclient/shell.py", line 655, in main
args.func(client, args)
File "/usr/lib/python2.7/dist-packages/heatclient/v1/shell.py", line 140, in do_stack_create
hc.stacks.create(**fields)
File "/usr/lib/python2.7/dist-packages/heatclient/v1/stacks.py", line 136, in create
data=kwargs, headers=headers)
File "/usr/lib/python2.7/dist-packages/keystoneclient/adapter.py", line 176, in post
return self.request(url, 'POST', **kwargs)
File "/usr/lib/python2.7/dist-packages/heatclient/common/http.py", line 317, in request
raise exc.from_response(resp)
heatclient.exc.HTTPBadRequest: ERROR: Failed to validate: : resources.port: : At least one of the following properties must be specified: network, network_id
[Regression Potential]
* This patch was tested in a production environment and also it was
already merged in the Liberty stable branch
https://review.openstack.org/306293 , so the regression potential is
minimum.
[Other Info]
* Upstream bug 1518676
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/heat/+bug/1579891/+subscriptions
More information about the Ubuntu-sponsors
mailing list