hammer_cli_katello 1.5.2 → 1.6.0

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.
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), '../test_helper')
2
2
 
3
3
  describe 'create content-credentials' do
4
4
  before do
5
- @cmd = %w(alternate-content-sources create)
5
+ @cmd = %w(alternate-content-source create)
6
6
  end
7
7
 
8
8
  let(:name) { 'pizza' }
@@ -7,7 +7,7 @@ describe 'delete an acs' do
7
7
  api_expects(:alternate_content_sources, :destroy, 'delete acs').
8
8
  with_params('id' => id)
9
9
 
10
- command = %W(alternate-content-sources delete --id #{id})
10
+ command = %W(alternate-content-source delete --id #{id})
11
11
  assert_equal(0, run_cmd(command).exit_code)
12
12
  end
13
13
  end
@@ -3,7 +3,7 @@ require 'hammer_cli_katello/associating_commands'
3
3
 
4
4
  describe 'get acs info' do
5
5
  before do
6
- @cmd = %w(alternate-content-sources info)
6
+ @cmd = %w(alternate-content-source info)
7
7
  end
8
8
 
9
9
  it 'shows acs info by id' do
@@ -14,20 +14,17 @@ describe 'get acs info' do
14
14
  'name' => 'Pizza ACS',
15
15
  'label' => 'Pizza ACS',
16
16
  'base_url' => 'https://proxy.example.com',
17
- 'alternate_content_source_type' => 'custom',
18
17
  'content_type' => 'yum',
18
+ 'alternate_content_source_type' => 'custom',
19
+ 'subpaths' => [
20
+ 'test/repo1'
21
+ ],
19
22
  'smart_proxies' => {
20
23
  'id' => 1,
21
24
  'name' => 'centos7.example.com',
22
25
  'url' => 'https://centos7.example.com:9090',
23
- 'created_at' => '2022-05-09T17:40:21.007Z',
24
- 'updated_at' => '2022-05-09T17:40:21.007Z',
25
- 'expired_logs' => 0,
26
26
  'download_policy' => 'on_demand'
27
- },
28
- 'subpaths' => [
29
- 'test/repo1'
30
- ]
27
+ }
31
28
  )
32
29
  result = run_cmd(@cmd + params)
33
30
  # rubocop:disable Style/WordArray
@@ -35,18 +32,60 @@ describe 'get acs info' do
35
32
  ['Name', 'Pizza ACS'],
36
33
  ['Label', 'Pizza ACS'],
37
34
  ['Base URL', 'https://proxy.example.com'],
35
+ ['Content type', 'yum'],
38
36
  ['Alternate content source type', 'custom'],
37
+ ['Subpaths', ''],
38
+ ['', 'test/repo1'],
39
+ ['Smart proxies', ''],
40
+ ['Id', '1'],
41
+ ['Name', 'centos7.example.com'],
42
+ ['URL', 'https://centos7.example.com:9090'],
43
+ ['Download policy', 'on_demand']]
44
+
45
+ # rubocop:enable Style/WordArray
46
+ expected_results = expected_fields.map { |field| success_result(FieldMatcher.new(*field)) }
47
+ expected_results.each { |expected| assert_cmd(expected, result) }
48
+ end
49
+
50
+ it 'shows simplified acs info by id' do
51
+ params = ['--id=2']
52
+ ex = api_expects(:alternate_content_sources, :show, 'Get info')
53
+ ex.returns(
54
+ 'id' => 2,
55
+ 'name' => 'Pizza ACS',
56
+ 'label' => 'Pizza ACS',
57
+ 'content_type' => 'yum',
58
+ 'alternate_content_source_type' => 'simplified',
59
+ 'products' => {
60
+ 'id' => 999,
61
+ 'organization_id' => 9,
62
+ 'name' => 'Buttermilk Biscuits',
63
+ 'label' => 'Buttermilk_Biscuits'
64
+ },
65
+ 'smart_proxies' => {
66
+ 'id' => 1,
67
+ 'name' => 'centos7.example.com',
68
+ 'url' => 'https://centos7.example.com:9090',
69
+ 'download_policy' => 'on_demand'
70
+ }
71
+ )
72
+ result = run_cmd(@cmd + params)
73
+ # rubocop:disable Style/WordArray
74
+ expected_fields = [['ID', '2'],
75
+ ['Name', 'Pizza ACS'],
76
+ ['Label', 'Pizza ACS'],
39
77
  ['Content type', 'yum'],
78
+ ['Alternate content source type', 'simplified'],
79
+ ['Products', ''],
80
+ ['Id', '999'],
81
+ ['Organization ID', '9'],
82
+ ['Name', 'Buttermilk Biscuits'],
83
+ ['Label', 'Buttermilk_Biscuits'],
40
84
  ['Smart proxies', ''],
41
85
  ['Id', '1'],
42
86
  ['Name', 'centos7.example.com'],
43
87
  ['URL', 'https://centos7.example.com:9090'],
44
- ['Created at', '2022-05-09T17:40:21.007Z'],
45
- ['Updated at', '2022-05-09T17:40:21.007Z'],
46
- ['Expired logs', '0'],
47
- ['Download policy', 'on_demand'],
48
- ['Subpaths', ''],
49
- ['', 'test/repo1']]
88
+ ['Download policy', 'on_demand']]
50
89
 
51
90
  # rubocop:enable Style/WordArray
52
91
  expected_results = expected_fields.map { |field| success_result(FieldMatcher.new(*field)) }
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), '../test_helper')
2
2
 
3
3
  describe 'listing acs' do
4
4
  before do
5
- @cmd = %w(alternate-content-sources list)
5
+ @cmd = %w(alternate-content-source list)
6
6
  end
7
7
 
8
8
  let(:empty_response) do
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), '../test_helper')
2
2
 
3
3
  describe 'listing acs' do
4
4
  before do
5
- @cmd = %w(alternate-content-sources update)
5
+ @cmd = %w(alternate-content-source update)
6
6
  end
7
7
 
8
8
  let(:id) { 1 }
@@ -27,9 +27,9 @@ describe 'content-export complete version' do
27
27
 
28
28
  let(:export_history) do
29
29
  {
30
- "id": 1000,
31
- "path": "/tmp",
32
- "metadata": {}
30
+ "id" => 1000,
31
+ "path" => "/tmp",
32
+ "metadata" => {}
33
33
  }
34
34
  end
35
35
 
@@ -57,6 +57,24 @@ describe 'content-export complete version' do
57
57
  assert_equal(HammerCLI::EX_OK, result.exit_code)
58
58
  end
59
59
 
60
+ it "performs export with required options and async for syncable format" do
61
+ params = [
62
+ "--id=#{content_view_version_id}",
63
+ '--format=syncable',
64
+ '--async'
65
+ ]
66
+ expects_repositories_in_version(content_view_version_id)
67
+ ex = api_expects(:content_exports, :version)
68
+ ex.returns(response)
69
+
70
+ result = run_cmd(@cmd + params)
71
+
72
+ assert_equal("Content view version is being exported in task #{task_id}.\n"\
73
+ + "Once the task completes the listing files may be generated with the command:"\
74
+ + "\n hammer content-export generate-listing --task-id #{task_id}\n", result.out)
75
+ assert_equal(HammerCLI::EX_OK, result.exit_code)
76
+ end
77
+
60
78
  it "performs export with required options" do
61
79
  params = [
62
80
  "--id=#{content_view_version_id}",
@@ -78,6 +96,33 @@ describe 'content-export complete version' do
78
96
  assert_equal(HammerCLI::EX_OK, result.exit_code)
79
97
  end
80
98
 
99
+ it "performs export with format" do
100
+ params = [
101
+ "--id=#{content_view_version_id}",
102
+ '--format=syncable'
103
+ ]
104
+ expects_repositories_in_version(content_view_version_id)
105
+ ex = api_expects(:content_exports, :version)
106
+ ex.returns(response)
107
+
108
+ expect_foreman_task(task_id).at_least_once
109
+ path = "/foo/bar"
110
+ syncable_export_history = {
111
+ "id" => 1000,
112
+ "path" => path,
113
+ "metadata" => {"format" => "syncable"}
114
+ }
115
+ HammerCLIKatello::ContentExportComplete::VersionCommand.
116
+ any_instance.
117
+ expects(:fetch_export_history).
118
+ returns(syncable_export_history)
119
+
120
+ result = run_cmd(@cmd + params)
121
+ assert_match(/Generated/, result.out)
122
+ assert_match(path, result.out)
123
+ assert_equal(HammerCLI::EX_OK, result.exit_code)
124
+ end
125
+
81
126
  it 'fails on missing required params' do
82
127
  params = [
83
128
  '--boo-id=2'
@@ -0,0 +1,62 @@
1
+ require File.join(File.dirname(__FILE__), '../../test_helper')
2
+ require 'hammer_cli_katello/content_export'
3
+
4
+ describe('content-export generate-listing') do
5
+ include ForemanTaskHelpers
6
+
7
+ before do
8
+ @cmd = %w(content-export generate-listing)
9
+ @params = []
10
+ @export_history_id = 100
11
+ @path = '/tmp'
12
+ @export_history = {
13
+ 'id' => @export_history_id,
14
+ 'path' => @path,
15
+ 'metadata' => {'format' => 'syncable'}
16
+ }
17
+ @task_id = SecureRandom.uuid
18
+ end
19
+
20
+ let(:cmd) { @cmd + @params }
21
+ let(:result) { run_cmd(cmd) }
22
+
23
+ describe('given an export history id') do
24
+ it('loads export history by id') do
25
+ @params = ["--id=#{@export_history_id}"]
26
+
27
+ HammerCLIKatello::ContentExport::GenerateListingCommand.
28
+ any_instance.
29
+ expects(:fetch_export_history).
30
+ returns(@export_history)
31
+ assert_match(/Generated/, result.out)
32
+ assert_match(@path, result.out)
33
+ end
34
+ end
35
+
36
+ describe('given a task id') do
37
+ it('loads export history based on the task') do
38
+ @params = ["--task-id=#{@task_id}"]
39
+
40
+ HammerCLIKatello::ContentExport::GenerateListingCommand.
41
+ any_instance.
42
+ expects(:reload_task).
43
+ returns('id' => 'taskid')
44
+
45
+ HammerCLIKatello::ContentExport::GenerateListingCommand.
46
+ any_instance.
47
+ expects(:fetch_export_history).
48
+ returns(@export_history)
49
+
50
+ assert_match(/Generated/, result.out)
51
+ assert_match(@path, result.out)
52
+ end
53
+ end
54
+
55
+ describe('given no arguments') do
56
+ it('tells the user to verify the arguments') do
57
+ expected = "Error: No export history was found. Verify the value given for "\
58
+ + "--task-id or --id\n"
59
+ assert_equal(expected, result.err)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,39 @@
1
+ require File.join(File.dirname(__FILE__), '../../test_helper')
2
+
3
+ describe 'host enabled-repositories listing' do
4
+ before do
5
+ @cmd = %w(host subscription enabled-repositories)
6
+ end
7
+
8
+ let(:host_id) { 1 }
9
+ let(:empty_response) do
10
+ {
11
+ "total" => 0,
12
+ "subtotal" => 0,
13
+ "page" => "1",
14
+ "per_page" => "1000",
15
+ "error" => nil,
16
+ "search" => nil,
17
+ "sort" => {
18
+ "by" => nil,
19
+ "order" => nil
20
+ },
21
+ "results" => []
22
+ }
23
+ end
24
+
25
+ it 'allows listing by host' do
26
+ params = ["--host-id=#{host_id}"]
27
+ ex = api_expects(:host_subscriptions,
28
+ :enabled_repositories, 'host subscription enabled-repositories')
29
+ ex.returns(empty_response)
30
+ # rubocop:disable Layout/LineLength
31
+ expected_result = success_result("---|------|-------|--------------|----------|-----------------|-------------------|----------------------|------------------|-------------
32
+ ID | NAME | LABEL | CONTENT TYPE | CHECKSUM | CONTENT VIEW ID | CONTENT VIEW NAME | CONTENT VIEW VERSION | ENVIRONMENT NAME | PRODUCT NAME
33
+ ---|------|-------|--------------|----------|-----------------|-------------------|----------------------|------------------|-------------
34
+ ")
35
+ # rubocop:enable Layout/LineLength
36
+ result = run_cmd(@cmd + params)
37
+ assert_cmd(expected_result, result)
38
+ end
39
+ end
@@ -0,0 +1,29 @@
1
+ require File.join(File.dirname(__FILE__), '../../test_helper')
2
+
3
+ describe 'simple-content-access status' do
4
+ before do
5
+ @cmd = %w(simple-content-access status)
6
+ end
7
+
8
+ let(:organization_id) { 3 }
9
+
10
+ it 'list status with required options' do
11
+ params = ["--organization-id=#{organization_id}"]
12
+ api_expects(:simple_content_access, :status).
13
+ with_params('organization_id' => organization_id).
14
+ returns('simple_content_access' => true)
15
+
16
+ run_cmd(@cmd + params)
17
+ end
18
+
19
+ it 'fails on missing required params' do
20
+ params = []
21
+ result = run_cmd(@cmd + params)
22
+ # rubocop:disable Layout/LineLength
23
+ expected_error = 'Could not find organization, please set one of options --organization-id, --organization, --organization-title, --organization-label.'
24
+ # rubocop:enable Layout/LineLength
25
+
26
+ assert_equal(result.exit_code, HammerCLI::EX_SOFTWARE)
27
+ assert_equal(result.err[/#{expected_error}/], expected_error)
28
+ end
29
+ 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: 1.5.2
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Price
@@ -35,62 +35,62 @@ authors:
35
35
  autorequire:
36
36
  bindir: bin
37
37
  cert_chain: []
38
- date: 2022-07-06 00:00:00.000000000 Z
38
+ date: 2022-08-01 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: hammer_cli_foreman
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - '>='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: hammer_cli_foreman_tasks
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '>='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - '>='
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: rake
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - '>='
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  type: :development
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - '>='
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: thor
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - '>='
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - '>='
93
+ - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  - !ruby/object:Gem::Dependency
@@ -111,56 +111,56 @@ dependencies:
111
111
  name: minitest-spec-context
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - '>='
114
+ - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  type: :development
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - '>='
121
+ - - ">="
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: simplecov
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - '>='
128
+ - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  type: :development
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - '>='
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: mocha
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - '>='
142
+ - - ">="
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  type: :development
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - '>='
149
+ - - ">="
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: ci_reporter
154
154
  requirement: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - '>='
156
+ - - ">="
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  type: :development
160
160
  prerelease: false
161
161
  version_requirements: !ruby/object:Gem::Requirement
162
162
  requirements:
163
- - - '>='
163
+ - - ">="
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  - !ruby/object:Gem::Dependency
@@ -181,14 +181,14 @@ dependencies:
181
181
  name: rubocop-checkstyle_formatter
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
- - - '>='
184
+ - - ">="
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  type: :development
188
188
  prerelease: false
189
189
  version_requirements: !ruby/object:Gem::Requirement
190
190
  requirements:
191
- - - '>='
191
+ - - ">="
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  description: Hammer-CLI-Katello is a plugin for Hammer to provide connectivity to
@@ -360,6 +360,7 @@ files:
360
360
  - test/functional/content_export/complete/repository_test.rb
361
361
  - test/functional/content_export/complete/version_test.rb
362
362
  - test/functional/content_export/content_export_helpers.rb
363
+ - test/functional/content_export/generate_listing_test.rb
363
364
  - test/functional/content_export/generate_metadata_test.rb
364
365
  - test/functional/content_export/incremental/library_test.rb
365
366
  - test/functional/content_export/incremental/repository_test.rb
@@ -423,6 +424,7 @@ files:
423
424
  - test/functional/host/subscription/attach_test.rb
424
425
  - test/functional/host/subscription/auto_attach_test.rb
425
426
  - test/functional/host/subscription/content_override_test.rb
427
+ - test/functional/host/subscription/enabled_repositories_test.rb
426
428
  - test/functional/host/subscription/product_content_test.rb
427
429
  - test/functional/host/subscription/register_test.rb
428
430
  - test/functional/host/subscription/remove_test.rb
@@ -489,6 +491,7 @@ files:
489
491
  - test/functional/search_helpers.rb
490
492
  - test/functional/simple_content_access/disable_test.rb
491
493
  - test/functional/simple_content_access/enable_test.rb
494
+ - test/functional/simple_content_access/status_test.rb
492
495
  - test/functional/srpm/list_test.rb
493
496
  - test/functional/subscription/list_test.rb
494
497
  - test/functional/sync_plan/create_test.rb
@@ -514,17 +517,16 @@ require_paths:
514
517
  - lib
515
518
  required_ruby_version: !ruby/object:Gem::Requirement
516
519
  requirements:
517
- - - '>='
520
+ - - ">="
518
521
  - !ruby/object:Gem::Version
519
522
  version: '0'
520
523
  required_rubygems_version: !ruby/object:Gem::Requirement
521
524
  requirements:
522
- - - '>='
525
+ - - ">="
523
526
  - !ruby/object:Gem::Version
524
527
  version: '0'
525
528
  requirements: []
526
- rubyforge_project:
527
- rubygems_version: 2.0.14.1
529
+ rubygems_version: 3.1.6
528
530
  signing_key:
529
531
  specification_version: 4
530
532
  summary: Katello commands for Hammer
@@ -592,6 +594,7 @@ test_files:
592
594
  - test/functional/content_export/complete/repository_test.rb
593
595
  - test/functional/content_export/complete/version_test.rb
594
596
  - test/functional/content_export/content_export_helpers.rb
597
+ - test/functional/content_export/generate_listing_test.rb
595
598
  - test/functional/content_export/generate_metadata_test.rb
596
599
  - test/functional/content_export/incremental/library_test.rb
597
600
  - test/functional/content_export/incremental/repository_test.rb
@@ -655,6 +658,7 @@ test_files:
655
658
  - test/functional/host/subscription/attach_test.rb
656
659
  - test/functional/host/subscription/auto_attach_test.rb
657
660
  - test/functional/host/subscription/content_override_test.rb
661
+ - test/functional/host/subscription/enabled_repositories_test.rb
658
662
  - test/functional/host/subscription/product_content_test.rb
659
663
  - test/functional/host/subscription/register_test.rb
660
664
  - test/functional/host/subscription/remove_test.rb
@@ -721,6 +725,7 @@ test_files:
721
725
  - test/functional/search_helpers.rb
722
726
  - test/functional/simple_content_access/disable_test.rb
723
727
  - test/functional/simple_content_access/enable_test.rb
728
+ - test/functional/simple_content_access/status_test.rb
724
729
  - test/functional/srpm/list_test.rb
725
730
  - test/functional/subscription/list_test.rb
726
731
  - test/functional/sync_plan/create_test.rb