hammer_cli_katello 0.22.0 → 0.23.2

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.
@@ -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
- let(:org_id) { 1 }
14
- let(:product_id) { 2 }
15
- let(:repo_id) { 3 }
16
-
17
- it "Shows information about a repository" do
18
- params = ["--id=#{repo_id}"]
19
-
20
- ex = api_expects(:repositories, :show, "Get info") do |par|
21
- par["id"] == repo_id
22
- end
23
-
24
- ex.returns({})
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
- assert_equal(result.exit_code, 0)
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
- params = ["--name=test_repo", "--product=test_product", "--organization-id=#{org_id}"]
32
-
33
- expect_product_search(org_id, 'test_product', product_id)
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
- expect_repository_search(product_id, 'test_repo', repo_id)
87
+ expect_product_search(org_id, 'Test_Product', product_id)
36
88
 
37
- ex2 = api_expects(:repositories, :show, "Get info") do |par|
38
- par["id"] == repo_id
39
- end
89
+ expect_repository_search(product_id, 'Test_Repo', repo_id)
40
90
 
41
- ex2.returns({})
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
- assert_equal(result.exit_code, 0)
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
@@ -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.16')
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.22.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-13 00:00:00.000000000 Z
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
- rubygems_version: 3.0.3
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