Updated on 2022-02-22 GMT+08:00

conditions

The conditions section is optional and defines conditions. By specifying conditions, you can determine whether to create and deploy elements defined in node_templates.

Format of the conditions section:

 <Condition name>:
    <Built-in condition function>
 ...

The following shows how to specify conditions to control the effectiveness of properties in node_templates:

node_templates:
 <Element name>:
    condition: <Condition name>
 ...
Table 1 Parameter property description

Property

Mandatory

Type

Value Constraint

Description

Condition name

Yes

String

The value must be 1 to 64 characters long. Only letters, digits, and hyphens (-) are allowed.

Name of the condition, which must be unique.

Built-in function

Yes

-

-

Built-in condition functions are used to define conditions. For details, see Condition Function.

Element name

Yes

String

The value must be 1 to 48 characters long. Only lowercase letters, digits, and hyphens (-) are allowed.

Name of the element, which must be unique.

Condition name

Yes

String

The value must be 1 to 64 characters long. Only letters, digits, and hyphens (-) are allowed.

Condition name defined in conditions.

Example configuration of conditions:

When specifying conditions to determine whether to create and deploy elements, you need to define reference relationships in multiple sections such as inputs, conditions, and node_templates.

tosca_definitions_version: cloud_tosca_version_1_0
conditions:
  condition_vm_deploy:    #The conditions can be met only when inputs parameters are matched. 
    cond_eq:
      - get_input: vm_deploy
      - true
inputs:
  image:
    description: ID of the image used by the ECS
    type: Cloud.ECS.Image.Id
  instance:
    default: 1
    description: number of ECSs to be created
  subnet:
    description: ID of the subnet to which the ECS belongs
..vm_deploy:    #Determines whether to deploy the VM.
    default: true
    type: boolean
  vpc:
    description: ID of the VPC to which the ECS belongs
node_templates:
  vm:
    condition: condition_vm_deploy     # The VM will be deployed only when the conditions are met. 
    type: Cloud.ECS.CloudServer
    properties:
      availabilityZone: ae-ad-1a
      imageId:
        get_input: image
      flavor: s3.small.1
      instances:
        get_input: instance
      name: my-ecs
      nics:
        - subnetId:
            get_input: subnet
      rootVolume:
        size: 40
        volumeType: SATA
      vpcId:
        get_input: vpc
  myecs:
    type: Cloud.ECS.CloudServer
    properties:
      name: my-ecs
      instances:
        get_input: instance
      imageId:
        get_input: image
      flavor: s3.small.1
      vpcId:
        get_input: vpc
      availabilityZone: ae-ad-1a
      nics:
        - subnetId:
            get_input: subnet
      rootVolume:
        volumeType: SSD
        size: 40