summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Keiser <john@johnkeiser.com>2015-11-09 16:58:07 -0800
committerJohn Keiser <john@johnkeiser.com>2015-11-09 16:58:07 -0800
commit8e016a339f02f8a71ba0d4a04d3ba163c318bec7 (patch)
treedc0d81cdb3cb165440b5542c271623c2cb42671e
parent8ce983662cef9fa9bcaa19e0eb371c6674539734 (diff)
downloadchef-zero-8e016a339f02f8a71ba0d4a04d3ba163c318bec7.tar.gz
Add ChefFS support to pedant tests (not in travis yet)
-rw-r--r--Gemfile2
-rw-r--r--spec/run_oc_pedant.rb32
2 files changed, 33 insertions, 1 deletions
diff --git a/Gemfile b/Gemfile
index 203208f..010fe52 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,4 +5,4 @@ gem 'rest-client', :github => 'chef/rest-client'
gem 'oc-chef-pedant', :github => 'chef/chef-server', branch: 'e9bf7fe4440afd34856401831b30636100be958b'
-gem 'chef', :github => 'chef/chef', :tag => '12.4.1'
+gem 'chef', :github => 'chef/chef'
diff --git a/spec/run_oc_pedant.rb b/spec/run_oc_pedant.rb
index d2d1c84..74be329 100644
--- a/spec/run_oc_pedant.rb
+++ b/spec/run_oc_pedant.rb
@@ -5,6 +5,33 @@ require 'bundler/setup'
require 'chef_zero/server'
require 'rspec/core'
+def start_server(chef_repo_path)
+ require 'chef/version'
+ require 'chef/config'
+ require 'chef/chef_fs/config'
+ require 'chef/chef_fs/chef_fs_data_store'
+ require 'chef_zero/server'
+
+ Dir.mkdir(chef_repo_path) if !File.exists?(chef_repo_path)
+
+ # 11.6 and below had a bug where it couldn't create the repo children automatically
+ if Chef::VERSION.to_f < 11.8
+ %w(clients cookbooks data_bags environments nodes roles users).each do |child|
+ Dir.mkdir("#{chef_repo_path}/#{child}") if !File.exists?("#{chef_repo_path}/#{child}")
+ end
+ end
+
+ # Start the new server
+ Chef::Config.repo_mode = 'everything'
+ Chef::Config.chef_repo_path = chef_repo_path
+ Chef::Config.versioned_cookbooks = true
+ chef_fs = Chef::ChefFS::Config.new.local_fs
+ data_store = Chef::ChefFS::ChefFSDataStore.new(chef_fs)
+ server = ChefZero::Server.new(:port => 8889, :single_org => false, :data_store => data_store)#, :log_level => :debug)
+ server.start_background
+ server
+end
+
tmpdir = nil
begin
@@ -17,6 +44,11 @@ begin
server = ChefZero::Server.new(:port => 8889, :single_org => false, :data_store => data_store)
server.start_background
+ elsif ENV['CHEF_FS']
+ require 'tmpdir'
+ tmpdir = Dir.mktmpdir
+ start_server(tmpdir)
+
else
server = ChefZero::Server.new(:port => 8889, :single_org => false)#, :log_level => :debug)
server.start_background