hammer_cli_katello 0.24.1 → 0.24.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a90c77802499a72d618883d73162f061b8465d838be44c8df27e3d79d2fc316
4
- data.tar.gz: d4cd08a9eb8fae1437bad8d9adaba03fb5a71cd2c770b5af6500312fb497283c
3
+ metadata.gz: 4f913438c207c69774eadb286a20e8cb249c77eef5c64fec2b431d3d5bdfe11d
4
+ data.tar.gz: b00a4f7143e13ca251ee5ba533277c786c887f9211ed1273e35124f6006d83a5
5
5
  SHA512:
6
- metadata.gz: 3aa81078857f074f4c15104e67a31ca9b85ba05d95510b2805114df31955972acd4795078ae3128849568d2f1c3e1e19d274307ac97d7cc8391edc1f05cd44b9
7
- data.tar.gz: ce940d980543120e2cf86a0374fb61e11c20ce37ee06c2ff381b98da2c5731c6adcb4cac0b59bd80d945233b2589d13889859097a910e838117403ee002137c5
6
+ metadata.gz: d555ffa3fe7daf61efc108c218646aa42e8923686b3e28a23fbf137354c2a7645de12ca0ab44ccaab524ae00690a143a783f0668fa8b998be8e12b17714f0400
7
+ data.tar.gz: ef7a75b53d2e1ed73f64156b77935e634042394b15edad9e4d28ed23350496d089359d4dc1b2a037a7aef42e48ca58cbada276e8e7fc03fd2391f68361f5677e
@@ -134,6 +134,25 @@ module HammerCLIKatello
134
134
 
135
135
  def self.setup_version(base)
136
136
  base.action(:version)
137
+ setup_version_options(base)
138
+ base.success_message _("Content view version is being exported in task %{id}.")
139
+ base.failure_message _("Could not export the content view version")
140
+
141
+ base.extend_with(
142
+ HammerCLIKatello::CommandExtensions::LifecycleEnvironments.new(only: :option_sources)
143
+ )
144
+ base.include(LifecycleEnvironmentNameMapping)
145
+
146
+ base.class_eval do
147
+ def request_params
148
+ super.tap do |opts|
149
+ opts["id"] = resolver.content_view_version_id(options)
150
+ end
151
+ end
152
+ end
153
+ end
154
+
155
+ def self.setup_version_options(base)
137
156
  base.option "--fail-on-missing-content", :flag,
138
157
  _("Fails if any of the repositories belonging"\
139
158
  " to this version are unexportable.")
@@ -143,30 +162,20 @@ module HammerCLIKatello
143
162
  :required => false
144
163
 
145
164
  base.build_options do |o|
146
- o.expand(:all).including(:content_views, :organizations)
165
+ o.expand(:all).including(:content_views, :organizations, :environments)
166
+ o.without(:environment_ids, :environment_id)
147
167
  end
148
168
 
149
169
  base.validate_options do
150
170
  unless option(:option_id).exist?
151
171
  any(:option_id, :option_content_view_name, :option_content_view_id).required
152
- option(:option_version).required
172
+ any(:option_version, :option_environment_id, :option_environment_name).required
153
173
  unless option(:option_content_view_id).exist?
154
174
  any(:option_organization_id, :option_organization_name, \
155
175
  :option_organization_label).required
156
176
  end
157
177
  end
158
178
  end
159
-
160
- base.success_message _("Content view version is being exported in task %{id}.")
161
- base.failure_message _("Could not export the content view version")
162
-
163
- base.class_eval do
164
- def request_params
165
- super.tap do |opts|
166
- opts["id"] = resolver.content_view_version_id(options)
167
- end
168
- end
169
- end
170
179
  end
171
180
  end
172
181
  end
@@ -1,5 +1,5 @@
1
1
  module HammerCLIKatello
2
2
  def self.version
3
- @version ||= Gem::Version.new('0.24.1')
3
+ @version ||= Gem::Version.new('0.24.2')
4
4
  end
5
5
  end
@@ -1,10 +1,14 @@
1
1
  require File.join(File.dirname(__FILE__), '../../../test_helper')
2
- require_relative '../content_export_helpers'
3
2
  require 'hammer_cli_katello/content_export_complete'
3
+ require_relative '../../lifecycle_environment/lifecycle_environment_helpers'
4
+ require_relative '../../content_view/content_view_helpers'
5
+ require_relative '../content_export_helpers'
4
6
 
5
7
  describe 'content-export complete version' do
6
8
  include ForemanTaskHelpers
7
9
  include ContentExportHelpers
10
+ include ContentViewHelpers
11
+ include LifecycleEnvironmentHelpers
8
12
 
9
13
  before do
10
14
  @cmd = %w(content-export complete version)
@@ -30,7 +34,7 @@ describe 'content-export complete version' do
30
34
  end
31
35
 
32
36
  let(:content_view_id) { '77' }
33
- let(:content_view_version_id) { '100' }
37
+ let(:content_view_version_id) { '1001' }
34
38
 
35
39
  let(:version) { '10.0' }
36
40
  let(:destination_server) { "dream.example.com" }
@@ -99,7 +103,7 @@ describe 'content-export complete version' do
99
103
  it 'fails on missing content-view version' do
100
104
  params = ["--content-view-id=2"]
101
105
  result = run_cmd(@cmd + params)
102
- expected_error = "Option --version is required"
106
+ expected_error = "--version, --lifecycle-environment-id, --lifecycle-environment is required."
103
107
 
104
108
  assert_equal(result.exit_code, HammerCLI::EX_USAGE)
105
109
  assert_match(/#{expected_error}/, result.err)
@@ -182,4 +186,32 @@ describe 'content-export complete version' do
182
186
  assert_match(/Unable to fully export this version because/, result.out)
183
187
  assert_match(/200/, result.out)
184
188
  end
189
+
190
+ it 'should accept content view and lifecycle environment and get the right version' do
191
+ env = "foo"
192
+ org_id = '100'
193
+ env_id = '223'
194
+ params = ["--content-view-id=#{content_view_id}",
195
+ "--lifecycle-environment=#{env}",
196
+ "--organization-id=#{org_id}"]
197
+ expect_lifecycle_environment_search(org_id, env, env_id)
198
+ expect_content_view_version_search({'environment_id' => env_id,
199
+ 'content_view_id' => content_view_id},
200
+ 'id' => content_view_version_id).at_least_once
201
+
202
+ expects_repositories_in_version(content_view_version_id)
203
+ ex = api_expects(:content_exports, :version)
204
+ ex.returns(response)
205
+
206
+ expect_foreman_task(task_id).at_least_once
207
+
208
+ HammerCLIKatello::ContentExportComplete::VersionCommand.
209
+ any_instance.
210
+ expects(:fetch_export_history).
211
+ returns(export_history)
212
+
213
+ result = run_cmd(@cmd + params)
214
+ assert_match(/Generated .*metadata.*json/, result.out)
215
+ assert_equal(HammerCLI::EX_OK, result.exit_code)
216
+ end
185
217
  end
@@ -1,21 +1,26 @@
1
+ require_relative '../search_helpers'
2
+
1
3
  module ContentExportHelpers
4
+ include SearchHelpers
2
5
  def expects_repositories_in_library(organization_id, returns = [])
3
- export_task = api_expects(:repositories, :index) do |p|
4
- assert_equal organization_id.to_s, p[:organization_id].to_s
5
- assert p[:library]
6
- assert_equal "download_policy != immediate", p[:search]
7
- assert_equal "yum", p[:content_type]
8
- end
9
- export_task.returns(index_response(returns))
6
+ expect_lenient_search(:repositories,
7
+ params: {
8
+ organization_id: organization_id,
9
+ library: true,
10
+ search: "download_policy != immediate",
11
+ content_type: 'yum'
12
+ },
13
+ returns: returns)
10
14
  end
11
15
 
12
16
  def expects_repositories_in_version(version_id, returns = [])
13
- export_task = api_expects(:repositories, :index) do |p|
14
- assert_equal version_id.to_s, p[:content_view_version_id].to_s
15
- assert p[:library]
16
- assert_equal "download_policy != immediate", p[:search]
17
- assert_equal "yum", p[:content_type]
18
- end
19
- export_task.returns(index_response(returns))
17
+ expect_lenient_search(:repositories,
18
+ params: {
19
+ content_view_version_id: version_id,
20
+ library: true,
21
+ search: "download_policy != immediate",
22
+ content_type: 'yum'
23
+ },
24
+ returns: returns)
20
25
  end
21
26
  end
@@ -1,10 +1,14 @@
1
- require File.join(File.dirname(__FILE__), '../../../test_helper')
2
- require_relative '../content_export_helpers'
1
+ require_relative '../../test_helper'
3
2
  require 'hammer_cli_katello/content_export'
3
+ require_relative '../../lifecycle_environment/lifecycle_environment_helpers'
4
+ require_relative '../../content_view/content_view_helpers'
5
+ require_relative '../content_export_helpers'
4
6
 
5
7
  describe 'content-export incremental version' do
6
8
  include ForemanTaskHelpers
7
9
  include ContentExportHelpers
10
+ include ContentViewHelpers
11
+ include LifecycleEnvironmentHelpers
8
12
 
9
13
  before do
10
14
  @cmd = %w(content-export incremental version)
@@ -151,8 +155,8 @@ describe 'content-export incremental version' do
151
155
  it 'fails on missing content-view version' do
152
156
  params = ["--content-view-id=2"]
153
157
  result = run_cmd(@cmd + params)
154
- expected_error = "Option --version is required"
155
158
 
159
+ expected_error = "--version, --lifecycle-environment-id, --lifecycle-environment is required."
156
160
  assert_equal(result.exit_code, HammerCLI::EX_USAGE)
157
161
  assert_match(/#{expected_error}/, result.err)
158
162
  end
@@ -233,4 +237,32 @@ describe 'content-export incremental version' do
233
237
  assert_match(/Unable to fully export this version because/, result.out)
234
238
  assert_match(/200/, result.out)
235
239
  end
240
+
241
+ it 'should accept content view and lifecycle environment and get the right version' do
242
+ env = "foo"
243
+ org_id = '100'
244
+ env_id = '223'
245
+ params = ["--content-view-id=#{content_view_id}",
246
+ "--lifecycle-environment=#{env}",
247
+ "--organization-id=#{org_id}"]
248
+ expect_lifecycle_environment_search(org_id, env, env_id)
249
+ expect_content_view_version_search({'environment_id' => env_id,
250
+ 'content_view_id' => content_view_id},
251
+ 'id' => content_view_version_id).at_least_once
252
+
253
+ expects_repositories_in_version(content_view_version_id)
254
+ ex = api_expects(:content_export_incrementals, :version)
255
+ ex.returns(response)
256
+
257
+ expect_foreman_task(task_id).at_least_once
258
+
259
+ HammerCLIKatello::ContentExportIncremental::VersionCommand.
260
+ any_instance.
261
+ expects(:fetch_export_history).
262
+ returns(export_history)
263
+
264
+ result = run_cmd(@cmd + params)
265
+ assert_match(/Generated .*metadata.*json/, result.out)
266
+ assert_equal(HammerCLI::EX_OK, result.exit_code)
267
+ end
236
268
  end
@@ -13,6 +13,8 @@ module ContentViewHelpers
13
13
  end
14
14
 
15
15
  def expect_content_view_version_search(params, returns)
16
- expect_generic_search(:content_view_versions, params: params, returns: returns)
16
+ expect_lenient_search(:content_view_versions,
17
+ params: params,
18
+ returns: returns)
17
19
  end
18
20
  end
@@ -4,7 +4,7 @@ module LifecycleEnvironmentHelpers
4
4
  include SearchHelpers
5
5
 
6
6
  def expect_lifecycle_environment_search(org_id, name, id)
7
- expect_generic_search(:lifecycle_environments,
7
+ expect_lenient_search(:lifecycle_environments,
8
8
  params: {'name' => name, 'organization_id' => org_id},
9
9
  returns: {'id' => id})
10
10
  end
@@ -3,4 +3,15 @@ module SearchHelpers
3
3
  ex = api_expects(resource, :index, "Find the #{resource}").with_params(args[:params])
4
4
  ex.returns(index_response([args[:returns]]))
5
5
  end
6
+
7
+ def expect_lenient_search(resource, params:, returns:)
8
+ ex = api_expects(resource, :index, "Find the #{resource}") do |p|
9
+ params.each do |key, expected|
10
+ actual = p[key] || p[key.to_sym] || p[key.to_s]
11
+ assert_equal expected.to_s, actual.to_s, "key: '#{key}', resource: #{resource}"
12
+ end
13
+ end
14
+ returns = [returns] unless returns.is_a? Array
15
+ ex.returns(index_response(returns))
16
+ end
6
17
  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: 0.24.1
4
+ version: 0.24.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-12-09 00:00:00.000000000 Z
38
+ date: 2021-01-05 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: hammer_cli_foreman