"Layered" MultipartMime for user_data no longer works
Bug #1306036 reported by
Steve Lipinski
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Expired
|
Undecided
|
Unassigned |
Bug Description
Trying to have Nested MultipartMime resources like the server_init resource in the following example no longer works:
https:/
The referenced resource:
- config: {get_resource: three_four_init}
type: multipart
does not seem to be included anymore.
Changed in heat: | |
status: | New → Invalid |
status: | Invalid → Incomplete |
Changed in heat: | |
status: | New → Triaged |
To post a comment you must log in.
This template copied directly from the example: version: 2013-05-23
heat_template_
description: >
This template demonstrates the different ways configuration resources
can be used to specify boot-time cloud-init configuration.
parameters:
key_name:
type: string
flavor:
type: string
image:
type: string
resources: :SecurityGroup
port_range_ min: 22
port_range_ max: 22
the_sg:
type: OS::Neutron:
properties:
name: the_sg
description: Ping and SSH
rules:
- protocol: icmp
- protocol: tcp
one_init: :CloudConfig
write_ files:
type: OS::Heat:
properties:
cloud_config:
- path: /tmp/one
content: "The one is bar"
five_init: :CloudConfig array,no_ replace) +list(append) '
write_ files:
# this resource demonstrates multiple cloud-config resources
# with a merge_how strategy
type: OS::Heat:
properties:
cloud_config:
merge_how: 'dict(recurse_
- path: /tmp/five
content: "The five is bar"
two_init: :SoftwareConfig
# this resource is a simple shell script. No inputs or outputs are
# specified since this is not supported by cloud-init but values
# could be inserted into the script using str_replace.
type: OS::Heat:
properties:
group: ungrouped
config: |
#!/bin/sh
echo "The two is bar" > /tmp/two
three_init: :SoftwareConfig
type: OS::Heat:
properties:
group: ungrouped
config: |
#!/bin/sh
echo "The three is bar" > /tmp/three
four_init: :SoftwareConfig
type: OS::Heat:
properties:
group: ungrouped
config: |
#!/bin/sh
echo "The four is bar" > /tmp/four
three_four_init: :MultipartMime
type: OS::Heat:
properties:
parts:
- config: {get_resource: three_init}
- config: {get_resource: four_init}
server_init: :MultipartMime :MultipartMime resource will result
type: OS::Heat:
properties:
parts:
- config: {get_resource: one_init}
- config: {get_resource: two_init}
# referencing another OS::Heat:
# in each part of that resource being appended to this one.
- config: {get_resource: three_four_init}
type: multipart
- config: {get_resource: five_init}
server: groups: data_format: RAW
get_resource: server_init
type: OS::Nova::Server
properties:
image: {get_param: image}
flavor: {get_param: flavor}
key_name: {get_param: key_name}
security_
- {get_resource: the_sg}
user_
user_data:
Does not work.
/tmp/three and /tmp/four are not created:
# ls /tmp
five one two
I have seen similar with other templates I have created. :MultipartMime resource within another OS::Heat: :MultipartMime resource as in: :MultipartMime
If in include a OS::Heat:
server_init:
type: OS::Heat:
properties:
parts:
..
- config: {get_resource: three_four_init}
type: multipart
..
The three_four_init resource does not seem to get included.