A Profile Type can be treated as the meta-type of a Profile object. A registry of profile types is built in memory when Senlin engine (senlin-engine) is started. In future, Senlin will allow users to provide additional profile type implementations as plug-ins to be loaded dynamically.
A profile type implementation dictates which fields are required. When a profile is created by referencing this profile type, the fields are assigned with concrete values. For example, a profile type can be os.heat.stack that conceptually specifies the properties required:
context: Map
template: Map
parameters: Map
files: Map
timeout: Integer
disable_rollback: Boolean
environment: Map
A profile of type os.heat.stack may look like:
# a spec for os.heat.stack
type: os.heat.stack
version: 1.0
properties:
context:
region_name: RegionOne
template:
heat_template_version: 2014-10-16
parameters:
length: Integer
resources:
rand:
type: OS::Heat::RandomString
properties:
len: {get_param: length}
outputs:
rand_val:
value: {get_attr: [rand, value]}
parameters:
length: 32
files: {}
timeout: 60
disable_rollback: True
environment: {}
Senlin server comes with some built-in profile types. You can check the list of profile types using the following command:
$ senlin profile-type-list
+----------------+
| name |
+----------------+
| os.heat.stack |
| os.nova.server |
+----------------+
The output is a list of profile types supported by the Senlin server.
Each Profile Type has a schema for its spec (i.e. specification) that describes the names and the types of properties that can be accepted. To show the schema of a specific profile type along with other properties, you can use the following command:
$ senlin profile-type-show os.heat.stack
name: os.heat.stack
schema:
context:
default: {}
description: A dictionary for specifying the customized context for
stack operations
readonly: false
required: false
type: Map
disable_rollback:
default: true
description: A boolean specifying whether a stack operation can be
rolled back.
readonly: false
required: false
type: Boolean
<... omitted ...>
timeout:
description: A integer that specifies the number of minutes that a
stack operation times out.
readonly: false
required: false
type: Integer
Here, each property has the following attributes:
The default output from the profile-type-show command is in YAML format. You can choose to show the spec schema in JSON format by specifying the the -F json option as exemplified below:
$ senlin profile-type-show -F json os.heat.stack
{
"name": "os.heat.stack",
"schema": {
"files": {
"default": {},
"readonly": false,
"required": false,
"type": "Map",
"description": "Contents of files referenced by the template, if any."
},
<... omitted ...>
"context": {
"default": {},
"readonly": false,
"required": false,
"type": "Map",
"description": "A dictionary for specifying the customized context for stack operations"
}
},
}
Below is a list of links to the documents related to profile types:
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.