]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/openstacklib/spec/defines/openstacklib_policy_spec.rb
add stackforge/openstacklib to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / openstacklib / spec / defines / openstacklib_policy_spec.rb
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 (file)
index 0000000..89be58c
--- /dev/null
@@ -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
+