75 lines
2.0 KiB
YAML
75 lines
2.0 KiB
YAML
Namespaces:
|
|
=: io.murano
|
|
res: io.murano.resources
|
|
sys: io.murano.system
|
|
|
|
Name: Environment
|
|
|
|
Properties:
|
|
name:
|
|
Contract: $.string().notNull()
|
|
|
|
applications:
|
|
Contract: [$.class(Application).owned().notNull()]
|
|
|
|
agentListener:
|
|
Contract: $.class(sys:AgentListener)
|
|
Usage: Runtime
|
|
|
|
stack:
|
|
Contract: $.class(sys:HeatStack)
|
|
Usage: Runtime
|
|
|
|
instanceNotifier:
|
|
Contract: $.class(sys:InstanceNotifier)
|
|
Usage: Runtime
|
|
|
|
defaultNetworks:
|
|
Contract:
|
|
environment: $.class(res:Network)
|
|
flat: $.class(res:Network)
|
|
Usage: In
|
|
|
|
securityGroupManager:
|
|
Contract: $.class(sys:SecurityGroupManager)
|
|
Usage: Runtime
|
|
|
|
reporter:
|
|
Contract: $.class(sys:StatusReporter)
|
|
Usage: Runtime
|
|
|
|
Methods:
|
|
initialize:
|
|
Body:
|
|
- $generatedEnvironmentName: $.getAttr(generatedEnvironmentName)
|
|
- If: $generatedEnvironmentName = null
|
|
Then:
|
|
- $generatedEnvironmentName: randomName()
|
|
- $.setAttr(generatedEnvironmentName, $generatedEnvironmentName)
|
|
- $this.agentListener: new(sys:AgentListener, name => $generatedEnvironmentName)
|
|
- $stackDescriptionFormat: 'This stack was generated by Murano for environment {0} (ID: {1})'
|
|
- $this.stack: new(sys:HeatStack,
|
|
name => 'murano-' + $generatedEnvironmentName,
|
|
description => $stackDescriptionFormat.format($.name, $.id()))
|
|
- $this.instanceNotifier: new(sys:InstanceNotifier, environment => $this)
|
|
- $this.reporter: new(sys:StatusReporter, environment => $this)
|
|
- $net: null
|
|
- If: $.defaultNetworks.environment != null
|
|
Then:
|
|
- $net: $.defaultNetworks.environment
|
|
- If: $.defaultNetworks.flat != null
|
|
Then:
|
|
- $net: $.defaultNetworks.flat
|
|
- If: $net != null
|
|
Then:
|
|
- $this.securityGroupManager: $net.generateSecurityGroupManager($this)
|
|
|
|
deploy:
|
|
Usage: Action
|
|
Body:
|
|
- $.applications.pselect($.deploy())
|
|
|
|
destroy:
|
|
Body:
|
|
- $.stack.delete()
|