hammer_cli_katello 0.22.0 → 0.23.2
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.rb +5 -0
- data/lib/hammer_cli_katello/deb_package.rb +66 -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 +36 -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 -1
- data/test/data/3.17/foreman_api.json +1 -0
- 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/extensions/update_test.rb +0 -1
- data/test/functional/host/traces/list_test.rb +37 -0
- data/test/functional/host/traces/resolve_test.rb +31 -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
- metadata +13 -3
@@ -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
|
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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Price
|
@@ -35,7 +35,7 @@ authors:
|
|
35
35
|
autorequire:
|
36
36
|
bindir: bin
|
37
37
|
cert_chain: []
|
38
|
-
date: 2020-05
|
38
|
+
date: 2020-11-05 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: hammer_cli_foreman
|
@@ -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
|
@@ -325,6 +328,7 @@ files:
|
|
325
328
|
- test/data/3.14/foreman_api.json
|
326
329
|
- test/data/3.15/foreman_api.json
|
327
330
|
- test/data/3.16/foreman_api.json
|
331
|
+
- test/data/3.17/foreman_api.json
|
328
332
|
- test/data/3.2/foreman_api.json
|
329
333
|
- test/data/3.4/foreman_api.json
|
330
334
|
- test/data/3.5/foreman_api.json
|
@@ -421,6 +425,8 @@ files:
|
|
421
425
|
- test/functional/host/subscription/register_test.rb
|
422
426
|
- test/functional/host/subscription/remove_test.rb
|
423
427
|
- test/functional/host/subscription/unregister_test.rb
|
428
|
+
- test/functional/host/traces/list_test.rb
|
429
|
+
- test/functional/host/traces/resolve_test.rb
|
424
430
|
- test/functional/host_collection/add_host_test.rb
|
425
431
|
- test/functional/host_collection/content_api_expectations.rb
|
426
432
|
- test/functional/host_collection/content_install_test.rb
|
@@ -513,7 +519,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
513
519
|
- !ruby/object:Gem::Version
|
514
520
|
version: '0'
|
515
521
|
requirements: []
|
516
|
-
|
522
|
+
rubyforge_project:
|
523
|
+
rubygems_version: 2.7.6.2
|
517
524
|
signing_key:
|
518
525
|
specification_version: 4
|
519
526
|
summary: Katello commands for Hammer
|
@@ -527,6 +534,7 @@ test_files:
|
|
527
534
|
- test/data/3.14/foreman_api.json
|
528
535
|
- test/data/3.15/foreman_api.json
|
529
536
|
- test/data/3.16/foreman_api.json
|
537
|
+
- test/data/3.17/foreman_api.json
|
530
538
|
- test/data/3.2/foreman_api.json
|
531
539
|
- test/data/3.4/foreman_api.json
|
532
540
|
- test/data/3.5/foreman_api.json
|
@@ -623,6 +631,8 @@ test_files:
|
|
623
631
|
- test/functional/host/subscription/register_test.rb
|
624
632
|
- test/functional/host/subscription/remove_test.rb
|
625
633
|
- test/functional/host/subscription/unregister_test.rb
|
634
|
+
- test/functional/host/traces/list_test.rb
|
635
|
+
- test/functional/host/traces/resolve_test.rb
|
626
636
|
- test/functional/host_collection/add_host_test.rb
|
627
637
|
- test/functional/host_collection/content_api_expectations.rb
|
628
638
|
- test/functional/host_collection/content_install_test.rb
|