From cb727ddd9c1d570be985611249739f08c408bf29 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 10 Jan 2018 14:10:46 -0800 Subject: [PATCH] Add group to policy management The move of policy.json into code means the file may not exist. We've added support to ensure that the file exists in the openstacklib but we need to make sure the permissions are right for each service. This adds the group information to the policies so it works right. Depends-On: I26e8b1384f4f69712da9d06a4c565dfd1f17c9ed Change-Id: Ic104d0c6fa77803271948ec405f601886d8d513a Co-Authored-By: Alex Schultz --- manifests/params.pp | 1 + manifests/policy.pp | 5 ++++- spec/classes/panko_policy_spec.rb | 13 ++++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 16d9d7e..19b0ea7 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -3,6 +3,7 @@ class panko::params { include ::openstacklib::defaults $client_package_name = 'python-pankoclient' + $group = 'panko' case $::osfamily { 'RedHat': { diff --git a/manifests/policy.pp b/manifests/policy.pp index 07b76a3..6ff370c 100644 --- a/manifests/policy.pp +++ b/manifests/policy.pp @@ -29,11 +29,14 @@ class panko::policy ( ) { include ::panko::deps + include ::panko::params validate_hash($policies) Openstacklib::Policy::Base { - file_path => $policy_path, + file_path => $policy_path, + file_user => 'root', + file_group => $::panko::params::group, } create_resources('openstacklib::policy::base', $policies) diff --git a/spec/classes/panko_policy_spec.rb b/spec/classes/panko_policy_spec.rb index 5a4e5f8..ee98d18 100644 --- a/spec/classes/panko_policy_spec.rb +++ b/spec/classes/panko_policy_spec.rb @@ -1,7 +1,8 @@ require 'spec_helper' describe 'panko::policy' do - shared_examples_for 'panko-policies' do + + shared_examples_for 'panko policies' do let :params do { :policy_path => '/etc/panko/policy.json', @@ -16,8 +17,10 @@ describe 'panko::policy' do it 'set up the policies' do is_expected.to contain_openstacklib__policy__base('context_is_admin').with({ - :key => 'context_is_admin', - :value => 'foo:bar' + :key => 'context_is_admin', + :value => 'foo:bar', + :file_user => 'root', + :file_group => 'panko', }) is_expected.to contain_oslo__policy('panko_config').with( :policy_file => '/etc/panko/policy.json', @@ -26,14 +29,14 @@ describe 'panko::policy' do end on_supported_os({ - :supported_os => OSDefaults.get_supported_os + :supported_os => OSDefaults.get_supported_os }).each do |os,facts| context "on #{os}" do let (:facts) do facts.merge!(OSDefaults.get_facts()) end - it_behaves_like 'panko-policies' + it_configures 'panko policies' end end end