hammer_cli_katello 1.1.3 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hammer_cli_katello/command_extensions/content_source.rb +32 -0
- data/lib/hammer_cli_katello/command_extensions/kickstart_repository.rb +50 -0
- data/lib/hammer_cli_katello/command_extensions/lifecycle_environment.rb +12 -0
- data/lib/hammer_cli_katello/command_extensions.rb +2 -0
- data/lib/hammer_cli_katello/commands.rb +1 -1
- data/lib/hammer_cli_katello/content_export_helper.rb +6 -2
- data/lib/hammer_cli_katello/content_units.rb +66 -0
- data/lib/hammer_cli_katello/content_view.rb +11 -0
- data/lib/hammer_cli_katello/content_view_component.rb +4 -3
- data/lib/hammer_cli_katello/content_view_version.rb +3 -3
- data/lib/hammer_cli_katello/foreman_search_options_creators.rb +0 -12
- data/lib/hammer_cli_katello/host_collection.rb +6 -0
- data/lib/hammer_cli_katello/host_errata.rb +2 -3
- data/lib/hammer_cli_katello/host_extensions.rb +8 -6
- data/lib/hammer_cli_katello/hostgroup_extensions.rb +19 -12
- data/lib/hammer_cli_katello/id_resolver.rb +5 -2
- data/lib/hammer_cli_katello/option_sources/lifecycle_environment_params.rb +40 -3
- data/lib/hammer_cli_katello/organization.rb +28 -3
- data/lib/hammer_cli_katello/package.rb +2 -1
- data/lib/hammer_cli_katello/ping.rb +7 -0
- data/lib/hammer_cli_katello/repository.rb +50 -60
- data/lib/hammer_cli_katello/search_options_creators.rb +2 -1
- data/lib/hammer_cli_katello/srpm.rb +2 -0
- data/lib/hammer_cli_katello/version.rb +1 -1
- data/lib/hammer_cli_katello.rb +5 -5
- data/test/data/2.5/foreman_api.json +1 -0
- data/test/data/3.0/foreman_api.json +1 -0
- data/test/data/3.10/foreman_api.json +1 -0
- data/test/data/3.11/foreman_api.json +1 -0
- data/test/data/3.12/foreman_api.json +1 -0
- data/test/data/3.13/foreman_api.json +1 -0
- data/test/data/3.14/foreman_api.json +1 -0
- data/test/data/3.15/foreman_api.json +1 -0
- data/test/data/3.16/foreman_api.json +1 -0
- data/test/data/3.17/foreman_api.json +1 -0
- data/test/data/3.18/foreman_api.json +1 -0
- data/test/data/3.19/foreman_api.json +1 -0
- data/test/data/3.2/foreman_api.json +1 -0
- data/test/data/3.4/foreman_api.json +1 -0
- data/test/data/3.5/foreman_api.json +1 -0
- data/test/data/3.6/foreman_api.json +1 -0
- data/test/data/3.7/foreman_api.json +1 -0
- data/test/data/3.8/foreman_api.json +1 -0
- data/test/data/3.9/foreman_api.json +1 -0
- data/test/data/4.0/foreman_api.json +1 -0
- data/test/data/4.1/foreman_api.json +1 -0
- data/test/data/4.3/foreman_api.json +1 -0
- data/test/data/Readme.md +5 -0
- data/test/functional/activation_key/add_host_collection_test.rb +62 -0
- data/test/functional/activation_key/content_override_test.rb +92 -0
- data/test/functional/activation_key/create_test.rb +33 -0
- data/test/functional/activation_key/data/activation_key.json +17 -0
- data/test/functional/activation_key/info_test.rb +29 -0
- data/test/functional/activation_key/list_test.rb +68 -0
- data/test/functional/activation_key/product_content_test.rb +23 -0
- data/test/functional/activation_key/remove_host_collection_test.rb +62 -0
- data/test/functional/activation_key/subscriptions_test.rb +74 -0
- data/test/functional/activation_key/update_test.rb +26 -0
- data/test/functional/apipie_helper_test.rb +31 -0
- data/test/functional/capsule/capsule_helpers.rb +13 -0
- data/test/functional/capsule/content/add_lifecycle_environment_test.rb +40 -0
- data/test/functional/capsule/content/cancel_synchronization_test.rb +42 -0
- data/test/functional/capsule/content/capsule_content_helpers.rb +24 -0
- data/test/functional/capsule/content/data/library_env.json +47 -0
- data/test/functional/capsule/content/data/sync_status.json +6 -0
- data/test/functional/capsule/content/data/sync_tasks.json +62 -0
- data/test/functional/capsule/content/info_test.rb +61 -0
- data/test/functional/capsule/content/lifecycle_environments_test.rb +19 -0
- data/test/functional/capsule/content/remove_lifecycle_environment_test.rb +40 -0
- data/test/functional/capsule/content/synchronization_status_test.rb +107 -0
- data/test/functional/capsule/info_test.rb +25 -0
- data/test/functional/capsule/list_test.rb +24 -0
- data/test/functional/content_credentials/create_test.rb +32 -0
- data/test/functional/content_credentials/data/test_cert.json +43 -0
- data/test/functional/content_credentials/info_test.rb +50 -0
- data/test/functional/content_credentials/list_test.rb +66 -0
- data/test/functional/content_export/complete/library_test.rb +155 -0
- data/test/functional/content_export/complete/version_test.rb +252 -0
- data/test/functional/content_export/content_export_helpers.rb +26 -0
- data/test/functional/content_export/generate_metadata_test.rb +64 -0
- data/test/functional/content_export/incremental/library_test.rb +172 -0
- data/test/functional/content_export/incremental/version_test.rb +268 -0
- data/test/functional/content_export/list_test.rb +64 -0
- data/test/functional/content_import/library_test.rb +85 -0
- data/test/functional/content_import/list_test.rb +65 -0
- data/test/functional/content_import/metadata.json +1 -0
- data/test/functional/content_import/version_test.rb +85 -0
- data/test/functional/content_units/info_test.rb +29 -0
- data/test/functional/content_units/list_test.rb +106 -0
- data/test/functional/content_view/add_content_view_version_test.rb +88 -0
- data/test/functional/content_view/add_repository_test.rb +21 -0
- data/test/functional/content_view/component/add_test.rb +177 -0
- data/test/functional/content_view/component/list_test.rb +55 -0
- data/test/functional/content_view/component/remove_test.rb +107 -0
- data/test/functional/content_view/component/update_test.rb +134 -0
- data/test/functional/content_view/content_view_helpers.rb +20 -0
- data/test/functional/content_view/copy_test.rb +53 -0
- data/test/functional/content_view/create_test.rb +34 -0
- data/test/functional/content_view/delete_test.rb +62 -0
- data/test/functional/content_view/filter/create_test.rb +57 -0
- data/test/functional/content_view/filter/delete_test.rb +90 -0
- data/test/functional/content_view/filter/info_test.rb +89 -0
- data/test/functional/content_view/filter/list_test.rb +98 -0
- data/test/functional/content_view/filter/update_test.rb +91 -0
- data/test/functional/content_view/list_test.rb +68 -0
- data/test/functional/content_view/publish_test.rb +24 -0
- data/test/functional/content_view/purge_test.rb +97 -0
- data/test/functional/content_view/remove_content_view_version_test.rb +88 -0
- data/test/functional/content_view/remove_test.rb +79 -0
- data/test/functional/content_view/update_test.rb +53 -0
- data/test/functional/content_view/version/incremental_update_test.rb +108 -0
- data/test/functional/content_view/version/list_test.rb +44 -0
- data/test/functional/content_view/version/promote_test.rb +75 -0
- data/test/functional/content_view/version/republish_repositories_test.rb +34 -0
- data/test/functional/content_view/version/update_test.rb +48 -0
- data/test/functional/erratum/erratum_helpers.rb +91 -0
- data/test/functional/erratum/info_test.rb +29 -0
- data/test/functional/erratum/list_test.rb +108 -0
- data/test/functional/file/file_helpers.rb +13 -0
- data/test/functional/file/info_test.rb +162 -0
- data/test/functional/file/list_test.rb +112 -0
- data/test/functional/filter_rule/create_test.rb +99 -0
- data/test/functional/filter_rule/delete_test.rb +104 -0
- data/test/functional/filter_rule/filter_rule_helpers.rb +12 -0
- data/test/functional/filter_rule/info_test.rb +104 -0
- data/test/functional/filter_rule/list_test.rb +91 -0
- data/test/functional/filter_rule/update_test.rb +104 -0
- data/test/functional/host/errata/apply_test.rb +45 -0
- data/test/functional/host/errata/info_test.rb +27 -0
- data/test/functional/host/errata/list_test.rb +49 -0
- data/test/functional/host/errata/recalculate_test.rb +26 -0
- data/test/functional/host/extensions/create_test.rb +95 -0
- data/test/functional/host/extensions/data/host.json +320 -0
- data/test/functional/host/extensions/data/host_list.json +117 -0
- data/test/functional/host/extensions/info_test.rb +35 -0
- data/test/functional/host/extensions/list_test.rb +21 -0
- data/test/functional/host/extensions/update_test.rb +70 -0
- data/test/functional/host/host_helpers.rb +8 -0
- data/test/functional/host/subscription/attach_test.rb +54 -0
- data/test/functional/host/subscription/auto_attach_test.rb +35 -0
- data/test/functional/host/subscription/content_override_test.rb +96 -0
- data/test/functional/host/subscription/product_content_test.rb +27 -0
- data/test/functional/host/subscription/register_test.rb +53 -0
- data/test/functional/host/subscription/remove_test.rb +52 -0
- data/test/functional/host/subscription/unregister_test.rb +37 -0
- data/test/functional/host/traces/list_test.rb +37 -0
- data/test/functional/host/traces/resolve_test.rb +31 -0
- data/test/functional/host_collection/add_host_test.rb +90 -0
- data/test/functional/host_collection/content_api_expectations.rb +35 -0
- data/test/functional/host_collection/content_install_test.rb +62 -0
- data/test/functional/host_collection/content_remove_test.rb +37 -0
- data/test/functional/host_collection/content_update_test.rb +37 -0
- data/test/functional/host_collection/copy_test.rb +64 -0
- data/test/functional/host_collection/create_test.rb +54 -0
- data/test/functional/host_collection/delete_test.rb +57 -0
- data/test/functional/host_collection/hosts_test.rb +39 -0
- data/test/functional/host_collection/info_test.rb +57 -0
- data/test/functional/host_collection/list_test.rb +63 -0
- data/test/functional/host_collection/remove_host_test.rb +90 -0
- data/test/functional/host_collection/update_test.rb +57 -0
- data/test/functional/hostgroup/create_test.rb +112 -0
- data/test/functional/hostgroup/data/hostgroup.json +50 -0
- data/test/functional/hostgroup/info_test.rb +33 -0
- data/test/functional/hostgroup/update_test.rb +120 -0
- data/test/functional/lifecycle_environment/create_test.rb +14 -0
- data/test/functional/lifecycle_environment/lifecycle_environment_helpers.rb +18 -0
- data/test/functional/lifecycle_environment/list_test.rb +38 -0
- data/test/functional/lifecycle_environment/update_test.rb +14 -0
- data/test/functional/local_helper_test.rb +30 -0
- data/test/functional/module_stream/info_test.rb +58 -0
- data/test/functional/module_stream/list_test.rb +53 -0
- data/test/functional/organization/cdn_configuration_test.rb +42 -0
- data/test/functional/organization/delete_test.rb +26 -0
- data/test/functional/organization/info_test.rb +39 -0
- data/test/functional/organization/organization_helpers.rb +10 -0
- data/test/functional/package/list_test.rb +160 -0
- data/test/functional/package_group/list_test.rb +38 -0
- data/test/functional/ping_test.rb +61 -0
- data/test/functional/product/create_test.rb +54 -0
- data/test/functional/product/delete_test.rb +41 -0
- data/test/functional/product/info_test.rb +33 -0
- data/test/functional/product/list_test.rb +58 -0
- data/test/functional/product/product_helpers.rb +24 -0
- data/test/functional/product/remove_sync_plan_test.rb +35 -0
- data/test/functional/product/set_sync_plan_test.rb +49 -0
- data/test/functional/product/update_proxy.rb +48 -0
- data/test/functional/product/update_test.rb +46 -0
- data/test/functional/repository/create_test.rb +21 -0
- data/test/functional/repository/delete_test.rb +95 -0
- data/test/functional/repository/info_test.rb +156 -0
- data/test/functional/repository/list_test.rb +68 -0
- data/test/functional/repository/remove_content_test.rb +108 -0
- data/test/functional/repository/repository_helpers.rb +18 -0
- data/test/functional/repository/synchronize_test.rb +57 -0
- data/test/functional/repository/update_test.rb +149 -0
- data/test/functional/repository/upload_test.rb +368 -0
- data/test/functional/repository_set/available_repositories_test.rb +18 -0
- data/test/functional/repository_set/disable_test.rb +42 -0
- data/test/functional/repository_set/enable_test.rb +42 -0
- data/test/functional/repository_set/info_test.rb +17 -0
- data/test/functional/repository_set/list_test.rb +18 -0
- data/test/functional/repository_set/repository_set_helpers.rb +20 -0
- data/test/functional/search_helpers.rb +17 -0
- data/test/functional/simple_content_access/disable_test.rb +48 -0
- data/test/functional/simple_content_access/enable_test.rb +46 -0
- data/test/functional/srpm/list_test.rb +92 -0
- data/test/functional/subscription/list_test.rb +86 -0
- data/test/functional/sync_plan/create_test.rb +60 -0
- data/test/functional/sync_plan/delete_test.rb +46 -0
- data/test/functional/sync_plan/info_test.rb +37 -0
- data/test/functional/sync_plan/list_test.rb +31 -0
- data/test/functional/sync_plan/sync_plan_helpers.rb +8 -0
- data/test/functional/sync_plan/update_test.rb +44 -0
- data/test/functional/test_helper.rb +24 -0
- data/test/task_helper.rb +7 -0
- data/test/test_helper.rb +38 -0
- data/test/unit/id_name_options_validator_test.rb +96 -0
- data/test/unit/id_resolver_test.rb +58 -0
- data/test/unit/messages_test.rb +7 -0
- data/test/unit/search_options_creators_test.rb +145 -0
- metadata +396 -6
- data/lib/hammer_cli_katello/host_content_source_options.rb +0 -28
- data/lib/hammer_cli_katello/host_kickstart_repository_options.rb +0 -49
- data/lib/hammer_cli_katello/ostree_branch.rb +0 -34
@@ -62,10 +62,6 @@ module HammerCLIKatello
|
|
62
62
|
field :full_path, _("Published At")
|
63
63
|
field :relative_path, _("Relative Path")
|
64
64
|
field :download_policy, _("Download Policy"), Fields::Field, :hide_blank => true
|
65
|
-
field :ostree_upstream_sync_policy, _("OSTree Upstream Sync Policy"),
|
66
|
-
Fields::Field, :hide_blank => true
|
67
|
-
field :_ostree_upstream_sync_depth, _("OSTree Upstream Sync Depth"),
|
68
|
-
Fields::Field, :hide_blank => true
|
69
65
|
field :docker_upstream_name, _("Upstream Repository Name"),
|
70
66
|
Fields::Field, :hide_blank => true
|
71
67
|
field :docker_tags_whitelist, _("Container Image Tags Filter"),
|
@@ -114,7 +110,6 @@ module HammerCLIKatello
|
|
114
110
|
field :docker_manifest_total, _("Container Image Manifests"), Fields::Field,
|
115
111
|
:hide_blank => true
|
116
112
|
field :docker_tag_total, _("Container Image Tags"), Fields::Field, :hide_blank => true
|
117
|
-
field :ostree_branch_total, _("OSTree Branches"), Fields::Field, :hide_blank => true
|
118
113
|
field :file_total, _("Files"), Fields::Field, :hide_blank => true
|
119
114
|
field :module_stream_total, _("Module Streams"), Fields::Field, :hide_blank => true
|
120
115
|
end
|
@@ -163,21 +158,11 @@ module HammerCLIKatello
|
|
163
158
|
data["docker_manifest_list_total"] = content_counts["docker_manifest_list"]
|
164
159
|
data["docker_manifest_total"] = content_counts["docker_manifest"]
|
165
160
|
data["docker_tag_total"] = content_counts["docker_tag"]
|
166
|
-
when "ostree"
|
167
|
-
setup_ostree(data)
|
168
161
|
when "file"
|
169
162
|
data["file_total"] = content_counts["file"]
|
170
163
|
end
|
171
164
|
end
|
172
165
|
|
173
|
-
def setup_ostree(data)
|
174
|
-
content_counts = data["content_counts"]
|
175
|
-
data["ostree_branch_total"] = content_counts["ostree_branch"]
|
176
|
-
if data["ostree_upstream_sync_policy"] == "custom"
|
177
|
-
data["_ostree_upstream_sync_depth"] = data["ostree_upstream_sync_depth"]
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
166
|
def get_sync_status(state)
|
182
167
|
sync_states = {
|
183
168
|
"failed" => _("Failed"), "success" => _("Success"), "finished" => _("Finished"),
|
@@ -403,6 +388,14 @@ module HammerCLIKatello
|
|
403
388
|
build_options(:without => [:content]) do |o|
|
404
389
|
o.expand.including(:products, :organizations)
|
405
390
|
end
|
391
|
+
|
392
|
+
option "--async", :flag, _("Do not wait for the task.")
|
393
|
+
|
394
|
+
option "--ostree-repository-name", "OSTREE REPOSITORY NAME",
|
395
|
+
_("Name of OSTree repository in archive."),
|
396
|
+
:attribute_name => :option_ostree_repository_name,
|
397
|
+
:required => false
|
398
|
+
|
406
399
|
option "--path", "PATH", _("Upload file, directory of files, or glob of files " \
|
407
400
|
"as content for a repository.\n" \
|
408
401
|
"Globs must be escaped by single or double quotes"),
|
@@ -423,6 +416,8 @@ module HammerCLIKatello
|
|
423
416
|
repo_id = get_identifier
|
424
417
|
update_content_upload(upload_id, repo_id, file)
|
425
418
|
end
|
419
|
+
opts[:ostree_repository_name] = options["option_ostree_repository_name"]
|
420
|
+
opts[:filename] = filename
|
426
421
|
results = import_uploads([
|
427
422
|
{
|
428
423
|
id: upload_id,
|
@@ -431,7 +426,7 @@ module HammerCLIKatello
|
|
431
426
|
size: file.size,
|
432
427
|
checksum: checksum
|
433
428
|
}], opts)
|
434
|
-
print_results(filename, results)
|
429
|
+
print_results(filename, results, options["option_async"])
|
435
430
|
ensure
|
436
431
|
if upload_id
|
437
432
|
content_upload_resource.call(:destroy, :repository_id => get_identifier, :id => upload_id)
|
@@ -476,32 +471,54 @@ module HammerCLIKatello
|
|
476
471
|
params = {:id => get_identifier,
|
477
472
|
:uploads => uploads,
|
478
473
|
publish_repository: publish_repository,
|
479
|
-
sync_capsule: sync_capsule
|
474
|
+
sync_capsule: sync_capsule,
|
475
|
+
async: true
|
480
476
|
}
|
481
477
|
params[:content_type] = options["option_content_type"] if options["option_content_type"]
|
482
|
-
|
478
|
+
if options["option_ostree_repository_name"]
|
479
|
+
params[:ostree_repository_name] = options["option_ostree_repository_name"]
|
480
|
+
end
|
481
|
+
results = if options["option_async"]
|
482
|
+
resource.call(:import_uploads, params)
|
483
|
+
else
|
484
|
+
task_progress(resource.call(:import_uploads, params))
|
485
|
+
end
|
486
|
+
results
|
483
487
|
end
|
484
488
|
|
485
|
-
def
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
489
|
+
def task_progress(task_or_id)
|
490
|
+
super
|
491
|
+
task_id = task_or_id.is_a?(Hash) ? task_or_id['id'] : task_or_id
|
492
|
+
load_task(task_id)
|
493
|
+
end
|
494
|
+
|
495
|
+
# rubocop:disable CyclomaticComplexity
|
496
|
+
# rubocop:disable PerceivedComplexity
|
497
|
+
def print_results(name, results, async)
|
498
|
+
if !%w(error warning).include?(results) && !async # task successful && no async flag used
|
491
499
|
upload_results = results.dig('output', 'upload_results') || []
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
500
|
+
|
501
|
+
if upload_results.empty?
|
502
|
+
print_message _("Successfully uploaded file %s" % name)
|
503
|
+
else
|
504
|
+
upload_results.each do |result|
|
505
|
+
if result['type'] == 'docker_manifest'
|
506
|
+
print_message(
|
507
|
+
_("Successfully uploaded manifest file '%{name}' with digest '%{digest}'") % {
|
508
|
+
:name => name, :digest => result['digest'] })
|
509
|
+
else
|
510
|
+
print_message _("Successfully uploaded file %s" % name)
|
511
|
+
end
|
501
512
|
end
|
502
513
|
end
|
514
|
+
elsif results&.dig('id') && async # async flag used
|
515
|
+
print_message _("Content is being uploaded in task #{results['id']}.")
|
516
|
+
else
|
517
|
+
print_message _("Could not upload the content.")
|
503
518
|
end
|
504
519
|
end
|
520
|
+
# rubocop:enable CyclomaticComplexity
|
521
|
+
# rubocop:enable PerceivedComplexity
|
505
522
|
|
506
523
|
def silence_warnings
|
507
524
|
original_verbose = $VERBOSE
|
@@ -541,33 +558,6 @@ module HammerCLIKatello
|
|
541
558
|
end
|
542
559
|
end
|
543
560
|
|
544
|
-
class ExportCommand < HammerCLIKatello::SingleResourceCommand
|
545
|
-
include HammerCLIForemanTasks::Async
|
546
|
-
include OrganizationOptions
|
547
|
-
extend RepositoryScopedToProduct
|
548
|
-
|
549
|
-
validate_repo_name_requires_product_options
|
550
|
-
action :export
|
551
|
-
command_name "export"
|
552
|
-
desc _("Export content from a repository to the configured directory")
|
553
|
-
|
554
|
-
success_message _("Repository is being exported in task %{id}.")
|
555
|
-
failure_message _("Could not export the repository")
|
556
|
-
|
557
|
-
validate_options :before, 'IdResolution' do
|
558
|
-
organization_options = [:option_organization_id, :option_organization_name, \
|
559
|
-
:option_organization_label]
|
560
|
-
|
561
|
-
if option(:option_product_name).exist?
|
562
|
-
any(*organization_options).required
|
563
|
-
end
|
564
|
-
end
|
565
|
-
|
566
|
-
build_options do |o|
|
567
|
-
o.expand.including(:products)
|
568
|
-
end
|
569
|
-
end
|
570
|
-
|
571
561
|
autoload_subcommands
|
572
562
|
end
|
573
563
|
end
|
@@ -57,7 +57,8 @@ module HammerCLIKatello
|
|
57
57
|
def create_lifecycle_environments_search_options(options, mode = nil)
|
58
58
|
search_options = {}
|
59
59
|
if mode != :multi
|
60
|
-
name = options[HammerCLI.option_accessor_name("
|
60
|
+
name = options[HammerCLI.option_accessor_name("environment_name")] ||
|
61
|
+
options[HammerCLI.option_accessor_name("name")]
|
61
62
|
search_options['name'] = name if name
|
62
63
|
end
|
63
64
|
organization_id = organization_id(scoped_options('organization', options, :single))
|
data/lib/hammer_cli_katello.rb
CHANGED
@@ -117,16 +117,16 @@ module HammerCLIKatello
|
|
117
117
|
'hammer_cli_katello/erratum'
|
118
118
|
)
|
119
119
|
|
120
|
-
HammerCLI::MainCommand.lazy_subcommand("ostree-branch", _("Manipulate ostree branches"),
|
121
|
-
'HammerCLIKatello::OstreeBranchCommand',
|
122
|
-
'hammer_cli_katello/ostree_branch'
|
123
|
-
)
|
124
|
-
|
125
120
|
HammerCLI::MainCommand.lazy_subcommand("file", _("Manipulate files"),
|
126
121
|
'HammerCLIKatello::FileCommand',
|
127
122
|
'hammer_cli_katello/file'
|
128
123
|
)
|
129
124
|
|
125
|
+
HammerCLI::MainCommand.lazy_subcommand("content-units", _("Manipulate content units"),
|
126
|
+
'HammerCLIKatello::ContentUnitsCommand',
|
127
|
+
'hammer_cli_katello/content_units'
|
128
|
+
)
|
129
|
+
|
130
130
|
HammerCLI::MainCommand.lazy_subcommand("content-export",
|
131
131
|
_("Prepare content for export to a disconnected Katello"),
|
132
132
|
'HammerCLIKatello::ContentExport',
|