spice 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +13 -0
- data/Gemfile +9 -7
- data/Guardfile +9 -0
- data/lib/spice/environment.rb +85 -0
- data/lib/spice/mock.rb +1 -0
- data/lib/spice/version.rb +1 -1
- data/lib/spice.rb +7 -5
- data/spec/spice/environment_spec.rb +96 -0
- data/spec/spice_spec.rb +23 -0
- data/spec/support/environment_requests.rb +221 -0
- metadata +84 -84
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
# Release Notes - Spice - Version 0.5.0
|
2
|
+
|
3
|
+
## Bug
|
4
|
+
|
5
|
+
* url_path was not being reset
|
6
|
+
* added `chef_version` config variable to fix some people's issues with require `chef/version`
|
7
|
+
|
8
|
+
## Improvement
|
9
|
+
|
10
|
+
* Node support!
|
11
|
+
|
12
|
+
|
13
|
+
|
1
14
|
# Release Notes - Spice - Version 0.3.0
|
2
15
|
|
3
16
|
## Bug
|
data/Gemfile
CHANGED
@@ -6,11 +6,13 @@ gem 'yajl-ruby'
|
|
6
6
|
|
7
7
|
group :development, :test do
|
8
8
|
gem "yard", "~> 0.6.4"
|
9
|
-
gem
|
10
|
-
gem "
|
11
|
-
gem "
|
12
|
-
gem
|
13
|
-
gem '
|
14
|
-
gem 'spork', '
|
15
|
-
gem '
|
9
|
+
gem 'rspec', '>= 2.6.0'
|
10
|
+
gem "webmock", ">= 1.6.2"
|
11
|
+
gem "timecop", ">= 0.3.5"
|
12
|
+
gem 'guard', '>= 0.6.2'
|
13
|
+
gem 'guard-rspec', '>= 0.4.2'
|
14
|
+
gem 'guard-spork', '>= 0.2.1'
|
15
|
+
gem 'spork', '>= 0.9.0.rc8'
|
16
|
+
gem 'rb-fsevent', '>= 0.4.3.1'
|
17
|
+
gem 'growl', '>= 1.0.3'
|
16
18
|
end
|
data/Guardfile
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
module Spice
|
2
|
+
class Environment < Spice::Chef
|
3
|
+
# Get a list of all data bags in the following syntax
|
4
|
+
# Spice::Environment.all
|
5
|
+
#
|
6
|
+
# @param [Hash] options the options hash. Currently does nothing
|
7
|
+
def self.all(options={})
|
8
|
+
connection.get("/environments")
|
9
|
+
end
|
10
|
+
|
11
|
+
# An alternative format for showing the contents of a data bag
|
12
|
+
# @example Retrieve the id and uri of items in a data bag called "users"
|
13
|
+
# Spice::Environment["users"] # => {"adam":"http://localhost:4000/data/users/adam"}
|
14
|
+
def self.[](name)
|
15
|
+
connection.get("/environments/#{name}")
|
16
|
+
end
|
17
|
+
|
18
|
+
# Show the contents of a data bag
|
19
|
+
# @example Retrieve the id and uri of items in a data bag called "users"
|
20
|
+
# Spice::Environment.show(:name => "users") # => {"adam":"http://localhost:4000/data/users/adam"}
|
21
|
+
#
|
22
|
+
# @param [Hash] options The options hash
|
23
|
+
# @option options [String] :name The name of your data bag
|
24
|
+
def self.show(options={})
|
25
|
+
raise ArgumentError, "Option :name must be present" unless options[:name]
|
26
|
+
name = options.delete(:name)
|
27
|
+
connection.get("/environments/#{name}")
|
28
|
+
end
|
29
|
+
|
30
|
+
# Create a a new data bag
|
31
|
+
#
|
32
|
+
# @example
|
33
|
+
# Spice::Environment.create(:name => "users")
|
34
|
+
#
|
35
|
+
# @param [Hash] options the options hash from which to create a data bag
|
36
|
+
# @option options [String] :name The name of your data bag
|
37
|
+
|
38
|
+
def self.create(options={})
|
39
|
+
options[:chef_type] ||= "environment"
|
40
|
+
options[:json_class] ||= "Chef::Environment"
|
41
|
+
options[:attributes] ||= {}
|
42
|
+
options[:description] ||= ""
|
43
|
+
options[:cookbook_versions] ||= {}
|
44
|
+
connection.post("/environments", options)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Delete a data bag
|
48
|
+
#
|
49
|
+
# @example
|
50
|
+
# Spice::Environment.delete(:name => "users")
|
51
|
+
#
|
52
|
+
# @param [Hash] options the options hash from which to delete a data bag
|
53
|
+
# @option options [String] :name The name of your data bag
|
54
|
+
|
55
|
+
def self.delete(options={})
|
56
|
+
raise ArgumentError, "Option :name must be present" unless options[:name]
|
57
|
+
name = options.delete(:name)
|
58
|
+
connection.delete("/environments/#{name}", options)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Shows a data bag item
|
62
|
+
#
|
63
|
+
# @example
|
64
|
+
# Spice::Environment.show_item(:name => "users", :id => "adam")
|
65
|
+
#
|
66
|
+
# @param [Hash] options the options hash from which to create a data bag
|
67
|
+
# @option options [String] :name The name of your data bag
|
68
|
+
# @option options [String] :id The id of the data bag item
|
69
|
+
|
70
|
+
def self.show_cookbook(options={})
|
71
|
+
raise ArgumentError, "Option :name must be present" unless options[:name]
|
72
|
+
raise ArgumentError, "Option :cookbook must be present" unless options[:cookbook]
|
73
|
+
name = options.delete(:name)
|
74
|
+
cookbook = options.delete(:cookbook)
|
75
|
+
connection.get("/environments/#{name}/cookbooks/#{cookbook}", options)
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.list_cookbooks(options={})
|
79
|
+
raise ArgumentError, "Option :name must be present" unless options[:name]
|
80
|
+
name = options.delete(:name)
|
81
|
+
connection.get("/environments/#{name}/cookbooks", options)
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
data/lib/spice/mock.rb
CHANGED
data/lib/spice/version.rb
CHANGED
data/lib/spice.rb
CHANGED
@@ -13,6 +13,7 @@ require 'spice/client'
|
|
13
13
|
require 'spice/cookbook'
|
14
14
|
require 'spice/data_bag'
|
15
15
|
require 'spice/node'
|
16
|
+
require 'spice/environment'
|
16
17
|
require 'spice/search'
|
17
18
|
require 'spice/connection'
|
18
19
|
|
@@ -22,7 +23,7 @@ require 'spice/mock'
|
|
22
23
|
module Spice
|
23
24
|
|
24
25
|
class << self
|
25
|
-
attr_writer :host, :port, :scheme, :url_path, :client_name, :connection, :key_file, :raw_key
|
26
|
+
attr_writer :host, :port, :scheme, :url_path, :client_name, :connection, :key_file, :raw_key, :chef_version
|
26
27
|
|
27
28
|
def default_host
|
28
29
|
@default_host || "localhost"
|
@@ -71,12 +72,12 @@ module Spice
|
|
71
72
|
@raw_key = raw_key
|
72
73
|
end
|
73
74
|
|
74
|
-
def
|
75
|
-
@
|
75
|
+
def default_chef_version
|
76
|
+
@default_chef_version || "0.9.14"
|
76
77
|
end
|
77
78
|
|
78
|
-
def chef_version
|
79
|
-
@chef_version
|
79
|
+
def chef_version
|
80
|
+
@chef_version || default_chef_version
|
80
81
|
end
|
81
82
|
|
82
83
|
def url_path
|
@@ -100,6 +101,7 @@ module Spice
|
|
100
101
|
@port = default_port
|
101
102
|
@scheme = default_scheme
|
102
103
|
@url_path = default_url_path
|
104
|
+
@chef_version = default_chef_version
|
103
105
|
@key_file = nil
|
104
106
|
@client_name = nil
|
105
107
|
@connection = nil
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Spice
|
4
|
+
describe Environment do
|
5
|
+
describe ".all" do
|
6
|
+
before { stub_environment_list }
|
7
|
+
subject { Environment.all }
|
8
|
+
|
9
|
+
it { should have_body(environment_list_response) }
|
10
|
+
it { should respond_with(200) }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe ".show" do
|
14
|
+
context "if the environment is found" do
|
15
|
+
before { stub_environment_show }
|
16
|
+
subject { Environment.show(:name => "dev") }
|
17
|
+
|
18
|
+
it { should have_body(environment_show_response) }
|
19
|
+
it { should respond_with(200) }
|
20
|
+
end
|
21
|
+
|
22
|
+
context "if the environment is not found" do
|
23
|
+
before { stub_environment_show(404) }
|
24
|
+
subject { Environment.show(:name => "dev") }
|
25
|
+
|
26
|
+
it { should_not have_body(environment_show_response) }
|
27
|
+
it { should respond_with(404) }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe ".create" do
|
32
|
+
context "if the environment can be created" do
|
33
|
+
before { stub_environment_create }
|
34
|
+
subject { Environment.create(:name => "dev") }
|
35
|
+
|
36
|
+
it { should have_body(environment_create_response) }
|
37
|
+
it { should respond_with(201) }
|
38
|
+
end
|
39
|
+
|
40
|
+
context "if the environment already exists" do
|
41
|
+
before { stub_environment_create(409) }
|
42
|
+
subject { Environment.create(:name => "dev") }
|
43
|
+
|
44
|
+
it { should have_body(environment_conflict) }
|
45
|
+
it { should respond_with(409) }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe ".delete" do
|
50
|
+
context "if the environment can be deleted" do
|
51
|
+
before { stub_environment_delete }
|
52
|
+
subject { Environment.delete(:name => "dev") }
|
53
|
+
|
54
|
+
it { should have_body(environment_delete_response) }
|
55
|
+
it { should respond_with(200) }
|
56
|
+
end
|
57
|
+
|
58
|
+
context "if the environment cannot be deleted" do
|
59
|
+
before { stub_environment_delete(404) }
|
60
|
+
subject { Environment.delete(:name => "dev") }
|
61
|
+
|
62
|
+
it { should have_body(environment_not_found) }
|
63
|
+
it { should respond_with(404) }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe ".list_cookbooks" do
|
68
|
+
context "if cookbooks exists" do
|
69
|
+
before { stub_environment_cookbooks_list }
|
70
|
+
subject { Environment.list_cookbooks(:name => "dev") }
|
71
|
+
|
72
|
+
it { should have_body(environment_cookbooks_list_response) }
|
73
|
+
it { should respond_with(200) }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe ".show_cookbook" do
|
78
|
+
context "if the cookbook exists" do
|
79
|
+
before { stub_environment_cookbook_show }
|
80
|
+
subject { Environment.show_cookbook(:name => "dev", :cookbook => "apache") }
|
81
|
+
|
82
|
+
it { should have_body(environment_cookbook_show_response) }
|
83
|
+
it { should respond_with(200) }
|
84
|
+
end
|
85
|
+
|
86
|
+
context "if the cookbook does not exist" do
|
87
|
+
before { stub_environment_cookbook_show(404) }
|
88
|
+
subject { Environment.show_cookbook(:name => "dev", :cookbook => "apache") }
|
89
|
+
|
90
|
+
it { should have_body(environment_not_found) }
|
91
|
+
it { should respond_with(404) }
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
data/spec/spice_spec.rb
CHANGED
@@ -37,6 +37,15 @@ describe "Spice" do
|
|
37
37
|
lambda { Spice.default_url_path = "/woohah" }.should raise_error
|
38
38
|
end
|
39
39
|
end
|
40
|
+
|
41
|
+
describe ".default_chef_version" do
|
42
|
+
it "should default to '0.9.14'" do
|
43
|
+
Spice.default_chef_version.should == "0.9.14"
|
44
|
+
end
|
45
|
+
it "should not be settable" do
|
46
|
+
lambda { Spice.default_chef_version = "0.9.12" }.should raise_error
|
47
|
+
end
|
48
|
+
end
|
40
49
|
|
41
50
|
describe ".host" do
|
42
51
|
it "should default to 'localhost' if not set" do
|
@@ -78,6 +87,16 @@ describe "Spice" do
|
|
78
87
|
end
|
79
88
|
end
|
80
89
|
|
90
|
+
describe ".chef_version" do
|
91
|
+
it "should default to '0.9.14' if not set" do
|
92
|
+
Spice.chef_version.should == "0.9.14"
|
93
|
+
end
|
94
|
+
it "should be settable" do
|
95
|
+
Spice.chef_version = "0.9.12"
|
96
|
+
Spice.chef_version.should == "0.9.12"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
81
100
|
describe ".client_name" do
|
82
101
|
before { Spice.reset! }
|
83
102
|
it "should not have a default" do
|
@@ -132,6 +151,10 @@ describe "Spice" do
|
|
132
151
|
Spice.reset!
|
133
152
|
Spice.scheme.should == "http"
|
134
153
|
end
|
154
|
+
it "should reset Spice.chef_version" do
|
155
|
+
Spice.reset!
|
156
|
+
Spice.chef_version.should == "0.9.14"
|
157
|
+
end
|
135
158
|
it "should reset Spice.url_path" do
|
136
159
|
Spice.reset!
|
137
160
|
Spice.url_path.should == ""
|
@@ -0,0 +1,221 @@
|
|
1
|
+
def stub_environment_list
|
2
|
+
stub_request(:get, "http://localhost:4000/environments").
|
3
|
+
to_return(
|
4
|
+
:status => 200,
|
5
|
+
:body => environment_list_response
|
6
|
+
)
|
7
|
+
end
|
8
|
+
|
9
|
+
def stub_environment_show(status=200)
|
10
|
+
case status
|
11
|
+
when 200
|
12
|
+
stub_request(:get, "http://localhost:4000/environments/dev").
|
13
|
+
to_return(
|
14
|
+
:status => status,
|
15
|
+
:body => environment_show_response
|
16
|
+
)
|
17
|
+
when 404
|
18
|
+
stub_request(:get, "http://localhost:4000/environments/dev").
|
19
|
+
to_return(
|
20
|
+
:status => status,
|
21
|
+
:body => environment_not_found
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def stub_environment_create(status=201)
|
27
|
+
case status
|
28
|
+
when 201
|
29
|
+
stub_request(:post, "http://localhost:4000/environments").
|
30
|
+
with(
|
31
|
+
:body => environment_create_payload ).
|
32
|
+
to_return(
|
33
|
+
:status => status,
|
34
|
+
:body => environment_create_response
|
35
|
+
)
|
36
|
+
when 409
|
37
|
+
stub_request(:post, "http://localhost:4000/environments").
|
38
|
+
with(
|
39
|
+
:body => environment_create_payload ).
|
40
|
+
to_return(
|
41
|
+
:status => status,
|
42
|
+
:body => environment_conflict
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def stub_environment_update(status=200)
|
48
|
+
case status
|
49
|
+
when 200
|
50
|
+
stub_request(:post, "http://localhost:4000/environments/dev").
|
51
|
+
with(
|
52
|
+
:body => environment_udpate_payload ).
|
53
|
+
to_return(
|
54
|
+
:status => status,
|
55
|
+
:body => environment_update_response
|
56
|
+
)
|
57
|
+
when 404
|
58
|
+
stub_request(:post, "http://localhost:4000/environments/dev").
|
59
|
+
with(
|
60
|
+
:body => environment_update_payload ).
|
61
|
+
to_return(
|
62
|
+
:status => status,
|
63
|
+
:body => environment_not_found
|
64
|
+
)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def stub_environment_delete(status=200)
|
69
|
+
case status
|
70
|
+
when 200
|
71
|
+
stub_request(:delete, "http://localhost:4000/environments/dev").
|
72
|
+
with(:body => "").
|
73
|
+
to_return(
|
74
|
+
:status => status,
|
75
|
+
:body => environment_delete_response
|
76
|
+
)
|
77
|
+
when 404
|
78
|
+
stub_request(:delete, "http://localhost:4000/environments/dev").
|
79
|
+
with(:body => "").
|
80
|
+
to_return(
|
81
|
+
:status => status,
|
82
|
+
:body => environment_not_found
|
83
|
+
)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def stub_environment_cookbooks_list
|
88
|
+
stub_request(:get, "http://localhost:4000/environments/dev/cookbooks").
|
89
|
+
to_return(
|
90
|
+
:status => 200,
|
91
|
+
:body => environment_cookbooks_list_response
|
92
|
+
)
|
93
|
+
end
|
94
|
+
|
95
|
+
def stub_environment_cookbook_show(status=200)
|
96
|
+
case status
|
97
|
+
when 200
|
98
|
+
stub_request(:get, "http://localhost:4000/environments/dev/cookbooks/apache").
|
99
|
+
to_return(
|
100
|
+
:status => status,
|
101
|
+
:body => environment_cookbook_show_response
|
102
|
+
)
|
103
|
+
when 404
|
104
|
+
stub_request(:get, "http://localhost:4000/environments/dev/cookbooks/apache").
|
105
|
+
to_return(
|
106
|
+
:status => status,
|
107
|
+
:body => environment_not_found
|
108
|
+
)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
|
113
|
+
# payloads and responses
|
114
|
+
|
115
|
+
def environment_list_response
|
116
|
+
{ "webserver" => "http://localhost:4000/environments/webserver" }
|
117
|
+
end
|
118
|
+
|
119
|
+
def environment_show_response
|
120
|
+
{
|
121
|
+
"name" => "dev",
|
122
|
+
"attributes" => {
|
123
|
+
},
|
124
|
+
"json_class" => "Chef::Environment",
|
125
|
+
"description" => "",
|
126
|
+
"cookbook_versions" => {
|
127
|
+
},
|
128
|
+
"chef_type" => "environment"
|
129
|
+
}
|
130
|
+
end
|
131
|
+
|
132
|
+
def environment_create_response
|
133
|
+
{ "uri" => "http://localhost:4000/environments/dev" }
|
134
|
+
end
|
135
|
+
|
136
|
+
def environment_delete_response
|
137
|
+
{
|
138
|
+
"name" => "dev",
|
139
|
+
"attributes" => {
|
140
|
+
},
|
141
|
+
"json_class" => "Chef::Environment",
|
142
|
+
"description" => "",
|
143
|
+
"cookbook_versions" => {
|
144
|
+
},
|
145
|
+
"chef_type" => "environment"
|
146
|
+
}
|
147
|
+
end
|
148
|
+
|
149
|
+
def environment_update_response
|
150
|
+
{
|
151
|
+
"name" => "dev",
|
152
|
+
"attributes" => {
|
153
|
+
},
|
154
|
+
"json_class" => "Chef::Environment",
|
155
|
+
"description" => "The Dev Environment",
|
156
|
+
"cookbook_versions" => {
|
157
|
+
},
|
158
|
+
"chef_type" => "environment"
|
159
|
+
}
|
160
|
+
end
|
161
|
+
|
162
|
+
|
163
|
+
def environment_cookbooks_list_response
|
164
|
+
{
|
165
|
+
"apache2" => {
|
166
|
+
"url" => "http://localhost:4000/cookbooks/apache2",
|
167
|
+
"versions" => [
|
168
|
+
{ "url" => "http://localhost:4000/cookbooks/apache2/5.1.0", "version" => "5.1.0" },
|
169
|
+
{ "url" => "http://localhost:4000/cookbooks/apache2/4.2.0", "version" => "4.2.0" }
|
170
|
+
]
|
171
|
+
},
|
172
|
+
"nginx" => {
|
173
|
+
"url" => "http://localhost:4000/cookbooks/nginx",
|
174
|
+
"versions" => [
|
175
|
+
{ "url" => "http://localhost:4000/cookbooks/nginx/1.0.0", "version" => "1.0.0" },
|
176
|
+
{ "url" => "http://localhost:4000/cookbooks/nginx/0.3.0", "version" => "0.3.0" }
|
177
|
+
]
|
178
|
+
}
|
179
|
+
}
|
180
|
+
end
|
181
|
+
|
182
|
+
def environment_cookbook_show_response
|
183
|
+
{
|
184
|
+
"apache2" => {
|
185
|
+
"url" => "http://localhost:4000/cookbooks/apache2",
|
186
|
+
"versions" => [
|
187
|
+
{ "url" => "http://localhost:4000/cookbooks/apache2/5.1.0", "version" => "5.1.0" },
|
188
|
+
{"url" => "http://localhost:4000/cookbooks/apache2/4.2.0", "version" => "4.2.0" }
|
189
|
+
]
|
190
|
+
}
|
191
|
+
}
|
192
|
+
end
|
193
|
+
|
194
|
+
def environment_not_found
|
195
|
+
{ "error" => [ "Could not load environment env" ] }
|
196
|
+
end
|
197
|
+
|
198
|
+
def environment_cookbook_not_found
|
199
|
+
{ "error" => [ "Could not load environment env cookbook apache" ] }
|
200
|
+
end
|
201
|
+
|
202
|
+
def environment_conflict
|
203
|
+
{ "error" => [ "environments bag already exists" ] }
|
204
|
+
end
|
205
|
+
|
206
|
+
def environment_create_payload
|
207
|
+
{
|
208
|
+
"name" => "dev",
|
209
|
+
"attributes" => {
|
210
|
+
},
|
211
|
+
"json_class" => "Chef::Environment",
|
212
|
+
"description" => "",
|
213
|
+
"cookbook_versions" => {
|
214
|
+
},
|
215
|
+
"chef_type" => "environment"
|
216
|
+
}
|
217
|
+
end
|
218
|
+
|
219
|
+
def environment_update_payload
|
220
|
+
{ "description" => "The Dev Environment" }
|
221
|
+
end
|
metadata
CHANGED
@@ -1,121 +1,120 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: spice
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.5.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Dan Ryan
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-08-28 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: rest-client
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70110849680300 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: mixlib-authentication
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: *70110849680300
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: mixlib-authentication
|
27
|
+
requirement: &70110849679800 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
35
33
|
type: :runtime
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: yajl-ruby
|
39
34
|
prerelease: false
|
40
|
-
|
35
|
+
version_requirements: *70110849679800
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: yajl-ruby
|
38
|
+
requirement: &70110849679320 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
46
44
|
type: :runtime
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: yard
|
50
45
|
prerelease: false
|
51
|
-
|
46
|
+
version_requirements: *70110849679320
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: yard
|
49
|
+
requirement: &70110849678760 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
53
|
-
requirements:
|
51
|
+
requirements:
|
54
52
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
53
|
+
- !ruby/object:Gem::Version
|
56
54
|
version: 0.6.4
|
57
55
|
type: :development
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: rspec
|
61
56
|
prerelease: false
|
62
|
-
|
57
|
+
version_requirements: *70110849678760
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &70110849678260 !ruby/object:Gem::Requirement
|
63
61
|
none: false
|
64
|
-
requirements:
|
62
|
+
requirements:
|
65
63
|
- - ~>
|
66
|
-
- !ruby/object:Gem::Version
|
64
|
+
- !ruby/object:Gem::Version
|
67
65
|
version: 2.5.0
|
68
66
|
type: :development
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: webmock
|
72
67
|
prerelease: false
|
73
|
-
|
68
|
+
version_requirements: *70110849678260
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: &70110849677800 !ruby/object:Gem::Requirement
|
74
72
|
none: false
|
75
|
-
requirements:
|
73
|
+
requirements:
|
76
74
|
- - ~>
|
77
|
-
- !ruby/object:Gem::Version
|
75
|
+
- !ruby/object:Gem::Version
|
78
76
|
version: 1.6.2
|
79
77
|
type: :development
|
80
|
-
version_requirements: *id006
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: timecop
|
83
78
|
prerelease: false
|
84
|
-
|
79
|
+
version_requirements: *70110849677800
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: timecop
|
82
|
+
requirement: &70110849677300 !ruby/object:Gem::Requirement
|
85
83
|
none: false
|
86
|
-
requirements:
|
84
|
+
requirements:
|
87
85
|
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
86
|
+
- !ruby/object:Gem::Version
|
89
87
|
version: 0.3.5
|
90
88
|
type: :development
|
91
|
-
version_requirements: *id007
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
|
-
name: webmock
|
94
89
|
prerelease: false
|
95
|
-
|
90
|
+
version_requirements: *70110849677300
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: webmock
|
93
|
+
requirement: &70110849676800 !ruby/object:Gem::Requirement
|
96
94
|
none: false
|
97
|
-
requirements:
|
95
|
+
requirements:
|
98
96
|
- - ~>
|
99
|
-
- !ruby/object:Gem::Version
|
97
|
+
- !ruby/object:Gem::Version
|
100
98
|
version: 1.6.2
|
101
99
|
type: :development
|
102
|
-
|
103
|
-
|
104
|
-
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *70110849676800
|
102
|
+
description: Spice is a zesty Chef API wrapper. Its primary purpose is to let you
|
103
|
+
easily integrate your apps with a Chef server easily. Spice provides support for
|
104
|
+
the entire released Chef API
|
105
|
+
email:
|
105
106
|
- hi@iamdanryan.com
|
106
107
|
executables: []
|
107
|
-
|
108
108
|
extensions: []
|
109
|
-
|
110
109
|
extra_rdoc_files: []
|
111
|
-
|
112
|
-
files:
|
110
|
+
files:
|
113
111
|
- .document
|
114
112
|
- .gitignore
|
115
113
|
- .rspec
|
116
114
|
- .watchr
|
117
115
|
- CHANGELOG.md
|
118
116
|
- Gemfile
|
117
|
+
- Guardfile
|
119
118
|
- LICENSE.txt
|
120
119
|
- README.md
|
121
120
|
- Rakefile
|
@@ -128,6 +127,7 @@ files:
|
|
128
127
|
- lib/spice/cookbook.rb
|
129
128
|
- lib/spice/core_ext/hash.rb
|
130
129
|
- lib/spice/data_bag.rb
|
130
|
+
- lib/spice/environment.rb
|
131
131
|
- lib/spice/mock.rb
|
132
132
|
- lib/spice/node.rb
|
133
133
|
- lib/spice/role.rb
|
@@ -140,6 +140,7 @@ files:
|
|
140
140
|
- spec/spice/connection_spec.rb
|
141
141
|
- spec/spice/cookbook_spec.rb
|
142
142
|
- spec/spice/data_bag_spec.rb
|
143
|
+
- spec/spice/environment_spec.rb
|
143
144
|
- spec/spice/node_spec.rb
|
144
145
|
- spec/spice/role_spec.rb
|
145
146
|
- spec/spice/search_spec.rb
|
@@ -149,6 +150,7 @@ files:
|
|
149
150
|
- spec/support/cookbook_requests.rb
|
150
151
|
- spec/support/data_bag_item_requests.rb
|
151
152
|
- spec/support/data_bag_requests.rb
|
153
|
+
- spec/support/environment_requests.rb
|
152
154
|
- spec/support/node_requests.rb
|
153
155
|
- spec/support/requests.rb
|
154
156
|
- spec/support/respond_with_matcher.rb
|
@@ -156,32 +158,29 @@ files:
|
|
156
158
|
- spice.gemspec
|
157
159
|
homepage: http://github.com/danryan/spice
|
158
160
|
licenses: []
|
159
|
-
|
160
161
|
post_install_message:
|
161
162
|
rdoc_options: []
|
162
|
-
|
163
|
-
require_paths:
|
163
|
+
require_paths:
|
164
164
|
- lib
|
165
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
166
166
|
none: false
|
167
|
-
requirements:
|
168
|
-
- -
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
version:
|
171
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
|
+
requirements:
|
168
|
+
- - ! '>='
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '0'
|
171
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
172
|
none: false
|
173
|
-
requirements:
|
174
|
-
- -
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version:
|
173
|
+
requirements:
|
174
|
+
- - ! '>='
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
177
|
requirements: []
|
178
|
-
|
179
178
|
rubyforge_project: spice
|
180
|
-
rubygems_version: 1.
|
179
|
+
rubygems_version: 1.8.8
|
181
180
|
signing_key:
|
182
181
|
specification_version: 3
|
183
182
|
summary: Chef API wrapper
|
184
|
-
test_files:
|
183
|
+
test_files:
|
185
184
|
- spec/spec_helper.rb
|
186
185
|
- spec/spice/authentication_spec.rb
|
187
186
|
- spec/spice/chef_spec.rb
|
@@ -189,6 +188,7 @@ test_files:
|
|
189
188
|
- spec/spice/connection_spec.rb
|
190
189
|
- spec/spice/cookbook_spec.rb
|
191
190
|
- spec/spice/data_bag_spec.rb
|
191
|
+
- spec/spice/environment_spec.rb
|
192
192
|
- spec/spice/node_spec.rb
|
193
193
|
- spec/spice/role_spec.rb
|
194
194
|
- spec/spice/search_spec.rb
|
@@ -198,8 +198,8 @@ test_files:
|
|
198
198
|
- spec/support/cookbook_requests.rb
|
199
199
|
- spec/support/data_bag_item_requests.rb
|
200
200
|
- spec/support/data_bag_requests.rb
|
201
|
+
- spec/support/environment_requests.rb
|
201
202
|
- spec/support/node_requests.rb
|
202
203
|
- spec/support/requests.rb
|
203
204
|
- spec/support/respond_with_matcher.rb
|
204
205
|
- spec/support/role_requests.rb
|
205
|
-
has_rdoc:
|