From 15b67834389e32b5b9649632bc209b98cb3199d8 Mon Sep 17 00:00:00 2001 From: ZhongShengping Date: Wed, 30 Nov 2016 11:26:11 +0800 Subject: [PATCH] Add deps to all that is needed 1) Add deps to all that is needed. 2) Update releated spec tests. Change-Id: If7dffdabbb4ea57763f41b7a2a6adf9d274b29bc --- manifests/config.pp | 2 ++ manifests/db.pp | 2 ++ manifests/db/mysql.pp | 7 ++++++- manifests/db/postgresql.pp | 6 ++++-- manifests/deps.pp | 5 +++++ manifests/keystone/auth.pp | 6 ++++-- manifests/keystone/authtoken.pp | 2 ++ manifests/logging.pp | 2 ++ manifests/policy.pp | 2 ++ spec/classes/cloudkitty_db_sync_spec.rb | 6 +++++- spec/classes/cloudkitty_storage_spec.rb | 7 ++++++- 11 files changed, 40 insertions(+), 7 deletions(-) diff --git a/manifests/config.pp b/manifests/config.pp index 9625b2a..ad5be39 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -24,6 +24,8 @@ class cloudkitty::config ( $cloudkitty_config = {}, ) { + include ::cloudkitty::deps + validate_hash($cloudkitty_config) create_resources('cloudkitty_config', $cloudkitty_config) diff --git a/manifests/db.pp b/manifests/db.pp index 20df342..c864d5d 100644 --- a/manifests/db.pp +++ b/manifests/db.pp @@ -49,6 +49,8 @@ class cloudkitty::db ( $database_max_overflow = $::os_service_default, ) { + include ::cloudkitty::deps + validate_re($database_connection, '^(sqlite|mysql(\+pymysql)?|postgresql):\/\/(\S+:\S+@\S+\/\S+)?') diff --git a/manifests/db/mysql.pp b/manifests/db/mysql.pp index c99b288..eed6422 100644 --- a/manifests/db/mysql.pp +++ b/manifests/db/mysql.pp @@ -53,6 +53,8 @@ class cloudkitty::db::mysql( $allowed_hosts = undef ) { + include ::cloudkitty::deps + validate_string($password) ::openstacklib::db::mysql { 'cloudkitty': @@ -65,5 +67,8 @@ class cloudkitty::db::mysql( allowed_hosts => $allowed_hosts, } - ::Openstacklib::Db::Mysql['cloudkitty'] ~> Exec<| title == 'cloudkitty-manage db_sync' |> + Anchor['cloudkitty::db::begin'] + ~> Class['cloudkitty::db::mysql'] + ~> Anchor['cloudkitty::db::end'] + } diff --git a/manifests/db/postgresql.pp b/manifests/db/postgresql.pp index dd046fe..7b6ed20 100644 --- a/manifests/db/postgresql.pp +++ b/manifests/db/postgresql.pp @@ -40,7 +40,7 @@ class cloudkitty::db::postgresql( $privileges = 'ALL', ) { - Class['cloudkitty::db::postgresql'] -> Service<| title == 'cloudkitty' |> + include ::cloudkitty::deps ::openstacklib::db::postgresql { 'cloudkitty': password_hash => postgresql_password($user, $password), @@ -50,6 +50,8 @@ class cloudkitty::db::postgresql( privileges => $privileges, } - ::Openstacklib::Db::Postgresql['cloudkitty'] ~> Exec<| title == 'cloudkitty-manage db_sync' |> + Anchor['cloudkitty::db::begin'] + ~> Class['cloudkitty::db::postgresql'] + ~> Anchor['cloudkitty::db::end'] } diff --git a/manifests/deps.pp b/manifests/deps.pp index 909e8f8..965992a 100644 --- a/manifests/deps.pp +++ b/manifests/deps.pp @@ -26,6 +26,11 @@ class cloudkitty::deps { ~> Service<| tag == 'cloudkitty-service' |> ~> anchor { 'cloudkitty::service::end': } + # policy config should occur in the config block also. + Anchor['cloudkitty::config::begin'] + -> Openstacklib::Policy::Base<||> + ~> Anchor['cloudkitty::config::end'] + # Installation or config changes will always restart services. Anchor['cloudkitty::install::end'] ~> Anchor['cloudkitty::service::begin'] Anchor['cloudkitty::config::end'] ~> Anchor['cloudkitty::service::begin'] diff --git a/manifests/keystone/auth.pp b/manifests/keystone/auth.pp index cd0f669..74e2aba 100644 --- a/manifests/keystone/auth.pp +++ b/manifests/keystone/auth.pp @@ -69,10 +69,12 @@ class cloudkitty::keystone::auth ( $internal_url = 'http://127.0.0.1:8889', ) { + include ::cloudkitty::deps + if $configure_user_role { - Keystone_user_role["${auth_name}@${tenant}"] ~> Service <| name == 'cloudkitty-server' |> + Keystone_user_role["${auth_name}@${tenant}"] ~> Anchor['cloudkitty::service::end'] } - Keystone_endpoint["${region}/${service_name}::${service_type}"] ~> Service <| name == 'cloudkitty-server' |> + Keystone_endpoint["${region}/${service_name}::${service_type}"] ~> Anchor['cloudkitty::service::end'] keystone::resource::service_identity { 'cloudkitty': configure_user => $configure_user, diff --git a/manifests/keystone/authtoken.pp b/manifests/keystone/authtoken.pp index e58d636..ebde9fc 100644 --- a/manifests/keystone/authtoken.pp +++ b/manifests/keystone/authtoken.pp @@ -222,6 +222,8 @@ class cloudkitty::keystone::authtoken( $token_cache_time = $::os_service_default, ) { + include ::cloudkitty::deps + keystone::resource::authtoken { 'cloudkitty_config': username => $username, password => $password, diff --git a/manifests/logging.pp b/manifests/logging.pp index 81c7f6c..a3acddf 100644 --- a/manifests/logging.pp +++ b/manifests/logging.pp @@ -113,6 +113,8 @@ class cloudkitty::logging( $log_date_format = $::os_service_default, ) { + include ::cloudkitty::deps + oslo::log { 'cloudkitty_config': use_stderr => $use_stderr, use_syslog => $use_syslog, diff --git a/manifests/policy.pp b/manifests/policy.pp index ca1c605..a2eec6f 100644 --- a/manifests/policy.pp +++ b/manifests/policy.pp @@ -28,6 +28,8 @@ class cloudkitty::policy ( $policy_path = '/etc/cloudkitty/policy.json', ) { + include ::cloudkitty::deps + validate_hash($policies) Openstacklib::Policy::Base { diff --git a/spec/classes/cloudkitty_db_sync_spec.rb b/spec/classes/cloudkitty_db_sync_spec.rb index ce70129..a5ce792 100644 --- a/spec/classes/cloudkitty_db_sync_spec.rb +++ b/spec/classes/cloudkitty_db_sync_spec.rb @@ -10,7 +10,11 @@ describe 'cloudkitty::db::sync' do :path => [ '/bin', '/usr/bin', ], :refreshonly => 'true', :user => 'cloudkitty', - :logoutput => 'on_failure' + :logoutput => 'on_failure', + :subscribe => ['Anchor[cloudkitty::install::end]', + 'Anchor[cloudkitty::config::end]', + 'Anchor[cloudkitty::dbsync::begin]'], + :notify => 'Anchor[cloudkitty::dbsync::end]', ) end diff --git a/spec/classes/cloudkitty_storage_spec.rb b/spec/classes/cloudkitty_storage_spec.rb index 3ff40c2..fcc16db 100644 --- a/spec/classes/cloudkitty_storage_spec.rb +++ b/spec/classes/cloudkitty_storage_spec.rb @@ -10,7 +10,12 @@ describe 'cloudkitty::storage' do :path => '/usr/bin', :refreshonly => 'true', :user => 'cloudkitty', - :logoutput => 'on_failure' + :logoutput => 'on_failure', + :subscribe => ['Anchor[cloudkitty::install::end]', + 'Anchor[cloudkitty::config::end]', + 'Anchor[cloudkitty::dbsync::begin]', + 'Anchor[cloudkitty::storageinit::begin]'], + :notify => 'Anchor[cloudkitty::storageinit::end]', ) end