Update plugin for MOS 9.0

Change-Id: I6fc0573ec1519a4cd3b4b9d3c6536910485dd66c
This commit is contained in:
Nadya Shakhat 2016-04-29 17:38:22 +03:00
parent 5e6601c98f
commit 6e4d9213d2
4 changed files with 140 additions and 40 deletions

View File

@ -0,0 +1,24 @@
include redis::params
$ensure = 'present'
$service_name = $redis::params::service
$ocf_root_path = '/usr/lib/ocf'
$handler_root_path = '/usr/local/bin'
$primitive_provider = 'fuel'
$primitive_type = $redis::params::service
$ocf_script_name = "${service_name}-ocf-file"
$ocf_script_file = 'redis/ocf/redis-server'
$ocf_handler_name = "ocf_handler_${service_name}"
$ocf_dir_path = "${ocf_root_path}/resource.d"
$ocf_script_path = "${ocf_dir_path}/${primitive_provider}/${$primitive_type}"
$ocf_handler_path = "${handler_root_path}/${ocf_handler_name}"
file { $ocf_script_name :
ensure => $ensure,
path => $ocf_script_path,
mode => '0755',
owner => 'root',
group => 'root',
source => "puppet:///modules/${ocf_script_file}",
}

View File

@ -58,6 +58,7 @@ class redis::main (
) {
include ceilometer::params
include aodh::params
include redis::params
case $::osfamily {
@ -142,18 +143,24 @@ class redis::main (
'coordination/check_watchers' : value => $timeout;
}
aodh_config {
'coordination/backend_url' : value => redis_backend_url($redis_hosts, $redis_sentinel_port, $timeout, $master_name);
'coordination/heartbeat' : value => '1.0';
'coordination/check_watchers' : value => $timeout;
}
service { 'ceilometer-agent-central':
ensure => 'running',
name => $::ceilometer::params::agent_central_service_name,
enable => true,
ensure => 'running',
name => $::ceilometer::params::agent_central_service_name,
enable => true,
hasstatus => true,
hasrestart => true,
}
service { 'ceilometer-alarm-evaluator':
ensure => 'running',
name => $::ceilometer::params::alarm_evaluator_service_name,
enable => true,
service { 'aodh-evaluator':
ensure => 'running',
name => $::aodh::params::evaluator_service_name,
enable => true,
hasstatus => true,
hasrestart => true,
}
@ -166,38 +173,74 @@ class redis::main (
hasrestart => true,
}
pacemaker_wrappers::service { $::ceilometer::params::agent_central_service_name :
complex_type => 'clone',
ms_metadata => { 'interleave' => true },
primitive_type => 'ceilometer-agent-central',
metadata => $metadata,
parameters => { 'user' => 'ceilometer' },
operations => $operations,
pacemaker::service { $::ceilometer::params::agent_central_service_name :
complex_type => 'clone',
complex_metadata => { 'interleave' => true },
primitive_type => 'ceilometer-agent-central',
metadata => $metadata,
parameters => { 'user' => 'ceilometer' },
operations => $operations,
}
pacemaker_wrappers::service { $::ceilometer::params::alarm_evaluator_service_name :
complex_type => 'clone',
ms_metadata => { 'interleave' => true },
primitive_type => 'ceilometer-alarm-evaluator',
metadata => $metadata,
parameters => { 'user' => 'ceilometer' },
operations => $operations,
pacemaker::service { $::aodh::params::evaluator_service_name :
complex_type => 'clone',
complex_metadata => { 'interleave' => true },
primitive_type => 'aodh-evaluator',
metadata => $metadata,
parameters => { 'user' => 'aodh' },
operations => $operations,
}
pacemaker_wrappers::service { 'redis-server' :
ocf_script_file => 'redis/ocf/redis-server',
complex_type => 'clone',
ms_metadata => { 'interleave' => true },
primitive_type => 'redis-server',
operations => $operations,
pacemaker::service { 'redis-server' :
ocf_script_file => 'redis/ocf/redis-server',
complex_type => 'clone',
complex_metadata => { 'interleave' => true },
primitive_type => 'redis-server',
operations => $operations,
}
Pacemaker_wrappers::Service['redis-server'] ->
Pacemaker_wrappers::Service["$::ceilometer::params::agent_central_service_name"] ->
Pacemaker_wrappers::Service["$::ceilometer::params::alarm_evaluator_service_name"]
# During deploy of plugin we need to update resource type from simple to
# clone, but this is not working with current implementation of pcmk_resource
# type (https://bugs.launchpad.net/fuel/+bug/1580660), that's why we need a
# workaround below, this dirty workaround should be removed once
# https://bugs.launchpad.net/fuel/+bug/1580660 is fixed.
$old_ceilometer_primitive_exists=inline_template("<%= `if pcs resource show | grep -q '^ p_ceilometer-agent-central'; then /bin/echo true; fi;`%>")
$old_aodh_primitive_exists=inline_template("<%= `if pcs resource show | grep -q '^ p_aodh-evaluator'; then /bin/echo true; fi;`%>")
if $old_ceilometer_primitive_exists {
notify { "Ceilometer agent central simple primitive exists and will be removed": }
exec { 'remove_old_resource_central_agent':
path => '/usr/sbin:/usr/bin:/sbin:/bin',
command => 'pcs resource delete p_ceilometer-agent-central --wait=120',
}
Exec['remove_old_resource_central_agent'] ->
Pacemaker::Service['redis-server'] ->
Pacemaker::Service["$::ceilometer::params::agent_central_service_name"]
} else {
Pacemaker::Service['redis-server'] ->
Pacemaker::Service["$::ceilometer::params::agent_central_service_name"]
}
if $old_aodh_primitive_exists {
notify { "Aodh evaluator simple primitive exists and will be removed": }
exec { 'remove_old_resource_aodh_evaluator':
path => '/usr/sbin:/usr/bin:/sbin:/bin',
command => 'pcs resource delete p_aodh-evaluator --wait=120',
}
Exec['remove_old_resource_aodh_evaluator'] ->
Pacemaker::Service['redis-server'] ->
Pacemaker::Service["$::aodh::params::evaluator_service_name"]
} else {
Pacemaker::Service['redis-server'] ->
Pacemaker::Service["$::aodh::params::evaluator_service_name"]
}
Ceilometer_config <||> ~> Service["$::ceilometer::params::agent_central_service_name"]
Ceilometer_config <||> ~> Service["$::ceilometer::params::alarm_evaluator_service_name"]
Aodh_config <||> ~> Service["$::aodh::params::evaluator_service_name"]
Ceilometer_config <||> ~> Service['ceilometer-agent-notification']
}

View File

@ -1,8 +1,46 @@
- id: ceilometer_redis
## we must upload ocf scripts on all controllers before
## create clone resources.
- id: primary_create_redis_ocf
type: puppet
groups: [primary-controller, controller]
groups: [primary-controller]
required_for: [deploy_end]
requires: [ceilometer-controller]
parameters:
puppet_manifest: "puppet/manifests/create_redis_ocf.pp"
puppet_modules: "puppet/modules:/etc/puppet/modules"
timeout: 180
- id: create_redis_ocf
type: puppet
groups: [controller]
required_for: [deploy_end]
requires: [ceilometer-controller]
cross-depends:
- name: primary_create_redis_ocf
parameters:
puppet_manifest: "puppet/manifests/create_redis_ocf.pp"
puppet_modules: "puppet/modules:/etc/puppet/modules"
timeout: 180
- id: primary_ceilometer_redis
type: puppet
groups: [primary-controller]
required_for: [deploy_end]
requires: [ceilometer-controller]
cross-depends:
- name: create_redis_ocf
parameters:
puppet_manifest: "puppet/manifests/controller.pp"
puppet_modules: "puppet/modules:/etc/puppet/modules"
timeout: 3600
- id: ceilometer_redis
type: puppet
groups: [controller]
required_for: [deploy_end]
requires: [ceilometer-controller]
cross-depends:
- name: primary_ceilometer_redis
parameters:
puppet_manifest: "puppet/manifests/controller.pp"
puppet_modules: "puppet/modules:/etc/puppet/modules"

View File

@ -7,7 +7,7 @@ version: 1.0.2
# Description
description: Ceilometer extension that provides a workload-partitioning and HA for ceilometer services
# Required fuel version
fuel_version: ['7.0','8.0']
fuel_version: ['9.0']
# Specify license of your plugin
licenses: ['Apache License Version 2.0']
# Specify author or company name
@ -20,12 +20,7 @@ groups: []
# The plugin is compatible with releases in the list
releases:
- os: ubuntu
version: 2015.1.0-7.0
mode: ['ha']
deployment_scripts_path: deployment_scripts/
repository_path: repositories/ubuntu
- os: ubuntu
version: liberty-8.0
version: mitaka-9.0
mode: ['ha']
deployment_scripts_path: deployment_scripts/
repository_path: repositories/ubuntu