5e36ae8fc6
Change-Id: I62a94daf47983443b557f038217b6a0d35761c81 Closes-Bug: #1625017
65 lines
1.7 KiB
YAML
65 lines
1.7 KiB
YAML
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
Namespaces:
|
|
std: io.murano
|
|
=: io.murano.resources
|
|
|
|
Name: InstanceAffinityGroup
|
|
Extends: std:CloudResource
|
|
|
|
Properties:
|
|
|
|
affinity:
|
|
Contract: $.bool().notNull()
|
|
Default: false #affinity: true, anti-affinity: false
|
|
|
|
|
|
Methods:
|
|
deploy:
|
|
Body:
|
|
- If: $.affinity
|
|
Then:
|
|
- $policies: ['affinity']
|
|
Else:
|
|
- $policies: ['anti-affinity']
|
|
- $name: $._getHeatName()
|
|
- $affinityTemplate:
|
|
resources:
|
|
$name:
|
|
type: 'OS::Nova::ServerGroup'
|
|
properties:
|
|
name: $name
|
|
policies: $policies
|
|
- $region: $.getRegion()
|
|
- $region.stack.updateTemplate($affinityTemplate)
|
|
- $region.stack.push(async => true)
|
|
|
|
.destroy:
|
|
Body:
|
|
- $name: $._getHeatName()
|
|
- $region: $.getRegion()
|
|
- $template: $region.stack.current()
|
|
- $template.resources: $template.resources.delete($name)
|
|
- $region.stack.setTemplate($template)
|
|
- $region.stack.push(async => true)
|
|
|
|
|
|
getRef:
|
|
Body:
|
|
- Return:
|
|
get_resource: $._getHeatName()
|
|
|
|
_getHeatName:
|
|
Body:
|
|
- Return: format('NovaServerGroup-{0}', id($this))
|