From 37f174edd6fe4407e3a33b0fc0a66ba988318237 Mon Sep 17 00:00:00 2001 From: Chris Doherty Date: Wed, 18 Nov 2015 13:56:21 -0800 Subject: Add rspec support for policies. --- lib/chef_zero/rspec.rb | 11 +++++++++++ lib/chef_zero/server.rb | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/chef_zero/rspec.rb b/lib/chef_zero/rspec.rb index 2dd9a3a..29192b3 100644 --- a/lib/chef_zero/rspec.rb +++ b/lib/chef_zero/rspec.rb @@ -149,6 +149,10 @@ module ChefZero before(chef_server_options[:server_scope]) { org_member(*usernames) } end + def policy(name, data, &block) + before(chef_server_options[:server_scope]) { node(name, data, &block) } + end + def role(name, data, &block) before(chef_server_options[:server_scope]) { role(name, data, &block) } end @@ -251,6 +255,13 @@ module ChefZero ChefZero::RSpec.server.load_data({ 'members' => usernames }, current_org) end + def policy(name, version, data) + with_object_path("policies/#{name}") do + ChefZero::RSpec.server.load_data({ 'policies' => { name => { version => data } } }, current_org) + instance_eval(&block) if block_given? + end + end + def role(name, data, &block) with_object_path("roles/#{name}") do ChefZero::RSpec.server.load_data({ 'roles' => { name => data } }, current_org) diff --git a/lib/chef_zero/server.rb b/lib/chef_zero/server.rb index 2b39046..6d3e597 100644 --- a/lib/chef_zero/server.rb +++ b/lib/chef_zero/server.rb @@ -443,6 +443,16 @@ module ChefZero end end + if contents['policies'] + contents['policies'].each_pair do |policy_name, policy_struct| + # data_store.create_dir(['organizations', org_name, 'policies', policy_name], "revisions", :recursive) + dejsonize_children(policy_struct).each do |revision, policy_data| + data_store.set(['organizations', org_name, 'policies', policy_name, + "revisions", revision], policy_data, :create, :create_dir) + end + end + end + if contents['cookbooks'] contents['cookbooks'].each_pair do |name_version, cookbook| if name_version =~ /(.+)-(\d+\.\d+\.\d+)$/ -- cgit v1.2.1