stack-update with SoftwareDeployment 400 response from signal
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
High
|
Zane Bitter |
Bug Description
A simple stack (example below of a single server) with a single SoftwareConfig resource and single SoftwareDeployment deploys correctly if the template is handed to heat as part of the stack-create call. This appears to be because the resources being added during an update don't make it into the raw_template database table and aren't available to the engine to validate the waitcondition signal.
Log messages below are from a recent single node devstack:
If the SoftwareConfig and SoftwareDeployment are added after the instance is created, as a stack-update, the SoftwareDeployment functions correctly but in /var/lib/
[2014-06-10 02:09:49,050] (heat-config) [DEBUG] Signalling to http://
[2014-06-10 02:09:49,769] (heat-config) [DEBUG] Response <Response [400]>
The 400 Bad Request can be seen in the heat logs as "The Resource (test-demo-
template-show does not show the SoftwareConfig or SoftwareDeployment (raw_template doesn't contain the resources either). This may be related to https:/
Template (the networking components aren't relevant, but make things easier to test):
heat_template_
outputs:
test-
description: Floating IP assigned
value:
get_attr: [test-demo-
resources:
test-demo:
properties:
flavor: m1.small
image: Ubuntu 13.10 Heat SW config
key_name: devstack
networks:
- port: {get_resource: test-demo-port}
user_
type: OS::Nova::Server
test-
properties: {floating_
type: OS::Neutron:
test-
properties:
floatingi
port_id: {get_resource: test-demo-port}
type: OS::Neutron:
test-demo-port:
properties:
fixed_ips:
- subnet_id: edcd39a2-
network_id: 02ab2bb0-
security_
- default
type: OS::Neutron::Port
Heat SW config (add this as part of stack-update to see the error):
test-
properties:
config: '#!/bin/bash
echo "Testing me some heat software config" | tee /tmp/test-heat.txt
'
group: script
inputs:
- {default: None, name: previous}
type: OS::Heat:
test-
properties:
config: {get_resource: test-demo-
server: {get_resource: test-demo}
type: OS::Heat:
Changed in heat: | |
milestone: | none → juno-2 |
status: | Fix Committed → Fix Released |
Changed in heat: | |
milestone: | juno-2 → 2014.2 |
If possible, can you paste the errors from h-eng and h-api-cfn too?