hammer_cli_foreman 0.0.11 → 0.0.12
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.
Potentially problematic release.
This version of hammer_cli_foreman might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/hammer_cli_foreman/architecture.rb +5 -9
- data/lib/hammer_cli_foreman/commands.rb +55 -0
- data/lib/hammer_cli_foreman/common_parameter.rb +2 -4
- data/lib/hammer_cli_foreman/compute_resource.rb +10 -14
- data/lib/hammer_cli_foreman/domain.rb +16 -17
- data/lib/hammer_cli_foreman/environment.rb +6 -10
- data/lib/hammer_cli_foreman/fact.rb +6 -8
- data/lib/hammer_cli_foreman/host.rb +59 -60
- data/lib/hammer_cli_foreman/hostgroup.rb +17 -16
- data/lib/hammer_cli_foreman/image.rb +11 -17
- data/lib/hammer_cli_foreman/location.rb +4 -8
- data/lib/hammer_cli_foreman/media.rb +7 -29
- data/lib/hammer_cli_foreman/model.rb +7 -11
- data/lib/hammer_cli_foreman/operating_system.rb +25 -22
- data/lib/hammer_cli_foreman/organization.rb +4 -8
- data/lib/hammer_cli_foreman/output/formatters.rb +3 -2
- data/lib/hammer_cli_foreman/parameter.rb +8 -9
- data/lib/hammer_cli_foreman/partition_table.rb +6 -10
- data/lib/hammer_cli_foreman/puppet_class.rb +12 -13
- data/lib/hammer_cli_foreman/report.rb +43 -47
- data/lib/hammer_cli_foreman/smart_class_parameter.rb +6 -7
- data/lib/hammer_cli_foreman/smart_proxy.rb +11 -17
- data/lib/hammer_cli_foreman/subnet.rb +17 -21
- data/lib/hammer_cli_foreman/template.rb +27 -32
- data/lib/hammer_cli_foreman/user.rb +19 -27
- data/lib/hammer_cli_foreman/version.rb +1 -1
- data/test/unit/commands_test.rb +79 -0
- data/test/unit/output/formatters_test.rb +10 -0
- data/test/unit/test_output_adapter.rb +6 -1
- metadata +7 -5
@@ -12,10 +12,8 @@ module HammerCLIForeman
|
|
12
12
|
class ListCommand < HammerCLIForeman::ListCommand
|
13
13
|
|
14
14
|
output do
|
15
|
-
|
16
|
-
|
17
|
-
field :name, "Name"
|
18
|
-
end
|
15
|
+
field :id, "Id"
|
16
|
+
field :name, "Name"
|
19
17
|
end
|
20
18
|
|
21
19
|
def retrieve_data
|
@@ -23,7 +21,10 @@ module HammerCLIForeman
|
|
23
21
|
end
|
24
22
|
|
25
23
|
def self.unhash_classes(classes)
|
26
|
-
classes.inject([]) { |list, (pp_module, pp_module_classes)| list + pp_module_classes }
|
24
|
+
clss = classes.first.inject([]) { |list, (pp_module, pp_module_classes)| list + pp_module_classes }
|
25
|
+
|
26
|
+
HammerCLI::Output::RecordCollection.new(clss, :meta => classes.meta)
|
27
|
+
|
27
28
|
end
|
28
29
|
|
29
30
|
apipie_options
|
@@ -32,14 +33,12 @@ module HammerCLIForeman
|
|
32
33
|
|
33
34
|
class InfoCommand < HammerCLIForeman::InfoCommand
|
34
35
|
|
35
|
-
#FIXME: show environments and
|
36
|
+
#FIXME: show environments, hostgroups, variables and parameters
|
36
37
|
output ListCommand.output_definition do
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
field :default_value, "Default value"
|
42
|
-
end
|
38
|
+
collection :lookup_keys, "Smart variables" do
|
39
|
+
from :lookup_key do
|
40
|
+
field :key, "Parameter"
|
41
|
+
field :default_value, "Default value"
|
43
42
|
end
|
44
43
|
end
|
45
44
|
end
|
@@ -50,7 +49,7 @@ module HammerCLIForeman
|
|
50
49
|
class SCParamsCommand < HammerCLIForeman::SmartClassParametersBriefList
|
51
50
|
|
52
51
|
apipie_options :without => [:host_id, :hostgroup_id, :puppetclass_id, :environment_id]
|
53
|
-
option ['--id', '--name'], 'PUPPET_CLASS_ID', 'puppet class id/name',
|
52
|
+
option ['--id', '--name'], 'PUPPET_CLASS_ID', 'puppet class id/name',
|
54
53
|
:attribute_name => :puppetclass_id, :required => true
|
55
54
|
end
|
56
55
|
|
@@ -11,18 +11,16 @@ module HammerCLIForeman
|
|
11
11
|
class ListCommand < HammerCLIForeman::ListCommand
|
12
12
|
|
13
13
|
output do
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
field :pending, "Pending"
|
25
|
-
end
|
14
|
+
field :id, "Id"
|
15
|
+
field :host_name, "Host"
|
16
|
+
field :reported_at, "Last report", Fields::Date
|
17
|
+
from "status" do
|
18
|
+
field :applied, "Applied"
|
19
|
+
field :restarted, "Restarted"
|
20
|
+
field :failed, "Failed"
|
21
|
+
field :failed_restarts, "Restart Failures"
|
22
|
+
field :skipped, "Skipped"
|
23
|
+
field :pending, "Pending"
|
26
24
|
end
|
27
25
|
end
|
28
26
|
|
@@ -35,44 +33,42 @@ module HammerCLIForeman
|
|
35
33
|
identifiers :id
|
36
34
|
|
37
35
|
output do
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
field :pending, "Pending"
|
50
|
-
end
|
36
|
+
field :id, "Id"
|
37
|
+
field :host_name, "Host"
|
38
|
+
field :reported_at, "Reported at", Fields::Date
|
39
|
+
label "Report status" do
|
40
|
+
from "status" do
|
41
|
+
field :applied, "Applied"
|
42
|
+
field :restarted, "Restarted"
|
43
|
+
field :failed, "Failed"
|
44
|
+
field :failed_restarts, "Restart Failures"
|
45
|
+
field :skipped, "Skipped"
|
46
|
+
field :pending, "Pending"
|
51
47
|
end
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
48
|
+
end
|
49
|
+
label "Report metrics" do
|
50
|
+
from "metrics" do
|
51
|
+
from "time" do
|
52
|
+
field :config_retrieval, "config_retrieval"
|
53
|
+
field :exec, "exec"
|
54
|
+
field :file, "file"
|
55
|
+
field :package, "package"
|
56
|
+
field :service, "service"
|
57
|
+
field :user, "user"
|
58
|
+
field :yumrepo, "yumrepo"
|
59
|
+
field :filebucket, "filebucket"
|
60
|
+
field :cron, "cron"
|
61
|
+
field :total, "total"
|
66
62
|
end
|
67
63
|
end
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
64
|
+
end
|
65
|
+
field :logs, "Logs", Fields::Collection do
|
66
|
+
from :log do
|
67
|
+
from :source do
|
68
|
+
field :source, "Resource"
|
69
|
+
end
|
70
|
+
from :message do
|
71
|
+
field :message, "Message"
|
76
72
|
end
|
77
73
|
end
|
78
74
|
end
|
@@ -21,19 +21,19 @@ module HammerCLIForeman
|
|
21
21
|
# FIXME: API returns doubled records, probably just if filtered by puppetclasses
|
22
22
|
# it seems group by environment is missing
|
23
23
|
# having the uniq to fix that
|
24
|
-
res
|
24
|
+
HammerCLI::Output::RecordCollection.new(res.uniq, :meta => res.meta)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
class SmartClassParametersList < SmartClassParametersBriefList
|
29
29
|
|
30
|
-
output do
|
30
|
+
output do
|
31
31
|
from :puppetclass do
|
32
32
|
field :name, "Puppet class"
|
33
33
|
field :id, "Class Id", Fields::Id
|
34
34
|
end
|
35
35
|
end
|
36
|
-
end
|
36
|
+
end
|
37
37
|
|
38
38
|
class SmartClassParameter < HammerCLI::Apipie::Command
|
39
39
|
|
@@ -63,7 +63,7 @@ module HammerCLIForeman
|
|
63
63
|
label "Value" do
|
64
64
|
field :id, 'Id'
|
65
65
|
field :match, 'Match'
|
66
|
-
field :value, 'Value'
|
66
|
+
field :value, 'Value'
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
@@ -71,9 +71,8 @@ module HammerCLIForeman
|
|
71
71
|
field :updated_at, "Updated at", Fields::Date
|
72
72
|
end
|
73
73
|
|
74
|
-
def
|
75
|
-
res =
|
76
|
-
res['override_value_order'] = res['override_value_order'].split("\n")
|
74
|
+
def extend_data(res)
|
75
|
+
res['override_value_order'] = res['override_value_order'].split("\n")
|
77
76
|
res['_environments'] = res['environments'].map { |e| e['environment']['name']}
|
78
77
|
res['_environment_ids'] = res['environments'].map { |e| e['environment']['id']}
|
79
78
|
res
|
@@ -13,11 +13,9 @@ module HammerCLIForeman
|
|
13
13
|
|
14
14
|
#FIXME: search by unknown type returns 500 from the server, propper error handling should resove this
|
15
15
|
output do
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
field :url, "URL"
|
20
|
-
end
|
16
|
+
field :id, "Id"
|
17
|
+
field :name, "Name"
|
18
|
+
field :url, "URL"
|
21
19
|
end
|
22
20
|
|
23
21
|
apipie_options
|
@@ -28,18 +26,15 @@ module HammerCLIForeman
|
|
28
26
|
|
29
27
|
action :show
|
30
28
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
29
|
+
output ListCommand.output_definition do
|
30
|
+
field :_features, "Features", Fields::List
|
31
|
+
field :created_at, "Created at", Fields::Date
|
32
|
+
field :updated_at, "Updated at", Fields::Date
|
35
33
|
end
|
36
34
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
field :created_at, "Created at", Fields::Date
|
41
|
-
field :updated_at, "Updated at", Fields::Date
|
42
|
-
end
|
35
|
+
def extend_data(proxy)
|
36
|
+
proxy['_features'] = proxy['features'].map { |f| f['feature']['name'] }
|
37
|
+
proxy
|
43
38
|
end
|
44
39
|
|
45
40
|
end
|
@@ -57,7 +52,7 @@ module HammerCLIForeman
|
|
57
52
|
|
58
53
|
|
59
54
|
class UpdateCommand < HammerCLIForeman::UpdateCommand
|
60
|
-
|
55
|
+
|
61
56
|
action :update
|
62
57
|
|
63
58
|
success_message "Smart proxy updated"
|
@@ -97,7 +92,6 @@ module HammerCLIForeman
|
|
97
92
|
end
|
98
93
|
end
|
99
94
|
|
100
|
-
|
101
95
|
autoload_subcommands
|
102
96
|
end
|
103
97
|
|
@@ -9,12 +9,10 @@ module HammerCLIForeman
|
|
9
9
|
resource ForemanApi::Resources::Subnet, "index"
|
10
10
|
|
11
11
|
output do
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
field :mask, "Mask"
|
17
|
-
end
|
12
|
+
field :id, "Id"
|
13
|
+
field :name, "Name"
|
14
|
+
field :network, "Network"
|
15
|
+
field :mask, "Mask"
|
18
16
|
end
|
19
17
|
|
20
18
|
apipie_options
|
@@ -26,21 +24,19 @@ module HammerCLIForeman
|
|
26
24
|
resource ForemanApi::Resources::Subnet, "show"
|
27
25
|
|
28
26
|
output ListCommand.output_definition do
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
field :to, "To"
|
43
|
-
end
|
27
|
+
field :priority, "Priority"
|
28
|
+
field :dns, "DNS", Fields::Server
|
29
|
+
field :dns_primary, "Primary DNS"
|
30
|
+
field :dns_secondary, "Secondary DNS"
|
31
|
+
field :domain_ids, "Domain ids", Fields::List
|
32
|
+
field :tftp, "TFTP", Fields::Server
|
33
|
+
field :tftp_id, "TFTP id"
|
34
|
+
field :dhcp, "DHCP", Fields::Server
|
35
|
+
field :dhcp_id, "DHCP id"
|
36
|
+
field :vlanid, "vlan id"
|
37
|
+
field :gateway, "Gateway"
|
38
|
+
field :from, "From"
|
39
|
+
field :to, "To"
|
44
40
|
end
|
45
41
|
|
46
42
|
end
|
@@ -12,22 +12,18 @@ module HammerCLIForeman
|
|
12
12
|
class ListCommand < HammerCLIForeman::ListCommand
|
13
13
|
|
14
14
|
output do
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
field :type, "Type"
|
19
|
-
end
|
15
|
+
field :id, "Id"
|
16
|
+
field :name, "Name"
|
17
|
+
field :type, "Type"
|
20
18
|
end
|
21
19
|
|
22
|
-
def
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
else
|
28
|
-
tpl["config_template"]["type"] = tpl["config_template"]["template_kind"]["name"] if tpl["config_template"]["template_kind"]
|
29
|
-
end
|
20
|
+
def extend_data(tpl)
|
21
|
+
if tpl["snippet"]
|
22
|
+
tpl["type"] = "snippet"
|
23
|
+
else
|
24
|
+
tpl["type"] = tpl["template_kind"]["name"] if tpl["template_kind"]
|
30
25
|
end
|
26
|
+
tpl
|
31
27
|
end
|
32
28
|
|
33
29
|
apipie_options
|
@@ -41,19 +37,16 @@ module HammerCLIForeman
|
|
41
37
|
identifiers :id
|
42
38
|
|
43
39
|
output ListCommand.output_definition do
|
44
|
-
|
45
|
-
field :operatingsystem_ids, "OS ids", Fields::List
|
46
|
-
end
|
40
|
+
field :operatingsystem_ids, "OS ids", Fields::List
|
47
41
|
end
|
48
42
|
|
49
|
-
def
|
50
|
-
|
51
|
-
|
52
|
-
template["config_template"]["type"] = "snippet"
|
43
|
+
def extend_data(tpl)
|
44
|
+
if tpl["snippet"]
|
45
|
+
tpl["type"] = "snippet"
|
53
46
|
else
|
54
|
-
|
47
|
+
tpl["type"] = tpl["template_kind"]["name"] if tpl["template_kind"]
|
55
48
|
end
|
56
|
-
|
49
|
+
tpl
|
57
50
|
end
|
58
51
|
|
59
52
|
end
|
@@ -65,14 +58,13 @@ module HammerCLIForeman
|
|
65
58
|
desc "List available config template kinds."
|
66
59
|
|
67
60
|
output do
|
68
|
-
|
69
|
-
field :name, "Name"
|
70
|
-
end
|
61
|
+
field :name, "Name"
|
71
62
|
end
|
72
63
|
|
73
64
|
def retrieve_data
|
74
|
-
|
75
|
-
|
65
|
+
kinds = super
|
66
|
+
kinds << { "name" => "snippet" }
|
67
|
+
kinds
|
76
68
|
end
|
77
69
|
|
78
70
|
resource ForemanApi::Resources::TemplateKind, "index"
|
@@ -87,7 +79,7 @@ module HammerCLIForeman
|
|
87
79
|
identifiers :id
|
88
80
|
|
89
81
|
def print_data(template)
|
90
|
-
puts template["
|
82
|
+
puts template["template"]
|
91
83
|
end
|
92
84
|
|
93
85
|
end
|
@@ -107,8 +99,9 @@ module HammerCLIForeman
|
|
107
99
|
end
|
108
100
|
|
109
101
|
def template_kind_id
|
110
|
-
kinds =
|
111
|
-
|
102
|
+
kinds = HammerCLIForeman.collection_to_common_format(
|
103
|
+
ForemanApi::Resources::TemplateKind.new(resource_config).index()[0])
|
104
|
+
table = kinds.inject({}){ |result, k| result.update(k["name"] => k["id"]) }
|
112
105
|
table[type]
|
113
106
|
end
|
114
107
|
|
@@ -132,8 +125,9 @@ module HammerCLIForeman
|
|
132
125
|
end
|
133
126
|
|
134
127
|
def template_kind_id
|
135
|
-
kinds =
|
136
|
-
|
128
|
+
kinds = HammerCLIForeman.collection_to_common_format(
|
129
|
+
ForemanApi::Resources::TemplateKind.new(resource_config).index()[0])
|
130
|
+
table = kinds.inject({}){ |result, k| result.update(k["name"] => k["id"]) }
|
137
131
|
table[type]
|
138
132
|
end
|
139
133
|
|
@@ -154,6 +148,7 @@ module HammerCLIForeman
|
|
154
148
|
|
155
149
|
|
156
150
|
autoload_subcommands
|
151
|
+
|
157
152
|
end
|
158
153
|
|
159
154
|
end
|
@@ -4,25 +4,21 @@ require 'hammer_cli_foreman/commands'
|
|
4
4
|
|
5
5
|
module HammerCLIForeman
|
6
6
|
|
7
|
-
class User < HammerCLI::
|
7
|
+
class User < HammerCLI::Apipie::Command
|
8
|
+
resource ForemanApi::Resources::User
|
9
|
+
|
8
10
|
class ListCommand < HammerCLIForeman::ListCommand
|
9
|
-
resource ForemanApi::Resources::User, "index"
|
10
|
-
|
11
|
-
def retrieve_data
|
12
|
-
data = super
|
13
|
-
data.map do |d|
|
14
|
-
d["user"]["full_name"] = [d["user"]["firstname"], d["user"]["lastname"]].join(' ')
|
15
|
-
d
|
16
|
-
end
|
17
|
-
end
|
18
11
|
|
19
12
|
output do
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
13
|
+
field :id, "Id"
|
14
|
+
field :login, "Login"
|
15
|
+
field :full_name, "Name"
|
16
|
+
field :mail, "Email"
|
17
|
+
end
|
18
|
+
|
19
|
+
def extend_data(user)
|
20
|
+
user["full_name"] = [user["firstname"], user["lastname"]].join(' ')
|
21
|
+
user
|
26
22
|
end
|
27
23
|
|
28
24
|
apipie_options
|
@@ -31,21 +27,17 @@ module HammerCLIForeman
|
|
31
27
|
|
32
28
|
class InfoCommand < HammerCLIForeman::InfoCommand
|
33
29
|
|
34
|
-
resource ForemanApi::Resources::User, "show"
|
35
30
|
identifiers :id
|
36
31
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
32
|
+
output ListCommand.output_definition do
|
33
|
+
field :last_login_on, "Last login", Fields::Date
|
34
|
+
field :created_at, "Created at", Fields::Date
|
35
|
+
field :updated_at, "Updated at", Fields::Date
|
41
36
|
end
|
42
37
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
field :created_at, "Created at", Fields::Date
|
47
|
-
field :updated_at, "Updated at", Fields::Date
|
48
|
-
end
|
38
|
+
def extend_data(user)
|
39
|
+
user["full_name"] = [user["firstname"], user["lastname"]].join(' ')
|
40
|
+
user
|
49
41
|
end
|
50
42
|
|
51
43
|
end
|