hammer_cli_foreman 3.6.0 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b0498fc381643ec00359362e585a879ae2e6ef425f8546b6b1f1245ce4dd2891
4
- data.tar.gz: 060dfe82dbe23fec7a3a84d89e8077c756c5e87aced3617a5b8923c8a2827967
3
+ metadata.gz: 153f99e72a9d4a889641be0d5a99e60192ee3dd20a783e86db831b5de9618744
4
+ data.tar.gz: 4038d91f5d942a78cd5ce71296ed1a07438abadcfc6a5f77eac0abcdfcebbf76
5
5
  SHA512:
6
- metadata.gz: d913007afab58dbc5b387f3536215f2e1ce9fd7190eb1fbd7e494ee30e6bba325045d864e1f0d1326690922715a506fd44c7df1f5e6ec1340ade26425580e5e2
7
- data.tar.gz: ec80e3b7f0386b4786830e0e676ea172ea3472b4ecd771aae5c3239720cd5bcf34846e91e5cda1a816e6f5d864269a72b202ad1b1a164769661584f7dbac7da6
6
+ metadata.gz: 7290953f2d944f09645d2eb31a868398d8e75e1ea5086d1c84cfb1d2a097914df10d6e0ee76195b6258ca2a8fe8c6ccc755f4a906d1c3fba756c1eb218ffcfe3
7
+ data.tar.gz: c8624ea106c8daa295010f58ed340763513a919b0463392400df940444f2b3859d879e98160483161e94aeaacee45736e3b4d3329bc0e7b3a7d80ae3bba27a8c
data/doc/release_notes.md CHANGED
@@ -1,5 +1,11 @@
1
1
  Release notes
2
2
  =============
3
+ ### 3.7.0 (2023-05-23)
4
+ * Update rake for hammer-cli-foreman ([PR #613](https://github.com/theforeman/hammer-cli-foreman/pull/613)), [#36337](http://projects.theforeman.org/issues/36337)
5
+ * Update minitest version ([PR #611](https://github.com/theforeman/hammer-cli-foreman/pull/611)), [#36349](http://projects.theforeman.org/issues/36349)
6
+ * Allow to suppress nothing to update message, [#36213](http://projects.theforeman.org/issues/36213)
7
+ * Bump to 3.7.0-develop
8
+
3
9
  ### 3.6.0 (2023-02-23)
4
10
  * Support basic auth for external sources, [#11317](http://projects.theforeman.org/issues/11317)
5
11
  * Remove underscore from labels ([PR #608](https://github.com/theforeman/hammer-cli-foreman/pull/608)), [#35904](http://projects.theforeman.org/issues/35904)
@@ -7,7 +7,7 @@ module HammerCLIForeman
7
7
 
8
8
  request_params do |params, command_object|
9
9
  update_params = params[command_object.resource.singular_name]
10
- command_object.context[:action_message] = :nothing_to_do if update_params && update_params.empty?
10
+ command_object.context[:action_message] = :nothing_to_do if update_params && update_params.empty? && command_object.context[:action_message].nil?
11
11
  end
12
12
  end
13
13
  end
@@ -244,7 +244,7 @@ module HammerCLIForeman
244
244
  super
245
245
  begin
246
246
  output_definition.update_field_sets('THIN', (searchables.for(resource).map(&:name) + ['id']).map(&:to_sym))
247
- rescue StandardError => e
247
+ rescue StandardError
248
248
  # Some subcommands may not have such fields or defined resource
249
249
  end
250
250
  end
@@ -489,7 +489,7 @@ module HammerCLIForeman
489
489
  super
490
490
  begin
491
491
  output_definition.update_field_sets('THIN', (searchables.for(resource).map(&:name) + ['id']).map(&:to_sym))
492
- rescue StandardError => e
492
+ rescue StandardError
493
493
  # Some subcommands may not have such fields or defined resource
494
494
  end
495
495
  end
@@ -585,8 +585,6 @@ module HammerCLIForeman
585
585
  action :update
586
586
 
587
587
  def self.create_option_builder
588
- configurator = BuilderConfigurator.new(searchables, dependency_resolver)
589
-
590
588
  builder = ForemanOptionBuilder.new(searchables)
591
589
  builder.builders = [
592
590
  SearchablesOptionBuilder.new(resource, searchables),
@@ -13,13 +13,13 @@ module HammerCLIForeman
13
13
  HammerCLIForeman.foreman_resource(:hostgroups).call(:show, 'id' => hostgroup_id)
14
14
  )
15
15
  compute_resource_id = hostgroup['compute_resource_id']
16
- if !hostgroup['compute_resource_name'].to_s.strip.empty? && compute_resource_id.nil?
17
- compute_resource= HammerCLIForeman.record_to_common_format(
18
- HammerCLIForeman.foreman_resource(:compute_resources).call(
19
- :index, :search => "name = \"#{hostgroup['compute_resource_name']}\""
20
- )
21
- )
22
- compute_resource_id = compute_resource['results'][0]['id'] if compute_resource['results'][0]
16
+ if !hostgroup['compute_resource_name'].to_s.strip.empty? && compute_resource_id.nil?
17
+ compute_resource= HammerCLIForeman.record_to_common_format(
18
+ HammerCLIForeman.foreman_resource(:compute_resources).call(
19
+ :index, :search => "name = \"#{hostgroup['compute_resource_name']}\""
20
+ )
21
+ )
22
+ compute_resource_id = compute_resource['results'][0]['id'] if compute_resource['results'][0]
23
23
  end
24
24
  compute_resource_id
25
25
  end
@@ -99,7 +99,7 @@ module HammerCLIForeman
99
99
  response = JSON.parse(e.response)
100
100
  response = HammerCLIForeman.record_to_common_format(response) unless response.has_key?('message')
101
101
  message = response['message'] || e.message
102
- rescue JSON::ParserError => parse_e
102
+ rescue JSON::ParserError
103
103
  message = e.message
104
104
  end
105
105
 
@@ -123,13 +123,7 @@ module HammerCLIForeman
123
123
  host_url = HammerCLI::Settings.get(:_params, :host) || HammerCLI::Settings.get(:foreman, :host)
124
124
  uri = URI.parse(host_url)
125
125
  ssl_option = HammerCLI::SSLOptions.new.get_options(uri)
126
- if uri.host.nil?
127
- host = '<FOREMAN_HOST>'
128
- cert_name = "#{host}.crt"
129
- else
130
- host = uri.to_s
131
- cert_name = "#{uri.host}.crt"
132
- end
126
+ host = uri.host.nil? ? '<FOREMAN_HOST>' : uri.to_s
133
127
 
134
128
  cmd = "hammer --fetch-ca-cert #{host}"
135
129
 
@@ -1,5 +1,3 @@
1
- require 'hammer_cli_foreman/usergroup'
2
-
3
1
  module HammerCLIForeman
4
2
  class ExternalUsergroup < HammerCLIForeman::Command
5
3
  resource :external_usergroups
@@ -15,7 +15,7 @@ module HammerCLIForeman
15
15
  def resource_supported?
16
16
  resource.call(:index)
17
17
  true
18
- rescue RestClient::ResourceNotFound => e
18
+ rescue RestClient::ResourceNotFound
19
19
  false
20
20
  end
21
21
 
@@ -12,12 +12,12 @@ module HammerCLIForeman
12
12
  def initialize(resource=nil, action=nil, &block)
13
13
  @expected_resource = resource
14
14
  @expected_action = action
15
- @block = block if block_given?
15
+ @block = block
16
16
  @expected_params = {}
17
17
  end
18
18
 
19
19
  def matches?(actual_parameters)
20
- action, params, headers, options = actual_parameters.shift(4)
20
+ action, params, _headers, _options = actual_parameters.shift(4)
21
21
  action_name = action.name.to_s
22
22
  resource_name = action.resource.to_s
23
23
 
@@ -1,5 +1,5 @@
1
1
  module HammerCLIForeman
2
2
  def self.version
3
- @version ||= Gem::Version.new "3.6.0"
3
+ @version ||= Gem::Version.new "3.7.0"
4
4
  end
5
5
  end
@@ -87,8 +87,8 @@ describe 'bookmark' do
87
87
  it 'should create a bookmark' do
88
88
  params = ['--name=newBookmark', '--controller=hosts', '--query=status = failed']
89
89
  api_expects(:bookmarks, :create, 'Create bookmark') do |params|
90
- (params['bookmark']['name'] == 'newBookmark')
91
- (params['bookmark']['controller'] == 'hosts')
90
+ (params['bookmark']['name'] == 'newBookmark') &&
91
+ (params['bookmark']['controller'] == 'hosts') &&
92
92
  (params['bookmark']['query'] == 'status = failed')
93
93
  end
94
94
  result = run_cmd(@cmd + params)
@@ -40,7 +40,7 @@ describe 'filter' do
40
40
  params = ['--role-id=1', '--permission-ids=[1]']
41
41
 
42
42
  api_expects(:filters, :create) do |params|
43
- (params['filter']['role_id'] == 1)
43
+ (params['filter']['role_id'] == '1') &&
44
44
  (params['filter']['permission_ids'] == [1])
45
45
  end
46
46
 
@@ -262,7 +262,7 @@ describe 'update' do
262
262
 
263
263
  api_expects(:locations, :index)
264
264
  api_expects(:locations, :update, 'Update a location') do |params|
265
- (params['location']['id'] == '1')
265
+ (params['id'] == '1') &&
266
266
  (params['location']['name'] == 'Default Location test')
267
267
  end
268
268
 
@@ -77,7 +77,7 @@ describe 'medium' do
77
77
  params = ['--name=CentOS mirror', '--path=http://mirror.centos.org/centos/$major/os/$arch']
78
78
 
79
79
  api_expects(:media, :create) do |params|
80
- (params['medium']['name'] == 'CentOS mirror')
80
+ (params['medium']['name'] == 'CentOS mirror') &&
81
81
  (params['medium']['path'] == 'http://mirror.centos.org/centos/$major/os/$arch')
82
82
  end
83
83
 
@@ -119,7 +119,7 @@ describe 'medium' do
119
119
  params = ['--id=1', '--new-name=CentOS mirror test']
120
120
 
121
121
  api_expects(:media, :update, 'Update a media') do |params|
122
- (params['medium']['id'] == '1')
122
+ (params['id'] == '1') &&
123
123
  (params['medium']['name'] == 'CentOS mirror test')
124
124
  end
125
125
 
@@ -101,7 +101,7 @@ describe 'Settings' do
101
101
  params = ['--id=1', '--value=true']
102
102
 
103
103
  api_expects(:settings, :update, 'Update a setting') do |params|
104
- (params['setting']['id'] == '1')
104
+ (params['id'] == '1') &&
105
105
  (params['setting']['value'] == 'true')
106
106
  end
107
107
 
@@ -141,7 +141,7 @@ describe HammerCLIForeman::Api::SessionAuthenticatorWrapper do
141
141
 
142
142
  context "when the session file is corrupted" do
143
143
  it 'reports error' do
144
- dir, out, err = prepare_session_storage :session_id => 'SOME_SESSION_ID' do |auth, dir|
144
+ _dir, _out, err = prepare_session_storage :session_id => 'SOME_SESSION_ID' do |auth, dir|
145
145
  write_session(dir, '{not a valid: json')
146
146
 
147
147
  wrapped_auth.expects(:authenticate).with(request, args)
@@ -91,7 +91,7 @@ describe HammerCLIForeman do
91
91
  }
92
92
  })
93
93
  arch = HammerCLIForeman::Architecture::CreateCommand.new("", { :adapter => :csv, :interactive => false })
94
- out, err = capture_io { arch.run(["--name='i386'"]) }
94
+ out, _ = capture_io { arch.run(["--name='i386'"]) }
95
95
  _(out).must_match("Message,Id,Name\nArchitecture created.,3,i386\n")
96
96
  end
97
97
  end
@@ -151,7 +151,7 @@ describe HammerCLIForeman do
151
151
  end
152
152
  end
153
153
  comm = DomainOuter::HostsCommand.new("", { :adapter => :csv, :interactive => false })
154
- out, err = capture_io { comm.run(["--id=5"]) }
154
+ out, _ = capture_io { comm.run(["--id=5"]) }
155
155
  _(out).must_equal "Id,Name,Operating System,Host Group,IP,MAC\n2,random-host,,,192.168.100.112,6e:4b:3c:2c:8a:0a\n"
156
156
  end
157
157
  end
@@ -180,7 +180,7 @@ describe HammerCLIForeman::Command do
180
180
  HammerCLIForeman.foreman_api_connection.api.resource(:locations)
181
181
  )
182
182
  )
183
- out, err = capture_io do
183
+ _, err = capture_io do
184
184
  _(com.run(['--location', 'loc'])).wont_equal HammerCLI::EX_OK
185
185
  end
186
186
  _(err).must_equal "Error: Could not find location, please set one of options --location-id, --location, --location-title.\n"
@@ -203,7 +203,7 @@ describe HammerCLIForeman::Command do
203
203
 
204
204
  ResourceMocks.mock_action_call(:domains, :index, [])
205
205
 
206
- out, err = capture_io do
206
+ _out, _err = capture_io do
207
207
  _(com.run([])).must_equal HammerCLI::EX_OK
208
208
  end
209
209
 
@@ -6,7 +6,31 @@ class IdResolverTestProxy
6
6
 
7
7
  def initialize(original_resolver)
8
8
  @original_resolver = original_resolver
9
- define_id_finders
9
+ end
10
+
11
+ def self.for_resolver(original_resolver)
12
+ resolver = Class.new(IdResolverTestProxy) do |cls|
13
+ original_resolver.api.resources.each do |resource|
14
+ method_name = "#{resource.singular_name}_id"
15
+ cls.define_method(method_name) do |options|
16
+ value = options[HammerCLI.option_accessor_name("id")]
17
+ value ||= HammerCLI::NilValue if searchables(resource).any? do |s|
18
+ options[HammerCLI.option_accessor_name(s.name)] == HammerCLI::NilValue
19
+ end
20
+ value ||= 1 if searchables(resource).any? do |s|
21
+ !options[HammerCLI.option_accessor_name(s.name)].nil?
22
+ end
23
+ value
24
+ end
25
+
26
+ method_name = "#{resource.singular_name}_ids"
27
+ cls.define_method(method_name) do |options|
28
+ options["option_#{resource.singular_name}_ids"].nil? ? nil : [1]
29
+ end
30
+ end
31
+ end
32
+
33
+ resolver.new(original_resolver)
10
34
  end
11
35
 
12
36
  def scoped_options(scope, options, mode = nil)
@@ -16,30 +40,6 @@ class IdResolverTestProxy
16
40
  def searchables(resource)
17
41
  @original_resolver.searchables(resource)
18
42
  end
19
-
20
- protected
21
-
22
- def define_id_finders
23
- @original_resolver.api.resources.each do |resource|
24
- method_name = "#{resource.singular_name}_id"
25
- self.class.send(:define_method, method_name) do |options|
26
- value = options[HammerCLI.option_accessor_name("id")]
27
- value ||= HammerCLI::NilValue if searchables(resource).any? do |s|
28
- options[HammerCLI.option_accessor_name(s.name)] == HammerCLI::NilValue
29
- end
30
- value ||= 1 if searchables(resource).any? do |s|
31
- !options[HammerCLI.option_accessor_name(s.name)].nil?
32
- end
33
- value
34
- end
35
-
36
- method_name = "#{resource.singular_name}_ids"
37
- self.class.send(:define_method, method_name) do |options|
38
- options["option_#{resource.singular_name}_ids"].nil? ? nil : [1]
39
- end
40
- end
41
- end
42
-
43
43
  end
44
44
 
45
45
 
@@ -50,7 +50,7 @@ module CommandTestHelper
50
50
 
51
51
  base.before :each do
52
52
  resolver = cmd.resolver
53
- cmd.stubs(:resolver).returns(IdResolverTestProxy.new(resolver))
53
+ cmd.stubs(:resolver).returns(IdResolverTestProxy.for_resolver(resolver))
54
54
  end
55
55
  end
56
56
 
@@ -63,7 +63,7 @@ module CommandTestHelper
63
63
  def with_params(params, &block)
64
64
  context "with params "+params.to_s do
65
65
  let(:with_params) { params }
66
- self.instance_eval &block
66
+ self.instance_eval(&block)
67
67
  end
68
68
  end
69
69
 
@@ -95,7 +95,7 @@ module CommandTestHelper
95
95
 
96
96
  def it_should_accept(message, arguments=[])
97
97
  it "should accept " + message.to_s do
98
- out, err = capture_io do
98
+ _out, _err = capture_io do
99
99
  _(cmd.run(arguments)).must_equal HammerCLI::EX_OK
100
100
  end
101
101
  end
@@ -105,7 +105,7 @@ module CommandTestHelper
105
105
  it "should output '" + message.to_s + "'" do
106
106
  arguments ||= respond_to?(:with_params) ? with_params : []
107
107
  cmd.stubs(:context).returns(ctx.update(:adapter => adapter))
108
- out, err = capture_io do
108
+ out, _ = capture_io do
109
109
  cmd.run(arguments)
110
110
  end
111
111
  _(out).must_include message
@@ -117,11 +117,11 @@ module CommandTestHelper
117
117
  arguments ||= respond_to?(:with_params) ? with_params : []
118
118
 
119
119
  cmd.stubs(:context).returns(ctx.update(:adapter => :test))
120
- out, err = capture_io do
120
+ out, _ = capture_io do
121
121
  cmd.run(arguments)
122
122
  end
123
123
 
124
- _(out.split("\n")[0]).must_match /.*##{column_name}#.*/
124
+ _(out.split("\n")[0]).must_match(/.*##{column_name}#.*/)
125
125
  end
126
126
  end
127
127
 
@@ -137,7 +137,7 @@ module CommandTestHelper
137
137
 
138
138
  cmd.stubs(:context).returns(ctx.update(:adapter => :test))
139
139
  count ||= expected_record_count rescue 0
140
- out, err = capture_io do
140
+ out, _ = capture_io do
141
141
  cmd.run(arguments)
142
142
  end
143
143
  _(out.split(/\n/).length).must_equal count+1 # plus 1 for line with column headers
@@ -109,7 +109,7 @@ describe HammerCLIForeman::IdResolver do
109
109
  let(:resolver_run) { proc { resolver.comment_id({"option_unknown" => "value"}) } }
110
110
 
111
111
  it "raises exception" do
112
- err = _(resolver_run).must_raise HammerCLIForeman::MissingSearchOptions
112
+ _(resolver_run).must_raise HammerCLIForeman::MissingSearchOptions
113
113
  end
114
114
 
115
115
  it "builds correct error message" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hammer_cli_foreman
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.0
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomáš Strachota
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-02-23 00:00:00.000000000 Z
12
+ date: 2023-05-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hammer_cli
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 3.6.0
20
+ version: 3.7.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 3.6.0
27
+ version: 3.7.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: apipie-bindings
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -395,21 +395,17 @@ test_files:
395
395
  - test/functional/associating_commands_test.rb
396
396
  - test/functional/audit_test.rb
397
397
  - test/functional/auth_source_test.rb
398
- - test/functional/bookmark_test.rb
399
398
  - test/functional/commands/list_test.rb
400
399
  - test/functional/compute_attribute_test.rb
401
400
  - test/functional/compute_profile_test.rb
402
401
  - test/functional/compute_resource_test.rb
403
402
  - test/functional/domain/create_test.rb
404
403
  - test/functional/domain/update_test.rb
405
- - test/functional/filter_test.rb
406
404
  - test/functional/host_test.rb
407
405
  - test/functional/hostgroup/create_test.rb
408
406
  - test/functional/hostgroup/update_test.rb
409
407
  - test/functional/http_proxy_test.rb
410
- - test/functional/location_test.rb
411
408
  - test/functional/mail_notification_test.rb
412
- - test/functional/media_test.rb
413
409
  - test/functional/model_test.rb
414
410
  - test/functional/operating_system_test.rb
415
411
  - test/functional/organization_test.rb
@@ -420,7 +416,6 @@ test_files:
420
416
  - test/functional/registration_test.rb
421
417
  - test/functional/report_template_test.rb
422
418
  - test/functional/role_test.rb
423
- - test/functional/settings_test.rb
424
419
  - test/functional/ssh_keys_test.rb
425
420
  - test/functional/status_test.rb
426
421
  - test/functional/subnet/create_test.rb
@@ -432,12 +427,17 @@ test_files:
432
427
  - test/functional/user_test.rb
433
428
  - test/functional/usergroup_test.rb
434
429
  - test/functional/virtual_machine_test.rb
430
+ - test/functional/bookmark_test.rb
431
+ - test/functional/filter_test.rb
432
+ - test/functional/location_test.rb
433
+ - test/functional/media_test.rb
434
+ - test/functional/settings_test.rb
435
435
  - test/test_helper.rb
436
436
  - test/unit/api/oauth/oauth_authentication_code_grant_test.rb
437
437
  - test/unit/api/oauth/oauth_password_grant_test.rb
438
- - test/unit/api/session_authenticator_wrapper_test.rb
439
438
  - test/unit/api/void_auth_test.rb
440
439
  - test/unit/api/interactive_basic_auth_test.rb
440
+ - test/unit/api/session_authenticator_wrapper_test.rb
441
441
  - test/unit/api_test.rb
442
442
  - test/unit/apipie_resource_mock.rb
443
443
  - test/unit/architecture_test.rb
@@ -445,7 +445,6 @@ test_files:
445
445
  - test/unit/auth_source_external.rb
446
446
  - test/unit/auth_source_ldap_test.rb
447
447
  - test/unit/bookmark_test.rb
448
- - test/unit/commands_test.rb
449
448
  - test/unit/common_parameter_test.rb
450
449
  - test/unit/compute_profile_test.rb
451
450
  - test/unit/compute_resource_test.rb
@@ -458,12 +457,11 @@ test_files:
458
457
  - test/unit/external_usergroup_test.rb
459
458
  - test/unit/fact_test.rb
460
459
  - test/unit/filter_test.rb
461
- - test/unit/helpers/command.rb
462
460
  - test/unit/helpers/fake_searchables.rb
463
461
  - test/unit/helpers/resource_disabled.rb
462
+ - test/unit/helpers/command.rb
464
463
  - test/unit/host_test.rb
465
464
  - test/unit/hostgroup_test.rb
466
- - test/unit/id_resolver_test.rb
467
465
  - test/unit/image_test.rb
468
466
  - test/unit/location_test.rb
469
467
  - test/unit/mail_notification_test.rb
@@ -489,3 +487,5 @@ test_files:
489
487
  - test/unit/test_output_adapter.rb
490
488
  - test/unit/user_test.rb
491
489
  - test/unit/usergroup_test.rb
490
+ - test/unit/commands_test.rb
491
+ - test/unit/id_resolver_test.rb