ansible_tower_client 0.20.0 → 0.21.2
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/CHANGELOG.md +34 -1
- data/Gemfile +3 -7
- data/README.md +30 -0
- data/lib/ansible_tower_client/api.rb +4 -1
- data/lib/ansible_tower_client/base_models/credential.rb +4 -1
- data/lib/ansible_tower_client/base_models/workflow_job_node.rb +8 -1
- data/lib/ansible_tower_client/connection.rb +9 -2
- data/lib/ansible_tower_client/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d12a1f9a637375a1f8aaa70f88f936ddc03f3fcd9731bbfcb6cfa497eec3a27a
|
4
|
+
data.tar.gz: 1819f01be11621925cd615ba65622a6d7f673cce55b0cae731cbc9f87be5a515
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2b01f2da1c0d796a16463c67cc09023de86d33ab6f5d5b7808e023cb618e5598481b974b2b1744bd6c867c25172a124f7fd0755745160f04749fd9e26a1e470
|
7
|
+
data.tar.gz: 6b284cd8f8953f8cfc6e68b4239298dd88476391f5c92f4e87491cb5e3b95e48ca76cf684987140eee633aadd1dfdb8390eefc6b5b3b7ed3c483bbfb11416591
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,34 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [0.21.2] - 2020-06-09
|
9
|
+
### Fixed
|
10
|
+
- Return AnsibleTowerClient::ConnectionError if not able to parse response in #verify_credentials [(#144)](https://github.com/ansible/ansible_tower_client_ruby/pull/144)
|
11
|
+
|
12
|
+
## [0.21.1] - 2020-02-17
|
13
|
+
### Fixed
|
14
|
+
- Revert removal of trailing "/" on get of "config" [(#141)](https://github.com/ansible/ansible_tower_client_ruby/pull/141)
|
15
|
+
|
16
|
+
## [0.21.0] - 2020-02-12
|
17
|
+
### Added
|
18
|
+
- Add support for connection headers and proxy [(#134)](https://github.com/ansible/ansible_tower_client_ruby/pull/134)
|
19
|
+
- Allow request options to be passed to Faraday [(#140)](https://github.com/ansible/ansible_tower_client_ruby/pull/140)
|
20
|
+
- Add usage documentation to the README [(#138)](https://github.com/ansible/ansible_tower_client_ruby/pull/138)
|
21
|
+
|
22
|
+
### Fixed
|
23
|
+
- Fix issue where passing no options gives a NilError [(#136)](https://github.com/ansible/ansible_tower_client_ruby/pull/136)
|
24
|
+
|
25
|
+
### Changed
|
26
|
+
- Extract MockApi responses into JSON files [(#137)](https://github.com/ansible/ansible_tower_client_ruby/pull/137)
|
27
|
+
|
28
|
+
## [0.20.2] - 2019-08-19
|
29
|
+
### Fixed
|
30
|
+
- Ensure #vault_password is never nil [(#132)](https://github.com/ansible/ansible_tower_client_ruby/pull/132)
|
31
|
+
|
32
|
+
## [0.20.1] - 2019-06-20
|
33
|
+
### Fixed
|
34
|
+
- Only attempt to find a related job if there is a reference to one [(#131)](https://github.com/ansible/ansible_tower_client_ruby/pull/131)
|
35
|
+
|
8
36
|
## [0.20.0] - 2019-05-22
|
9
37
|
### Added
|
10
38
|
- Added support for v2 API credential objects [(#123)](https://github.com/ansible/ansible_tower_client_ruby/pull/123)
|
@@ -118,7 +146,12 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
118
146
|
### Fixed
|
119
147
|
- Adjusted project_spec to test on a Project [(#63)](https://github.com/ansible/ansible_tower_client_ruby/pull/63)
|
120
148
|
|
121
|
-
[Unreleased]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.
|
149
|
+
[Unreleased]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.21.2...master
|
150
|
+
[0.21.2]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.21.1...v0.21.2
|
151
|
+
[0.21.1]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.21.0...v0.21.1
|
152
|
+
[0.21.0]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.20.2...v0.21.0
|
153
|
+
[0.20.2]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.20.1...v0.20.2
|
154
|
+
[0.20.1]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.20.0...v0.20.1
|
122
155
|
[0.20.0]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.19.1...v0.20.0
|
123
156
|
[0.19.1]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.19.0...v0.19.1
|
124
157
|
[0.19.0]: https://github.com/ansible/ansible_tower_client_ruby/compare/v0.18.0...v0.19.0
|
data/Gemfile
CHANGED
@@ -1,11 +1,7 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
+
plugin "bundler-inject", "~> 1.1"
|
4
|
+
require File.join(Bundler::Plugin.index.load_paths("bundler-inject")[0], "bundler-inject") rescue nil
|
5
|
+
|
3
6
|
# Specify your gem's dependencies in ansible_tower_client.gemspec
|
4
7
|
gemspec
|
5
|
-
|
6
|
-
# Pull in a development Gemfile if one exists
|
7
|
-
eval_gemfile('Gemfile.dev.rb') if File.exists?('Gemfile.dev.rb')
|
8
|
-
|
9
|
-
# HACK: Rails 5 dropped support for Ruby < 2.2.2
|
10
|
-
active_support_version = "< 5" if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.2.2")
|
11
|
-
gem "activesupport", active_support_version
|
data/README.md
CHANGED
@@ -23,6 +23,36 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
$ gem install ansible_tower_client
|
25
25
|
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
require 'ansible_tower_client'
|
30
|
+
|
31
|
+
# Optionally set a global logger
|
32
|
+
AnsibleTowerClient.logger = Logger.new(STDOUT)
|
33
|
+
|
34
|
+
# Create a connection
|
35
|
+
conn = AnsibleTowerClient::Connection.new(
|
36
|
+
:base_url => "https://awx.example.com/",
|
37
|
+
:username => "admin",
|
38
|
+
:password => "pa$$w0rd!",
|
39
|
+
:verify_ssl => OpenSSL::SSL::VERIFY_PEER # Optional: an OpenSSL::SSL::VERIFY_* constant
|
40
|
+
)
|
41
|
+
|
42
|
+
# Query the config
|
43
|
+
conn.api.config
|
44
|
+
# => {"eula"=>"text"
|
45
|
+
# "version"=>"3.2.2",
|
46
|
+
# "project_base_dir"=>"/var/lib/awx/projects",
|
47
|
+
# "ansible_version"=>"2.4.1.0",
|
48
|
+
# ...}
|
49
|
+
|
50
|
+
# Query a collection
|
51
|
+
conn.api.job_templates.all
|
52
|
+
# => [<AnsibleTowerClient::JobTemplate id=580, type="job_template", url="/api/v1/job_templates/580/", name="ems_refresh_spec-job_template", description="EmsRefreshSpec JobTemplate", ...>
|
53
|
+
# <AnsibleTowerClient::JobTemplate id=585, type="job_template", url="/api/v1/job_templates/585/", name="ems_refresh_spec-job_template2", description="EmsRefreshSpec JobTemplate", ...>]
|
54
|
+
```
|
55
|
+
|
26
56
|
## Development
|
27
57
|
|
28
58
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -20,7 +20,10 @@ module AnsibleTowerClient
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def verify_credentials
|
23
|
-
|
23
|
+
results = get("me/").body
|
24
|
+
JSON.parse(results).fetch_path("results", 0, "username")
|
25
|
+
rescue JSON::ParserError
|
26
|
+
raise AnsibleTowerClient::ConnectionError, "unexpected response"
|
24
27
|
end
|
25
28
|
|
26
29
|
def activity_stream
|
@@ -39,7 +39,10 @@ module AnsibleTowerClient
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def vault_password
|
42
|
-
@data['vault_password'] ||=
|
42
|
+
@data['vault_password'] ||= begin
|
43
|
+
has_vault_password = respond_to?(:inputs) && inputs.respond_to?(:vault_password)
|
44
|
+
(inputs.vault_password if has_vault_password).to_s
|
45
|
+
end
|
43
46
|
end
|
44
47
|
end
|
45
48
|
end
|
@@ -5,7 +5,14 @@ module AnsibleTowerClient
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def job
|
8
|
-
api.jobs.find(job_id) if
|
8
|
+
api.jobs.find(job_id) if job?
|
9
|
+
end
|
10
|
+
|
11
|
+
# to filter out WorkflowJobNode that is inventory sync or project sync
|
12
|
+
def job?
|
13
|
+
return false if !respond_to?(:job_id) || job_id.nil?
|
14
|
+
|
15
|
+
related.job.match?(/jobs/)
|
9
16
|
end
|
10
17
|
end
|
11
18
|
end
|
@@ -5,8 +5,9 @@ module AnsibleTowerClient
|
|
5
5
|
attr_reader :connection
|
6
6
|
|
7
7
|
def initialize(options = nil)
|
8
|
-
raise "
|
8
|
+
raise ":username and :password are required" if options.nil? || !options[:username] || !options[:password]
|
9
9
|
raise ":base_url is required" unless options[:base_url]
|
10
|
+
|
10
11
|
logger = options[:logger] || AnsibleTowerClient.logger
|
11
12
|
verify_ssl = options[:verify_ssl] || OpenSSL::SSL::VERIFY_PEER
|
12
13
|
verify_ssl = verify_ssl == OpenSSL::SSL::VERIFY_NONE ? false : true
|
@@ -15,7 +16,13 @@ module AnsibleTowerClient
|
|
15
16
|
require 'faraday_middleware'
|
16
17
|
require 'ansible_tower_client/middleware/raise_tower_error'
|
17
18
|
Faraday::Response.register_middleware :raise_tower_error => -> { Middleware::RaiseTowerError }
|
18
|
-
|
19
|
+
|
20
|
+
connection_opts = { :ssl => {:verify => verify_ssl} }
|
21
|
+
connection_opts[:proxy] = options[:proxy] if options[:proxy].present?
|
22
|
+
connection_opts[:headers] = options[:headers] if options[:headers].present?
|
23
|
+
connection_opts[:request] = options[:request] if options[:request].present?
|
24
|
+
|
25
|
+
@connection = Faraday.new(options[:base_url], connection_opts) do |f|
|
19
26
|
f.use(FaradayMiddleware::EncodeJson)
|
20
27
|
f.use(FaradayMiddleware::FollowRedirects, :limit => 3, :standards_compliant => true)
|
21
28
|
f.request(:url_encoded)
|
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.21.2
|
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:
|
12
|
+
date: 2020-06-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -183,8 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
183
|
- !ruby/object:Gem::Version
|
184
184
|
version: '0'
|
185
185
|
requirements: []
|
186
|
-
|
187
|
-
rubygems_version: 2.7.6.2
|
186
|
+
rubygems_version: 3.0.6
|
188
187
|
signing_key:
|
189
188
|
specification_version: 4
|
190
189
|
summary: Ansible Tower REST API wrapper gem
|