hammer_cli_katello 0.0.6 → 0.0.7
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 +8 -8
- data/lib/hammer_cli_katello.rb +15 -5
- data/lib/hammer_cli_katello/activation_key.rb +119 -42
- data/lib/hammer_cli_katello/content_host.rb +8 -0
- data/lib/hammer_cli_katello/content_host_errata.rb +15 -0
- data/lib/hammer_cli_katello/content_view.rb +19 -2
- data/lib/hammer_cli_katello/content_view_version.rb +12 -5
- data/lib/hammer_cli_katello/docker.rb +13 -0
- data/lib/hammer_cli_katello/docker_image.rb +36 -0
- data/lib/hammer_cli_katello/docker_tag.rb +35 -0
- data/lib/hammer_cli_katello/erratum.rb +38 -0
- data/lib/hammer_cli_katello/host_collection.rb +62 -4
- data/lib/hammer_cli_katello/host_collection_erratum.rb +24 -0
- data/lib/hammer_cli_katello/host_collection_package.rb +44 -0
- data/lib/hammer_cli_katello/host_collection_package_group.rb +44 -0
- data/lib/hammer_cli_katello/id_resolver.rb +5 -2
- data/lib/hammer_cli_katello/product.rb +17 -2
- data/lib/hammer_cli_katello/repository.rb +23 -0
- data/lib/hammer_cli_katello/version.rb +1 -1
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWZlM2QzZWY4MTVmYjA3N2QwMTZkNTUwODJhNWYxOGQ5MWY4ZDgzZg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MjE0OTM2ZDg2ZjY1NGYzZjE3NWNmZjY3NDM2MjBiZWVjNWFmMjE3NQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YzI4OTE0MGY4Nzg1NGRiMDc3NjczYmFmMWIwY2RlZDJmYjA1OGQyZjEyZGJh
|
10
|
+
YjFmYmJhMTUyYzhmODNjMjc1OWNjNjM2NDg5OWI4MmQ5NGRiYTcyNWQwOTFk
|
11
|
+
NTQ0YjdjZThmOTA3NWRiNDI5YmI1OGUzODA4MzM0YzQ2OWMyY2Q=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZWFjNmEzZjUzMTYyZGEyMzI0MjZlZGUxNWExOGRiYzNkM2I0Njg2ZGE0NzQw
|
14
|
+
YjA2NWJjYTQxYWMyMjQwYWYyY2Y5ZGE3OWI3NGM1YzYxZmRjMWJhOWE2OWFk
|
15
|
+
YWI4OTM5YmMwYWMwNThhNDZlMTczNTkxNGM1YjBjNDAyM2ZjMGI=
|
data/lib/hammer_cli_katello.rb
CHANGED
@@ -34,18 +34,18 @@ module HammerCLIKatello
|
|
34
34
|
'hammer_cli_katello/organization'
|
35
35
|
)
|
36
36
|
|
37
|
-
HammerCLI::MainCommand.lazy_subcommand("gpg", _("
|
37
|
+
HammerCLI::MainCommand.lazy_subcommand("gpg", _("Manipulate GPG Key actions on the server"),
|
38
38
|
'HammerCLIKatello::GpgKeyCommand',
|
39
39
|
'hammer_cli_katello/gpg_key'
|
40
40
|
)
|
41
41
|
|
42
42
|
HammerCLI::MainCommand.lazy_subcommand("lifecycle-environment",
|
43
|
-
_("
|
43
|
+
_("Manipulate lifecycle_environments on the server"),
|
44
44
|
'HammerCLIKatello::LifecycleEnvironmentCommand',
|
45
45
|
'hammer_cli_katello/lifecycle_environment'
|
46
46
|
)
|
47
47
|
|
48
|
-
HammerCLI::MainCommand.lazy_subcommand("ping", _("
|
48
|
+
HammerCLI::MainCommand.lazy_subcommand("ping", _("Get the status of the server"),
|
49
49
|
'HammerCLIKatello::PingCommand',
|
50
50
|
'hammer_cli_katello/ping'
|
51
51
|
)
|
@@ -66,7 +66,7 @@ module HammerCLIKatello
|
|
66
66
|
)
|
67
67
|
|
68
68
|
HammerCLI::MainCommand.lazy_subcommand("repository-set",
|
69
|
-
_("
|
69
|
+
_("Manipulate repository sets on the server"),
|
70
70
|
'HammerCLIKatello::RepositorySetCommand',
|
71
71
|
'hammer_cli_katello/repository_set'
|
72
72
|
)
|
@@ -87,7 +87,7 @@ module HammerCLIKatello
|
|
87
87
|
)
|
88
88
|
|
89
89
|
HammerCLI::MainCommand.lazy_subcommand("content-host",
|
90
|
-
_("
|
90
|
+
_("Manipulate content hosts on the server"),
|
91
91
|
'HammerCLIKatello::ContentHostCommand',
|
92
92
|
'hammer_cli_katello/content_host'
|
93
93
|
)
|
@@ -111,4 +111,14 @@ module HammerCLIKatello
|
|
111
111
|
'HammerCLIKatello::PackageGroupCommand',
|
112
112
|
'hammer_cli_katello/package_group'
|
113
113
|
)
|
114
|
+
|
115
|
+
HammerCLI::MainCommand.lazy_subcommand("erratum", _("Manipulate errata"),
|
116
|
+
'HammerCLIKatello::ErratumCommand',
|
117
|
+
'hammer_cli_katello/erratum'
|
118
|
+
)
|
119
|
+
|
120
|
+
HammerCLI::MainCommand.lazy_subcommand("docker", _("Manipulate docker content"),
|
121
|
+
'HammerCLIKatello::DockerCommand',
|
122
|
+
'hammer_cli_katello/docker'
|
123
|
+
)
|
114
124
|
end
|
@@ -26,7 +26,7 @@ module HammerCLIKatello
|
|
26
26
|
data["format_consumed"] = _("%{consumed} of %{limit}") %
|
27
27
|
{
|
28
28
|
:consumed => data["usage_count"],
|
29
|
-
:limit => data["
|
29
|
+
:limit => data["unlimited_content_hosts"] ? _("Unlimited") : data["max_content_hosts"]
|
30
30
|
}
|
31
31
|
data
|
32
32
|
end
|
@@ -51,6 +51,7 @@ module HammerCLIKatello
|
|
51
51
|
field :name, _("Name")
|
52
52
|
field :id, _("ID")
|
53
53
|
field :description, _("Description")
|
54
|
+
field :format_limit, _("Content Host Limit")
|
54
55
|
from :environment do
|
55
56
|
field :name, _("Lifecycle Environment")
|
56
57
|
end
|
@@ -64,6 +65,12 @@ module HammerCLIKatello
|
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
68
|
+
def extend_data(data)
|
69
|
+
data["format_limit"] =
|
70
|
+
data["unlimited_content_hosts"] ? _("Unlimited") : data["max_content_hosts"]
|
71
|
+
data
|
72
|
+
end
|
73
|
+
|
67
74
|
build_options
|
68
75
|
end
|
69
76
|
|
@@ -84,6 +91,19 @@ module HammerCLIKatello
|
|
84
91
|
build_options
|
85
92
|
end
|
86
93
|
|
94
|
+
class CopyCommand < HammerCLIKatello::CreateCommand
|
95
|
+
include LifecycleEnvironmentNameResolvable
|
96
|
+
action :copy
|
97
|
+
|
98
|
+
desc _("Copy an activation key")
|
99
|
+
command_name "copy"
|
100
|
+
|
101
|
+
build_options
|
102
|
+
|
103
|
+
success_message _("Activation key copied")
|
104
|
+
failure_message _("Could not copy the activation key")
|
105
|
+
end
|
106
|
+
|
87
107
|
class UpdateCommand < HammerCLIKatello::UpdateCommand
|
88
108
|
include LifecycleEnvironmentNameResolvable
|
89
109
|
action :update
|
@@ -110,70 +130,116 @@ module HammerCLIKatello
|
|
110
130
|
output do
|
111
131
|
field :id, _("ID")
|
112
132
|
field :product_name, _("Name")
|
133
|
+
field :format_consumed, _("Attached")
|
134
|
+
field :amount, _("Quantity")
|
135
|
+
field :start_date, _("Start Date"), Fields::Date
|
136
|
+
field :end_date, _("End Date"), Fields::Date
|
137
|
+
field :support_level, _("Support")
|
138
|
+
field :contract_number, _("Contract")
|
139
|
+
field :account_number, _("Account")
|
113
140
|
end
|
114
141
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
142
|
+
def extend_data(data)
|
143
|
+
data["format_consumed"] = _("%{consumed} of %{limit}") %
|
144
|
+
{
|
145
|
+
:consumed => data["consumed"],
|
146
|
+
:limit => data["quantity"] == -1 ? _("Unlimited") : data["quantity"]
|
147
|
+
}
|
148
|
+
data
|
121
149
|
end
|
122
150
|
|
151
|
+
option "--id", "ID", _("ID of activation key"),
|
152
|
+
:attribute_name => :option_activation_key_id
|
153
|
+
option "--name", "NAME", _("Name of activation key"),
|
154
|
+
:attribute_name => :option_activation_key_name
|
155
|
+
|
123
156
|
validate_options do
|
124
|
-
|
157
|
+
any(:option_activation_key_id, :option_activation_key_name).required
|
158
|
+
end
|
159
|
+
|
160
|
+
build_options do |o|
|
161
|
+
o.expand.only(:organizations)
|
162
|
+
o.without(
|
163
|
+
:system_id,
|
164
|
+
:activation_key_id,
|
165
|
+
:full_results,
|
166
|
+
:search,
|
167
|
+
:order,
|
168
|
+
:sort,
|
169
|
+
:page,
|
170
|
+
:per_page
|
171
|
+
)
|
125
172
|
end
|
126
173
|
end
|
127
174
|
|
128
|
-
class
|
129
|
-
|
175
|
+
class AddSubscriptionsCommand < HammerCLIKatello::SingleResourceCommand
|
176
|
+
action :add_subscriptions
|
130
177
|
|
131
178
|
desc "Add subscription"
|
132
179
|
command_name "add-subscription"
|
133
180
|
|
134
|
-
option
|
135
|
-
|
136
|
-
option '--quantity', 'QUANTITY', _("subscription quantity")
|
137
|
-
|
138
|
-
def request_params
|
139
|
-
{
|
140
|
-
'activation_key_id' => option_id,
|
141
|
-
'id' => option_subscription_id,
|
142
|
-
'quantity' => option_quantity
|
143
|
-
}
|
144
|
-
end
|
181
|
+
option "--subscription-id", "SUBSCRIPTION_ID", _("ID of subscription"),
|
182
|
+
:attribute_name => :option_subscription_id, :required => true
|
145
183
|
|
146
|
-
|
147
|
-
|
184
|
+
build_options do |o|
|
185
|
+
o.expand.except(:subscriptions)
|
186
|
+
o.without(:subscriptions)
|
148
187
|
end
|
149
188
|
|
150
189
|
success_message _("Subscription added to activation key")
|
151
190
|
failure_message _("Could not add subscription to activation key")
|
152
191
|
end
|
153
192
|
|
154
|
-
class RemoveSubscriptionCommand < HammerCLIKatello::
|
155
|
-
|
193
|
+
class RemoveSubscriptionCommand < HammerCLIKatello::SingleResourceCommand
|
194
|
+
action :remove_subscriptions
|
156
195
|
|
157
196
|
desc _("Remove subscription")
|
158
197
|
command_name "remove-subscription"
|
159
198
|
|
160
|
-
option
|
161
|
-
|
199
|
+
option "--subscription-id", "SUBSCRIPTION_ID", _("ID of subscription"),
|
200
|
+
:attribute_name => :option_subscription_id, :required => true
|
162
201
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
'activation_key_id' => option_id
|
167
|
-
}
|
202
|
+
build_options do |o|
|
203
|
+
o.expand.except(:subscriptions)
|
204
|
+
o.without(:subscriptions)
|
168
205
|
end
|
169
206
|
|
170
|
-
validate_options do
|
171
|
-
all(:option_id, :option_subscription_id).required
|
172
|
-
end
|
173
207
|
success_message _("Subscription removed from activation key")
|
174
208
|
failure_message _("Could not remove subscription from activation key")
|
175
209
|
end
|
176
210
|
|
211
|
+
class ProductContentCommand < HammerCLIKatello::ListCommand
|
212
|
+
action :product_content
|
213
|
+
|
214
|
+
desc _("List associated products")
|
215
|
+
command_name "product-content"
|
216
|
+
|
217
|
+
output do
|
218
|
+
from :content do
|
219
|
+
field :id, _("ID")
|
220
|
+
field :name, _("Name")
|
221
|
+
field :type, _("Type")
|
222
|
+
field :contentUrl, _("URL")
|
223
|
+
field :gpgUrl, _("GPG Key")
|
224
|
+
field :label, _("Label")
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
build_options
|
229
|
+
end
|
230
|
+
|
231
|
+
class ContentOverrideCommand < HammerCLIKatello::SingleResourceCommand
|
232
|
+
action :content_override
|
233
|
+
|
234
|
+
desc _("Override product content defaults")
|
235
|
+
command_name "content-override"
|
236
|
+
|
237
|
+
build_options
|
238
|
+
|
239
|
+
success_message _("Updated content override")
|
240
|
+
failure_message _("Could not update content override")
|
241
|
+
end
|
242
|
+
|
177
243
|
class HostCollectionsCommand < HammerCLIKatello::ListCommand
|
178
244
|
resource :host_collections, :index
|
179
245
|
|
@@ -185,16 +251,27 @@ module HammerCLIKatello
|
|
185
251
|
field :name, _("Name")
|
186
252
|
end
|
187
253
|
|
188
|
-
option
|
254
|
+
option "--id", "ID", _("ID of activation key"),
|
255
|
+
:attribute_name => :option_activation_key_id
|
256
|
+
option "--name", "NAME", _("Name of activation key"),
|
257
|
+
:attribute_name => :option_activation_key_name
|
189
258
|
|
190
|
-
|
191
|
-
|
192
|
-
'activation_key_id' => option_id
|
193
|
-
}
|
259
|
+
validate_options do
|
260
|
+
any(:option_activation_key_id, :option_activation_key_name).required
|
194
261
|
end
|
195
262
|
|
196
|
-
|
197
|
-
|
263
|
+
build_options do |o|
|
264
|
+
o.expand.only(:organizations)
|
265
|
+
o.without(
|
266
|
+
:system_id,
|
267
|
+
:activation_key_id,
|
268
|
+
:full_results,
|
269
|
+
:search,
|
270
|
+
:order,
|
271
|
+
:sort,
|
272
|
+
:page,
|
273
|
+
:per_page
|
274
|
+
)
|
198
275
|
end
|
199
276
|
end
|
200
277
|
|
@@ -19,6 +19,9 @@ module HammerCLIKatello
|
|
19
19
|
output do
|
20
20
|
field :uuid, _("ID")
|
21
21
|
field :name, _("Name")
|
22
|
+
from :errata_counts do
|
23
|
+
field :total, _("Available Errata")
|
24
|
+
end
|
22
25
|
end
|
23
26
|
|
24
27
|
build_options
|
@@ -44,6 +47,11 @@ module HammerCLIKatello
|
|
44
47
|
field :entitlementStatus, _("Entitlement Status")
|
45
48
|
field :releaseVer, _("Release Version")
|
46
49
|
field :autoheal, _("Autoheal")
|
50
|
+
from :errata_counts do
|
51
|
+
field :security, _("Security Errata")
|
52
|
+
field :bugfix, _("Bugfix Errata")
|
53
|
+
field :enhancement, _("Enhancement Errata")
|
54
|
+
end
|
47
55
|
end
|
48
56
|
|
49
57
|
build_options
|
@@ -12,6 +12,21 @@ module HammerCLIKatello
|
|
12
12
|
build_options
|
13
13
|
end
|
14
14
|
|
15
|
+
class ListCommand < HammerCLIKatello::ListCommand
|
16
|
+
resource :systems, :errata
|
17
|
+
command_name "list"
|
18
|
+
|
19
|
+
output do
|
20
|
+
field :id, _("ID")
|
21
|
+
field :errata_id, _("Erratum ID")
|
22
|
+
field :type, _("Type")
|
23
|
+
field :title, _("Title")
|
24
|
+
field :available, _("Available")
|
25
|
+
end
|
26
|
+
|
27
|
+
build_options
|
28
|
+
end
|
29
|
+
|
15
30
|
class InfoCommand < HammerCLIKatello::InfoCommand
|
16
31
|
resource :system_errata, :show
|
17
32
|
command_name "info"
|
@@ -33,7 +33,13 @@ module HammerCLIKatello
|
|
33
33
|
field :name, _("Organization")
|
34
34
|
end
|
35
35
|
|
36
|
-
collection :
|
36
|
+
collection :_yum_repositories, _("Yum Repositories") do
|
37
|
+
field :id, _("ID")
|
38
|
+
field :name, _("Name")
|
39
|
+
field :label, _("Label")
|
40
|
+
end
|
41
|
+
|
42
|
+
collection :_docker_repositories, _("Docker Repositories") do
|
37
43
|
field :id, _("ID")
|
38
44
|
field :name, _("Name")
|
39
45
|
field :label, _("Label")
|
@@ -48,7 +54,7 @@ module HammerCLIKatello
|
|
48
54
|
field :updated_at, _("Updated"), Fields::Date
|
49
55
|
end
|
50
56
|
|
51
|
-
collection :environments, _("Environments") do
|
57
|
+
collection :environments, _("Lifecycle Environments") do
|
52
58
|
field :id, _("ID")
|
53
59
|
field :name, _("Name")
|
54
60
|
end
|
@@ -69,6 +75,17 @@ module HammerCLIKatello
|
|
69
75
|
end
|
70
76
|
end
|
71
77
|
|
78
|
+
def extend_data(data)
|
79
|
+
data["_yum_repositories"] = data["repositories"].select do |repo|
|
80
|
+
repo["content_type"] == "yum"
|
81
|
+
end
|
82
|
+
|
83
|
+
data["_docker_repositories"] = data["repositories"].select do |repo|
|
84
|
+
repo["content_type"] == "docker"
|
85
|
+
end
|
86
|
+
data
|
87
|
+
end
|
88
|
+
|
72
89
|
build_options
|
73
90
|
end
|
74
91
|
|
@@ -26,6 +26,7 @@ module HammerCLIKatello
|
|
26
26
|
field :id, _("ID")
|
27
27
|
field :name, _("Name")
|
28
28
|
field :version, _("Version")
|
29
|
+
field :description, _("Description")
|
29
30
|
|
30
31
|
from :content_view do
|
31
32
|
field :id, _("Content View ID")
|
@@ -67,6 +68,10 @@ module HammerCLIKatello
|
|
67
68
|
success_message _("Content view is being promoted with task %{id}")
|
68
69
|
failure_message _("Could not promote the content view")
|
69
70
|
|
71
|
+
option "--force",
|
72
|
+
:flag,
|
73
|
+
_("force content view promotion and bypass lifecycle environment restriction")
|
74
|
+
|
70
75
|
option "--from-lifecycle-environment", "FROM_ENVIRONMENT",
|
71
76
|
_("Name of the source environment"), :attribute_name => :option_environment_name
|
72
77
|
option "--from-lifecycle-environment-id", "FROM_ENVIRONMENT_ID",
|
@@ -76,18 +81,20 @@ module HammerCLIKatello
|
|
76
81
|
option "--to-lifecycle-environment-id", "TO_ENVIRONMENT_ID",
|
77
82
|
_("Id of the target environment"), :attribute_name => :option_to_environment_id
|
78
83
|
|
79
|
-
def
|
80
|
-
|
81
|
-
|
82
|
-
env_search_opts = {
|
84
|
+
def environment_search_options
|
85
|
+
{
|
83
86
|
"option_id" => options["option_to_environment_id"],
|
84
87
|
"option_name" => options["option_to_environment_name"],
|
85
88
|
"option_organization_id" => options["option_organization_id"],
|
86
89
|
"option_organization_name" => options["option_organization_name"],
|
87
90
|
"option_organization_label" => options["option_organization_label"]
|
88
91
|
}
|
92
|
+
end
|
89
93
|
|
90
|
-
|
94
|
+
def request_params
|
95
|
+
params = super
|
96
|
+
params['environment_id'] = resolver.lifecycle_environment_id(environment_search_options)
|
97
|
+
params['force'] = option_force?
|
91
98
|
params
|
92
99
|
end
|
93
100
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'hammer_cli_katello/docker_image'
|
2
|
+
require 'hammer_cli_katello/docker_tag'
|
3
|
+
|
4
|
+
module HammerCLIKatello
|
5
|
+
class DockerCommand < HammerCLIKatello::Command
|
6
|
+
subcommand 'image',
|
7
|
+
HammerCLIKatello::DockerImageCommand.desc,
|
8
|
+
HammerCLIKatello::DockerImageCommand
|
9
|
+
subcommand 'tag',
|
10
|
+
HammerCLIKatello::DockerTagCommand.desc,
|
11
|
+
HammerCLIKatello::DockerTagCommand
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class DockerImageCommand < HammerCLIKatello::Command
|
3
|
+
resource :docker_images
|
4
|
+
command_name 'image'
|
5
|
+
desc 'Manage docker images'
|
6
|
+
|
7
|
+
class ListCommand < HammerCLIKatello::ListCommand
|
8
|
+
output do
|
9
|
+
field :id, _("ID")
|
10
|
+
field :image_id, _("Image ID")
|
11
|
+
field :size, _("Size")
|
12
|
+
end
|
13
|
+
|
14
|
+
build_options do |o|
|
15
|
+
o.expand.including(:products, :organizations, :content_views)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class InfoCommand < HammerCLIKatello::InfoCommand
|
20
|
+
output do
|
21
|
+
field :id, _("ID")
|
22
|
+
field :image_id, _("Image ID")
|
23
|
+
field :size, _("Size")
|
24
|
+
|
25
|
+
collection :tags, _("Tags") do
|
26
|
+
field :repository_id, _("Repository ID")
|
27
|
+
field :tag, _("Tag")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
build_options
|
32
|
+
end
|
33
|
+
|
34
|
+
autoload_subcommands
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class DockerTagCommand < HammerCLIKatello::Command
|
3
|
+
resource :docker_tags
|
4
|
+
command_name 'tag'
|
5
|
+
desc 'Manage docker tags'
|
6
|
+
|
7
|
+
class ListCommand < HammerCLIKatello::ListCommand
|
8
|
+
output do
|
9
|
+
field :id, _("ID")
|
10
|
+
field :tag, _("Tag")
|
11
|
+
field :repository_id, _("Repository ID")
|
12
|
+
end
|
13
|
+
|
14
|
+
build_options do |o|
|
15
|
+
o.expand.including(:products, :organizations, :content_views)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class InfoCommand < HammerCLIKatello::InfoCommand
|
20
|
+
output do
|
21
|
+
field :id, _("ID")
|
22
|
+
field :tag, _("Tag")
|
23
|
+
field :repository_id, _("Repository ID")
|
24
|
+
|
25
|
+
from :image do
|
26
|
+
field :id, _("Docker Image ID")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
build_options
|
31
|
+
end
|
32
|
+
|
33
|
+
autoload_subcommands
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
|
3
|
+
class ErratumCommand < HammerCLIKatello::Command
|
4
|
+
resource :errata
|
5
|
+
|
6
|
+
class ListCommand < HammerCLIKatello::ListCommand
|
7
|
+
output do
|
8
|
+
field :id, _("ID")
|
9
|
+
field :errata_id, _("Errata ID")
|
10
|
+
field :type, _("Type")
|
11
|
+
field :title, _("Title")
|
12
|
+
end
|
13
|
+
|
14
|
+
build_options do |o|
|
15
|
+
o.expand.including(:products, :organizations, :content_views)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class InfoCommand < HammerCLIKatello::InfoCommand
|
20
|
+
output do
|
21
|
+
field :id, _("ID")
|
22
|
+
field :errata_id, _("Errata ID")
|
23
|
+
field :title, _("Title")
|
24
|
+
field :type, _("Type")
|
25
|
+
field :severity, _("Severity")
|
26
|
+
field :issued, _("Issued")
|
27
|
+
field :updated, _("Updated")
|
28
|
+
field :description, _("Description")
|
29
|
+
field :summary, _("Summary")
|
30
|
+
field :solution, _("Solution")
|
31
|
+
end
|
32
|
+
|
33
|
+
build_options
|
34
|
+
end
|
35
|
+
|
36
|
+
autoload_subcommands
|
37
|
+
end
|
38
|
+
end
|
@@ -5,10 +5,10 @@ module HammerCLIKatello
|
|
5
5
|
|
6
6
|
module UuidRequestable
|
7
7
|
def self.included(base)
|
8
|
-
base.option
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
base.option("--host-collection-ids",
|
9
|
+
"HOST_COLLECTION_IDS",
|
10
|
+
_("Array of content host ids to replace the content hosts in host collection"),
|
11
|
+
:format => HammerCLI::Options::Normalizers::List.new)
|
12
12
|
end
|
13
13
|
|
14
14
|
def request_params
|
@@ -125,5 +125,63 @@ module HammerCLIKatello
|
|
125
125
|
end
|
126
126
|
|
127
127
|
autoload_subcommands
|
128
|
+
|
129
|
+
class ContentBaseCommand < DeleteCommand
|
130
|
+
resource :systems_bulk_actions
|
131
|
+
|
132
|
+
build_options do |o|
|
133
|
+
o.without(:content_type, :content, :ids, :search)
|
134
|
+
end
|
135
|
+
|
136
|
+
def request_params
|
137
|
+
params = super
|
138
|
+
params['content'] = content
|
139
|
+
params['content_type'] = content_type
|
140
|
+
params['included'] = { :search => "host_collection_ids:#{params['id']}" }
|
141
|
+
params.delete('id')
|
142
|
+
params
|
143
|
+
end
|
144
|
+
|
145
|
+
def resolver
|
146
|
+
api = HammerCLI::Connection.get("foreman").api
|
147
|
+
custom_resolver = Class.new(HammerCLIKatello::IdResolver) do
|
148
|
+
def systems_bulk_action_id(options)
|
149
|
+
host_collection_id(options)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
custom_resolver.new(api, HammerCLIKatello::Searchables.new)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
class InstallContentBaseCommand < ContentBaseCommand
|
157
|
+
action :install_content
|
158
|
+
command_name "install"
|
159
|
+
end
|
160
|
+
|
161
|
+
class UpdateContentBaseCommand < ContentBaseCommand
|
162
|
+
action :update_content
|
163
|
+
command_name "update"
|
164
|
+
end
|
165
|
+
|
166
|
+
class RemoveContentBaseCommand < ContentBaseCommand
|
167
|
+
action :remove_content
|
168
|
+
command_name "remove"
|
169
|
+
end
|
170
|
+
|
171
|
+
require 'hammer_cli_katello/host_collection_package'
|
172
|
+
subcommand HammerCLIKatello::HostCollectionPackageCommand.command_name,
|
173
|
+
HammerCLIKatello::HostCollectionPackageCommand.desc,
|
174
|
+
HammerCLIKatello::HostCollectionPackageCommand
|
175
|
+
|
176
|
+
require 'hammer_cli_katello/host_collection_package_group'
|
177
|
+
subcommand HammerCLIKatello::HostCollectionPackageGroupCommand.command_name,
|
178
|
+
HammerCLIKatello::HostCollectionPackageGroupCommand.desc,
|
179
|
+
HammerCLIKatello::HostCollectionPackageGroupCommand
|
180
|
+
|
181
|
+
require 'hammer_cli_katello/host_collection_erratum'
|
182
|
+
subcommand HammerCLIKatello::HostCollectionErratumCommand.command_name,
|
183
|
+
HammerCLIKatello::HostCollectionErratumCommand.desc,
|
184
|
+
HammerCLIKatello::HostCollectionErratumCommand
|
128
185
|
end
|
186
|
+
|
129
187
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class HostCollectionErratumCommand < HammerCLIKatello::Command
|
3
|
+
command_name "erratum"
|
4
|
+
desc _("Manipulate errata for a host collection")
|
5
|
+
|
6
|
+
class InstallCommand < HammerCLIKatello::HostCollection::InstallContentBaseCommand
|
7
|
+
desc _("Install errata on content hosts contained within a host collection")
|
8
|
+
success_message _("Successfully scheduled installation of errata")
|
9
|
+
failure_message _("Could not schedule installation of errata")
|
10
|
+
|
11
|
+
option('--errata',
|
12
|
+
'ERRATA',
|
13
|
+
_("comma-separated list of errata to install"),
|
14
|
+
:required => true,
|
15
|
+
:format => HammerCLI::Options::Normalizers::List.new)
|
16
|
+
|
17
|
+
def content_type
|
18
|
+
'errata'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
autoload_subcommands
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class HostCollectionPackageCommand < HammerCLIKatello::Command
|
3
|
+
command_name "package"
|
4
|
+
desc _("Manipulate packages for a host collection")
|
5
|
+
|
6
|
+
module PackageContentType
|
7
|
+
def self.included(base)
|
8
|
+
base.option('--packages',
|
9
|
+
'PACKAGES',
|
10
|
+
_("comma-separated list of packages to install"),
|
11
|
+
:required => true,
|
12
|
+
:format => HammerCLI::Options::Normalizers::List.new,
|
13
|
+
:attribute_name => :content)
|
14
|
+
end
|
15
|
+
|
16
|
+
def content_type
|
17
|
+
'package'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class InstallCommand < HammerCLIKatello::HostCollection::InstallContentBaseCommand
|
22
|
+
include PackageContentType
|
23
|
+
desc _("Install packages on content hosts contained within a host collection")
|
24
|
+
success_message _("Successfully scheduled installation of package(s)")
|
25
|
+
failure_message _("Could not schedule installation of package(s)")
|
26
|
+
end
|
27
|
+
|
28
|
+
class UpdateCommand < HammerCLIKatello::HostCollection::UpdateContentBaseCommand
|
29
|
+
include PackageContentType
|
30
|
+
desc _("Update packages on content hosts contained within a host collection")
|
31
|
+
success_message _("Successfully scheduled update of package(s)")
|
32
|
+
failure_message _("Could not schedule update of package(s)")
|
33
|
+
end
|
34
|
+
|
35
|
+
class RemoveCommand < HammerCLIKatello::HostCollection::RemoveContentBaseCommand
|
36
|
+
include PackageContentType
|
37
|
+
desc _("Remove packages on content hosts contained within a host collection")
|
38
|
+
success_message _("Successfully scheduled removal of package(s)")
|
39
|
+
failure_message _("Could not schedule removal of package(s)")
|
40
|
+
end
|
41
|
+
|
42
|
+
autoload_subcommands
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class HostCollectionPackageGroupCommand < HammerCLIKatello::Command
|
3
|
+
command_name "package-group"
|
4
|
+
desc _("Manipulate package-groups for a host collection")
|
5
|
+
|
6
|
+
module PackageGroupContentType
|
7
|
+
def self.included(base)
|
8
|
+
base.option('--package-groups',
|
9
|
+
'PACKAGE-GROUPS',
|
10
|
+
_("comma-separated list of package-groups to install"),
|
11
|
+
:required => true,
|
12
|
+
:format => HammerCLI::Options::Normalizers::List.new,
|
13
|
+
:attribute_name => :content)
|
14
|
+
end
|
15
|
+
|
16
|
+
def content_type
|
17
|
+
'package_group'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class InstallCommand < HammerCLIKatello::HostCollection::InstallContentBaseCommand
|
22
|
+
include PackageGroupContentType
|
23
|
+
desc _("Install package-groups on content hosts contained within a host collection")
|
24
|
+
success_message _("Successfully scheduled installation of package-group(s)")
|
25
|
+
failure_message _("Could not schedule installation of package-group(s)")
|
26
|
+
end
|
27
|
+
|
28
|
+
class UpdateCommand < HammerCLIKatello::HostCollection::UpdateContentBaseCommand
|
29
|
+
include PackageGroupContentType
|
30
|
+
desc _("Update package-groups on content hosts contained within a host collection")
|
31
|
+
success_message _("Successfully scheduled update of package-groups(s)")
|
32
|
+
failure_message _("Could not schedule update of package-group(s)")
|
33
|
+
end
|
34
|
+
|
35
|
+
class RemoveCommand < HammerCLIKatello::HostCollection::RemoveContentBaseCommand
|
36
|
+
include PackageGroupContentType
|
37
|
+
desc _("Remove package-groups on content hosts contained within a host collection")
|
38
|
+
success_message _("Successfully scheduled removal of package-groups(s)")
|
39
|
+
failure_message _("Could not schedule removal of package-group(s)")
|
40
|
+
end
|
41
|
+
|
42
|
+
autoload_subcommands
|
43
|
+
end
|
44
|
+
end
|
@@ -76,9 +76,12 @@ module HammerCLIKatello
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def create_repositories_search_options(options)
|
79
|
+
name = options[HammerCLI.option_accessor_name("name")]
|
80
|
+
product_id = options[HammerCLI.option_accessor_name("product_id")]
|
81
|
+
|
79
82
|
search_options = {}
|
80
|
-
search_options['name'] =
|
81
|
-
search_options['product_id'] =
|
83
|
+
search_options['name'] = name if name
|
84
|
+
search_options['product_id'] = product_id if product_id
|
82
85
|
search_options
|
83
86
|
end
|
84
87
|
|
@@ -66,6 +66,7 @@ module HammerCLIKatello
|
|
66
66
|
from :content do
|
67
67
|
field :name, _("Repo Name")
|
68
68
|
field :contentUrl, _("URL")
|
69
|
+
field :type, _("Content Type")
|
69
70
|
end
|
70
71
|
end
|
71
72
|
end
|
@@ -87,6 +88,18 @@ module HammerCLIKatello
|
|
87
88
|
build_options
|
88
89
|
end
|
89
90
|
|
91
|
+
class SyncCommand < HammerCLIKatello::SingleResourceCommand
|
92
|
+
include HammerCLIForemanTasks::Async
|
93
|
+
|
94
|
+
action :sync
|
95
|
+
command_name "synchronize"
|
96
|
+
|
97
|
+
success_message _("Product repositories are being synchronized in task %{id}")
|
98
|
+
failure_message _("Could not synchronize the product repositories")
|
99
|
+
|
100
|
+
build_options
|
101
|
+
end
|
102
|
+
|
90
103
|
class SetSyncPlanCommand < HammerCLIKatello::UpdateCommand
|
91
104
|
desc _("Assign sync plan to product.")
|
92
105
|
command_name "set-sync-plan"
|
@@ -108,8 +121,10 @@ module HammerCLIKatello
|
|
108
121
|
|
109
122
|
resource :products, :update
|
110
123
|
|
111
|
-
build_options
|
112
|
-
|
124
|
+
build_options do |o|
|
125
|
+
o.expand(:all).except(:sync_plans)
|
126
|
+
o.without(:sync_plan_id)
|
127
|
+
end
|
113
128
|
|
114
129
|
def request_params
|
115
130
|
super.merge("sync_plan_id" => nil)
|
@@ -29,6 +29,7 @@ module HammerCLIKatello
|
|
29
29
|
end
|
30
30
|
field :_redhat_repo, _("Red Hat Repository")
|
31
31
|
field :content_type, _("Content Type")
|
32
|
+
field :checksum_type, _("Checksum Type"), Fields::Field, :hide_blank => true
|
32
33
|
field :url, _("URL")
|
33
34
|
field :_publish_via_http, _("Publish Via HTTP")
|
34
35
|
field :full_path, _("Published At")
|
@@ -243,6 +244,28 @@ module HammerCLIKatello
|
|
243
244
|
end
|
244
245
|
end
|
245
246
|
|
247
|
+
class RemoveContentCommand < HammerCLIKatello::SingleResourceCommand
|
248
|
+
include RepositoryScopedToProduct
|
249
|
+
|
250
|
+
resource :repositories, :remove_content
|
251
|
+
command_name "remove-content"
|
252
|
+
|
253
|
+
option ["--content-ids"], "CONTENT_IDS",
|
254
|
+
_("Comma separated list of package/puppet module/docker image ids"),
|
255
|
+
:format => HammerCLI::Options::Normalizers::List.new, :required => true
|
256
|
+
|
257
|
+
def request_params
|
258
|
+
super.tap do |opts|
|
259
|
+
opts[:uuids] = option_content_ids
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
success_message _("Repository content removed")
|
264
|
+
failure_message _("Could not remove content")
|
265
|
+
|
266
|
+
build_options :without => ["uuids"]
|
267
|
+
end
|
268
|
+
|
246
269
|
autoload_subcommands
|
247
270
|
end
|
248
271
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hammer_cli_katello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Price
|
@@ -23,7 +23,7 @@ authors:
|
|
23
23
|
autorequire:
|
24
24
|
bindir: bin
|
25
25
|
cert_chain: []
|
26
|
-
date: 2014-
|
26
|
+
date: 2014-12-19 00:00:00.000000000 Z
|
27
27
|
dependencies:
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: hammer_cli_foreman
|
@@ -53,6 +53,20 @@ dependencies:
|
|
53
53
|
- - ~>
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 0.0.3
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: hammer_cli_foreman_bootdisk
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
71
|
name: rake
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -199,11 +213,18 @@ files:
|
|
199
213
|
- lib/hammer_cli_katello/content_view.rb
|
200
214
|
- lib/hammer_cli_katello/content_view_puppet_module.rb
|
201
215
|
- lib/hammer_cli_katello/content_view_version.rb
|
216
|
+
- lib/hammer_cli_katello/docker.rb
|
217
|
+
- lib/hammer_cli_katello/docker_image.rb
|
218
|
+
- lib/hammer_cli_katello/docker_tag.rb
|
219
|
+
- lib/hammer_cli_katello/erratum.rb
|
202
220
|
- lib/hammer_cli_katello/exception_handler.rb
|
203
221
|
- lib/hammer_cli_katello/filter.rb
|
204
222
|
- lib/hammer_cli_katello/filter_rule.rb
|
205
223
|
- lib/hammer_cli_katello/gpg_key.rb
|
206
224
|
- lib/hammer_cli_katello/host_collection.rb
|
225
|
+
- lib/hammer_cli_katello/host_collection_erratum.rb
|
226
|
+
- lib/hammer_cli_katello/host_collection_package.rb
|
227
|
+
- lib/hammer_cli_katello/host_collection_package_group.rb
|
207
228
|
- lib/hammer_cli_katello/i18n.rb
|
208
229
|
- lib/hammer_cli_katello/id_resolver.rb
|
209
230
|
- lib/hammer_cli_katello/lifecycle_environment.rb
|