module ChefZero::RSpec::WhenTheChefServerInstanceMethods

Public Instance Methods

acl(data) click to toggle source
# File lib/chef_zero/rspec.rb, line 200
def acl(data)
  acl_for(@current_object_path, data)
end
acl_for(path, data) click to toggle source
# File lib/chef_zero/rspec.rb, line 196
def acl_for(path, data)
  ChefZero::RSpec.server.load_data({ "acls" => { path => data } }, current_org)
end
client(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 204
def client(name, data, &block)
  with_object_path("clients/#{name}") do
    ChefZero::RSpec.server.load_data({ "clients" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
container(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 211
def container(name, data, &block)
  with_object_path("containers/#{name}") do
    ChefZero::RSpec.server.load_data({ "containers" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
cookbook(name, version, data = {}, options = {}, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 218
def cookbook(name, version, data = {}, options = {}, &block)
  with_object_path("cookbooks/#{name}") do
    # If you didn't specify metadata.rb, we generate it for you. If you
    # explicitly set it to nil, that means you don't want it at all.
    if data.has_key?("metadata.rb")
      if data["metadata.rb"].nil?
        data.delete("metadata.rb")
      end
    else
      data["metadata.rb"] = "name #{name.inspect}; version #{version.inspect}"
    end
    ChefZero::RSpec.server.load_data({ "cookbooks" => { "#{name}-#{version}" => data.merge(options) } }, current_org)
    instance_eval(&block) if block_given?
  end
end
cookbook_artifact(name, identifier, data = {}, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 234
def cookbook_artifact(name, identifier, data = {}, &block)
  with_object_path("cookbook_artifacts/#{name}") do
    # If you didn't specify metadata.rb, we generate it for you. If you
    # explicitly set it to nil, that means you don't want it at all.
    if data.has_key?("metadata.rb")
      if data["metadata.rb"].nil?
        data.delete("metadata.rb")
      end
    else
      data["metadata.rb"] = "name #{name.inspect}"
    end
    ChefZero::RSpec.server.load_data({ "cookbook_artifacts" => { "#{name}-#{identifier}" => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
current_org() click to toggle source
# File lib/chef_zero/rspec.rb, line 340
def current_org
  @current_org || ChefZero::RSpec.server.options[:single_org] || nil
end
data_bag(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 250
def data_bag(name, data, &block)
  with_object_path("data/#{name}") do
    ChefZero::RSpec.server.load_data({ "data" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
dejsonize(data) click to toggle source
# File lib/chef_zero/rspec.rb, line 332
def dejsonize(data)
  if data.is_a?(String)
    data
  else
    FFI_Yajl::Encoder.encode(data, :pretty => true)
  end
end
environment(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 257
def environment(name, data, &block)
  with_object_path("environments/#{name}") do
    ChefZero::RSpec.server.load_data({ "environments" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
group(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 264
def group(name, data, &block)
  with_object_path("groups/#{name}") do
    ChefZero::RSpec.server.load_data({ "groups" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
node(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 271
def node(name, data, &block)
  with_object_path("nodes/#{name}") do
    ChefZero::RSpec.server.load_data({ "nodes" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
org_invite(*usernames) click to toggle source
# File lib/chef_zero/rspec.rb, line 278
def org_invite(*usernames)
  ChefZero::RSpec.server.load_data({ "invites" => usernames }, current_org)
end
org_member(*usernames) click to toggle source
# File lib/chef_zero/rspec.rb, line 282
def org_member(*usernames)
  ChefZero::RSpec.server.load_data({ "members" => usernames }, current_org)
end
organization(name, org = "{}", &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 180
def organization(name, org = "{}", &block)
  ChefZero::RSpec.server.data_store.set([ "organizations", name, "org" ], dejsonize(org), :create_dir, :create)
  prev_org_name = @current_org
  @current_org = name
  prev_object_path = @current_object_path
  @current_object_path = "organizations/#{name}"
  if block_given?
    begin
      instance_eval(&block)
    ensure
      @current_org = prev_org_name
      @current_object_path = prev_object_path
    end
  end
end
policy(name, version, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 286
def policy(name, version, data, &block)
  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
policy_group(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 293
def policy_group(name, data, &block)
  with_object_path("policy_groups/#{name}") do
    ChefZero::RSpec.server.load_data({ "policy_groups" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
role(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 300
def role(name, data, &block)
  with_object_path("roles/#{name}") do
    ChefZero::RSpec.server.load_data({ "roles" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
sandbox(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 307
def sandbox(name, data, &block)
  with_object_path("sandboxes/#{name}") do
    ChefZero::RSpec.server.load_data({ "sandboxes" => { name => data } }, current_org)
    instance_eval(&block) if block_given?
  end
end
user(name, data, &block) click to toggle source
# File lib/chef_zero/rspec.rb, line 314
def user(name, data, &block)
  if ChefZero::RSpec.server.options[:osc_compat]
    with_object_path("users/#{name}") do
      ChefZero::RSpec.server.load_data({ "users" => { name => data } }, current_org)
      instance_eval(&block) if block_given?
    end
  else
    old_object_path = @current_object_path
    @current_object_path = "users/#{name}"
    begin
      ChefZero::RSpec.server.load_data({ "users" => { name => data } }, current_org)
      instance_eval(&block) if block_given?
    ensure
      @current_object_path = old_object_path
    end
  end
end
with_object_path(object_path) { || ... } click to toggle source
# File lib/chef_zero/rspec.rb, line 344
def with_object_path(object_path)
  old_object_path = @current_object_path
  @current_object_path = object_path
  begin
    yield if block_given?
  end
  @current_object_path = old_object_path
end