hammer_cli_foreman_remote_execution 0.1.2 → 0.2.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/lib/hammer_cli_foreman_remote_execution.rb +2 -0
- data/lib/hammer_cli_foreman_remote_execution/interface_extensions.rb +30 -0
- data/lib/hammer_cli_foreman_remote_execution/job_invocation.rb +56 -19
- data/lib/hammer_cli_foreman_remote_execution/subnet_extensions.rb +16 -0
- data/lib/hammer_cli_foreman_remote_execution/version.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3bdff74fb5bd32d504b13ff551678c6c3ed12aa04d73528ce2cab9f72b46665
|
4
|
+
data.tar.gz: 7ef49c8ed3a5dcaf3d668af3f8f78400eace069dde81cfc04870321ceed58b85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbc9ff36630e21dde97f526c37f9ecd1de65a9d7022fdd507c8fc623c6104e09d8ce6504667e68af9b5d4fff11bafa160b7ffce2506fa6bd36792e55ce76aca5
|
7
|
+
data.tar.gz: f994bee91634dce1295bb824c9fd90197e3bdd9bfa07cca8daa579a0f28110f67fd25c31b3278612a5c1be8bf70b8c1928baef8107f55abd38b270154c8c309d
|
@@ -9,6 +9,8 @@ module HammerCLIForemanRemoteExecution
|
|
9
9
|
require 'hammer_cli_foreman_remote_execution/template_input'
|
10
10
|
require 'hammer_cli_foreman_remote_execution/foreign_input_set'
|
11
11
|
require 'hammer_cli_foreman_remote_execution/remote_execution_feature'
|
12
|
+
require 'hammer_cli_foreman_remote_execution/interface_extensions'
|
13
|
+
require 'hammer_cli_foreman_remote_execution/subnet_extensions'
|
12
14
|
|
13
15
|
def self.exception_handler_class
|
14
16
|
HammerCLIForeman::ExceptionHandler
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'hammer_cli_foreman/interface'
|
4
|
+
|
5
|
+
module HammerCLIForemanRemoteExecution
|
6
|
+
class InterfaceExtensionsInfo < ::HammerCLI::CommandExtensions
|
7
|
+
output do |definition|
|
8
|
+
definition.append do
|
9
|
+
field :execution, _('Execution'), Fields::Boolean
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module InterfaceExtensionsList
|
15
|
+
def format_type(nic)
|
16
|
+
type = super(nic)
|
17
|
+
if nic['execution']
|
18
|
+
if nic['primary'] || nic['provision']
|
19
|
+
type[-1] = ', '+_('execution') +')'
|
20
|
+
else
|
21
|
+
type += ' ('+_('execution') +')'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
type
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
::HammerCLIForeman::Interface.singleton_class.prepend InterfaceExtensionsList
|
29
|
+
::HammerCLIForeman::Interface::InfoCommand.extend_with(InterfaceExtensionsInfo.new)
|
30
|
+
end
|
@@ -8,18 +8,25 @@ module HammerCLIForemanRemoteExecution
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
module BaseOutput
|
12
|
+
def self.included(base)
|
13
|
+
base.output do
|
14
|
+
field :id, _('ID')
|
15
|
+
field :description, _('Description')
|
16
|
+
field :status_label, _('Status')
|
17
|
+
field :succeeded, _('Success')
|
18
|
+
field :failed, _('Failed')
|
19
|
+
field :pending, _('Pending')
|
20
|
+
field :total, _('Total')
|
21
|
+
field :start_at, _('Start')
|
22
|
+
field :randomized_ordering, _('Randomized ordering')
|
23
|
+
field :inputs, _('Inputs'), nil, :hide_blank => true
|
24
|
+
end
|
22
25
|
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class ListCommand < HammerCLIForeman::ListCommand
|
29
|
+
include BaseOutput
|
23
30
|
|
24
31
|
def extend_data(invocation)
|
25
32
|
JobInvocation.extend_data(invocation)
|
@@ -30,15 +37,43 @@ module HammerCLIForemanRemoteExecution
|
|
30
37
|
|
31
38
|
class InfoCommand < HammerCLIForeman::InfoCommand
|
32
39
|
extend WithoutNameOption
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
include BaseOutput
|
41
|
+
option '--show-inputs', :flag, _('Show the complete input of the job')
|
42
|
+
|
43
|
+
extend_output_definition do |definition|
|
44
|
+
definition.insert(:before, :total) do
|
45
|
+
field :missing, _('Missing')
|
46
|
+
end
|
47
|
+
definition.append do
|
48
|
+
field :job_category, _('Job Category')
|
49
|
+
field :mode, _('Mode')
|
50
|
+
field :cron_line, _('Cron line')
|
51
|
+
field :recurring_logic_id, _('Recurring logic ID')
|
52
|
+
field :hosts, _('Hosts')
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def adapter
|
57
|
+
if option_id
|
58
|
+
:yaml
|
59
|
+
else
|
60
|
+
:base
|
61
|
+
end
|
39
62
|
end
|
40
63
|
|
41
64
|
def extend_data(invocation)
|
65
|
+
if option_show_inputs?
|
66
|
+
invocation['template_invocations']&.each do |template|
|
67
|
+
input_values = template['template_invocation_input_values']
|
68
|
+
values_for_host = {}
|
69
|
+
input_values&.each do |input_value|
|
70
|
+
values_for_host[input_value['template_input_name']] = input_value['value']
|
71
|
+
end
|
72
|
+
hosts = invocation.dig('targeting', 'hosts')
|
73
|
+
host_index = hosts&.index { |h| h['id'] == template['host_id'] }
|
74
|
+
invocation['targeting']['hosts'][host_index][:inputs] = values_for_host if host_index
|
75
|
+
end
|
76
|
+
end
|
42
77
|
JobInvocation.extend_data(invocation)
|
43
78
|
end
|
44
79
|
|
@@ -187,9 +222,11 @@ module HammerCLIForemanRemoteExecution
|
|
187
222
|
def self.extend_data(invocation)
|
188
223
|
if (targeting = invocation['targeting']) && invocation['targeting']['hosts']
|
189
224
|
invocation['randomized_ordering'] = targeting['randomized_ordering']
|
190
|
-
|
191
|
-
|
225
|
+
|
226
|
+
hosts = targeting['hosts'].map do |host|
|
227
|
+
{ 'Name' => host['name'], 'Job status' => host['job_status'], 'Inputs' => host[:inputs] }.compact
|
192
228
|
end
|
229
|
+
invocation['hosts'] = hosts
|
193
230
|
end
|
194
231
|
|
195
232
|
if invocation['recurrence']
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'hammer_cli_foreman/subnet'
|
2
|
+
|
3
|
+
module HammerCLIForemanRemoteExecution
|
4
|
+
class SubnetExtensions < ::HammerCLI::CommandExtensions
|
5
|
+
output do |definition|
|
6
|
+
definition.insert(:after, _("Smart Proxies"))do
|
7
|
+
collection :remote_execution_proxies, _('Remote execution proxies'), :numbered => false do
|
8
|
+
field :id, _('Id')
|
9
|
+
field :name, _('Name')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
::HammerCLIForeman::Subnet::InfoCommand.extend_with(SubnetExtensions.new)
|
16
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hammer_cli_foreman_remote_execution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Foreman Remote Execution team
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 1980-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hammer_cli_foreman
|
@@ -66,10 +66,12 @@ files:
|
|
66
66
|
- lib/hammer_cli_foreman_remote_execution.rb
|
67
67
|
- lib/hammer_cli_foreman_remote_execution/foreign_input_set.rb
|
68
68
|
- lib/hammer_cli_foreman_remote_execution/i18n.rb
|
69
|
+
- lib/hammer_cli_foreman_remote_execution/interface_extensions.rb
|
69
70
|
- lib/hammer_cli_foreman_remote_execution/job_invocation.rb
|
70
71
|
- lib/hammer_cli_foreman_remote_execution/job_template.rb
|
71
72
|
- lib/hammer_cli_foreman_remote_execution/options/normalizers.rb
|
72
73
|
- lib/hammer_cli_foreman_remote_execution/remote_execution_feature.rb
|
74
|
+
- lib/hammer_cli_foreman_remote_execution/subnet_extensions.rb
|
73
75
|
- lib/hammer_cli_foreman_remote_execution/template_input.rb
|
74
76
|
- lib/hammer_cli_foreman_remote_execution/version.rb
|
75
77
|
- locale/Makefile
|
@@ -100,7 +102,7 @@ homepage: https://github.com/theforeman/hammer_cli_foreman_remote_execution
|
|
100
102
|
licenses:
|
101
103
|
- GPL-3.0-or-later
|
102
104
|
metadata: {}
|
103
|
-
post_install_message:
|
105
|
+
post_install_message:
|
104
106
|
rdoc_options: []
|
105
107
|
require_paths:
|
106
108
|
- lib
|
@@ -115,8 +117,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
117
|
- !ruby/object:Gem::Version
|
116
118
|
version: '0'
|
117
119
|
requirements: []
|
118
|
-
rubygems_version: 3.
|
119
|
-
signing_key:
|
120
|
+
rubygems_version: 3.1.2
|
121
|
+
signing_key:
|
120
122
|
specification_version: 4
|
121
123
|
summary: CLI for the Foreman remote execution plugin
|
122
124
|
test_files:
|