hammer_cli_katello 1.5.0 → 1.6.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/acs.rb +82 -0
- data/lib/hammer_cli_katello/activation_key.rb +8 -2
- data/lib/hammer_cli_katello/content_export.rb +39 -0
- data/lib/hammer_cli_katello/content_export_helper.rb +64 -6
- data/lib/hammer_cli_katello/host_subscription.rb +32 -0
- data/lib/hammer_cli_katello/organization.rb +4 -0
- data/lib/hammer_cli_katello/repository.rb +1 -1
- data/lib/hammer_cli_katello/simple_content_access.rb +10 -0
- data/lib/hammer_cli_katello/version.rb +1 -1
- data/lib/hammer_cli_katello.rb +5 -0
- 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/4.4/foreman_api.json +1 -0
- data/test/data/4.5/foreman_api.json +1 -0
- data/test/data/4.6/foreman_api.json +1 -0
- data/test/data/Readme.md +5 -0
- data/test/functional/acs/create_test.rb +27 -0
- data/test/functional/acs/delete_test.rb +13 -0
- data/test/functional/acs/info_test.rb +94 -0
- data/test/functional/acs/list_test.rb +62 -0
- data/test/functional/acs/update_test.rb +23 -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/repository_test.rb +226 -0
- data/test/functional/content_export/complete/version_test.rb +297 -0
- data/test/functional/content_export/content_export_helpers.rb +33 -0
- data/test/functional/content_export/generate_listing_test.rb +62 -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/repository_test.rb +212 -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/enabled_repositories_test.rb +39 -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 +45 -0
- data/test/functional/organization/delete_test.rb +26 -0
- data/test/functional/organization/info_test.rb +45 -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/reclaim_space_test.rb +105 -0
- data/test/functional/repository/remove_content_test.rb +108 -0
- data/test/functional/repository/repository_helpers.rb +18 -0
- data/test/functional/repository/republish_test.rb +37 -0
- data/test/functional/repository/synchronize_test.rb +57 -0
- data/test/functional/repository/update_test.rb +150 -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 +48 -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/simple_content_access/status_test.rb +29 -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 +425 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bfa4a96e3ec666332357da5f6741af1fb78360f60e3016060d8e0ba7a41a38c9
|
4
|
+
data.tar.gz: 2d6fafe5ea4d85dd1551f9274a57cc6e2c65e3155bbabd844a0f12d964c3e7d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3c4c16ed1e4c64d5126810fef1c723490758c1019e820e7cde65f7b6caa663ada32072aa39dcac2964199c5a2a72b2c36f31e4d85dfc64f8b2c9d203154896b
|
7
|
+
data.tar.gz: eeefc161d8fb26803fae890ef79d94c74f1e6ca94d4f0780ba839018890fce56bc5405a932cbeee7edbaa5817bec3de0762d39bc0577ee6e647de673c7c6e5fe
|
@@ -0,0 +1,82 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class AcsCommand < HammerCLIKatello::Command
|
3
|
+
resource :alternate_content_sources
|
4
|
+
|
5
|
+
class ListCommand < HammerCLIKatello::ListCommand
|
6
|
+
output do
|
7
|
+
field :id, _('ID')
|
8
|
+
field :name, _('Name')
|
9
|
+
field :alternate_content_source_type, _('Type')
|
10
|
+
end
|
11
|
+
|
12
|
+
build_options
|
13
|
+
end
|
14
|
+
|
15
|
+
class CreateCommand < HammerCLIKatello::CreateCommand
|
16
|
+
success_message _('Alternate Content Source created.')
|
17
|
+
failure_message _('Could not create the Alternate Content Source.')
|
18
|
+
|
19
|
+
build_options
|
20
|
+
end
|
21
|
+
|
22
|
+
class InfoCommand < HammerCLIKatello::InfoCommand
|
23
|
+
output do
|
24
|
+
field :id, _('ID')
|
25
|
+
field :name, _('Name')
|
26
|
+
field :label, _('Label')
|
27
|
+
field :description, _('Description'), Fields::Field, :hide_blank => true
|
28
|
+
field :base_url, _('Base URL')
|
29
|
+
field :content_type, _('Content type')
|
30
|
+
field :alternate_content_source_type, _('Alternate content source type')
|
31
|
+
field :upstream_username, _('Upstream username'), Fields::Field, :hide_blank => true
|
32
|
+
|
33
|
+
collection :subpaths, _('Subpaths') do
|
34
|
+
field nil, _('')
|
35
|
+
end
|
36
|
+
|
37
|
+
collection :products, _('Products') do
|
38
|
+
field :id, _('Id')
|
39
|
+
field :organization_id, _('Organization ID')
|
40
|
+
field :name, _('Name')
|
41
|
+
field :label, _('Label')
|
42
|
+
end
|
43
|
+
|
44
|
+
collection :smart_proxies, _('Smart proxies') do
|
45
|
+
field :id, _('Id')
|
46
|
+
field :name, _('Name')
|
47
|
+
field :url, _('URL')
|
48
|
+
field :download_policy, _('Download policy')
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
build_options
|
53
|
+
end
|
54
|
+
|
55
|
+
class UpdateCommand < HammerCLIKatello::UpdateCommand
|
56
|
+
success_message _('Alternate Content Source updated.')
|
57
|
+
failure_message _('Could not update the Alternate Content Source.')
|
58
|
+
|
59
|
+
build_options
|
60
|
+
end
|
61
|
+
|
62
|
+
class DeleteCommand < HammerCLIKatello::DeleteCommand
|
63
|
+
success_message _('Alternate Content Source deleted.')
|
64
|
+
failure_message _('Could not delete the Alternate Content Source.')
|
65
|
+
|
66
|
+
build_options
|
67
|
+
end
|
68
|
+
|
69
|
+
class RefreshCommand < HammerCLIKatello::SingleResourceCommand
|
70
|
+
include HammerCLIForemanTasks::Async
|
71
|
+
|
72
|
+
action :refresh
|
73
|
+
command_name 'refresh'
|
74
|
+
|
75
|
+
success_message _("Alternate content source is being refreshed in task %{id}.")
|
76
|
+
failure_message _('Could not refresh the alternate content source')
|
77
|
+
|
78
|
+
build_options
|
79
|
+
end
|
80
|
+
autoload_subcommands
|
81
|
+
end
|
82
|
+
end
|
@@ -54,10 +54,10 @@ module HammerCLIKatello
|
|
54
54
|
output do
|
55
55
|
field :name, _("Name")
|
56
56
|
field :id, _("Id")
|
57
|
-
field :description, _("Description")
|
57
|
+
field :description, _("Description"), Fields::Field, :hide_blank => true
|
58
58
|
field :format_limit, _("Host Limit")
|
59
59
|
field :auto_attach, _("Auto Attach")
|
60
|
-
field :release_version, _("Release Version")
|
60
|
+
field :release_version, _("Release Version"), Fields::Field, :hide_blank => true
|
61
61
|
|
62
62
|
from :environment do
|
63
63
|
field :name, _("Lifecycle Environment")
|
@@ -71,6 +71,12 @@ module HammerCLIKatello
|
|
71
71
|
field :name, _("Name")
|
72
72
|
end
|
73
73
|
|
74
|
+
collection :content_overrides, _("Content Overrides") do
|
75
|
+
field :content_label, _("Content Label")
|
76
|
+
field :name, _("Name")
|
77
|
+
field :value, _("Value")
|
78
|
+
end
|
79
|
+
|
74
80
|
label _("System Purpose") do
|
75
81
|
field :service_level, _('Service Level')
|
76
82
|
field :purpose_usage, _('Purpose Usage')
|
@@ -44,6 +44,45 @@ module HammerCLIKatello
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
+
class GenerateListingCommand < HammerCLIKatello::Command
|
48
|
+
desc _("Generates listing file on each directory of a syncable export. This command "\
|
49
|
+
+ "only needs to be used if the export was performed asynchronously or "\
|
50
|
+
+ "if the listing files were lost. "\
|
51
|
+
+ "Assumes the syncable export directory is accessible on disk")
|
52
|
+
|
53
|
+
command_name 'generate-listing'
|
54
|
+
|
55
|
+
include ContentExportHelper
|
56
|
+
|
57
|
+
option "--task-id", "TASK_ID",
|
58
|
+
_("Generate listing files for a syncable export task"),
|
59
|
+
:attribute_name => :option_task_id,
|
60
|
+
:required => false
|
61
|
+
|
62
|
+
option "--id", "ID",
|
63
|
+
_("Generate listing files based on specified export history"),
|
64
|
+
:attribute_name => :option_export_id,
|
65
|
+
:required => false
|
66
|
+
|
67
|
+
def execute
|
68
|
+
export_history = if option_task_id
|
69
|
+
export_task = reload_task(option_task_id)
|
70
|
+
fetch_export_history_from_task(export_task)
|
71
|
+
else
|
72
|
+
fetch_export_history(option_export_id)
|
73
|
+
end
|
74
|
+
|
75
|
+
unless export_history
|
76
|
+
raise _("No export history was found. Verify the value given for "\
|
77
|
+
+ "--task-id or --id")
|
78
|
+
end
|
79
|
+
|
80
|
+
make_listing_files(export_history)
|
81
|
+
|
82
|
+
HammerCLI::EX_OK
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
47
86
|
class ListCommand < HammerCLIKatello::ListCommand
|
48
87
|
desc "View content view export histories"
|
49
88
|
output do
|
@@ -1,23 +1,23 @@
|
|
1
1
|
require 'hammer_cli_katello/repository'
|
2
|
-
|
2
|
+
require 'find'
|
3
3
|
# rubocop:disable ModuleLength
|
4
4
|
module HammerCLIKatello
|
5
5
|
module ContentExportHelper
|
6
6
|
include ApipieHelper
|
7
|
-
|
8
7
|
def execute
|
9
8
|
warn_unexportable_repositories
|
10
9
|
response = super
|
11
10
|
if option_async?
|
12
|
-
|
13
|
-
+ "with the command:")
|
14
|
-
output.print_message(" hammer content-export generate-metadata --task-id #{@task['id']}")
|
11
|
+
emit_async_info
|
15
12
|
HammerCLI::EX_OK
|
16
13
|
elsif response != HammerCLI::EX_OK
|
17
14
|
response
|
18
15
|
else
|
19
16
|
export_history = fetch_export_history_from_task(reload_task(@task))
|
20
|
-
if
|
17
|
+
if syncable?
|
18
|
+
make_listing_files(export_history)
|
19
|
+
HammerCLI::EX_OK
|
20
|
+
elsif export_history
|
21
21
|
generate_metadata_json(export_history)
|
22
22
|
HammerCLI::EX_OK
|
23
23
|
else
|
@@ -27,6 +27,22 @@ module HammerCLIKatello
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
def emit_async_info
|
31
|
+
if syncable?
|
32
|
+
output.print_message _("Once the task completes the listing files may be generated "\
|
33
|
+
+ "with the command:")
|
34
|
+
output.print_message(" hammer content-export generate-listing --task-id #{@task['id']}")
|
35
|
+
else
|
36
|
+
output.print_message _("Once the task completes the export metadata must be generated "\
|
37
|
+
+ "with the command:")
|
38
|
+
output.print_message(" hammer content-export generate-metadata --task-id #{@task['id']}")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def syncable?
|
43
|
+
options.key?("option_format") && option_format == 'syncable'
|
44
|
+
end
|
45
|
+
|
30
46
|
def send_request
|
31
47
|
@task = super
|
32
48
|
end
|
@@ -54,6 +70,48 @@ module HammerCLIKatello
|
|
54
70
|
fetch_export_history(export_history_id)
|
55
71
|
end
|
56
72
|
|
73
|
+
def check_export_history_syncable!(export_history)
|
74
|
+
unless export_history["metadata"]["format"] == "syncable"
|
75
|
+
raise _("Cannot generate listing files for this export since "\
|
76
|
+
+ "it is not syncable. It was not generated with --format=syncable.")
|
77
|
+
end
|
78
|
+
|
79
|
+
raise _("Export History does not have the path specified."\
|
80
|
+
+ " The task may have errored out.") unless export_history["path"]
|
81
|
+
end
|
82
|
+
|
83
|
+
def make_listing_files(export_history)
|
84
|
+
check_export_history_syncable!(export_history)
|
85
|
+
output.print_message _("Generated #{export_history['path']}")
|
86
|
+
|
87
|
+
return unless Dir.exist?("#{export_history['path']}/content")
|
88
|
+
|
89
|
+
begin
|
90
|
+
# export history path may look like
|
91
|
+
# "/var/lib/pulp/exports/export-12803/apple/3.0//2022-06-30T17-23-06-00-00"
|
92
|
+
# Generate listing files for all sub directories of
|
93
|
+
# /var/lib/pulp/exports/export-12803/apple/3.0/$date/$org/Library/
|
94
|
+
ignorables = Dir.glob("#{export_history['path']}/content/**/repodata").map do |path|
|
95
|
+
File.dirname(path)
|
96
|
+
end
|
97
|
+
|
98
|
+
paths = Find.find("#{export_history['path']}/content").select do |path|
|
99
|
+
File.directory?(path) &&
|
100
|
+
ignorables.none? { |ignorable| path.start_with?(ignorable) }
|
101
|
+
end
|
102
|
+
|
103
|
+
paths.each do |dir|
|
104
|
+
directories = Dir.chdir(dir) { Dir['*'] }
|
105
|
+
File.write("#{dir}/listing", directories.join("\n"))
|
106
|
+
end
|
107
|
+
rescue SystemCallError
|
108
|
+
output.print_message _("Unable to access/write listing files"\
|
109
|
+
+ " to '#{export_history['path']}'." \
|
110
|
+
+ " To generate listing files run the command below as a root user ")
|
111
|
+
output.print_message(" hammer content-export generate-listing --id #{export_history['id']}")
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
57
115
|
def generate_metadata_json(export_history)
|
58
116
|
metadata_json = export_history["metadata"].to_json
|
59
117
|
begin
|
@@ -102,6 +102,38 @@ module HammerCLIKatello
|
|
102
102
|
setup
|
103
103
|
end
|
104
104
|
|
105
|
+
class EnabledRepositoriesCommand < HammerCLIKatello::ListCommand
|
106
|
+
resource :host_subscriptions, :enabled_repositories
|
107
|
+
command_name 'enabled-repositories'
|
108
|
+
|
109
|
+
output do
|
110
|
+
field :id, _('ID')
|
111
|
+
field :name, _('Name')
|
112
|
+
field :label, _('Label')
|
113
|
+
field :content_type, _('Content type')
|
114
|
+
field :checksum, _("Checksum")
|
115
|
+
|
116
|
+
from :content_view do
|
117
|
+
field :id, _('Content View id')
|
118
|
+
field :name, _("Content View name")
|
119
|
+
end
|
120
|
+
|
121
|
+
from :content_view_version do
|
122
|
+
field :name, _("Content View version")
|
123
|
+
end
|
124
|
+
|
125
|
+
from :kt_environment do
|
126
|
+
field :name, _("Environment name")
|
127
|
+
end
|
128
|
+
|
129
|
+
from :product do
|
130
|
+
field :name, _("Product name")
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
build_options
|
135
|
+
end
|
136
|
+
|
105
137
|
class ContentOverrideCommand < ::HammerCLIKatello::ContentOverrideBase::ContentOverrideCommand
|
106
138
|
resource :host_subscriptions, :content_override
|
107
139
|
setup
|
@@ -28,6 +28,10 @@ module HammerCLIKatello
|
|
28
28
|
field :url, _("URL"), Fields::Field, hide_blank: true
|
29
29
|
field :upstream_organization_label, _("Upstream Organization"),
|
30
30
|
Fields::Field, hide_blank: true
|
31
|
+
field :upstream_lifecycle_environment_label,
|
32
|
+
_("Upstream Lifecycle Environment"), Fields::Field, hide_blank: true
|
33
|
+
field :upstream_content_view_label, _("Upstream Content View"),
|
34
|
+
Fields::Field, hide_blank: true
|
31
35
|
field :username, _("Username"), Fields::Field, hide_blank: true
|
32
36
|
field :ssl_ca_credential_id, _("SSL CA Credential ID"), Fields::Field, hide_blank: true
|
33
37
|
end
|
@@ -13,6 +13,16 @@ module HammerCLIKatello
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
+
class StatusCommand < HammerCLIKatello::ListCommand
|
17
|
+
resource :simple_content_access, :status
|
18
|
+
command_name "status"
|
19
|
+
output do
|
20
|
+
field :simple_content_access, _('Simple Content Access'), Fields::Boolean
|
21
|
+
end
|
22
|
+
|
23
|
+
build_options
|
24
|
+
end
|
25
|
+
|
16
26
|
class EnableCommand < HammerCLIKatello::SingleResourceCommand
|
17
27
|
include EligibleCheck
|
18
28
|
include HammerCLIForemanTasks::Async
|
data/lib/hammer_cli_katello.rb
CHANGED
@@ -43,6 +43,11 @@ module HammerCLIKatello
|
|
43
43
|
'hammer_cli_katello/organization'
|
44
44
|
)
|
45
45
|
|
46
|
+
HammerCLI::MainCommand.lazy_subcommand!("alternate-content-source", _("Manipulate alternate content sources"), # rubocop:disable LineLength
|
47
|
+
'HammerCLIKatello::AcsCommand',
|
48
|
+
'hammer_cli_katello/acs'
|
49
|
+
)
|
50
|
+
|
46
51
|
HammerCLI::MainCommand.lazy_subcommand("content-credentials",
|
47
52
|
_("Manipulate content credentials on the server"),
|
48
53
|
'HammerCLIKatello::ContentCredentialCommand',
|