From fa9ef8c773e6cafc0ba45bc6f8921b806c77e33a Mon Sep 17 00:00:00 2001 From: Abhay Joshi Date: Thu, 14 Apr 2016 16:01:45 -0700 Subject: [PATCH] Closes-Bug: #1570634 Introduce stages in contrail_all.pp to ensure module corresponding to a role runs in a particular stage after stages for roles which are supposed to execute earlier and thus follow strict order for execution. Change-Id: Ie8f0c841db2e7711648914def607cda50e72e801 --- .../contrail/manifests/contrail_all.pp | 51 ++++++++++--------- .../manifests/profile/openstack_controller.pp | 46 ++++++++++------- 2 files changed, 55 insertions(+), 42 deletions(-) diff --git a/contrail/environment/modules/contrail/manifests/contrail_all.pp b/contrail/environment/modules/contrail/manifests/contrail_all.pp index 2209b091..053718b2 100644 --- a/contrail/environment/modules/contrail/manifests/contrail_all.pp +++ b/contrail/environment/modules/contrail/manifests/contrail_all.pp @@ -1,34 +1,35 @@ class contrail::contrail_all() { - contain ::contrail + stage{'contrail':}->stage{'provision_start':}->stage{'base':}->stage{'common':}->stage{'keepalived':}->stage{'haproxy':}->stage{'database':}->stage{'webui':}->stage{'openstack':}->stage{'ha_config':}->stage{'config':}->stage{'controller':}->stage{'collector':}->stage{'compute':}->stage{'provision_complete':} + class { '::contrail' : stage => 'contrail' } $host_roles = $contrail::params::host_roles - class { '::contrail::provision_start' : state => 'provision_started' } - contain ::contrail::provision_start - contain ::sysctl::base - contain ::apt - contain ::contrail::profile::common - contain ::contrail::profile::keepalived - contain ::contrail::profile::haproxy - contain ::contrail::profile::database - contain ::contrail::profile::webui - contain ::contrail::profile::openstack_controller - contain ::contrail::ha_config - contain ::contrail::profile::config - contain ::contrail::profile::controller - contain ::contrail::profile::collector - contain ::contrail::profile::compute - class { '::contrail::provision_complete' : state => 'post_provision_completed' } - contain ::contrail::provision_complete - Class['::contrail']->Class['::contrail::provision_start']->Class['::sysctl::base']->Class['::contrail::profile::common']->Class['::contrail::profile::keepalived']->Class['::contrail::profile::haproxy']->Class['::contrail::profile::database']->Class['::contrail::profile::webui']->Class['::contrail::profile::openstack_controller']->Class['::contrail::ha_config']->Class['::contrail::profile::config']->Class['::contrail::profile::controller']->Class['::contrail::profile::collector']->Class['::contrail::profile::compute']->Class['::contrail::provision_complete'] + class { '::contrail::provision_start' : state => 'provision_started', stage => 'provision_start' } + class { '::sysctl::base' : stage => 'base' } + class { '::apt' : stage => 'common' } + class { '::contrail::profile::common' : stage => 'common' } + class { '::contrail::profile::keepalived' : stage => 'keepalived' } + class { '::contrail::profile::haproxy' : stage => 'haproxy' } + class { '::contrail::profile::database' : stage => 'database' } + class { '::contrail::profile::webui' : stage => 'webui' } + class { '::contrail::profile::openstack_controller' : stage => 'openstack' } + class { '::contrail::ha_config' : stage => 'ha_config' } + class { '::contrail::profile::config' : stage => 'config' } + class { '::contrail::profile::controller' : stage => 'controller' } + class { '::contrail::profile::collector' : stage => 'collector' } + class { '::contrail::profile::compute' : stage => 'compute' } + class { '::contrail::provision_complete' : state => 'post_provision_completed', stage => 'provision_complete' } if 'tsn' in $host_roles { - contain ::contrail::profile::tsn - Class['::contrail::profile::compute']->Class['::contrail::profile::tsn']->Class['::contrail::provision_complete'] + stage{'tsn':} + class { '::contrail::profile::tsn' : stage => 'tsn'} + Stage['compute']->Stage['tsn']->Stage['provision_complete'] } if 'toragent' in $host_roles { - contain ::contrail::profile::toragent - Class['::contrail::profile::compute']->Class['::contrail::profile::toragent']->Class['::contrail::provision_complete'] + stage{'toragent':} + class { '::contrail::profile::toragent' : stage => 'toragent' } + Stage['compute']->Stage['toragent']->Stage['provision_complete'] } if 'storage-master' in $host_roles or 'storage-compute' in $host_roles { - contain ::contrail::profile::storage - Class['::contrail::profile::compute']->Class['::contrail::profile::storage']->Class['::contrail::provision_complete'] + stage{'storage':} + class { '::contrail::profile::storage' : stage => 'storage' } + Stage['compute']->Stage['storage']->Stage['provision_complete'] } } diff --git a/contrail/environment/modules/contrail/manifests/profile/openstack_controller.pp b/contrail/environment/modules/contrail/manifests/profile/openstack_controller.pp index 54ec07c5..a802f461 100644 --- a/contrail/environment/modules/contrail/manifests/profile/openstack_controller.pp +++ b/contrail/environment/modules/contrail/manifests/profile/openstack_controller.pp @@ -42,33 +42,45 @@ mode => '0755', group => root, content => template("${module_name}/local_settings.py.erb") - } + } -> + notify { "contrail::profile::openstack_controller - enable_ceilometer = ${enable_ceilometer}":; } -> + openstack::resources::database { 'neutron': } -> + package { 'neutron-server': ensure => present } -> + class {'::contrail::profile::neutron_db_sync': + database_connection => $::openstack::resources::connectors::neutron + } -> + notify { "contrail::profile::openstack_controller - neutron_db_connection = ${::openstack::resources::connectors::neutron}":; } -> + contrail::lib::report_status { 'openstack_completed': state => 'openstack_completed' } + contain ::openstack::profile::base + contain ::nova::quota + contain ::openstack::profile::firewall + contain ::contrail::profile::openstack::mysql + contain ::openstack::profile::keystone + contain ::openstack::profile::memcache + contain ::contrail::profile::openstack::glance::api + contain ::openstack::profile::cinder::api + contain ::openstack::profile::nova::api + contain ::contrail::profile::openstack::heat + contain ::openstack::profile::auth_file + contain ::openstack::profile::provision + contain ::contrail::contrail_openstack + contain ::contrail::profile::neutron_db_sync Class['::openstack::profile::provision']->Service['glance-api'] if ($enable_ceilometer) { + Class['::contrail::profile::openstack::heat'] -> + class {'::contrail::profile::openstack::ceilometer' : } -> + Class['::openstack::profile::auth_file'] contain ::contrail::profile::openstack::ceilometer } - notify { "contrail::profile::openstack_controller - enable_ceilometer = ${enable_ceilometer}":; } if ($package_sku !~ /^*2015.1.*/) { + Package['openstack-dashboard'] -> package { 'contrail-openstack-dashboard': ensure => latest, - } + } -> + File['/etc/openstack-dashboard/local_settings.py'] Package['contrail-openstack-dashboard'] -> Exec['openstack-neutron-db-sync'] } - - - openstack::resources::database { 'neutron': } - -> - package { 'neutron-server': ensure => present } - -> - class {'::contrail::profile::neutron_db_sync': - database_connection => $::openstack::resources::connectors::neutron - } - -> - notify { "contrail::profile::openstack_controller - neutron_db_connection = ${::openstack::resources::connectors::neutron}":; } - -> - contrail::lib::report_status { 'openstack_completed': state => 'openstack_completed' } - } elsif ((!('openstack' in $host_roles)) and ($contrail_roles['openstack'] == true)) { notify { 'uninstalling openstack':; }