ansible_tower_client 0.16.0 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/lib/ansible_tower_client.rb +0 -2
- data/lib/ansible_tower_client/api.rb +5 -29
- data/lib/ansible_tower_client/base_models/workflow_job_node.rb +1 -1
- data/lib/ansible_tower_client/connection.rb +9 -48
- data/lib/ansible_tower_client/exception.rb +0 -1
- data/lib/ansible_tower_client/version.rb +1 -1
- metadata +2 -4
- data/lib/ansible_tower_client/v2/credential_type_v2.rb +0 -9
- data/lib/ansible_tower_client/v2/credential_v2.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: afa572e7a5320c8c4128c1b60a256b3becdbf63b2962e126b3295b7096f7472f
|
4
|
+
data.tar.gz: af3e60d79451302d1c5cfe8b9a7ee0371117370a7e002e0eccd7887f733690a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4a3651e8cf033e8b1c8c2a012aa4f0013d721e458d5cb90f390c40abde1d9ec25429b653af29bf576ebea41c1be82c9cdd8ef499778472c612870be9387ef50
|
7
|
+
data.tar.gz: e0217ab79d41ad8f9cb592aa42a7d7a050e8b83077992afd28ed0d65d706fbf24973efc6c7f4686441021ee0b79bed3a08db0f87cbc10a7945b1eb35ebb89bfb
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [0.17.0] - 2018-07-27
|
9
|
+
### Removed
|
10
|
+
- Reverted support for API v2 and v2 Credentials [(#117)](https://github.com/ansible/ansible_tower_client_ruby/pull/117)
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
- Fix WorkflowJobNode#job and add tests[(#116)](https://github.com/ansible/ansible_tower_client_ruby/pull/116)
|
14
|
+
|
8
15
|
## [0.16.0] - 2018-07-06
|
9
16
|
### Added
|
10
17
|
- Added support for API v2 and v2 Credentials [(#107)](https://github.com/ansible/ansible_tower_client_ruby/pull/107)
|
@@ -91,7 +98,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
91
98
|
### Fixed
|
92
99
|
- Adjusted project_spec to test on a Project [(#63)](https://github.com/ansible/ansible_tower_client_ruby/pull/63)
|
93
100
|
|
94
|
-
[Unreleased]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.
|
101
|
+
[Unreleased]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.17.0...master
|
102
|
+
[0.17.0]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.16.0...v0.17.0
|
95
103
|
[0.16.0]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.15.0...v0.16.0
|
96
104
|
[0.15.0]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.14.0...v0.15.0
|
97
105
|
[0.14.0]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.13.0...v0.14.0
|
data/lib/ansible_tower_client.rb
CHANGED
@@ -34,8 +34,6 @@ require "ansible_tower_client/base_models/workflow_job_template"
|
|
34
34
|
require "ansible_tower_client/base_models/workflow_job_template_node"
|
35
35
|
|
36
36
|
require "ansible_tower_client/v2/job_template_v2"
|
37
|
-
require "ansible_tower_client/v2/credential_v2"
|
38
|
-
require "ansible_tower_client/v2/credential_type_v2"
|
39
37
|
|
40
38
|
require "more_core_extensions/all"
|
41
39
|
require "active_support/inflector"
|
@@ -6,10 +6,9 @@ module AnsibleTowerClient
|
|
6
6
|
|
7
7
|
DEFAULT_ERROR_MSG = "An unknown error was returned from the provider".freeze
|
8
8
|
|
9
|
-
attr_reader :instance
|
10
|
-
def initialize(connection
|
11
|
-
@instance
|
12
|
-
@api_version = api_version
|
9
|
+
attr_reader :instance
|
10
|
+
def initialize(connection)
|
11
|
+
@instance = connection
|
13
12
|
end
|
14
13
|
|
15
14
|
def config
|
@@ -36,11 +35,6 @@ module AnsibleTowerClient
|
|
36
35
|
Collection.new(self, credential_class)
|
37
36
|
end
|
38
37
|
|
39
|
-
def credential_types
|
40
|
-
raise AnsibleTowerClient::UnsupportedApiError, 'requires API v2 or higher' if api_version?(1)
|
41
|
-
Collection.new(self, credential_type_class)
|
42
|
-
end
|
43
|
-
|
44
38
|
def groups
|
45
39
|
Collection.new(self, group_class)
|
46
40
|
end
|
@@ -152,17 +146,7 @@ module AnsibleTowerClient
|
|
152
146
|
end
|
153
147
|
|
154
148
|
def credential_class
|
155
|
-
@credential_class ||=
|
156
|
-
if api_version?(2)
|
157
|
-
AnsibleTowerClient::CredentialV2
|
158
|
-
else
|
159
|
-
AnsibleTowerClient::Credential
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
def credential_type_class
|
165
|
-
@credential_type_class ||= AnsibleTowerClient::CredentialTypeV2
|
149
|
+
@credential_class ||= AnsibleTowerClient::Credential
|
166
150
|
end
|
167
151
|
|
168
152
|
def group_class
|
@@ -199,7 +183,7 @@ module AnsibleTowerClient
|
|
199
183
|
|
200
184
|
def job_template_class
|
201
185
|
@job_template_class ||= begin
|
202
|
-
if
|
186
|
+
if Gem::Version.new(version).between?(Gem::Version.new(2), Gem::Version.new(3))
|
203
187
|
AnsibleTowerClient::JobTemplateV2
|
204
188
|
else
|
205
189
|
AnsibleTowerClient::JobTemplate
|
@@ -254,13 +238,5 @@ module AnsibleTowerClient
|
|
254
238
|
return original if instance.url_prefix.path == "/"
|
255
239
|
File.join(instance.url_prefix.path, Regexp.last_match[1])
|
256
240
|
end
|
257
|
-
|
258
|
-
def awx_version_between?(min, max)
|
259
|
-
Gem::Version.new(version).between?(Gem::Version.new(min), Gem::Version.new(max))
|
260
|
-
end
|
261
|
-
|
262
|
-
def api_version?(desired)
|
263
|
-
Gem::Version.new(api_version).eql?(Gem::Version.new(desired))
|
264
|
-
end
|
265
241
|
end
|
266
242
|
end
|
@@ -1,70 +1,31 @@
|
|
1
1
|
module AnsibleTowerClient
|
2
2
|
class Connection
|
3
|
-
attr_reader :
|
3
|
+
attr_reader :connection
|
4
4
|
|
5
|
-
|
6
|
-
# - base_url: you have two options here:
|
7
|
-
# a) pass in only scheme and hostname e.g. 'https://localhost:54321' to allow client to connect to both api v1
|
8
|
-
# and v2 versions like this: `client.api(:version => 1)` and `client.api(:version => 2)`. This requires ansible
|
9
|
-
# tower API being accessible directly at `https://localhost:54321/api/v1` and `https://localhost:54321/api/v2`.
|
10
|
-
# b) pass in a complete api address e.g. 'https://localhost:54321/tower'. Client will then connect to the path
|
11
|
-
# directly and it's your responsibility to know what version of API is there.
|
12
|
-
# - username
|
13
|
-
# - password
|
14
|
-
# - verify_ssl
|
15
|
-
def initialize(options = {})
|
5
|
+
def initialize(options = nil)
|
16
6
|
raise "Credentials are required" unless options[:username] && options[:password]
|
17
7
|
raise ":base_url is required" unless options[:base_url]
|
18
|
-
logger
|
8
|
+
logger = options[:logger] || AnsibleTowerClient.logger
|
9
|
+
verify_ssl = options[:verify_ssl] || OpenSSL::SSL::VERIFY_PEER
|
10
|
+
verify_ssl = verify_ssl == OpenSSL::SSL::VERIFY_NONE ? false : true
|
19
11
|
|
20
12
|
require 'faraday'
|
21
13
|
require 'faraday_middleware'
|
22
14
|
require 'ansible_tower_client/middleware/raise_tower_error'
|
23
15
|
Faraday::Response.register_middleware :raise_tower_error => -> { Middleware::RaiseTowerError }
|
24
|
-
|
25
|
-
@options = {
|
26
|
-
:url => options[:base_url],
|
27
|
-
:verify_ssl => (options[:verify_ssl] || OpenSSL::SSL::VERIFY_PEER) != OpenSSL::SSL::VERIFY_NONE,
|
28
|
-
:username => options[:username],
|
29
|
-
:password => options[:password],
|
30
|
-
:logger => logger,
|
31
|
-
}
|
32
|
-
|
33
|
-
reset
|
34
|
-
end
|
35
|
-
|
36
|
-
def connection(url:, username:, password:, verify_ssl: false, logger: nil)
|
37
|
-
Faraday.new(url, :ssl => {:verify => verify_ssl}) do |f|
|
16
|
+
@connection = Faraday.new(options[:base_url], :ssl => {:verify => verify_ssl}) do |f|
|
38
17
|
f.use(FaradayMiddleware::EncodeJson)
|
39
18
|
f.use(FaradayMiddleware::FollowRedirects, :limit => 3, :standards_compliant => true)
|
40
19
|
f.request(:url_encoded)
|
41
20
|
f.response(:raise_tower_error)
|
42
21
|
f.response(:logger, logger)
|
43
22
|
f.adapter(Faraday.default_adapter)
|
44
|
-
f.basic_auth(username, password)
|
23
|
+
f.basic_auth(options[:username], options[:password])
|
45
24
|
end
|
46
25
|
end
|
47
26
|
|
48
|
-
def api
|
49
|
-
@api
|
50
|
-
# Build uri path.
|
51
|
-
options = @options.clone.tap do |opts|
|
52
|
-
opts[:url] = URI(opts[:url]).tap { |url| url.path = url_path_for_version(url.path, version) }
|
53
|
-
end
|
54
|
-
|
55
|
-
Api.new(connection(**options), version)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def reset
|
60
|
-
@api = {}
|
61
|
-
end
|
62
|
-
|
63
|
-
private
|
64
|
-
|
65
|
-
def url_path_for_version(orig_path, api_version)
|
66
|
-
return orig_path unless orig_path.sub(/\/$/, "").empty?
|
67
|
-
"/api/v#{api_version}"
|
27
|
+
def api
|
28
|
+
@api ||= Api.new(connection)
|
68
29
|
end
|
69
30
|
end
|
70
31
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ansible_tower_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Dunne
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-07-
|
12
|
+
date: 2018-07-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -175,8 +175,6 @@ files:
|
|
175
175
|
- lib/ansible_tower_client/logging.rb
|
176
176
|
- lib/ansible_tower_client/middleware/raise_tower_error.rb
|
177
177
|
- lib/ansible_tower_client/null_logger.rb
|
178
|
-
- lib/ansible_tower_client/v2/credential_type_v2.rb
|
179
|
-
- lib/ansible_tower_client/v2/credential_v2.rb
|
180
178
|
- lib/ansible_tower_client/v2/job_template_v2.rb
|
181
179
|
- lib/ansible_tower_client/version.rb
|
182
180
|
homepage: https://github.com/Ansible/ansible_tower_client_ruby
|