Sergey Kraynev 6a5a03c192 Fix indentation warnings LBaaS
After patch Ia2498bdb0f7c310ec3d2c2f11f5d3fc08c8b352c there is
possible to run check for yaml and shell syntax.
This patch is oriented to fix some similar Warnings reported in yaml
syntax check for LBaaS apps, like "(indentation)".

Change-Id: I6f2b1af8ab7cee75d153c8f18bbea8ac67cc65b4
2016-08-03 17:14:54 +03:00

147 lines
4.1 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:
=: org.openstack.murano.lbaas
res: io.murano.resources
conf: io.murano.configuration
sys: io.murano.system
std: io.murano
Name: HAProxy
Extends:
- std:Application
- LoadBalancer
Properties:
user:
Contract: $.string().notNull()
pass:
Contract: $.string().notNull()
port:
Contract: $.int().notNull()
instance:
Contract: $.class(res:LinuxMuranoInstance).notNull()
pools:
Usage: InOut
Contract:
$.string().notNull(): $.class(HAProxyPool).notNull()
Methods:
.init:
Body:
- $._linux: new(conf:Linux)
- $._resources: new(sys:Resources)
- $._environment: $.find(std:Environment).require()
- $._lbConfig: null
deploy:
Body:
- If: not $.getAttr(installed, false)
Then:
- $securityGroupIngress:
- ToPort: $this.port
FromPort: $this.port
IpProtocol: tcp
External: true
- $._environment.securityGroupManager.addGroupIngress($securityGroupIngress)
- $this.installLB()
- $.setAttr(installed, true)
- $this.syncSettings()
- $._environment.reporter.report($this, format('HA-proxy is available at {0}', $this.getEndpoint()))
createPool:
Arguments:
- name:
Contract: $.string().notNull()
- algorithm:
Contract: $.string().notNull()
- protocol:
Contract: $.string().notNull()
- listener:
Contract: $.class(HAProxyListener).notNull()
Body:
- $pool: new(HAProxyPool, $this, listener=>$listener, name=>$name, algorithm=>$algorithm, protocol=>$protocol)
- $this.pools[$name]: $pool
- Return: $pool
addHostToPool:
Arguments:
- poolName:
Contract: $.string().notNull()
- host:
Contract: $.string().notNull()
- ip:
Contract: $.string().notNull()
- port:
Contract: $.int().check($>0)
Body:
- $pool: $this.pools.get($poolName)
- $pool.addMember($host, $ip, $port)
- $this.pools[$poolName]: $pool
installLB:
Body:
- $this.instance.deploy()
- $command: $._resources.string('deploy_haproxy.sh')
- $this._environment.reporter.report($this, 'Installing HAProxy...')
- $this._linux.runCommand($this.instance.agent, $command)
- $this._environment.reporter.report($this, 'HAProxy is installed.')
restartLB:
Body:
$this._linux.runCommand($.instance.agent, 'sudo service haproxy restart')
syncSettings:
Body:
- $config: $this.generateConfiguration()
- $this._environment.reporter.report($this, 'Replacing HAProxy settings')
- $this._linux.putFile($.instance.agent, $config, '/etc/haproxy/haproxy.cfg')
- $this.restartLB()
generateConfiguration:
Body:
- $defaultConfig: $._getDefaults()
- $stats: $._getStatsConfig()
- If: len($this.pools) > 0
Then:
$balanceConfig: $this.pools.values().select($.generateConfiguration()).join('\n\n')
Else:
$balanceConfig: ''
- Return: list($defaultConfig, $balanceConfig, $stats).join('\n\n')
_getStatsConfig:
Body:
Return: $._resources.string('stats.cfg').replace(
dict('$user'=>$this.user,
'$pass'=>$this.pass,
'$port'=>$this.port))
getEndpoint:
Body:
- If: $this.instance.assignFloatingIp
Then:
- $host: $this.instance.floatingIpAddress
Else:
- $host: $this.instance.ipAddresses.first()
- Return: format("http://{0}:{1}", $host, $this.port)
_getDefaults:
Body:
Return: $._resources.string('base_config.cfg')