hammer_cli_foreman 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
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
|