hammer_cli_katello 0.21.0 → 0.23.1
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 +4 -4
- data/lib/hammer_cli_katello.rb +5 -0
- data/lib/hammer_cli_katello/content_view_version.rb +2 -6
- data/lib/hammer_cli_katello/deb_package.rb +66 -0
- data/lib/hammer_cli_katello/foreman_search_options_creators.rb +4 -0
- data/lib/hammer_cli_katello/host.rb +10 -0
- data/lib/hammer_cli_katello/host_deb.rb +20 -0
- data/lib/hammer_cli_katello/host_extensions.rb +4 -0
- data/lib/hammer_cli_katello/host_traces.rb +19 -0
- data/lib/hammer_cli_katello/ping.rb +16 -0
- data/lib/hammer_cli_katello/repository.rb +61 -11
- data/lib/hammer_cli_katello/version.rb +1 -1
- data/test/data/3.16/foreman_api.json +1 -0
- data/test/data/3.17/foreman_api.json +1 -0
- data/test/functional/content_view/version/promote_test.rb +1 -1
- data/test/functional/host/extensions/data/host.json +1 -0
- data/test/functional/host/extensions/data/host_list.json +2 -0
- data/test/functional/host/extensions/info_test.rb +2 -1
- data/test/functional/host/extensions/list_test.rb +2 -2
- data/test/functional/host/traces/list_test.rb +37 -0
- data/test/functional/ping_test.rb +2 -0
- data/test/functional/repository/create_test.rb +0 -32
- data/test/functional/repository/info_test.rb +133 -23
- data/test/functional/repository/update_test.rb +41 -1
- data/test/test_helper.rb +1 -1
- data/test/unit/search_options_creators_test.rb +6 -0
- metadata +16 -8
@@ -8,7 +8,9 @@ describe 'ping' do
|
|
8
8
|
'foreman_tasks' => {'status' => 'ok', 'duration_ms' => '34'},
|
9
9
|
'foreman_auth' => {'status' => 'ok', 'duration_ms' => '34'},
|
10
10
|
'candlepin' => {'status' => 'ok', 'duration_ms' => '34'},
|
11
|
+
'candlepin_events' => {'status' => 'ok', 'message' => '0 messages', 'duration_ms' => '34'},
|
11
12
|
'candlepin_auth' => {'status' => 'ok', 'duration_ms' => '34'},
|
13
|
+
'katello_events' => {'status' => 'ok', 'message' => '0 messages', 'duration_ms' => '34'},
|
12
14
|
'pulp' => {'status' => 'ok', 'duration_ms' => '34'},
|
13
15
|
'pulp_auth' => {'status' => 'ok', 'duration_ms' => '34'}
|
14
16
|
}
|
@@ -48,36 +48,4 @@ describe "create repository" do
|
|
48
48
|
|
49
49
|
assert_equal(0, run_cmd(command).exit_code)
|
50
50
|
end
|
51
|
-
|
52
|
-
it 'shows deprecation warning on puppet content type' do
|
53
|
-
dep_warning = "Puppet and OSTree will no longer be supported in Katello 3.16\nRepository created.\n" # rubocop:disable LineLength
|
54
|
-
|
55
|
-
api_expects(:repositories, :create)
|
56
|
-
.with_params(
|
57
|
-
name: name,
|
58
|
-
product_id: product_id,
|
59
|
-
content_type: "puppet")
|
60
|
-
|
61
|
-
result = run_cmd(%w(repository create --organization-id 1 --product-id 2
|
62
|
-
--content-type puppet --name repo1))
|
63
|
-
|
64
|
-
assert_equal(dep_warning, result.out)
|
65
|
-
assert_equal(HammerCLI::EX_OK, result.exit_code)
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'shows deprecation warning on ostree content type' do
|
69
|
-
dep_warning = "Puppet and OSTree will no longer be supported in Katello 3.16\nRepository created.\n" # rubocop:disable LineLength
|
70
|
-
|
71
|
-
api_expects(:repositories, :create)
|
72
|
-
.with_params(
|
73
|
-
name: name,
|
74
|
-
product_id: product_id,
|
75
|
-
content_type: "ostree")
|
76
|
-
|
77
|
-
result = run_cmd(%w(repository create --organization-id 1 --product-id 2
|
78
|
-
--content-type ostree --name repo1))
|
79
|
-
|
80
|
-
assert_equal(dep_warning, result.out)
|
81
|
-
assert_equal(HammerCLI::EX_OK, result.exit_code)
|
82
|
-
end
|
83
51
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), '../test_helper')
|
2
2
|
require File.join(File.dirname(__FILE__), '../product/product_helpers')
|
3
3
|
require File.join(File.dirname(__FILE__), './repository_helpers')
|
4
|
+
require 'hammer_cli_katello/associating_commands'
|
4
5
|
|
5
6
|
describe "get repository info" do
|
6
7
|
include ProductHelpers
|
@@ -10,37 +11,146 @@ describe "get repository info" do
|
|
10
11
|
@cmd = %w(repository info)
|
11
12
|
end
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
14
|
+
it "shows repository info by id" do
|
15
|
+
params = ['--id=1']
|
16
|
+
ex = api_expects(:repositories, :show, "Get info")
|
17
|
+
ex.returns(
|
18
|
+
'id' => 1,
|
19
|
+
'name' => 'Test Repo',
|
20
|
+
'label' => 'Test_Repo',
|
21
|
+
'description' => 'hammertime',
|
22
|
+
'organization' => {
|
23
|
+
'name' => 'Default Organization',
|
24
|
+
'label' => 'Default_Organization',
|
25
|
+
'id' => 1
|
26
|
+
},
|
27
|
+
'created_at' => '2020-08-05 15:35:36 UTC',
|
28
|
+
'updated_at' => '2020-08-05 15:35:36 UTC',
|
29
|
+
'content_type' => 'yum',
|
30
|
+
'product' => {
|
31
|
+
'id' => 79,
|
32
|
+
'name' => 'test'
|
33
|
+
},
|
34
|
+
'download_policy' => 'immediate',
|
35
|
+
'unprotected' => true,
|
36
|
+
'last_sync_words' => '3 minutes',
|
37
|
+
'mirror_on_sync' => true,
|
38
|
+
'relative_path' => 'Default_Organization/Library/Test_Repo',
|
39
|
+
'content_counts' => {
|
40
|
+
'rpm' => 1,
|
41
|
+
'srpm' => 0,
|
42
|
+
'package_group' => 0,
|
43
|
+
'erratum' => 1,
|
44
|
+
'module_stream' => 0
|
45
|
+
}
|
46
|
+
)
|
26
47
|
result = run_cmd(@cmd + params)
|
27
|
-
|
48
|
+
# rubocop:disable Style/WordArray
|
49
|
+
expected_fields = [['ID', '1'],
|
50
|
+
['Name', 'Test Repo'],
|
51
|
+
['Label', 'Test_Repo'],
|
52
|
+
['Description', 'hammertime'],
|
53
|
+
['Organization', 'Default Organization'],
|
54
|
+
['Red Hat Repository', 'no'],
|
55
|
+
['Content Type', 'yum'],
|
56
|
+
['Mirror on Sync', 'yes'],
|
57
|
+
['Publish Via HTTP', 'yes'],
|
58
|
+
['Relative Path', 'Default_Organization/Library/Test_Repo'],
|
59
|
+
['Download Policy', 'immediate'],
|
60
|
+
['HTTP Proxy', ''],
|
61
|
+
['Product', ''],
|
62
|
+
['ID', '79'],
|
63
|
+
['Name', 'test'],
|
64
|
+
['GPG Key', ''],
|
65
|
+
['Sync', ''],
|
66
|
+
['Status', 'Not Synced'],
|
67
|
+
['Last Sync Date', '3 minutes'],
|
68
|
+
['Created', '2020/08/05 15:35:36'],
|
69
|
+
['Updated', '2020/08/05 15:35:36'],
|
70
|
+
['Content Counts', ''],
|
71
|
+
['Packages', '1'],
|
72
|
+
['Source RPMS', '0'],
|
73
|
+
['Package Groups', '0'],
|
74
|
+
['Errata', '1'],
|
75
|
+
['Module Streams', '0']]
|
76
|
+
# rubocop:enable Style/WordArray
|
77
|
+
expected_results = expected_fields.map { |field| success_result(FieldMatcher.new(*field)) }
|
78
|
+
expected_results.each { |expected| assert_cmd(expected, result) }
|
28
79
|
end
|
29
80
|
|
30
81
|
it "Shows information about a repository with organization-id and product name" do
|
31
|
-
|
32
|
-
|
33
|
-
|
82
|
+
org_id = 1
|
83
|
+
product_id = 2
|
84
|
+
repo_id = 3
|
85
|
+
params = ["--name=Test_Repo", "--product=Test_Product", "--organization-id=1"]
|
34
86
|
|
35
|
-
|
87
|
+
expect_product_search(org_id, 'Test_Product', product_id)
|
36
88
|
|
37
|
-
|
38
|
-
par["id"] == repo_id
|
39
|
-
end
|
89
|
+
expect_repository_search(product_id, 'Test_Repo', repo_id)
|
40
90
|
|
41
|
-
|
91
|
+
ex = api_expects(:repositories, :show, "Get info")
|
42
92
|
|
93
|
+
ex.returns(
|
94
|
+
'id' => 1,
|
95
|
+
'name' => 'Test Repo',
|
96
|
+
'label' => 'Test_Repo',
|
97
|
+
'description' => 'hammertime',
|
98
|
+
'organization' => {
|
99
|
+
'name' => 'Default Organization',
|
100
|
+
'label' => 'Default_Organization',
|
101
|
+
'id' => 1
|
102
|
+
},
|
103
|
+
'created_at' => '2020-08-05 15:35:36 UTC',
|
104
|
+
'updated_at' => '2020-08-05 15:35:36 UTC',
|
105
|
+
'content_type' => 'yum',
|
106
|
+
'product' => {
|
107
|
+
'id' => 79,
|
108
|
+
'name' => 'Test_Product'
|
109
|
+
},
|
110
|
+
'download_policy' => 'immediate',
|
111
|
+
'unprotected' => true,
|
112
|
+
'last_sync_words' => '3 minutes',
|
113
|
+
'mirror_on_sync' => true,
|
114
|
+
'relative_path' => 'Default_Organization/Library/Test_Repo',
|
115
|
+
'content_counts' => {
|
116
|
+
'rpm' => 1,
|
117
|
+
'srpm' => 0,
|
118
|
+
'package_group' => 0,
|
119
|
+
'erratum' => 1,
|
120
|
+
'module_stream' => 0
|
121
|
+
}
|
122
|
+
)
|
43
123
|
result = run_cmd(@cmd + params)
|
44
|
-
|
124
|
+
# rubocop:disable Style/WordArray
|
125
|
+
expected_fields = [['ID', '1'],
|
126
|
+
['Name', 'Test Repo'],
|
127
|
+
['Label', 'Test_Repo'],
|
128
|
+
['Description', 'hammertime'],
|
129
|
+
['Organization', 'Default Organization'],
|
130
|
+
['Red Hat Repository', 'no'],
|
131
|
+
['Content Type', 'yum'],
|
132
|
+
['Mirror on Sync', 'yes'],
|
133
|
+
['Publish Via HTTP', 'yes'],
|
134
|
+
['Relative Path', 'Default_Organization/Library/Test_Repo'],
|
135
|
+
['Download Policy', 'immediate'],
|
136
|
+
['HTTP Proxy', ''],
|
137
|
+
['Product', ''],
|
138
|
+
['ID', '79'],
|
139
|
+
['Name', 'Test_Product'],
|
140
|
+
['GPG Key', ''],
|
141
|
+
['Sync', ''],
|
142
|
+
['Status', 'Not Synced'],
|
143
|
+
['Last Sync Date', '3 minutes'],
|
144
|
+
['Created', '2020/08/05 15:35:36'],
|
145
|
+
['Updated', '2020/08/05 15:35:36'],
|
146
|
+
['Content Counts', ''],
|
147
|
+
['Packages', '1'],
|
148
|
+
['Source RPMS', '0'],
|
149
|
+
['Package Groups', '0'],
|
150
|
+
['Errata', '1'],
|
151
|
+
['Module Streams', '0']]
|
152
|
+
# rubocop:enable Style/WordArray
|
153
|
+
expected_results = expected_fields.map { |field| success_result(FieldMatcher.new(*field)) }
|
154
|
+
expected_results.each { |expected| assert_cmd(expected, result) }
|
45
155
|
end
|
46
156
|
end
|
@@ -2,7 +2,7 @@ require_relative '../test_helper'
|
|
2
2
|
require_relative '../organization/organization_helpers'
|
3
3
|
require 'hammer_cli_katello/repository'
|
4
4
|
|
5
|
-
module HammerCLIKatello
|
5
|
+
module HammerCLIKatello # rubocop:disable Metrics/ModuleLength
|
6
6
|
describe Repository::UpdateCommand do
|
7
7
|
include OrganizationHelpers
|
8
8
|
|
@@ -14,6 +14,46 @@ module HammerCLIKatello
|
|
14
14
|
run_cmd(%w(repository update --id 1 --new-name rep1))
|
15
15
|
end
|
16
16
|
|
17
|
+
describe 'tags docker images' do
|
18
|
+
let(:repo_id) { 3 }
|
19
|
+
let(:tag_name) { "latest" }
|
20
|
+
let(:digest) { "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }
|
21
|
+
let(:upload_id) { "1234" }
|
22
|
+
let(:_href) { "/pulp/api/v2/content/uploads/#{upload_id}" }
|
23
|
+
let(:upload_response) do
|
24
|
+
{
|
25
|
+
"upload_id" => upload_id,
|
26
|
+
"_href" => _href
|
27
|
+
}
|
28
|
+
end
|
29
|
+
it "adds a tag to an image" do
|
30
|
+
ex = api_expects(:content_uploads, :create)
|
31
|
+
.with_params('repository_id' => repo_id, :size => 0)
|
32
|
+
|
33
|
+
ex.returns(upload_response)
|
34
|
+
ex2 = api_expects(:repositories, :import_uploads, 'Take in an upload')
|
35
|
+
.with_params(:id => repo_id, :sync_capsule => true, :publish_repository => true,
|
36
|
+
:uploads => [{
|
37
|
+
:id => '1234',
|
38
|
+
:name => tag_name,
|
39
|
+
:digest => digest
|
40
|
+
}],
|
41
|
+
:content_type => "docker_tag"
|
42
|
+
)
|
43
|
+
|
44
|
+
ex2.returns("")
|
45
|
+
|
46
|
+
ex3 = api_expects(:content_uploads, :destroy, "Delete the upload")
|
47
|
+
.with_params('id' => upload_id, 'repository_id' => repo_id)
|
48
|
+
|
49
|
+
ex3.returns("")
|
50
|
+
# rubocop:disable LineLength
|
51
|
+
result = run_cmd(%W(repository update --id #{repo_id} --docker-tag #{tag_name} --docker-digest #{digest}))
|
52
|
+
# rubocop:enable LineLength
|
53
|
+
assert_equal(result.exit_code, 0)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
17
57
|
describe 'resolves repository ID' do
|
18
58
|
it 'by requiring product' do
|
19
59
|
api_expects_no_call
|
data/test/test_helper.rb
CHANGED
@@ -17,7 +17,7 @@ require 'minitest/spec'
|
|
17
17
|
require 'mocha/minitest'
|
18
18
|
require 'hammer_cli'
|
19
19
|
|
20
|
-
KATELLO_VERSION = Gem::Version.new(ENV['TEST_API_VERSION'] || '3.
|
20
|
+
KATELLO_VERSION = Gem::Version.new(ENV['TEST_API_VERSION'] || '3.17')
|
21
21
|
|
22
22
|
if HammerCLI.context[:api_connection]
|
23
23
|
HammerCLI.context[:api_connection].create('foreman') do
|
@@ -110,6 +110,12 @@ describe HammerCLIKatello::SearchOptionsCreators do
|
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
113
|
+
describe '#create_usergroups_search_options(options)' do
|
114
|
+
it 'does not use the katello api' do
|
115
|
+
search_options_creators.create_usergroups_search_options(:anything)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
113
119
|
describe '#create_compute_profiles_search_options(options, mode = nil)' do
|
114
120
|
it 'does not use the katello api' do
|
115
121
|
search_options_creators.create_compute_profiles_search_options(:anything)
|
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.
|
4
|
+
version: 0.23.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Price
|
@@ -35,22 +35,22 @@ authors:
|
|
35
35
|
autorequire:
|
36
36
|
bindir: bin
|
37
37
|
cert_chain: []
|
38
|
-
date: 2020-
|
38
|
+
date: 2020-09-21 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
|
-
version:
|
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
|
-
version:
|
53
|
+
version: '0'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: hammer_cli_foreman_tasks
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -248,6 +248,7 @@ files:
|
|
248
248
|
- lib/hammer_cli_katello/content_view_purge.rb
|
249
249
|
- lib/hammer_cli_katello/content_view_version.rb
|
250
250
|
- lib/hammer_cli_katello/cv_import_export_helper.rb
|
251
|
+
- lib/hammer_cli_katello/deb_package.rb
|
251
252
|
- lib/hammer_cli_katello/erratum.rb
|
252
253
|
- lib/hammer_cli_katello/erratum_info_command.rb
|
253
254
|
- lib/hammer_cli_katello/exception_handler.rb
|
@@ -262,12 +263,14 @@ files:
|
|
262
263
|
- lib/hammer_cli_katello/host_collection_package.rb
|
263
264
|
- lib/hammer_cli_katello/host_collection_package_group.rb
|
264
265
|
- lib/hammer_cli_katello/host_content_source_options.rb
|
266
|
+
- lib/hammer_cli_katello/host_deb.rb
|
265
267
|
- lib/hammer_cli_katello/host_errata.rb
|
266
268
|
- lib/hammer_cli_katello/host_extensions.rb
|
267
269
|
- lib/hammer_cli_katello/host_kickstart_repository_options.rb
|
268
270
|
- lib/hammer_cli_katello/host_package.rb
|
269
271
|
- lib/hammer_cli_katello/host_package_group.rb
|
270
272
|
- lib/hammer_cli_katello/host_subscription.rb
|
273
|
+
- lib/hammer_cli_katello/host_traces.rb
|
271
274
|
- lib/hammer_cli_katello/hostgroup.rb
|
272
275
|
- lib/hammer_cli_katello/hostgroup_extensions.rb
|
273
276
|
- lib/hammer_cli_katello/i18n.rb
|
@@ -324,6 +327,8 @@ files:
|
|
324
327
|
- test/data/3.13/foreman_api.json
|
325
328
|
- test/data/3.14/foreman_api.json
|
326
329
|
- test/data/3.15/foreman_api.json
|
330
|
+
- test/data/3.16/foreman_api.json
|
331
|
+
- test/data/3.17/foreman_api.json
|
327
332
|
- test/data/3.2/foreman_api.json
|
328
333
|
- test/data/3.4/foreman_api.json
|
329
334
|
- test/data/3.5/foreman_api.json
|
@@ -420,6 +425,7 @@ files:
|
|
420
425
|
- test/functional/host/subscription/register_test.rb
|
421
426
|
- test/functional/host/subscription/remove_test.rb
|
422
427
|
- test/functional/host/subscription/unregister_test.rb
|
428
|
+
- test/functional/host/traces/list_test.rb
|
423
429
|
- test/functional/host_collection/add_host_test.rb
|
424
430
|
- test/functional/host_collection/content_api_expectations.rb
|
425
431
|
- test/functional/host_collection/content_install_test.rb
|
@@ -512,8 +518,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
512
518
|
- !ruby/object:Gem::Version
|
513
519
|
version: '0'
|
514
520
|
requirements: []
|
515
|
-
|
516
|
-
rubygems_version: 2.7.6.2
|
521
|
+
rubygems_version: 3.1.2
|
517
522
|
signing_key:
|
518
523
|
specification_version: 4
|
519
524
|
summary: Katello commands for Hammer
|
@@ -526,6 +531,8 @@ test_files:
|
|
526
531
|
- test/data/3.13/foreman_api.json
|
527
532
|
- test/data/3.14/foreman_api.json
|
528
533
|
- test/data/3.15/foreman_api.json
|
534
|
+
- test/data/3.16/foreman_api.json
|
535
|
+
- test/data/3.17/foreman_api.json
|
529
536
|
- test/data/3.2/foreman_api.json
|
530
537
|
- test/data/3.4/foreman_api.json
|
531
538
|
- test/data/3.5/foreman_api.json
|
@@ -622,6 +629,7 @@ test_files:
|
|
622
629
|
- test/functional/host/subscription/register_test.rb
|
623
630
|
- test/functional/host/subscription/remove_test.rb
|
624
631
|
- test/functional/host/subscription/unregister_test.rb
|
632
|
+
- test/functional/host/traces/list_test.rb
|
625
633
|
- test/functional/host_collection/add_host_test.rb
|
626
634
|
- test/functional/host_collection/content_api_expectations.rb
|
627
635
|
- test/functional/host_collection/content_install_test.rb
|