murano/meta/io.murano/Classes/CloudRegion.yaml

58 lines
1.6 KiB
YAML

Namespaces:
res: io.murano.resources
sys: io.murano.system
=: io.murano
Name: CloudRegion
Properties:
name:
Contract: $.string()
agentListener:
Contract: $.class(sys:AgentListener)
Usage: Runtime
stack:
Contract: $.class(sys:HeatStack)
Usage: Runtime
defaultNetworks:
Contract:
environment: $.class(res:Network)
flat: $.class(res:Network)
securityGroupManager:
Contract: $.class(sys:SecurityGroupManager)
Usage: Runtime
Methods:
getConfig:
Body:
- Return: $._environment.regionConfigs.get(
$.name, $._environment.regionConfigs.get(''))
.init:
Body:
- $._environment: $.find(Environment).require()
- $generatedStackName: $.getAttr(generatedStackName)
- If: $generatedStackName = null
Then:
- $generatedStackName: list($.name, randomName()).join('-')
- $.setAttr(generatedStackName, $generatedStackName)
- $this.agentListener: new(sys:AgentListener, $this, name => $generatedStackName)
- $stackDescriptionFormat: 'This stack was generated by Murano for environment {0} (ID: {1}) - region {2}'
- $this.stack: new(sys:HeatStack,
regionName => $.name,
name => 'murano-' + $generatedStackName,
description => $stackDescriptionFormat.format($._environment.name, id($._environment), $.name))
- sys:GC.subscribeDestruction($this, $this.stack)
- $this.securityGroupManager:
coalesce($.defaultNetworks.environment, $.defaultNetworks.flat)?.
generateSecurityGroupManager()
.destroy:
Body:
- $.stack.delete()