Dmytro Dovbii 63afe9f441 Move dependency's 'deploy' call into the method 'deploy' of app
It is wrong to call deploy from getContainer.
Calls were moved into method deploy of class for
all applications which have dependencies in properties.

Change-Id: I6643bf20d3e014c6d19d44896a041f523d52cb42
2015-04-15 10:39:58 +03:00

80 lines
1.8 KiB
YAML

Namespaces:
=: io.murano.apps.docker
std: io.murano
Name: DockerPHPZendServer
Extends: DockerApplication
Properties:
name:
Contract: $.string().notNull()
publish:
Contract: $.bool().notNull()
Default: true
password:
Contract: $.string().notNull()
database:
Contract: $.class(DockerMySQL).notNull()
dbName:
Contract: $.string().notNull()
dbUser:
Contract: $.string().notNull()
dbPass:
Contract: $.string().notNull()
Methods:
initialize:
Body:
- $._environment: $.find(std:Environment).require()
- $._scope: switch($.publish, $ => public, not $ => internal)
deploy:
Body:
- $.database.deploy()
- $.super($.deploy())
getContainer:
Body:
- $dbLink: $.getConnectionTo($.database, 3306)
- Return:
name: $.name
image: 'php-zendserver'
env:
MYSQL_HOSTNAME: $dbLink.host
MYSQL_PORT: $dbLink.port
MYSQL_USERNAME: $.dbUser
MYSQL_PASSWORD: $.dbPass
MYSQL_DBNAME: $.dbName
ZS_ADMIN_PASSWORD: $.password
ports:
- port: 80
scope: $._scope
- port: 10081
scope: $._scope
onInstallationStart:
Body:
- $._environment.reporter.report($this, 'Installing PHPZendServer')
onInstallationFinish:
Body:
- If: $.publish
Then:
- $endpoints: $.applicationEndpoints.where($.scope = $this._scope and $.containerPort = 80).
select(format('http://{0}:{1}', $.address, $.port))
- $._environment.reporter.report($this, 'PHPZendServer {0} is available at {1}'.format($.name, join(', ', $endpoints)))
Else:
- $._environment.reporter.report($this, 'PHPZendServer {0} has deployed but is not accessible from outside'.format($.name))