X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=3rdparty%2Fmodules%2Fopenstacklib%2Fspec%2Fdefines%2Fopenstacklib_policy_spec.rb;fp=3rdparty%2Fmodules%2Fopenstacklib%2Fspec%2Fdefines%2Fopenstacklib_policy_spec.rb;h=89be58c798478789fa091091f276f8883f118cb6;hb=8132e6bb1199463f5e334326659c974d4772b3e3;hp=0000000000000000000000000000000000000000;hpb=169cb77932b427c80d2731ca5938ecd617a5ad57;p=dsa-puppet.git diff --git a/3rdparty/modules/openstacklib/spec/defines/openstacklib_policy_spec.rb b/3rdparty/modules/openstacklib/spec/defines/openstacklib_policy_spec.rb new file mode 100644 index 00000000..89be58c7 --- /dev/null +++ b/3rdparty/modules/openstacklib/spec/defines/openstacklib_policy_spec.rb @@ -0,0 +1,37 @@ +require 'spec_helper' + +describe 'openstacklib::policy::base' do + + let :title do + 'nova-contest_is_admin' + end + + let :params do + {:file_path => '/etc/nova/policy.json', + :key => 'context_is_admin', + :value => 'foo:bar'} + end + + it 'configures the proper policy' do + should contain_augeas('/etc/nova/policy.json-context_is_admin-foo:bar').with( + 'lens' => 'Json.lns', + 'incl' => '/etc/nova/policy.json', + 'changes' => 'set dict/entry[*][.="context_is_admin"]/string foo:bar', + 'require' => 'Augeas[/etc/nova/policy.json-context_is_admin-foo:bar-add]' + ) + end + + it 'configures the proper policy' do + should contain_augeas('/etc/nova/policy.json-context_is_admin-foo:bar-add').with( + 'lens' => 'Json.lns', + 'incl' => '/etc/nova/policy.json', + 'changes' => [ + 'set dict/entry[last()+1] "context_is_admin"', + 'set dict/entry[last()]/string "foo:bar"' + ], + 'onlyif' => 'match dict/entry[*][.="context_is_admin"] size == 0' + ) + end + +end +