lhj-tools 0.2.13 → 0.2.14
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.
- checksums.yaml +4 -4
- data/lib/lhj/command/{jenkins_build.rb → jenkins/jenkins_build.rb} +6 -2
- data/lib/lhj/command.rb +1 -1
- data/lib/lhj/helper/bugly_helper.rb +1 -1
- data/lib/lhj/helper/traditional_check_helper.rb +61 -0
- data/lib/lhj/helper/trans_helper.rb +9 -0
- data/lib/lhj/lhj.rb +2 -5
- data/lib/lhj/version.rb +1 -1
- metadata +18 -7
- data/lib/lhj/jenkins/client.rb +0 -837
- data/lib/lhj/jenkins/exceptions.rb +0 -226
- data/lib/lhj/jenkins/job.rb +0 -1933
- data/lib/lhj/jenkins/urihelper.rb +0 -21
@@ -1,226 +0,0 @@
|
|
1
|
-
require 'logger'
|
2
|
-
|
3
|
-
module Lhj
|
4
|
-
module JenkinsApi
|
5
|
-
# This module contains classes that define exceptions for various catories.
|
6
|
-
#
|
7
|
-
module Exceptions
|
8
|
-
# This is the base class for Exceptions that is inherited from
|
9
|
-
# RuntimeError.
|
10
|
-
#
|
11
|
-
class ApiException < RuntimeError
|
12
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
13
|
-
logger.add(log_level) { "#{self.class}: #{message}" }
|
14
|
-
super(message)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# This exception class handles cases where parameters are expected
|
19
|
-
# but not provided.
|
20
|
-
#
|
21
|
-
class NothingSubmitted < ApiException
|
22
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
23
|
-
message = "Nothing is submitted." if message.empty?
|
24
|
-
super(logger, message)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# This exception class handles cases where a job not able to be created
|
29
|
-
# because it already exists.
|
30
|
-
#
|
31
|
-
class JobAlreadyExists < ApiException
|
32
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
33
|
-
super(logger, message)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
# Support for backward compatibility
|
37
|
-
JobAlreadyExistsWithName = JobAlreadyExists
|
38
|
-
|
39
|
-
# This exception class handles cases where a view not able to be created
|
40
|
-
# because it already exists
|
41
|
-
#
|
42
|
-
class ViewAlreadyExists < ApiException
|
43
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
44
|
-
super(logger, message)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# This exception class handles cases where a node not able to be created
|
49
|
-
# because it already exists
|
50
|
-
#
|
51
|
-
class NodeAlreadyExists < ApiException
|
52
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
53
|
-
super(logger, message)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
# This exception class handles cases where invalid credentials are provided
|
58
|
-
# to connect to the Jenkins.
|
59
|
-
#
|
60
|
-
class Unauthorized < ApiException
|
61
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
62
|
-
message = "Invalid credentials are provided." if message.empty?
|
63
|
-
super(logger, message, Logger::FATAL)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
# Support for backward compatibility
|
67
|
-
UnauthorizedException = Unauthorized
|
68
|
-
|
69
|
-
# This exception class handles cases where invalid credentials are provided
|
70
|
-
# to connect to the Jenkins.
|
71
|
-
# While it is apparently used to indicate expiry of a Crumb, this is not
|
72
|
-
# the only cause of a forbidden error... maybe the user just isn't allowed
|
73
|
-
# to access the given url. We should treat forbidden as a specific "you
|
74
|
-
# are not welcome here"
|
75
|
-
#
|
76
|
-
class Forbidden < ApiException
|
77
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
78
|
-
msg = "Access denied. Please ensure that Jenkins is set up to allow" +
|
79
|
-
" access to this operation. #{message}"
|
80
|
-
super(logger, msg)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
# Support for backward compatibility
|
84
|
-
ForbiddenException = Forbidden
|
85
|
-
|
86
|
-
# This exception should be thrown specifically when the caller has had
|
87
|
-
# a ForbiddenException and has been able to determine that a (valid)
|
88
|
-
# crumb was used, and the attempt still failed.
|
89
|
-
# This may require an interim attempt to re-acquire the crumb in order
|
90
|
-
# to confirm it has not expired.
|
91
|
-
#
|
92
|
-
# @example A condition where this exception would be raised
|
93
|
-
# def operation
|
94
|
-
# retried = false
|
95
|
-
# begin
|
96
|
-
# make_attempt
|
97
|
-
# rescue Forbidden => e
|
98
|
-
# refresh_crumbs(true)
|
99
|
-
# if @crumbs_enabled
|
100
|
-
# if !retried
|
101
|
-
# retried = true
|
102
|
-
# retry
|
103
|
-
# else
|
104
|
-
# raise ForbiddenWithCrumb.new(@logger, e.message)
|
105
|
-
# end
|
106
|
-
# else
|
107
|
-
# raise
|
108
|
-
# end
|
109
|
-
# end
|
110
|
-
# end
|
111
|
-
#
|
112
|
-
# @note the 'refresh_crumbs' method will update crumb enablement and the
|
113
|
-
# stored crumb if called with 'true'
|
114
|
-
#
|
115
|
-
class ForbiddenWithCrumb < Forbidden
|
116
|
-
def initialize(logger, message = '', log_level = Logger::ERROR)
|
117
|
-
msg = "A crumb was used in attempt to access operation. #{message}"
|
118
|
-
super(logger, msg)
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
# This exception class handles cases where a requested page is not found on
|
123
|
-
# the Jenkins API.
|
124
|
-
#
|
125
|
-
class NotFound < ApiException
|
126
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
127
|
-
msg = message.empty? ? "Requested component is not found on the" +
|
128
|
-
" Jenkins CI server." : message
|
129
|
-
super(logger, msg)
|
130
|
-
end
|
131
|
-
end
|
132
|
-
# Support for backward compatibility
|
133
|
-
NotFoundException = NotFound
|
134
|
-
|
135
|
-
# This exception class handles cases when Crumb Issues did not issue a
|
136
|
-
# crumb upon request.
|
137
|
-
#
|
138
|
-
class CrumbNotFound < NotFound
|
139
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
140
|
-
message = "No crumb available on the server." if message.empty?
|
141
|
-
super(logger, message)
|
142
|
-
end
|
143
|
-
end
|
144
|
-
# Support for backward compatibility
|
145
|
-
CrumbNotFoundException = CrumbNotFound
|
146
|
-
|
147
|
-
# This exception class handles cases where the requested job does not exist
|
148
|
-
# in Jenkins.
|
149
|
-
#
|
150
|
-
class JobNotFound < NotFound
|
151
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
152
|
-
msg = message.empty? ? "The specified job is not found" : message
|
153
|
-
super(logger, msg)
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
# This exception class handles cases where the requested view does not exist
|
158
|
-
# in Jenkins.
|
159
|
-
#
|
160
|
-
class ViewNotFound < NotFound
|
161
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
162
|
-
msg = message.empty? ? "The specified view is not found" : message
|
163
|
-
super(logger, msg)
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
# This exception class handles cases where the requested node does not exist
|
168
|
-
# in Jenkins.
|
169
|
-
#
|
170
|
-
class NodeNotFound < NotFound
|
171
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
172
|
-
msg = msg.empty? ? "The specified node is not found" : message
|
173
|
-
super(logger, msg)
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
# This exception class handles cases where the Jenkins API returns with a
|
178
|
-
# 500 Internal Server Error.
|
179
|
-
#
|
180
|
-
class InternalServerError < ApiException
|
181
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
182
|
-
message = "Internal Server Error. Perhaps the in-memory configuration" +
|
183
|
-
" Jenkins is different from the disk configuration. Please try to" +
|
184
|
-
" reload the configuration" if message.nil? || message.empty?
|
185
|
-
super(logger, message)
|
186
|
-
end
|
187
|
-
end
|
188
|
-
# Support for backward compatibility
|
189
|
-
InternalServerErrorException = InternalServerError
|
190
|
-
|
191
|
-
# This exception class handles cases where the Jenkins is getting restarted
|
192
|
-
# or reloaded where the response code returned is 503
|
193
|
-
#
|
194
|
-
class ServiceUnavailable < ApiException
|
195
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
196
|
-
message = "Jenkins is being reloaded or restarted. Please wait till" +
|
197
|
-
" Jenkins is completely back online. This can be" +
|
198
|
-
" programatically achieved by System#wait_for_ready" if message.empty?
|
199
|
-
super(logger, message)
|
200
|
-
end
|
201
|
-
end
|
202
|
-
# Support for backward compatibility
|
203
|
-
ServiceUnavailableException = ServiceUnavailable
|
204
|
-
|
205
|
-
# Exception occurred while running java CLI commands
|
206
|
-
#
|
207
|
-
class CLIError < ApiException
|
208
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
209
|
-
message = "Unable to execute the command." if message.empty?
|
210
|
-
super(logger, message)
|
211
|
-
end
|
212
|
-
end
|
213
|
-
# Support for backward compatibility
|
214
|
-
CLIException = CLIError
|
215
|
-
|
216
|
-
# Exception when a particular plugin is not found
|
217
|
-
#
|
218
|
-
class PluginNotFound < NotFound
|
219
|
-
def initialize(logger, message = "", log_level = Logger::ERROR)
|
220
|
-
message = "The specified plugin is not found" if message.empty?
|
221
|
-
super(logger, message)
|
222
|
-
end
|
223
|
-
end
|
224
|
-
end
|
225
|
-
end
|
226
|
-
end
|