hammer_cli_foreman 0.19.6 → 0.19.7

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: 044c402964ebc3448c879c6858be3d8726ad8be7bafcbd25cef6d8f1a3ca4e02
4
- data.tar.gz: 672a8c5be95a59de4908dd982e87c454e9f84025a6aff7751934035857ad1508
3
+ metadata.gz: b06761047f5cbd13606444872d97853870f28cdc4117a54fc450b250f036a770
4
+ data.tar.gz: ffa9cb3168c98dce349a8ef32d1046db74887d7e03e65025bd4a8dec7717a46e
5
5
  SHA512:
6
- metadata.gz: d033b74af20d792cd58ff42d631189cf36245f062e05c2180dc6529914e28c3ddbff0c70afaae43e168eba1adcb8e33a8e0a1b146b78cc201f06999d5266292c
7
- data.tar.gz: 1d36643cfeb4f03a4a5a36a035156bd02655fff13b12145ec825e94ba45f3f8da071fa71aa6b6ca4c2c640d2e2fd38c084c0c16ef239bc72c126a8758a882447
6
+ metadata.gz: 364b646af39ecf1f87f73b570b8c6db56259abe6fafe1a9c991a03201dabfdb2a3764fd8bc8b91b64112b5e3dd2a876607cf85c10922bd8b3d1e740347619851
7
+ data.tar.gz: f73cd97db5ba463e2a6e54041bce9be796190da7fe9ea4198c7b210ae6604a163e172246bf099ed32987553c9192cb8d61e9dbff9792df95955ecf22bff51176
@@ -1,5 +1,8 @@
1
1
  Release notes
2
2
  =============
3
+ ### 0.19.7 (2020-01-16)
4
+ * Fix host creation from image and hostgroup ([PR #471](https://github.com/theforeman/hammer-cli-foreman/pull/471)), [#28541](http://projects.theforeman.org/issues/28541)
5
+
3
6
  ### 0.19.6 (2020-01-10)
4
7
  * Add auth source external command ([PR #480](https://github.com/theforeman/hammer-cli-foreman/pull/480)), [#28704](http://projects.theforeman.org/issues/28704)
5
8
  * Fix undefined method on wrong oidc token endpoint ([PR #479](https://github.com/theforeman/hammer-cli-foreman/pull/479)), [#28196](http://projects.theforeman.org/issues/28196)
@@ -8,6 +8,22 @@ module HammerCLIForeman
8
8
  )
9
9
  end
10
10
 
11
+ def self.get_hostgroup_compute_resource_id(hostgroup_id)
12
+ hostgroup = HammerCLIForeman.record_to_common_format(
13
+ HammerCLIForeman.foreman_resource(:hostgroups).call(:show, 'id' => hostgroup_id)
14
+ )
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]
23
+ end
24
+ compute_resource_id
25
+ end
26
+
11
27
  def self.get_host_compute_resource_id(host_id)
12
28
  HammerCLIForeman.record_to_common_format(
13
29
  HammerCLIForeman.foreman_resource(:hosts).call(
@@ -98,9 +98,14 @@ module HammerCLIForeman
98
98
  params['host']['compute_attributes']['volumes_attributes'] = nested_attributes(option_volume_list)
99
99
  params['host']['interfaces_attributes'] = interfaces_attributes
100
100
  end
101
-
102
- if options["option_image_id"]
103
- compute_resource_id = params['host']['compute_resource_id'] || ::HammerCLIForeman::ComputeResources.get_host_compute_resource_id(params['id'])
101
+ if options['option_image_id']
102
+ if params['host']['compute_resource_id']
103
+ compute_resource_id = params['host']['compute_resource_id']
104
+ elsif params['id']
105
+ compute_resource_id = ::HammerCLIForeman::ComputeResources.get_host_compute_resource_id(params['id'])
106
+ elsif params['host']['hostgroup_id']
107
+ compute_resource_id = ::HammerCLIForeman::ComputeResources.get_hostgroup_compute_resource_id(params['host']['hostgroup_id'])
108
+ end
104
109
  raise ArgumentError, "Missing argument for 'compute_resource'" if compute_resource_id.nil?
105
110
  image_uuid = ::HammerCLIForeman::ComputeResources.get_image_uuid(compute_resource_id, options["option_image_id"])
106
111
  params['host']['compute_attributes']['image_id'] = image_uuid
@@ -1,5 +1,5 @@
1
1
  module HammerCLIForeman
2
2
  def self.version
3
- @version ||= Gem::Version.new "0.19.6"
3
+ @version ||= Gem::Version.new "0.19.7"
4
4
  end
5
5
  end
@@ -236,6 +236,67 @@ describe "host create" do
236
236
  result = run_cmd(cmd + minimal_params_without_hostgroup + params)
237
237
  assert_cmd(expected_result, result)
238
238
  end
239
+
240
+ it "Creates host in case the image is provided from the hostgroup and hostgroup is not nested" do
241
+ params = ['--name=test',
242
+ '--provision-method=image',
243
+ '--image-id=8' ,
244
+ '--managed=true',
245
+ '--hostgroup-id=1',
246
+ '--organization-id=1',
247
+ '--location-id=1'
248
+ ]
249
+
250
+ api_expects(:hostgroups, :show).with_params(
251
+ {}
252
+ ).returns({'compute_resource_name' => "cr", 'compute_resource_id' => 33 })
253
+
254
+ api_expects(:images, :show).with_params(
255
+ {"compute_resource_id" => 33, "id" => 8}
256
+ ).returns(results: {'uuid' => '111111'})
257
+
258
+ api_expects(:hosts, :create).with_params(
259
+ {"location_id" => 1, "organization_id" => 1, "host" => {"name" => "test", "location_id" => 1, "organization_id" => 1, "puppetclass_ids" => [], "hostgroup_id" => 1, "image_id" => 8, "provision_method" => "image", "managed" => true, "compute_attributes" => {"volumes_attributes" => {}, "image_id" => nil}, "build" => true, "enabled" => true, "overwrite" => true, "interfaces_attributes" => []}}
260
+ ).returns(results: {'uuid' => '111111'})
261
+
262
+ expected_result = success_result("Host created.\n")
263
+ result = run_cmd(cmd + params)
264
+ assert_cmd(expected_result, result)
265
+ end
266
+
267
+ it "Creates host in case the image is provided from the hostgroup and hostgroup is nested" do
268
+ params = ['--name=test',
269
+ '--provision-method=image',
270
+ '--image-id=8' ,
271
+ '--managed=true',
272
+ '--hostgroup-id=1',
273
+ '--organization-id=1',
274
+ '--location-id=1'
275
+ ]
276
+
277
+ # nested hostgroup will return nil in compute_resource_id
278
+ api_expects(:hostgroups, :show).with_params(
279
+ {}
280
+ ).returns({'compute_resource_name' => "cr", 'compute_resource_id' => nil})
281
+
282
+ api_expects(:compute_resources, :index).with_params(
283
+ {:search => "name = \"cr\""}
284
+ ).returns(results: {'results' => [{'id' => 33, 'name' => "cr"}]})
285
+
286
+ api_expects(:images, :show).with_params(
287
+ {"compute_resource_id" => 33, "id" => 8}
288
+ ).returns(results: {'uuid' => '111111'})
289
+
290
+ api_expects(:hosts, :create).with_params(
291
+ {"location_id" => 1, "organization_id" => 1, "host" => {"name" => "test", "location_id" => 1, "organization_id" => 1, "puppetclass_ids" => [], "hostgroup_id" => 1, "image_id" => 8, "provision_method" => "image", "managed" => true, "compute_attributes" => {"volumes_attributes" => {}, "image_id" => nil}, "build" => true, "enabled" => true, "overwrite" => true, "interfaces_attributes" => []}}
292
+ ).returns(results: {'uuid' => '111111'})
293
+
294
+
295
+ expected_result = success_result("Host created.\n")
296
+ result = run_cmd(cmd + params)
297
+ assert_cmd(expected_result, result)
298
+ end
299
+
239
300
  end
240
301
 
241
302
  describe 'host update' 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: 0.19.6
4
+ version: 0.19.7
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: 2020-01-10 00:00:00.000000000 Z
12
+ date: 2020-01-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hammer_cli
@@ -371,7 +371,6 @@ test_files:
371
371
  - test/functional/personal_access_token_test.rb
372
372
  - test/functional/proxy_test.rb
373
373
  - test/functional/settings_test.rb
374
- - test/functional/smart_variable_test.rb
375
374
  - test/functional/ssh_keys_test.rb
376
375
  - test/functional/subnet/create_test.rb
377
376
  - test/functional/subnet/update_test.rb
@@ -380,12 +379,13 @@ test_files:
380
379
  - test/functional/ping_test.rb
381
380
  - test/functional/status_test.rb
382
381
  - test/functional/compute_resource_test.rb
383
- - test/functional/host_test.rb
384
382
  - test/functional/http_proxy_test.rb
385
383
  - test/functional/report_template_test.rb
386
384
  - test/functional/role_test.rb
387
385
  - test/functional/smart_class_parameter_test.rb
386
+ - test/functional/smart_variable_test.rb
388
387
  - test/functional/template_test.rb
388
+ - test/functional/host_test.rb
389
389
  - test/unit/api/void_auth_test.rb
390
390
  - test/unit/api/interactive_basic_auth_test.rb
391
391
  - test/unit/api/oauth/oauth_authentication_code_grant_test.rb
@@ -407,11 +407,9 @@ test_files:
407
407
  - test/unit/exception_handler_test.rb
408
408
  - test/unit/external_usergroup_test.rb
409
409
  - test/unit/fact_test.rb
410
- - test/unit/filter_test.rb
411
410
  - test/unit/helpers/command.rb
412
411
  - test/unit/helpers/fake_searchables.rb
413
412
  - test/unit/helpers/resource_disabled.rb
414
- - test/unit/hostgroup_test.rb
415
413
  - test/unit/id_resolver_test.rb
416
414
  - test/unit/image_test.rb
417
415
  - test/unit/location_test.rb
@@ -426,22 +424,24 @@ test_files:
426
424
  - test/unit/output/formatters_test.rb
427
425
  - test/unit/param_filters_test.rb
428
426
  - test/unit/partition_table_test.rb
429
- - test/unit/puppet_class_test.rb
430
427
  - test/unit/puppet_environment_test.rb
431
428
  - test/unit/realm_test.rb
432
429
  - test/unit/role_test.rb
433
430
  - test/unit/settings_test.rb
434
431
  - test/unit/smart_proxy_test.rb
435
- - test/unit/smart_variable_test.rb
436
432
  - test/unit/subnet_test.rb
437
433
  - test/unit/test_helper.rb
438
434
  - test/unit/user_test.rb
439
435
  - test/unit/usergroup_test.rb
440
436
  - test/unit/sessions_test.rb
437
+ - test/unit/apipie_resource_mock.rb
438
+ - test/unit/auth_source_external.rb
439
+ - test/unit/filter_test.rb
441
440
  - test/unit/host_test.rb
441
+ - test/unit/hostgroup_test.rb
442
+ - test/unit/puppet_class_test.rb
442
443
  - test/unit/smart_class_parameter_test.rb
444
+ - test/unit/smart_variable_test.rb
443
445
  - test/unit/template_test.rb
444
446
  - test/unit/test_output_adapter.rb
445
- - test/unit/apipie_resource_mock.rb
446
- - test/unit/auth_source_external.rb
447
447
  - test/test_helper.rb