jenkins_api_client 1.0.0.beta.5 → 1.0.0.beta.6
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/README.md +10 -4
- data/Vagrantfile +4 -4
- data/jenkins_api_client.gemspec +6 -2
- data/lib/jenkins_api_client/client.rb +14 -3
- data/lib/jenkins_api_client/job.rb +2 -2
- data/lib/jenkins_api_client/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -1,9 +1,15 @@
|
|
1
1
|
Jenkins API Client
|
2
2
|
==================
|
3
|
-
|
4
|
-
[][gem]
|
5
|
+
[][travis]
|
6
|
+
[][gemnasium]
|
7
|
+
[][codeclimate]
|
8
|
+
|
9
|
+
[gem]: https://rubygems.org/gems/jenkins_api_client
|
10
|
+
[travis]: http://travis-ci.org/arangamani/jenkins_api_client
|
11
|
+
[gemnasium]: https://gemnasium.com/arangamani/jenkins_api_client
|
12
|
+
[codeclimate]: https://codeclimate.com/github/arangamani/jenkins_api_client
|
7
13
|
|
8
14
|
Copyright © 2012-2013, Kannan Manickam [](http://coderwall.com/arangamani)
|
9
15
|
|
data/Vagrantfile
CHANGED
@@ -6,7 +6,7 @@ Vagrant.configure("2") do |config|
|
|
6
6
|
# options are documented and commented below. For a complete reference,
|
7
7
|
# please see the online documentation at vagrantup.com.
|
8
8
|
|
9
|
-
config.vm.hostname = "jenkins"
|
9
|
+
config.vm.hostname = "jenkins-api-client"
|
10
10
|
|
11
11
|
# Every Vagrant virtual environment requires a box to build off of.
|
12
12
|
config.vm.box = "opscode-ubuntu-12.04"
|
@@ -19,7 +19,7 @@ Vagrant.configure("2") do |config|
|
|
19
19
|
# via the IP. Host-only networks can talk to the host machine as well as
|
20
20
|
# any other machines on the same network, but cannot be accessed (through this
|
21
21
|
# network interface) by any external networks.
|
22
|
-
config.vm.network :private_network, ip: "33.33.33.
|
22
|
+
config.vm.network :private_network, ip: "33.33.33.10"
|
23
23
|
|
24
24
|
# Create a public network, which generally matched to bridged network.
|
25
25
|
# Bridged networks make the machine appear as another physical device on
|
@@ -78,6 +78,6 @@ Vagrant.configure("2") do |config|
|
|
78
78
|
" sudo gem1.9.1 install bundler;" +
|
79
79
|
" bundle install;" +
|
80
80
|
" travis/setup.sh;" +
|
81
|
-
" bundle exec rake unit_tests;"
|
82
|
-
|
81
|
+
" bundle exec rake unit_tests;" +
|
82
|
+
" bundle exec rake func_tests"
|
83
83
|
end
|
data/jenkins_api_client.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "jenkins_api_client"
|
8
|
-
s.version = "1.0.0.beta.
|
8
|
+
s.version = "1.0.0.beta.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kannan Manickam"]
|
12
|
-
s.date = "2014-
|
12
|
+
s.date = "2014-04-19"
|
13
13
|
s.description = "\nThis is a simple and easy-to-use Jenkins Api client with features focused on\nautomating Job configuration programaticaly and so forth"
|
14
14
|
s.email = ["arangamani.kannan@gmail.com"]
|
15
15
|
s.executables = ["jenkinscli"]
|
@@ -47,6 +47,7 @@ Gem::Specification.new do |s|
|
|
47
47
|
"lib/jenkins_api_client/version.rb",
|
48
48
|
"lib/jenkins_api_client/view.rb",
|
49
49
|
"scripts/login_with_irb.rb",
|
50
|
+
"scripts/login_with_pry.rb",
|
50
51
|
"spec/func_tests/client_spec.rb",
|
51
52
|
"spec/func_tests/job_spec.rb",
|
52
53
|
"spec/func_tests/node_spec.rb.pending",
|
@@ -99,6 +100,7 @@ Gem::Specification.new do |s|
|
|
99
100
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
100
101
|
s.add_development_dependency(%q<yard-thor>, [">= 0"])
|
101
102
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
103
|
+
s.add_development_dependency(%q<pry>, [">= 0"])
|
102
104
|
else
|
103
105
|
s.add_dependency(%q<nokogiri>, ["~> 1.6.0"])
|
104
106
|
s.add_dependency(%q<thor>, [">= 0.16.0"])
|
@@ -111,6 +113,7 @@ Gem::Specification.new do |s|
|
|
111
113
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
112
114
|
s.add_dependency(%q<yard-thor>, [">= 0"])
|
113
115
|
s.add_dependency(%q<yard>, [">= 0"])
|
116
|
+
s.add_dependency(%q<pry>, [">= 0"])
|
114
117
|
end
|
115
118
|
else
|
116
119
|
s.add_dependency(%q<nokogiri>, ["~> 1.6.0"])
|
@@ -124,6 +127,7 @@ Gem::Specification.new do |s|
|
|
124
127
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
125
128
|
s.add_dependency(%q<yard-thor>, [">= 0"])
|
126
129
|
s.add_dependency(%q<yard>, [">= 0"])
|
130
|
+
s.add_dependency(%q<pry>, [">= 0"])
|
127
131
|
end
|
128
132
|
end
|
129
133
|
|
@@ -35,7 +35,7 @@ require 'logger'
|
|
35
35
|
#
|
36
36
|
module JenkinsApi
|
37
37
|
# This is the client class that acts as the bridge between the subclasses and
|
38
|
-
#
|
38
|
+
# Jenkins. This class contains methods that performs GET and POST requests
|
39
39
|
# for various operations.
|
40
40
|
#
|
41
41
|
class Client
|
@@ -44,6 +44,8 @@ module JenkinsApi
|
|
44
44
|
DEFAULT_SERVER_PORT = 8080
|
45
45
|
# Default timeout in seconds to be used while performing operations
|
46
46
|
DEFAULT_TIMEOUT = 120
|
47
|
+
DEFAULT_HTTP_OPEN_TIMEOUT = 10
|
48
|
+
DEFAULT_HTTP_READ_TIMEOUT = 120
|
47
49
|
# Parameters that are permitted as options while initializing the client
|
48
50
|
VALID_PARAMS = [
|
49
51
|
"server_url",
|
@@ -58,6 +60,8 @@ module JenkinsApi
|
|
58
60
|
"log_location",
|
59
61
|
"log_level",
|
60
62
|
"timeout",
|
63
|
+
"http_open_timeout",
|
64
|
+
"http_read_timeout",
|
61
65
|
"ssl",
|
62
66
|
"follow_redirects",
|
63
67
|
"identity_file",
|
@@ -101,7 +105,7 @@ module JenkinsApi
|
|
101
105
|
end
|
102
106
|
end if args.is_a? Hash
|
103
107
|
|
104
|
-
# Server IP or Server URL must be
|
108
|
+
# Server IP or Server URL must be specific
|
105
109
|
unless @server_ip || @server_url
|
106
110
|
raise ArgumentError, "Server IP or Server URL is required to connect" +
|
107
111
|
" to Jenkins"
|
@@ -135,6 +139,8 @@ module JenkinsApi
|
|
135
139
|
@jenkins_path.gsub!(/\/$/,"") # remove trailing slash if there is one
|
136
140
|
@server_port = DEFAULT_SERVER_PORT unless @server_port
|
137
141
|
@timeout = DEFAULT_TIMEOUT unless @timeout
|
142
|
+
@http_open_timeout = DEFAULT_HTTP_OPEN_TIMEOUT unless @http_open_timeout
|
143
|
+
@http_read_timeout = DEFAULT_HTTP_READ_TIMEOUT unless @http_read_timeout
|
138
144
|
@ssl ||= false
|
139
145
|
|
140
146
|
# Setting log options
|
@@ -238,7 +244,9 @@ module JenkinsApi
|
|
238
244
|
" @crumbs_enabled=#{@crumbs_enabled.inspect}," +
|
239
245
|
" @follow_redirects=#{@follow_redirects.inspect}," +
|
240
246
|
" @jenkins_path=#{@jenkins_path.inspect}," +
|
241
|
-
" @timeout=#{@timeout.inspect}
|
247
|
+
" @timeout=#{@timeout.inspect}>," +
|
248
|
+
" @http_open_timeout=#{@http_open_timeout.inspect}>," +
|
249
|
+
" @http_read_timeout=#{@http_read_timeout.inspect}>"
|
242
250
|
end
|
243
251
|
|
244
252
|
# Connects to the Jenkins server, sends the specified request and returns
|
@@ -264,6 +272,9 @@ module JenkinsApi
|
|
264
272
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
265
273
|
end
|
266
274
|
|
275
|
+
http.open_timeout = @http_open_timeout
|
276
|
+
http.read_timeout = @http_read_timeout
|
277
|
+
|
267
278
|
response = http.request(request)
|
268
279
|
case response
|
269
280
|
when Net::HTTPRedirection then
|
@@ -489,7 +489,7 @@ module JenkinsApi
|
|
489
489
|
to_job_name = "copy_of_#{from_job_name}" if to_job_name.nil?
|
490
490
|
@logger.info "Copying job '#{from_job_name}' to '#{to_job_name}'"
|
491
491
|
@client.api_post_request(
|
492
|
-
"/createItem?name=#{to_job_name}&mode=copy&from=#{from_job_name}"
|
492
|
+
"/createItem?name=#{path_encode to_job_name}&mode=copy&from=#{path_encode from_job_name}"
|
493
493
|
)
|
494
494
|
end
|
495
495
|
|
@@ -963,7 +963,7 @@ module JenkinsApi
|
|
963
963
|
#
|
964
964
|
def enable(job_name)
|
965
965
|
@logger.info "Enabling job '#{job_name}'"
|
966
|
-
@client.api_post_request("/job/#{job_name}/enable")
|
966
|
+
@client.api_post_request("/job/#{path_encode job_name}/enable")
|
967
967
|
end
|
968
968
|
|
969
969
|
# Disable a job given the name of the job
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jenkins_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.beta.
|
4
|
+
version: 1.0.0.beta.6
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-04-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|