blob: d6fd0750f332eda2637854c58c1bb455a9285674 [file] [log] [blame]
package stacks
// ValidJSONTemplate is a valid OpenStack Heat template in JSON format
const ValidJSONTemplate = `
{
"heat_template_version": "2014-10-16",
"parameters": {
"flavor": {
"default": 4353,
"description": "Flavor for the server to be created",
"hidden": true,
"type": "string"
}
},
"resources": {
"test_server": {
"properties": {
"flavor": "2 GB General Purpose v1",
"image": "Debian 7 (Wheezy) (PVHVM)",
"name": "test-server"
},
"type": "OS::Nova::Server"
}
}
}
`
// ValidYAMLTemplate is a valid OpenStack Heat template in YAML format
const ValidYAMLTemplate = `
heat_template_version: 2014-10-16
parameters:
flavor:
type: string
description: Flavor for the server to be created
default: 4353
hidden: true
resources:
test_server:
type: "OS::Nova::Server"
properties:
name: test-server
flavor: 2 GB General Purpose v1
image: Debian 7 (Wheezy) (PVHVM)
`
// InvalidTemplateNoVersion is an invalid template as it has no `version` section
const InvalidTemplateNoVersion = `
parameters:
flavor:
type: string
description: Flavor for the server to be created
default: 4353
hidden: true
resources:
test_server:
type: "OS::Nova::Server"
properties:
name: test-server
flavor: 2 GB General Purpose v1
image: Debian 7 (Wheezy) (PVHVM)
`
// ValidJSONEnvironment is a valid environment for a stack in JSON format
const ValidJSONEnvironment = `
{
"parameters": {
"user_key": "userkey"
},
"resource_registry": {
"My::WP::Server": "file:///home/shardy/git/heat-templates/hot/F18/WordPress_Native.yaml",
"OS::Quantum*": "OS::Neutron*",
"AWS::CloudWatch::Alarm": "file:///etc/heat/templates/AWS_CloudWatch_Alarm.yaml",
"OS::Metering::Alarm": "OS::Ceilometer::Alarm",
"AWS::RDS::DBInstance": "file:///etc/heat/templates/AWS_RDS_DBInstance.yaml",
"resources": {
"my_db_server": {
"OS::DBInstance": "file:///home/mine/all_my_cool_templates/db.yaml"
},
"my_server": {
"OS::DBInstance": "file:///home/mine/all_my_cool_templates/db.yaml",
"hooks": "pre-create"
},
"nested_stack": {
"nested_resource": {
"hooks": "pre-update"
},
"another_resource": {
"hooks": [
"pre-create",
"pre-update"
]
}
}
}
}
}
`
// ValidYAMLEnvironment is a valid environment for a stack in YAML format
const ValidYAMLEnvironment = `
parameters:
user_key: userkey
resource_registry:
My::WP::Server: file:///home/shardy/git/heat-templates/hot/F18/WordPress_Native.yaml
# allow older templates with Quantum in them.
"OS::Quantum*": "OS::Neutron*"
# Choose your implementation of AWS::CloudWatch::Alarm
"AWS::CloudWatch::Alarm": "file:///etc/heat/templates/AWS_CloudWatch_Alarm.yaml"
#"AWS::CloudWatch::Alarm": "OS::Heat::CWLiteAlarm"
"OS::Metering::Alarm": "OS::Ceilometer::Alarm"
"AWS::RDS::DBInstance": "file:///etc/heat/templates/AWS_RDS_DBInstance.yaml"
resources:
my_db_server:
"OS::DBInstance": file:///home/mine/all_my_cool_templates/db.yaml
my_server:
"OS::DBInstance": file:///home/mine/all_my_cool_templates/db.yaml
hooks: pre-create
nested_stack:
nested_resource:
hooks: pre-update
another_resource:
hooks: [pre-create, pre-update]
`
// InvalidEnvironment is an invalid environment as it has an extra section called `resources`
const InvalidEnvironment = `
parameters:
flavor:
type: string
description: Flavor for the server to be created
default: 4353
hidden: true
resources:
test_server:
type: "OS::Nova::Server"
properties:
name: test-server
flavor: 2 GB General Purpose v1
image: Debian 7 (Wheezy) (PVHVM)
parameter_defaults:
KeyName: heat_key
`
// ValidJSONEnvironmentParsed is the expected parsed version of ValidJSONEnvironment
var ValidJSONEnvironmentParsed = map[string]interface{}{
"parameters": map[string]interface{}{
"user_key": "userkey",
},
"resource_registry": map[string]interface{}{
"My::WP::Server": "file:///home/shardy/git/heat-templates/hot/F18/WordPress_Native.yaml",
"OS::Quantum*": "OS::Neutron*",
"AWS::CloudWatch::Alarm": "file:///etc/heat/templates/AWS_CloudWatch_Alarm.yaml",
"OS::Metering::Alarm": "OS::Ceilometer::Alarm",
"AWS::RDS::DBInstance": "file:///etc/heat/templates/AWS_RDS_DBInstance.yaml",
"resources": map[string]interface{}{
"my_db_server": map[string]interface{}{
"OS::DBInstance": "file:///home/mine/all_my_cool_templates/db.yaml",
},
"my_server": map[string]interface{}{
"OS::DBInstance": "file:///home/mine/all_my_cool_templates/db.yaml",
"hooks": "pre-create",
},
"nested_stack": map[string]interface{}{
"nested_resource": map[string]interface{}{
"hooks": "pre-update",
},
"another_resource": map[string]interface{}{
"hooks": []interface{}{
"pre-create",
"pre-update",
},
},
},
},
},
}
// ValidJSONTemplateParsed is the expected parsed version of ValidJSONTemplate
var ValidJSONTemplateParsed = map[string]interface{}{
"heat_template_version": "2014-10-16",
"parameters": map[string]interface{}{
"flavor": map[string]interface{}{
"default": 4353,
"description": "Flavor for the server to be created",
"hidden": true,
"type": "string",
},
},
"resources": map[string]interface{}{
"test_server": map[string]interface{}{
"properties": map[string]interface{}{
"flavor": "2 GB General Purpose v1",
"image": "Debian 7 (Wheezy) (PVHVM)",
"name": "test-server",
},
"type": "OS::Nova::Server",
},
},
}