spice 0.4.0 → 0.4.1

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/.gitignore CHANGED
@@ -4,3 +4,4 @@ doc/*
4
4
  doc/**/*
5
5
  .yardoc/**/*
6
6
  .yardoc/*
7
+ Gemfile.lock
data/README.md CHANGED
@@ -83,7 +83,9 @@ TODO
83
83
 
84
84
  ### Contributors
85
85
 
86
- * Ian Meyer (https://github.com/imeyer), added Opscode Platform support
86
+ * [Ian Meyer](https://github.com/imeyer) - Opscode Platform support
87
+ * [Holger Just](https://github.com/meineerde) - Search functionality
88
+ * [Sean Porter](https://github.com/portertech) - Platform bug fixes
87
89
 
88
90
  ## Contributing to spice
89
91
 
@@ -4,12 +4,13 @@ require 'yajl'
4
4
 
5
5
  require 'spice/authentication'
6
6
  require 'spice/chef'
7
- require 'spice/role'
8
7
 
8
+ require 'spice/role'
9
9
  require 'spice/client'
10
10
  require 'spice/cookbook'
11
11
  require 'spice/data_bag'
12
12
  require 'spice/node'
13
+ require 'spice/search'
13
14
  require 'spice/connection'
14
15
 
15
16
  require 'spice/version'
@@ -78,13 +79,12 @@ module Spice
78
79
 
79
80
  def connect!
80
81
  @connection = Connection.new(
81
- :url => "#{scheme}://#{host}:#{port}",
82
+ :url => "#{scheme}://#{host}:#{port}/#{url_path}",
82
83
  :client_name => client_name,
83
84
  :key_file => key_file
84
85
  )
85
86
  end
86
-
87
-
87
+
88
88
  def reset!
89
89
  @host = default_host
90
90
  @port = default_port
@@ -8,23 +8,23 @@ module Spice
8
8
 
9
9
  class << self
10
10
  def clients
11
- Client.all
11
+ @clients ||= Client.all
12
12
  end
13
13
 
14
14
  def nodes
15
- Node.all
15
+ @nodes ||= Node.all
16
16
  end
17
17
 
18
18
  def data_bags
19
- DataBag.all
19
+ @data_bags ||= DataBag.all
20
20
  end
21
21
 
22
22
  def roles
23
- Role.all
23
+ @roles ||= Role.all
24
24
  end
25
25
 
26
26
  def cookbooks
27
- Cookbook.all
27
+ @cookbooks ||= Cookbook.all
28
28
  end
29
29
  end
30
30
  end
@@ -70,7 +70,7 @@ module Spice
70
70
  def authentication_headers(method, path, json_body=nil)
71
71
  request_params = {
72
72
  :http_method => method,
73
- :path => path,
73
+ :path => path.gsub(/\?.*$/, ''),
74
74
  :body => json_body,
75
75
  :host => "#{@host}:#{@port}"
76
76
  }
@@ -0,0 +1,20 @@
1
+ module Spice
2
+ class Search < Spice::Chef
3
+ INDEXES = %w(node role client users)
4
+
5
+ INDEXES.each do |index|
6
+ define_method index do |options|
7
+ options ||= {}
8
+ options.symbolize_keys!
9
+
10
+ type = index
11
+ query = options[:q] || '*:*'
12
+ sort = options[:sort] || "X_CHEF_id_CHEF_X asc"
13
+ start = options[:start] || 0
14
+ rows = options[:rows] || 1000
15
+
16
+ connection.get("/search/#{index}?q=#{escape(query)}&sort=#{escape(sort)}&start=#{escape(start)}&rows=#{escape(rows)}")
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module Spice
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -12,7 +12,6 @@ module Spice
12
12
  end
13
13
 
14
14
  describe ".show" do
15
- before { setup_chef_client }
16
15
 
17
16
  context "valid" do
18
17
  it "returns a valid client" do
@@ -3,7 +3,6 @@ require 'spec_helper'
3
3
  module Spice
4
4
  describe Cookbook do
5
5
  describe ".all" do
6
- before { setup_chef_cookbook }
7
6
 
8
7
  it "returns a list of cookbooks" do
9
8
  stub_cookbook_list
@@ -12,7 +11,6 @@ module Spice
12
11
  end
13
12
 
14
13
  describe ".show" do
15
- before { setup_chef_cookbook }
16
14
 
17
15
  context "valid" do
18
16
  it "returns a valid cookbook" do
@@ -38,7 +36,6 @@ module Spice
38
36
  end
39
37
 
40
38
  describe ".create" do
41
- before { setup_chef_cookbook }
42
39
 
43
40
  context "valid" do
44
41
  it "creates a valid non-admin cookbook" do
@@ -70,7 +67,6 @@ module Spice
70
67
  end
71
68
 
72
69
  describe ".update" do
73
- before { setup_chef_cookbook }
74
70
 
75
71
  context "valid" do
76
72
  it "makes a cookbook an admin" do
@@ -86,7 +82,6 @@ module Spice
86
82
  end
87
83
 
88
84
  describe ".delete" do
89
- before { setup_chef_cookbook }
90
85
 
91
86
  context "valid" do
92
87
  it "deletes a cookbook" do
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spice
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 4
8
- - 0
9
- version: 0.4.0
4
+ prerelease:
5
+ version: 0.4.1
10
6
  platform: ruby
11
7
  authors:
12
8
  - Dan Ryan
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-02-27 00:00:00 -05:00
13
+ date: 2011-03-23 00:00:00 -07:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -25,8 +21,6 @@ dependencies:
25
21
  requirements:
26
22
  - - ">="
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
24
  version: "0"
31
25
  type: :runtime
32
26
  version_requirements: *id001
@@ -38,8 +32,6 @@ dependencies:
38
32
  requirements:
39
33
  - - ">="
40
34
  - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
35
  version: "0"
44
36
  type: :runtime
45
37
  version_requirements: *id002
@@ -51,8 +43,6 @@ dependencies:
51
43
  requirements:
52
44
  - - ">="
53
45
  - !ruby/object:Gem::Version
54
- segments:
55
- - 0
56
46
  version: "0"
57
47
  type: :runtime
58
48
  version_requirements: *id003
@@ -64,10 +54,6 @@ dependencies:
64
54
  requirements:
65
55
  - - ~>
66
56
  - !ruby/object:Gem::Version
67
- segments:
68
- - 0
69
- - 6
70
- - 4
71
57
  version: 0.6.4
72
58
  type: :development
73
59
  version_requirements: *id004
@@ -79,10 +65,6 @@ dependencies:
79
65
  requirements:
80
66
  - - ~>
81
67
  - !ruby/object:Gem::Version
82
- segments:
83
- - 2
84
- - 5
85
- - 0
86
68
  version: 2.5.0
87
69
  type: :development
88
70
  version_requirements: *id005
@@ -94,10 +76,6 @@ dependencies:
94
76
  requirements:
95
77
  - - ~>
96
78
  - !ruby/object:Gem::Version
97
- segments:
98
- - 0
99
- - 10
100
- - 0
101
79
  version: 0.10.0
102
80
  type: :development
103
81
  version_requirements: *id006
@@ -109,10 +87,6 @@ dependencies:
109
87
  requirements:
110
88
  - - ~>
111
89
  - !ruby/object:Gem::Version
112
- segments:
113
- - 1
114
- - 6
115
- - 1
116
90
  version: 1.6.1
117
91
  type: :development
118
92
  version_requirements: *id007
@@ -124,10 +98,6 @@ dependencies:
124
98
  requirements:
125
99
  - - ~>
126
100
  - !ruby/object:Gem::Version
127
- segments:
128
- - 0
129
- - 3
130
- - 5
131
101
  version: 0.3.5
132
102
  type: :development
133
103
  version_requirements: *id008
@@ -139,8 +109,6 @@ dependencies:
139
109
  requirements:
140
110
  - - ">="
141
111
  - !ruby/object:Gem::Version
142
- segments:
143
- - 0
144
112
  version: "0"
145
113
  type: :development
146
114
  version_requirements: *id009
@@ -152,8 +120,6 @@ dependencies:
152
120
  requirements:
153
121
  - - ">="
154
122
  - !ruby/object:Gem::Version
155
- segments:
156
- - 0
157
123
  version: "0"
158
124
  type: :development
159
125
  version_requirements: *id010
@@ -173,7 +139,6 @@ files:
173
139
  - .rspec
174
140
  - CHANGELOG.md
175
141
  - Gemfile
176
- - Gemfile.lock
177
142
  - LICENSE.txt
178
143
  - Notes.md
179
144
  - README.md
@@ -193,6 +158,7 @@ files:
193
158
  - lib/spice/mock.rb
194
159
  - lib/spice/node.rb
195
160
  - lib/spice/role.rb
161
+ - lib/spice/search.rb
196
162
  - lib/spice/version.rb
197
163
  - pkg/spice-0.0.1.alpha.1.gem
198
164
  - spec/spec_helper.rb
@@ -227,21 +193,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
227
193
  requirements:
228
194
  - - ">="
229
195
  - !ruby/object:Gem::Version
230
- segments:
231
- - 0
232
196
  version: "0"
233
197
  required_rubygems_version: !ruby/object:Gem::Requirement
234
198
  none: false
235
199
  requirements:
236
200
  - - ">="
237
201
  - !ruby/object:Gem::Version
238
- segments:
239
- - 0
240
202
  version: "0"
241
203
  requirements: []
242
204
 
243
205
  rubyforge_project: spice
244
- rubygems_version: 1.3.7
206
+ rubygems_version: 1.5.3
245
207
  signing_key:
246
208
  specification_version: 3
247
209
  summary: Chef API wrapper
@@ -1,92 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- spice (0.4.0)
5
- mixlib-authentication
6
- rest-client
7
- yajl-ruby
8
-
9
- GEM
10
- remote: http://rubygems.org/
11
- specs:
12
- abstract (1.0.0)
13
- addressable (2.2.2)
14
- builder (3.0.0)
15
- bunny (0.6.0)
16
- chef (0.9.12)
17
- bunny (>= 0.6.0)
18
- erubis
19
- extlib
20
- highline
21
- json (>= 1.4.4, <= 1.4.6)
22
- mixlib-authentication (>= 1.1.0)
23
- mixlib-cli (>= 1.1.0)
24
- mixlib-config (>= 1.1.2)
25
- mixlib-log (>= 1.2.0)
26
- moneta
27
- ohai (>= 0.5.7)
28
- rest-client (>= 1.0.4, < 1.7.0)
29
- uuidtools
30
- crack (0.1.8)
31
- cucumber (0.10.0)
32
- builder (>= 2.1.2)
33
- diff-lcs (~> 1.1.2)
34
- gherkin (~> 2.3.2)
35
- json (~> 1.4.6)
36
- term-ansicolor (~> 1.0.5)
37
- diff-lcs (1.1.2)
38
- erubis (2.6.6)
39
- abstract (>= 1.0.0)
40
- extlib (0.9.15)
41
- gherkin (2.3.2)
42
- json (~> 1.4.6)
43
- term-ansicolor (~> 1.0.5)
44
- highline (1.6.1)
45
- json (1.4.6)
46
- mime-types (1.16)
47
- mixlib-authentication (1.1.4)
48
- mixlib-log
49
- mixlib-cli (1.2.0)
50
- mixlib-config (1.1.2)
51
- mixlib-log (1.2.0)
52
- moneta (0.6.0)
53
- ohai (0.5.8)
54
- extlib
55
- json (>= 1.4.4, <= 1.4.6)
56
- mixlib-cli
57
- mixlib-config
58
- mixlib-log
59
- systemu
60
- rcov (0.9.9)
61
- rest-client (1.6.1)
62
- mime-types (>= 1.16)
63
- rspec (2.5.0)
64
- rspec-core (~> 2.5.0)
65
- rspec-expectations (~> 2.5.0)
66
- rspec-mocks (~> 2.5.0)
67
- rspec-core (2.5.1)
68
- rspec-expectations (2.5.0)
69
- diff-lcs (~> 1.1.2)
70
- rspec-mocks (2.5.0)
71
- systemu (1.2.0)
72
- term-ansicolor (1.0.5)
73
- timecop (0.3.5)
74
- uuidtools (2.1.1)
75
- webmock (1.6.1)
76
- addressable (>= 2.2.2)
77
- crack (>= 0.1.7)
78
- yajl-ruby (0.8.1)
79
- yard (0.6.4)
80
-
81
- PLATFORMS
82
- ruby
83
-
84
- DEPENDENCIES
85
- chef
86
- cucumber (~> 0.10.0)
87
- rcov
88
- rspec (~> 2.5.0)
89
- spice!
90
- timecop (~> 0.3.5)
91
- webmock (~> 1.6.1)
92
- yard (~> 0.6.4)