ansible_tower_client 0.3.3 → 0.4.0
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/Gemfile +4 -0
- data/README.md +2 -0
- data/ansible_tower_client.gemspec +1 -4
- data/lib/ansible_tower_client.rb +11 -8
- data/lib/ansible_tower_client/api.rb +66 -14
- data/lib/ansible_tower_client/base_model.rb +4 -0
- data/lib/ansible_tower_client/{ad_hoc_command.rb → base_models/ad_hoc_command.rb} +0 -1
- data/lib/ansible_tower_client/{group.rb → base_models/group.rb} +0 -0
- data/lib/ansible_tower_client/{host.rb → base_models/host.rb} +0 -0
- data/lib/ansible_tower_client/{inventory.rb → base_models/inventory.rb} +0 -0
- data/lib/ansible_tower_client/{inventory_source.rb → base_models/inventory_source.rb} +2 -2
- data/lib/ansible_tower_client/{inventory_update.rb → base_models/inventory_update.rb} +0 -0
- data/lib/ansible_tower_client/{job.rb → base_models/job.rb} +0 -0
- data/lib/ansible_tower_client/base_models/job_template.rb +28 -0
- data/lib/ansible_tower_client/collection.rb +1 -2
- data/lib/ansible_tower_client/connection.rb +0 -12
- data/lib/ansible_tower_client/{job_template.rb → v2/job_template_v2.rb} +1 -19
- data/lib/ansible_tower_client/version.rb +1 -1
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acc09f7903cf4344a5aecf388e01e96ec4ddbacb
|
4
|
+
data.tar.gz: 1f9c7426089f8e860848e95a5fc10cb73d7748fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2907f826fc08aded95a7db83c5278a410cdc7ac1be5c770d30fc92658c12bb551e8df55073b02afdcb1375c952be321be13da6749135492155bd3bd99639a9c
|
7
|
+
data.tar.gz: a235ecafbf062ed0e5e5bba221383ea808943d3823fb8b2f7fbbc743d8a407ccc06fe6acb9fac6774ae578e92ecb8c9cf550a8e2c866762bda585adfc7674cb0
|
data/Gemfile
CHANGED
@@ -2,3 +2,7 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in ansible_tower_client.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
# HACK: Rails 5 dropped support for Ruby < 2.2.2
|
7
|
+
active_support_version = "< 5" if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.2.2")
|
8
|
+
gem "activesupport", active_support_version
|
data/README.md
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
[](https://travis-ci.org/ManageIQ/ansible_tower_client)
|
5
5
|
[](https://codeclimate.com/github/ManageIQ/ansible_tower_client)
|
6
6
|
[](https://gemnasium.com/ManageIQ/ansible_tower_client)
|
7
|
+
[](https://coveralls.io/r/ManageIQ/ansible_tower_client)
|
8
|
+
[](https://hakiri.io/github/ManageIQ/ansible_tower_client/master)
|
7
9
|
|
8
10
|
## Installation
|
9
11
|
|
@@ -19,10 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
|
23
|
-
active_support_version = "< 5" if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new("2.2.2")
|
24
|
-
spec.add_runtime_dependency "activesupport", active_support_version
|
25
|
-
|
22
|
+
spec.add_runtime_dependency "activesupport"
|
26
23
|
spec.add_runtime_dependency "faraday"
|
27
24
|
spec.add_runtime_dependency "faraday_middleware"
|
28
25
|
spec.add_runtime_dependency "more_core_extensions", "~> 3.0"
|
data/lib/ansible_tower_client.rb
CHANGED
@@ -11,14 +11,17 @@ require "ansible_tower_client/hash_model"
|
|
11
11
|
require "ansible_tower_client/base_model"
|
12
12
|
require "ansible_tower_client/collection"
|
13
13
|
|
14
|
-
require "ansible_tower_client/ad_hoc_command"
|
15
|
-
require "ansible_tower_client/group"
|
16
|
-
require "ansible_tower_client/host"
|
17
|
-
require "ansible_tower_client/inventory"
|
18
|
-
require "ansible_tower_client/inventory_source"
|
19
|
-
require "ansible_tower_client/inventory_update"
|
20
|
-
require "ansible_tower_client/job"
|
21
|
-
require "ansible_tower_client/job_template"
|
14
|
+
require "ansible_tower_client/base_models/ad_hoc_command"
|
15
|
+
require "ansible_tower_client/base_models/group"
|
16
|
+
require "ansible_tower_client/base_models/host"
|
17
|
+
require "ansible_tower_client/base_models/inventory"
|
18
|
+
require "ansible_tower_client/base_models/inventory_source"
|
19
|
+
require "ansible_tower_client/base_models/inventory_update"
|
20
|
+
require "ansible_tower_client/base_models/job"
|
21
|
+
require "ansible_tower_client/base_models/job_template"
|
22
|
+
|
23
|
+
require "ansible_tower_client/v2/job_template_v2"
|
24
|
+
|
22
25
|
require "more_core_extensions/all"
|
23
26
|
require "active_support/inflector"
|
24
27
|
|
@@ -5,36 +5,48 @@ module AnsibleTowerClient
|
|
5
5
|
@instance = connection
|
6
6
|
end
|
7
7
|
|
8
|
-
def
|
9
|
-
|
8
|
+
def config
|
9
|
+
JSON.parse(get("config").body)
|
10
|
+
end
|
11
|
+
|
12
|
+
def version
|
13
|
+
@version ||= config["version"]
|
14
|
+
end
|
15
|
+
|
16
|
+
def verify_credentials
|
17
|
+
JSON.parse(get("me").body).fetch_path("results", 0, "username")
|
18
|
+
end
|
19
|
+
|
20
|
+
def ad_hoc_commands
|
21
|
+
Collection.new(self, ad_hoc_command_class)
|
10
22
|
end
|
11
23
|
|
12
24
|
def groups
|
13
|
-
Collection.new(self,
|
25
|
+
Collection.new(self, group_class)
|
26
|
+
end
|
27
|
+
|
28
|
+
def hosts
|
29
|
+
Collection.new(self, host_class)
|
14
30
|
end
|
15
31
|
|
16
32
|
def inventories
|
17
|
-
Collection.new(self,
|
33
|
+
Collection.new(self, inventory_class)
|
18
34
|
end
|
19
35
|
|
20
36
|
def inventory_sources
|
21
|
-
Collection.new(self,
|
37
|
+
Collection.new(self, inventory_source_class)
|
22
38
|
end
|
23
39
|
|
24
40
|
def inventory_updates
|
25
|
-
Collection.new(self,
|
26
|
-
end
|
27
|
-
|
28
|
-
def job_templates
|
29
|
-
Collection.new(self, JobTemplate)
|
41
|
+
Collection.new(self, inventory_update_class)
|
30
42
|
end
|
31
43
|
|
32
|
-
def
|
33
|
-
Collection.new(self,
|
44
|
+
def jobs
|
45
|
+
Collection.new(self, job_class)
|
34
46
|
end
|
35
47
|
|
36
|
-
def
|
37
|
-
Collection.new(self,
|
48
|
+
def job_templates
|
49
|
+
Collection.new(self, job_template_class)
|
38
50
|
end
|
39
51
|
|
40
52
|
def method_missing(method_name, *args, &block)
|
@@ -50,5 +62,45 @@ module AnsibleTowerClient
|
|
50
62
|
def respond_to_missing?(method, _include_private = false)
|
51
63
|
instance.respond_to?(method)
|
52
64
|
end
|
65
|
+
|
66
|
+
# Object class accessors patched for the appropriate version of the API
|
67
|
+
|
68
|
+
def ad_hoc_command_class
|
69
|
+
@ad_hoc_command_class ||= AnsibleTowerClient::AdHocCommand
|
70
|
+
end
|
71
|
+
|
72
|
+
def group_class
|
73
|
+
@group_class ||= AnsibleTowerClient::Group
|
74
|
+
end
|
75
|
+
|
76
|
+
def host_class
|
77
|
+
@host_class ||= AnsibleTowerClient::Host
|
78
|
+
end
|
79
|
+
|
80
|
+
def inventory_class
|
81
|
+
@inventory_class ||= AnsibleTowerClient::Inventory
|
82
|
+
end
|
83
|
+
|
84
|
+
def inventory_source_class
|
85
|
+
@inventory_source_class ||= AnsibleTowerClient::InventorySource
|
86
|
+
end
|
87
|
+
|
88
|
+
def inventory_update_class
|
89
|
+
@inventory_update_class ||= AnsibleTowerClient::InventoryUpdate
|
90
|
+
end
|
91
|
+
|
92
|
+
def job_class
|
93
|
+
@job_class ||= AnsibleTowerClient::Job
|
94
|
+
end
|
95
|
+
|
96
|
+
def job_template_class
|
97
|
+
@job_template_class ||= begin
|
98
|
+
if Gem::Version.new(version).between?(Gem::Version.new(2), Gem::Version.new(3))
|
99
|
+
AnsibleTowerClient::JobTemplateV2
|
100
|
+
else
|
101
|
+
AnsibleTowerClient::JobTemplate
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
53
105
|
end
|
54
106
|
end
|
@@ -2,6 +2,10 @@ module AnsibleTowerClient
|
|
2
2
|
class BaseModel < HashModel
|
3
3
|
attr_reader :api
|
4
4
|
|
5
|
+
def self.base_class
|
6
|
+
superclass == AnsibleTowerClient::BaseModel ? self : superclass.base_class
|
7
|
+
end
|
8
|
+
|
5
9
|
# Constructs and returns a new JSON wrapper class. Pass in a plain
|
6
10
|
# JSON string and it will automatically give you accessor methods
|
7
11
|
# that make it behave like a typical Ruby object. You may also pass
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,14 +5,14 @@ module AnsibleTowerClient
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def can_update?
|
8
|
-
response = api.get(
|
8
|
+
response = api.get(related['update'].to_s).body
|
9
9
|
|
10
10
|
updatable = JSON.parse(response)
|
11
11
|
updatable['can_update']
|
12
12
|
end
|
13
13
|
|
14
14
|
def update
|
15
|
-
response = api.post(
|
15
|
+
response = api.post(related['update'].to_s).body
|
16
16
|
|
17
17
|
update = JSON.parse(response)
|
18
18
|
api.inventory_updates.find(update['inventory_update'])
|
File without changes
|
File without changes
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module AnsibleTowerClient
|
2
|
+
class JobTemplate < BaseModel
|
3
|
+
def launch(options = {})
|
4
|
+
launch_url = "#{url}launch/"
|
5
|
+
response = api.post(launch_url, options).body
|
6
|
+
job = JSON.parse(response)
|
7
|
+
api.jobs.find(job['job'])
|
8
|
+
end
|
9
|
+
|
10
|
+
def survey_spec
|
11
|
+
spec_url = related['survey_spec']
|
12
|
+
return nil unless spec_url
|
13
|
+
api.get(spec_url).body
|
14
|
+
end
|
15
|
+
|
16
|
+
def survey_spec_hash
|
17
|
+
survey_spec.nil? ? {} : hashify(:survey_spec)
|
18
|
+
end
|
19
|
+
|
20
|
+
def extra_vars_hash
|
21
|
+
extra_vars.empty? ? {} : hashify(:extra_vars)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.endpoint
|
25
|
+
"job_templates".freeze
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -25,17 +25,5 @@ module AnsibleTowerClient
|
|
25
25
|
def api
|
26
26
|
@api ||= Api.new(connection)
|
27
27
|
end
|
28
|
-
|
29
|
-
def config
|
30
|
-
JSON.parse(api.get("config").body)
|
31
|
-
end
|
32
|
-
|
33
|
-
def version
|
34
|
-
config["version"]
|
35
|
-
end
|
36
|
-
|
37
|
-
def verify_credentials
|
38
|
-
JSON.parse(api.get("me").body).fetch_path("results", 0, "username")
|
39
|
-
end
|
40
28
|
end
|
41
29
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module AnsibleTowerClient
|
2
|
-
class
|
2
|
+
class JobTemplateV2 < JobTemplate
|
3
3
|
def launch(options = {})
|
4
4
|
launch_url = "#{url}launch/"
|
5
5
|
options = options.dup
|
@@ -12,24 +12,6 @@ module AnsibleTowerClient
|
|
12
12
|
api.jobs.find(job['job'])
|
13
13
|
end
|
14
14
|
|
15
|
-
def survey_spec
|
16
|
-
spec_url = related['survey_spec']
|
17
|
-
return nil unless spec_url
|
18
|
-
api.get(spec_url).body
|
19
|
-
end
|
20
|
-
|
21
|
-
def survey_spec_hash
|
22
|
-
survey_spec.nil? ? {} : hashify(:survey_spec)
|
23
|
-
end
|
24
|
-
|
25
|
-
def extra_vars_hash
|
26
|
-
extra_vars.empty? ? {} : hashify(:extra_vars)
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.endpoint
|
30
|
-
"job_templates".freeze
|
31
|
-
end
|
32
|
-
|
33
15
|
private
|
34
16
|
|
35
17
|
def with_temporary_changes(in_limit)
|
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.4.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: 2016-
|
12
|
+
date: 2016-10-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -156,23 +156,24 @@ files:
|
|
156
156
|
- bin/console
|
157
157
|
- bin/setup
|
158
158
|
- lib/ansible_tower_client.rb
|
159
|
-
- lib/ansible_tower_client/ad_hoc_command.rb
|
160
159
|
- lib/ansible_tower_client/api.rb
|
161
160
|
- lib/ansible_tower_client/base_model.rb
|
161
|
+
- lib/ansible_tower_client/base_models/ad_hoc_command.rb
|
162
|
+
- lib/ansible_tower_client/base_models/group.rb
|
163
|
+
- lib/ansible_tower_client/base_models/host.rb
|
164
|
+
- lib/ansible_tower_client/base_models/inventory.rb
|
165
|
+
- lib/ansible_tower_client/base_models/inventory_source.rb
|
166
|
+
- lib/ansible_tower_client/base_models/inventory_update.rb
|
167
|
+
- lib/ansible_tower_client/base_models/job.rb
|
168
|
+
- lib/ansible_tower_client/base_models/job_template.rb
|
162
169
|
- lib/ansible_tower_client/collection.rb
|
163
170
|
- lib/ansible_tower_client/connection.rb
|
164
171
|
- lib/ansible_tower_client/exception.rb
|
165
|
-
- lib/ansible_tower_client/group.rb
|
166
172
|
- lib/ansible_tower_client/hash_model.rb
|
167
|
-
- lib/ansible_tower_client/host.rb
|
168
|
-
- lib/ansible_tower_client/inventory.rb
|
169
|
-
- lib/ansible_tower_client/inventory_source.rb
|
170
|
-
- lib/ansible_tower_client/inventory_update.rb
|
171
|
-
- lib/ansible_tower_client/job.rb
|
172
|
-
- lib/ansible_tower_client/job_template.rb
|
173
173
|
- lib/ansible_tower_client/logging.rb
|
174
174
|
- lib/ansible_tower_client/middleware/raise_tower_error.rb
|
175
175
|
- lib/ansible_tower_client/null_logger.rb
|
176
|
+
- lib/ansible_tower_client/v2/job_template_v2.rb
|
176
177
|
- lib/ansible_tower_client/version.rb
|
177
178
|
homepage: https://github.com/ManageIQ/ansible_tower_client
|
178
179
|
licenses:
|