hammer_cli_katello 1.0.1 → 1.1.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/content_import.rb +16 -1
- data/lib/hammer_cli_katello/content_view_version.rb +0 -273
- data/lib/hammer_cli_katello/docker.rb +13 -0
- data/lib/hammer_cli_katello/docker_manifest.rb +53 -0
- data/lib/hammer_cli_katello/docker_tag.rb +40 -0
- data/lib/hammer_cli_katello/id_resolver.rb +3 -1
- data/lib/hammer_cli_katello/organization.rb +10 -0
- data/lib/hammer_cli_katello/ping.rb +13 -5
- data/lib/hammer_cli_katello/repository.rb +21 -0
- data/lib/hammer_cli_katello/simple_content_access.rb +2 -0
- data/lib/hammer_cli_katello/version.rb +1 -1
- data/lib/hammer_cli_katello.rb +5 -1
- data/locale/hammer-cli-katello.pot +0 -25
- data/test/data/4.0/foreman_api.json +1 -1
- data/test/data/4.1/foreman_api.json +1 -0
- data/test/functional/activation_key/subscriptions_test.rb +5 -2
- data/test/functional/content_import/list_test.rb +65 -0
- data/test/functional/content_import/version_test.rb +6 -6
- data/test/functional/organization/info_test.rb +22 -0
- data/test/functional/ping_test.rb +52 -13
- data/test/test_helper.rb +1 -1
- metadata +11 -39
- data/lib/hammer_cli_katello/cv_import_export_helper.rb +0 -187
- data/test/functional/content_view/version/cv_import_export_helper_test.rb +0 -20
- data/test/functional/content_view/version/default_export_test.rb +0 -40
- data/test/functional/content_view/version/export_test.rb +0 -148
- data/test/functional/content_view/version/import_test.rb +0 -346
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5fa880828d3804a98b06e439b6ea10c6f0784102ac00d5ba686b3ff2e27ced6
|
4
|
+
data.tar.gz: 52650dc243f073826a2f47cbe69939a2c8af4e2dd8acf3f1843b0acf3dab4063
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b782ea88258329a25f04d308d7f419328a931e2d8ed9d757da44bc7ce54fc37351635cea13d1d990de6d5a399ba6793c2aeecf5ed65f374dfb4d51a2fded2308
|
7
|
+
data.tar.gz: e7883bbd668c0eb608b2ad4dc31191f41f8e0837a4648003d2313a0fc13d425778f0f803a46c1343d25dcd25317c27d8ba2d6fc671be846b7bedeb9b60df0beb
|
@@ -13,7 +13,7 @@ module HammerCLIKatello
|
|
13
13
|
:required => false
|
14
14
|
|
15
15
|
base.build_options do |o|
|
16
|
-
o.expand(:all).including(:
|
16
|
+
o.expand(:all).including(:organizations).except(:metadata)
|
17
17
|
end
|
18
18
|
|
19
19
|
base.validate_options do
|
@@ -58,6 +58,21 @@ module HammerCLIKatello
|
|
58
58
|
include ContentImportCommon
|
59
59
|
end
|
60
60
|
|
61
|
+
class ListCommand < HammerCLIKatello::ListCommand
|
62
|
+
desc "View content view import histories"
|
63
|
+
output do
|
64
|
+
field :id, _('ID')
|
65
|
+
field :path, _('Path')
|
66
|
+
field :type, _('Type')
|
67
|
+
field :content_view_version, _('Content View Version')
|
68
|
+
field :content_view_version_id, _('Content View Version ID')
|
69
|
+
field :created_at, _('Created at')
|
70
|
+
field :updated_at, _('Updated at'), Fields::Field, :hide_blank => true
|
71
|
+
end
|
72
|
+
|
73
|
+
build_options
|
74
|
+
end
|
75
|
+
|
61
76
|
autoload_subcommands
|
62
77
|
end
|
63
78
|
end
|
@@ -271,279 +271,6 @@ module HammerCLIKatello
|
|
271
271
|
end
|
272
272
|
end
|
273
273
|
|
274
|
-
class ExportDefaultCommand < HammerCLIForeman::Command
|
275
|
-
include HammerCLIKatello::LocalHelper
|
276
|
-
include HammerCLIKatello::ApipieHelper
|
277
|
-
include HammerCLIKatello::CVImportExportHelper
|
278
|
-
|
279
|
-
PUBLISHED_REPOS_DIR = "/var/lib/pulp/published/yum/https/repos/".freeze
|
280
|
-
|
281
|
-
desc _('Export the library default content view')
|
282
|
-
|
283
|
-
command_name "export-default"
|
284
|
-
|
285
|
-
option '--export-dir', 'EXPORT_DIR', _("Directory to put content view version export into.")
|
286
|
-
|
287
|
-
validate_options do
|
288
|
-
option(:option_export_dir).required
|
289
|
-
end
|
290
|
-
|
291
|
-
build_options
|
292
|
-
|
293
|
-
def execute
|
294
|
-
validate_pulp3_not_enabled(fail_msg_export)
|
295
|
-
export_dir = options['option_export_dir']
|
296
|
-
|
297
|
-
Dir.mkdir(export_dir) unless Dir.exist?(export_dir)
|
298
|
-
result = Kernel.system("rsync -aL #{PUBLISHED_REPOS_DIR} #{export_dir}")
|
299
|
-
if result == true
|
300
|
-
output.print_message _("Default content view export is available at #{export_dir}")
|
301
|
-
HammerCLI::EX_OK
|
302
|
-
else
|
303
|
-
output.print_error _("Could not export the default content view at #{export_dir}")
|
304
|
-
HammerCLI::EX_CANTCREAT
|
305
|
-
end
|
306
|
-
end
|
307
|
-
end
|
308
|
-
|
309
|
-
class LegacyExportCommand < HammerCLIKatello::SingleResourceCommand
|
310
|
-
include HammerCLIForemanTasks::Async
|
311
|
-
include LifecycleEnvironmentNameMapping
|
312
|
-
include HammerCLIKatello::CVImportExportHelper
|
313
|
-
desc _('Export a content view (legacy method)')
|
314
|
-
|
315
|
-
action :export
|
316
|
-
command_name "export-legacy"
|
317
|
-
|
318
|
-
success_message _("Content view is being exported in task %{id}.")
|
319
|
-
failure_message _("Could not export the content view")
|
320
|
-
build_options do |o|
|
321
|
-
o.expand(:all).including(:environments, :content_views, :organizations)
|
322
|
-
end
|
323
|
-
|
324
|
-
extend_with(HammerCLIKatello::CommandExtensions::LifecycleEnvironment.new)
|
325
|
-
|
326
|
-
def request_params
|
327
|
-
validate_pulp3_not_enabled(fail_msg_export)
|
328
|
-
super
|
329
|
-
end
|
330
|
-
end
|
331
|
-
|
332
|
-
class ExportCommand < HammerCLIForeman::Command
|
333
|
-
include HammerCLIKatello::LocalHelper
|
334
|
-
include HammerCLIKatello::ApipieHelper
|
335
|
-
include HammerCLIKatello::CVImportExportHelper
|
336
|
-
|
337
|
-
PUBLISHED_REPOS_DIR = "/var/lib/pulp/published/yum/https/repos/".freeze
|
338
|
-
|
339
|
-
desc _('Export a content view version')
|
340
|
-
|
341
|
-
command_name "export"
|
342
|
-
|
343
|
-
success_message _("Content view export is available in %{directory}.")
|
344
|
-
failure_message _("Could not export the content view")
|
345
|
-
|
346
|
-
option "--id", "ID", _("Content View Version numeric identifier")
|
347
|
-
option '--export-dir', 'EXPORT_DIR', _("Directory to put content view version export into.")
|
348
|
-
|
349
|
-
validate_options do
|
350
|
-
option(:option_export_dir).required
|
351
|
-
option(:option_id).required
|
352
|
-
end
|
353
|
-
|
354
|
-
build_options
|
355
|
-
|
356
|
-
def execute
|
357
|
-
cvv = show(:content_view_versions, 'id' => options['option_id'])
|
358
|
-
cv = show(:content_views, 'id' => cvv['content_view_id'])
|
359
|
-
|
360
|
-
validate_pulp3_not_enabled(fail_msg_export)
|
361
|
-
|
362
|
-
composite = cv["composite"]
|
363
|
-
|
364
|
-
export_json_options = { :cvv => cvv }
|
365
|
-
|
366
|
-
if composite
|
367
|
-
components = cv['components']
|
368
|
-
export_json_options[:component_cvvs] = components.collect do |component|
|
369
|
-
component['name']
|
370
|
-
end
|
371
|
-
export_json_options[:repositories] = []
|
372
|
-
else
|
373
|
-
repositories = fetch_exportable_cvv_repositories(cvv)
|
374
|
-
collect_packages(repositories)
|
375
|
-
|
376
|
-
export_json_options[:repositories] = repositories
|
377
|
-
end
|
378
|
-
|
379
|
-
json = export_json(export_json_options)
|
380
|
-
if repositories&.any? || cv['composite']
|
381
|
-
create_tar(cv, cvv, repositories, json)
|
382
|
-
else
|
383
|
-
msg = <<~MSG
|
384
|
-
Ensure the content view version '#{cvv['name']}' has at least one repository.
|
385
|
-
MSG
|
386
|
-
raise _(msg)
|
387
|
-
end
|
388
|
-
return HammerCLI::EX_OK
|
389
|
-
end
|
390
|
-
|
391
|
-
def create_tar(cv, cvv, repositories, json)
|
392
|
-
export_prefix = "export-#{cv['label']}-#{cvv['major']}.#{cvv['minor']}"
|
393
|
-
export_file = "#{export_prefix}.json"
|
394
|
-
export_repos_tar = "#{export_prefix}-repos.tar"
|
395
|
-
export_tar = "#{export_prefix}.tar"
|
396
|
-
export_dir = File.expand_path(options['option_export_dir'].to_s)
|
397
|
-
|
398
|
-
Dir.mkdir("#{export_dir}/#{export_prefix}")
|
399
|
-
|
400
|
-
if repositories&.any?
|
401
|
-
|
402
|
-
Dir.chdir(PUBLISHED_REPOS_DIR) do
|
403
|
-
repo_tar = "#{export_dir}/#{export_prefix}/#{export_repos_tar}"
|
404
|
-
repo_dirs = []
|
405
|
-
|
406
|
-
repositories.each do |repo|
|
407
|
-
repo_dirs.push(repo['relative_path'])
|
408
|
-
end
|
409
|
-
|
410
|
-
`tar cvfh #{repo_tar} #{repo_dirs.join(" ")}`
|
411
|
-
end
|
412
|
-
end
|
413
|
-
|
414
|
-
Dir.chdir("#{export_dir}/#{export_prefix}") do
|
415
|
-
File.open(export_file, 'w') do |file|
|
416
|
-
file.write(JSON.pretty_generate(json))
|
417
|
-
end
|
418
|
-
end
|
419
|
-
|
420
|
-
Dir.chdir(export_dir) do
|
421
|
-
`tar cf #{export_tar} #{export_prefix}`
|
422
|
-
FileUtils.rm_rf(export_prefix)
|
423
|
-
end
|
424
|
-
end
|
425
|
-
end
|
426
|
-
|
427
|
-
class ImportCommand < HammerCLIForeman::Command
|
428
|
-
include HammerCLIForemanTasks::Async
|
429
|
-
include HammerCLIKatello::LocalHelper
|
430
|
-
include HammerCLIKatello::ApipieHelper
|
431
|
-
include HammerCLIKatello::CVImportExportHelper
|
432
|
-
|
433
|
-
attr_accessor :export_tar_dir, :export_tar_file, :export_tar_prefix
|
434
|
-
|
435
|
-
desc _('Import a content view version')
|
436
|
-
|
437
|
-
command_name "import"
|
438
|
-
|
439
|
-
success_message _("Content view imported.")
|
440
|
-
failure_message _("Could not import the content view")
|
441
|
-
|
442
|
-
option "--organization-id", "ORGANIZATION_ID", _("Organization numeric identifier")
|
443
|
-
option(
|
444
|
-
'--export-tar', 'EXPORT_TAR',
|
445
|
-
_("Location of export tar on disk")
|
446
|
-
)
|
447
|
-
|
448
|
-
validate_options do
|
449
|
-
option(:option_export_tar).required
|
450
|
-
option(:option_organization_id).required
|
451
|
-
end
|
452
|
-
|
453
|
-
build_options
|
454
|
-
|
455
|
-
# rubocop:disable Metrics/AbcSize
|
456
|
-
def execute
|
457
|
-
validate_pulp3_not_enabled(fail_msg_import)
|
458
|
-
|
459
|
-
unless File.exist?(options['option_export_tar'])
|
460
|
-
raise _("Export tar #{options['option_export_tar']} does not exist.")
|
461
|
-
end
|
462
|
-
|
463
|
-
import_tar_params = obtain_export_params(options['option_export_tar'])
|
464
|
-
untar_export(import_tar_params)
|
465
|
-
|
466
|
-
export_json = read_json(import_tar_params)
|
467
|
-
cv = content_view(export_json['name'], options['option_organization_id'])
|
468
|
-
major = export_json['major'].to_s
|
469
|
-
minor = export_json['minor'].to_s
|
470
|
-
import_checks(export_json, cv, major, minor)
|
471
|
-
|
472
|
-
if export_json['composite_components']
|
473
|
-
composite_version_ids = export_json['composite_components'].map do |component|
|
474
|
-
find_local_component_id(component)
|
475
|
-
end
|
476
|
-
update(:content_views, 'id' => cv['id'], 'component_ids' => composite_version_ids)
|
477
|
-
publish(cv['id'], export_json['major'], export_json['minor'])
|
478
|
-
else
|
479
|
-
sync_repositories(export_json['repositories'], options['option_organization_id'],
|
480
|
-
import_tar_params)
|
481
|
-
|
482
|
-
unless cv['default']
|
483
|
-
publish(
|
484
|
-
cv['id'], export_json['major'],
|
485
|
-
export_json['minor'], repos_units(export_json['repositories'])
|
486
|
-
)
|
487
|
-
end
|
488
|
-
end
|
489
|
-
return HammerCLI::EX_OK
|
490
|
-
end
|
491
|
-
# rubocop:enable Metrics/AbcSize
|
492
|
-
|
493
|
-
def sync_repositories(repositories, organization_id, options)
|
494
|
-
export_tar_dir = options[:dirname]
|
495
|
-
export_tar_prefix = options[:prefix]
|
496
|
-
|
497
|
-
repositories.each do |repo|
|
498
|
-
library_repos = index(
|
499
|
-
:repositories,
|
500
|
-
'organization_id' => organization_id,
|
501
|
-
'library' => true,
|
502
|
-
'label' => repo['label']
|
503
|
-
)
|
504
|
-
|
505
|
-
library_repo = library_repos.select do |candidate_repo|
|
506
|
-
candidate_repo['label'] == repo['label']
|
507
|
-
end
|
508
|
-
|
509
|
-
library_repo = library_repo.first
|
510
|
-
|
511
|
-
if library_repo.nil?
|
512
|
-
msg = _("Unable to sync repositories, no library repository found for %s")
|
513
|
-
raise msg % repo['label']
|
514
|
-
end
|
515
|
-
|
516
|
-
synchronize(
|
517
|
-
library_repo['id'],
|
518
|
-
"file://#{export_tar_dir}/#{export_tar_prefix}/#{repo['relative_path']}"
|
519
|
-
)
|
520
|
-
end
|
521
|
-
end
|
522
|
-
|
523
|
-
def repos_units(repositories)
|
524
|
-
repositories.collect do |repo|
|
525
|
-
{
|
526
|
-
'label' => repo['label'],
|
527
|
-
'rpm_filenames' => repo['rpm_filenames']
|
528
|
-
}
|
529
|
-
end
|
530
|
-
end
|
531
|
-
|
532
|
-
def content_view(name, organization_id)
|
533
|
-
index(:content_views, 'name' => name, 'organization_id' => organization_id).first
|
534
|
-
end
|
535
|
-
|
536
|
-
def synchronize(id, source_url)
|
537
|
-
task_progress(call(:sync, :repositories, 'id' => id, 'source_url' => source_url))
|
538
|
-
end
|
539
|
-
|
540
|
-
def publish(id, major, minor, repos_units = nil)
|
541
|
-
params = {'id' => id, 'major' => major, 'minor' => minor }
|
542
|
-
params['repos_units'] = repos_units if repos_units
|
543
|
-
task_progress(call(:publish, :content_views, params))
|
544
|
-
end
|
545
|
-
end
|
546
|
-
|
547
274
|
autoload_subcommands
|
548
275
|
end
|
549
276
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class DockerCommand < HammerCLI::AbstractCommand
|
3
|
+
require 'hammer_cli_katello/docker_manifest'
|
4
|
+
subcommand 'manifest',
|
5
|
+
HammerCLIKatello::DockerManifestCommand.desc,
|
6
|
+
HammerCLIKatello::DockerManifestCommand
|
7
|
+
|
8
|
+
require 'hammer_cli_katello/docker_tag'
|
9
|
+
subcommand 'tag',
|
10
|
+
HammerCLIKatello::DockerTagCommand.desc,
|
11
|
+
HammerCLIKatello::DockerTagCommand
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class DockerManifestCommand < HammerCLIForeman::Command
|
3
|
+
resource :docker_manifests
|
4
|
+
command_name 'manifest'
|
5
|
+
desc _('Manage docker manifests')
|
6
|
+
|
7
|
+
class ListCommand < HammerCLIKatello::ListCommand
|
8
|
+
include HammerCLIKatello::LifecycleEnvironmentNameMapping
|
9
|
+
|
10
|
+
output do
|
11
|
+
field :id, _("ID")
|
12
|
+
field :name, _("Name")
|
13
|
+
field :schema_version, _("Schema Version")
|
14
|
+
field :digest, _("Digest")
|
15
|
+
field :downloaded, _("Downloaded"), Fields::Boolean
|
16
|
+
field :_tags, _("Tags")
|
17
|
+
end
|
18
|
+
|
19
|
+
def extend_data(manifest)
|
20
|
+
manifest['_tags'] = manifest['tags'].map { |e| e["name"] }.join(", ")
|
21
|
+
manifest
|
22
|
+
end
|
23
|
+
|
24
|
+
build_options do |o|
|
25
|
+
o.expand.including(:products, :organizations, :content_views)
|
26
|
+
end
|
27
|
+
|
28
|
+
extend_with(HammerCLIKatello::CommandExtensions::LifecycleEnvironment.new)
|
29
|
+
end
|
30
|
+
|
31
|
+
class InfoCommand < HammerCLIKatello::InfoCommand
|
32
|
+
output do
|
33
|
+
field :id, _("ID")
|
34
|
+
field :name, _("Name")
|
35
|
+
field :schema_version, _("Schema Version")
|
36
|
+
field :digest, _("Digest")
|
37
|
+
field :downloaded, _("Downloaded"), Fields::Boolean
|
38
|
+
collection :tags, _("Tags") do
|
39
|
+
field :name, _("Name")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def extend_data(manifest)
|
44
|
+
manifest['_tags'] = manifest['tags'].map { |e| { name: e["name"] } }.join(", ")
|
45
|
+
manifest
|
46
|
+
end
|
47
|
+
|
48
|
+
build_options
|
49
|
+
end
|
50
|
+
|
51
|
+
autoload_subcommands
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module HammerCLIKatello
|
2
|
+
class DockerTagCommand < HammerCLIForeman::Command
|
3
|
+
resource :docker_tags
|
4
|
+
command_name 'tag'
|
5
|
+
desc _('Manage docker tags')
|
6
|
+
|
7
|
+
class ListCommand < HammerCLIKatello::ListCommand
|
8
|
+
include HammerCLIKatello::LifecycleEnvironmentNameMapping
|
9
|
+
|
10
|
+
output do
|
11
|
+
field :id, _("ID")
|
12
|
+
field :name, _("Tag")
|
13
|
+
field :repository_id, _("Repository ID")
|
14
|
+
end
|
15
|
+
|
16
|
+
build_options do |o|
|
17
|
+
o.expand.including(:products, :organizations, :content_views)
|
18
|
+
end
|
19
|
+
|
20
|
+
extend_with(HammerCLIKatello::CommandExtensions::LifecycleEnvironment.new)
|
21
|
+
end
|
22
|
+
|
23
|
+
class InfoCommand < HammerCLIKatello::InfoCommand
|
24
|
+
output do
|
25
|
+
field :id, _("ID")
|
26
|
+
field :name, _("Tag")
|
27
|
+
field :repository_id, _("Repository ID")
|
28
|
+
|
29
|
+
from :manifest do
|
30
|
+
field :id, _("Docker Manifest ID")
|
31
|
+
field :name, _("Docker Manifest Name")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
build_options
|
36
|
+
end
|
37
|
+
|
38
|
+
autoload_subcommands
|
39
|
+
end
|
40
|
+
end
|
@@ -28,7 +28,9 @@ module HammerCLIKatello
|
|
28
28
|
:subscription => [s_name(_("Subscription name to search by"))],
|
29
29
|
:sync_plan => [s_name(_("Sync plan name to search by"))],
|
30
30
|
:task => [s_name(_("Task name to search by"))],
|
31
|
-
:content_view_version => [s("version", _("Content view version number"))]
|
31
|
+
:content_view_version => [s("version", _("Content view version number"))],
|
32
|
+
:content_export => [],
|
33
|
+
:content_import => []
|
32
34
|
}.freeze
|
33
35
|
|
34
36
|
DEFAULT_SEARCHABLES = [s_name(_("Name to search by"))].freeze
|
@@ -21,9 +21,19 @@ module HammerCLIKatello
|
|
21
21
|
field :label, _("Label")
|
22
22
|
field :description, _("Description")
|
23
23
|
field :redhat_repository_url, _("Red Hat Repository URL")
|
24
|
+
field :simple_content_access_label, _("Simple Content Access")
|
24
25
|
field :service_levels, _("Service Levels"), Fields::List
|
25
26
|
end
|
26
27
|
|
28
|
+
def extend_data(data)
|
29
|
+
data["simple_content_access_label"] = if data["simple_content_access"]
|
30
|
+
_("Enabled")
|
31
|
+
else
|
32
|
+
_("Disabled")
|
33
|
+
end
|
34
|
+
data
|
35
|
+
end
|
36
|
+
|
27
37
|
build_options
|
28
38
|
end
|
29
39
|
|
@@ -6,6 +6,14 @@ module HammerCLIKatello
|
|
6
6
|
|
7
7
|
output do
|
8
8
|
from "services" do
|
9
|
+
label "katello_agent", hide_blank: true do
|
10
|
+
from "katello_agent" do
|
11
|
+
field "status", _("Status"), Fields::Field, hide_blank: true
|
12
|
+
field "message", _("message"), Fields::Field, hide_blank: true
|
13
|
+
field "_response", _("Server Response"), Fields::Field, hide_blank: true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
9
17
|
label "candlepin" do
|
10
18
|
from "candlepin" do
|
11
19
|
field "status", _("Status")
|
@@ -13,17 +21,17 @@ module HammerCLIKatello
|
|
13
21
|
end
|
14
22
|
end
|
15
23
|
|
16
|
-
label "
|
17
|
-
from "
|
24
|
+
label "candlepin_auth" do
|
25
|
+
from "candlepin_auth" do
|
18
26
|
field "status", _("Status")
|
19
|
-
field "message", _("message")
|
20
27
|
field "_response", _("Server Response")
|
21
28
|
end
|
22
29
|
end
|
23
30
|
|
24
|
-
label "
|
25
|
-
from "
|
31
|
+
label "candlepin_events" do
|
32
|
+
from "candlepin_events" do
|
26
33
|
field "status", _("Status")
|
34
|
+
field "message", _("message")
|
27
35
|
field "_response", _("Server Response")
|
28
36
|
end
|
29
37
|
end
|
@@ -2,6 +2,25 @@ module HammerCLIKatello
|
|
2
2
|
class Repository < HammerCLIKatello::Command
|
3
3
|
resource :repositories
|
4
4
|
|
5
|
+
module AnsibleCollectionRequirementsHelper
|
6
|
+
def self.included(base)
|
7
|
+
base.option "--ansible-collection-requirements-file",
|
8
|
+
"REQUIREMENTS_FILE", _("Location of the ansible collections "\
|
9
|
+
"requirements.yml file. "),
|
10
|
+
:attribute_name => :option_ansible_collection_requirements_file,
|
11
|
+
:required => false
|
12
|
+
end
|
13
|
+
|
14
|
+
def request_params
|
15
|
+
super.tap do |opts|
|
16
|
+
requirements_file = option_ansible_collection_requirements_file
|
17
|
+
if requirements_file
|
18
|
+
opts["ansible_collection_requirements"] = File.read(requirements_file)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
5
24
|
class ListCommand < HammerCLIKatello::ListCommand
|
6
25
|
include LifecycleEnvironmentNameMapping
|
7
26
|
|
@@ -192,6 +211,7 @@ module HammerCLIKatello
|
|
192
211
|
end
|
193
212
|
|
194
213
|
class CreateCommand < HammerCLIKatello::CreateCommand
|
214
|
+
include AnsibleCollectionRequirementsHelper
|
195
215
|
success_message _("Repository created.")
|
196
216
|
failure_message _("Could not create the repository")
|
197
217
|
|
@@ -204,6 +224,7 @@ module HammerCLIKatello
|
|
204
224
|
|
205
225
|
class UpdateCommand < HammerCLIKatello::UpdateCommand
|
206
226
|
extend RepositoryScopedToProduct
|
227
|
+
include AnsibleCollectionRequirementsHelper
|
207
228
|
|
208
229
|
validate_repo_name_requires_product_options
|
209
230
|
include OrganizationOptions
|
@@ -15,6 +15,7 @@ module HammerCLIKatello
|
|
15
15
|
|
16
16
|
class EnableCommand < HammerCLIKatello::SingleResourceCommand
|
17
17
|
include EligibleCheck
|
18
|
+
include HammerCLIForemanTasks::Async
|
18
19
|
resource :simple_content_access, :enable
|
19
20
|
command_name "enable"
|
20
21
|
|
@@ -26,6 +27,7 @@ module HammerCLIKatello
|
|
26
27
|
|
27
28
|
class DisableCommand < HammerCLIKatello::SingleResourceCommand
|
28
29
|
include EligibleCheck
|
30
|
+
include HammerCLIForemanTasks::Async
|
29
31
|
resource :simple_content_access, :disable
|
30
32
|
command_name "disable"
|
31
33
|
|
data/lib/hammer_cli_katello.rb
CHANGED
@@ -30,7 +30,6 @@ module HammerCLIKatello
|
|
30
30
|
require 'hammer_cli_katello/id_name_options_validator'
|
31
31
|
require 'hammer_cli_katello/local_helper'
|
32
32
|
require 'hammer_cli_katello/apipie_helper'
|
33
|
-
require 'hammer_cli_katello/cv_import_export_helper'
|
34
33
|
require 'hammer_cli_katello/content_export_helper'
|
35
34
|
|
36
35
|
# commands
|
@@ -156,6 +155,11 @@ module HammerCLIKatello
|
|
156
155
|
'hammer_cli_katello/simple_content_access'
|
157
156
|
)
|
158
157
|
|
158
|
+
HammerCLI::MainCommand.lazy_subcommand("docker", _("Manipulate docker content"),
|
159
|
+
'HammerCLIKatello::DockerCommand',
|
160
|
+
'hammer_cli_katello/docker'
|
161
|
+
)
|
162
|
+
|
159
163
|
# subcommands to hammer_cli_foreman commands
|
160
164
|
require 'hammer_cli_katello/host'
|
161
165
|
require 'hammer_cli_katello/hostgroup'
|
@@ -1195,31 +1195,6 @@ msgstr ""
|
|
1195
1195
|
msgid "Unable to sync repositories, no library repository found for %s"
|
1196
1196
|
msgstr ""
|
1197
1197
|
|
1198
|
-
#: ../lib/hammer_cli_katello/cv_import_export_helper.rb:19
|
1199
|
-
msgid ""
|
1200
|
-
"Unable to find CV version %{cvv} on system. Please ensure it is already import"
|
1201
|
-
"ed."
|
1202
|
-
msgstr ""
|
1203
|
-
|
1204
|
-
#: ../lib/hammer_cli_katello/cv_import_export_helper.rb:29
|
1205
|
-
msgid ""
|
1206
|
-
"The Content View #{cv['name']} is not present on this server, please create th"
|
1207
|
-
"e Content View and try the import again."
|
1208
|
-
msgstr ""
|
1209
|
-
|
1210
|
-
#: ../lib/hammer_cli_katello/cv_import_export_helper.rb:34
|
1211
|
-
msgid ""
|
1212
|
-
"The latest version (#{import_cv['latest_version']}) of the Content View '#{cv["
|
1213
|
-
"'name']}' is greater or equal to the version you are trying to import (#{versi"
|
1214
|
-
"on})"
|
1215
|
-
msgstr ""
|
1216
|
-
|
1217
|
-
#: ../lib/hammer_cli_katello/cv_import_export_helper.rb:45
|
1218
|
-
msgid ""
|
1219
|
-
"The Repository '#{repo['name']}' is set with Mirror-on-Sync to YES. Please cha"
|
1220
|
-
"nge Mirror-on-Sync to NO and try the import again."
|
1221
|
-
msgstr ""
|
1222
|
-
|
1223
1198
|
#: ../lib/hammer_cli_katello/erratum.rb:14
|
1224
1199
|
#: ../lib/hammer_cli_katello/erratum_info_command.rb:11
|
1225
1200
|
#: ../lib/hammer_cli_katello/filter.rb:47
|