subordinate 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -79,6 +79,36 @@ Currently can safe restart, restart, and quiet down
79
79
  client.restart
80
80
  ```
81
81
 
82
+ ### [Build Queue](http://rdoc.info/github/jasontruluck/subordinate/master/Subordinate/Client/Queue)
83
+
84
+ Retrieves the current build queue for the Jenkins server
85
+
86
+ ```ruby
87
+ client.build_queue
88
+ ```
89
+
90
+ ### Using Depth query parameter
91
+
92
+ For methods that allow you to specify a depth simply pass the depth you want via an option
93
+
94
+ ```ruby
95
+ client.job("My-awesome-job", {:depth => 1})
96
+ ```
97
+
98
+ The default depth is 0 for all methods.
99
+
100
+ ### Using Tree query parameters
101
+
102
+ `tree` parameters are more efficient than using depth with exclude. They are available ot any methods that except them via options as well
103
+
104
+ ```ruby
105
+ client.root({:tree => "jobs[name],views[name,jobs[name]]"})
106
+ ```
107
+
108
+ A note from Jenkins: for array-type properties (such as jobs in this example), the name must be given in the original plural, not in the singular as the element would appear in XML (<job>). This will be more natural for e.g. json?tree=jobs[name] anyway: the JSON writer does not do plural-to-singular mangling because arrays are represented explicitly.
109
+
110
+ Please see the [docs](https://ci.jenkins-ci.org/api/) for more info on tree parameters
111
+
82
112
  ## Testing
83
113
 
84
114
  This gem uses VCR to record requests to the api so you must test using a valid Jenkins server and credentails to test
@@ -7,6 +7,7 @@ require "subordinate/client/job"
7
7
  require "subordinate/client/system"
8
8
  require "subordinate/client/build"
9
9
  require "subordinate/client/queue"
10
+ require "subordinate/client/load"
10
11
 
11
12
  module Subordinate
12
13
  class Client
@@ -43,5 +44,6 @@ module Subordinate
43
44
  include Subordinate::Client::System
44
45
  include Subordinate::Client::Build
45
46
  include Subordinate::Client::Queue
47
+ include Subordinate::Client::Load
46
48
  end
47
49
  end
@@ -0,0 +1,23 @@
1
+ # Load
2
+ module Subordinate
3
+ class Client
4
+ # Load statistics
5
+ #
6
+ # @see https://ci.jenkins-ci.org/job/jenkins_rc_branch/api/
7
+ module Load
8
+ # Returns the current load statistics of the Jenkins server
9
+ #
10
+ # @see http://jenkins.missioncontrol.io:8080/queue/api/
11
+ #
12
+ # @return [Hashie::Mash] load statistics response
13
+ #
14
+ # @example Get the current load statistics
15
+ # Subordinate::Client.load_statistics
16
+ #
17
+ # @author Jason Truluck
18
+ def load_statistics(options = {})
19
+ get("overallLoad/api/json", options)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -9,7 +9,7 @@ module Subordinate
9
9
  #
10
10
  # @see http://jenkins.missioncontrol.io:8080/queue/api/
11
11
  #
12
- # @return [Hashie::Mash] job response
12
+ # @return [Hashie::Mash] build queue response
13
13
  #
14
14
  # @example Get the current build queue
15
15
  # Subordinate::Client.build_queue
@@ -1,3 +1,3 @@
1
1
  module Subordinate
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,43 @@
1
+ require "spec_helper"
2
+
3
+ auth = YAML::load(File.open(File.expand_path("../../../fixtures/authentications.yml", __FILE__)))
4
+
5
+ # Queue Spec
6
+ describe Subordinate::Client do
7
+ before do
8
+ Subordinate.reset!
9
+ Subordinate.configure do |c|
10
+ c.subdomain = auth["subdomain"]
11
+ c.domain = auth["domain"]
12
+ c.port = auth["port"]
13
+ c.ssl = false
14
+ end
15
+ end
16
+ let(:subordinate) { Subordinate::Client.new(:username => auth["username"], :api_token => auth["token"]) }
17
+
18
+ describe "#load_statistics", :vcr do
19
+ let(:current_response) { subordinate.load_statistics }
20
+
21
+ it "returns the load statistics response" do
22
+ current_response.should_not be_nil
23
+ end
24
+
25
+ context "methods" do
26
+ it "responds to .busyExecutors" do
27
+ current_response.should respond_to(:busyExecutors)
28
+ end
29
+
30
+ it "responds to .queueLength" do
31
+ current_response.should respond_to(:queueLength)
32
+ end
33
+
34
+ it "responds to .totalExecutors" do
35
+ current_response.should respond_to(:totalExecutors)
36
+ end
37
+
38
+ it "responds to .totalQueueLength" do
39
+ current_response.should respond_to(:totalQueueLength)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -18,7 +18,7 @@ describe Subordinate::Client do
18
18
  describe "#build_queue", :vcr do
19
19
  let(:current_response) { subordinate.build_queue }
20
20
 
21
- it "returns the job response" do
21
+ it "returns the build queue response" do
22
22
  current_response.should_not be_nil
23
23
  end
24
24
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: subordinate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -220,6 +220,7 @@ files:
220
220
  - lib/subordinate/client.rb
221
221
  - lib/subordinate/client/build.rb
222
222
  - lib/subordinate/client/job.rb
223
+ - lib/subordinate/client/load.rb
223
224
  - lib/subordinate/client/queue.rb
224
225
  - lib/subordinate/client/system.rb
225
226
  - lib/subordinate/configuration.rb
@@ -230,6 +231,7 @@ files:
230
231
  - spec/spec_helper.rb
231
232
  - spec/subordinate/client/build_spec.rb
232
233
  - spec/subordinate/client/job_spec.rb
234
+ - spec/subordinate/client/load_spec.rb
233
235
  - spec/subordinate/client/queue_spec.rb
234
236
  - spec/subordinate/client/system_spec.rb
235
237
  - spec/subordinate/client_spec.rb
@@ -248,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
248
250
  version: '0'
249
251
  segments:
250
252
  - 0
251
- hash: -1032835890192964007
253
+ hash: -3274379220519707228
252
254
  required_rubygems_version: !ruby/object:Gem::Requirement
253
255
  none: false
254
256
  requirements:
@@ -257,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
257
259
  version: '0'
258
260
  segments:
259
261
  - 0
260
- hash: -1032835890192964007
262
+ hash: -3274379220519707228
261
263
  requirements: []
262
264
  rubyforge_project:
263
265
  rubygems_version: 1.8.24
@@ -269,6 +271,7 @@ test_files:
269
271
  - spec/spec_helper.rb
270
272
  - spec/subordinate/client/build_spec.rb
271
273
  - spec/subordinate/client/job_spec.rb
274
+ - spec/subordinate/client/load_spec.rb
272
275
  - spec/subordinate/client/queue_spec.rb
273
276
  - spec/subordinate/client/system_spec.rb
274
277
  - spec/subordinate/client_spec.rb