kitchen-google 2.0.3 → 2.3.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: 72735ed5ed5396500393e68fc3675f838c190059c510c172795e975ff89482bc
4
- data.tar.gz: 20ec8c3e7b609edd8f2cf2d72f22e8632bc4f5c090ec020a05867be4b3d9a680
3
+ metadata.gz: a142a2341a15a16f2c7b9927d12f8c57d33c94db98098499f52e702630443cd7
4
+ data.tar.gz: 61e22bda90466800948289013796bbafd8a301ffd98caafe414cf1d582a7b012
5
5
  SHA512:
6
- metadata.gz: '09e960eca3e4c66afd1f63678a71058e39f8d325bed0cad6b15140f0b482616a4f82d4176e8dde14114cb8b81d894155446eafc29db79203e8d6bfd57765599d'
7
- data.tar.gz: 3811f8bcc71cfe60b26162f38964021561908a0c9f3b746d9b050b1e3ab828c1a148b3b52399e0f3ba8768cfa40911c86576e5dc146b5d835eedbbd4aef8d66e
6
+ metadata.gz: 93900453aee042687510bad02c0934b0bd4291a6c9bd4249473485e6e2beb344d674d9af367e64917e14978bcb77a5990c721b9d20f232a1ced8a0d7279f54bd
7
+ data.tar.gz: d99fe7b567f16e7c6ead71e89b6a1b96d04d109dd2c093c13d68695feecd39010264471f03e61e4271ed3eb78e9ecdd26c499e5cca9836fd9352ea824f4d4134
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  #
3
2
  # Author:: Andrew Leonard (<andy@hurricane-ridge.com>)
4
3
  # Author:: Chef Partner Engineering (<partnereng@chef.io>)
@@ -21,7 +20,7 @@ require "gcewinpass"
21
20
  require "google/apis/compute_v1"
22
21
  require "kitchen"
23
22
  require_relative "gce_version"
24
- require "securerandom"
23
+ require "securerandom" unless defined?(SecureRandom)
25
24
 
26
25
  module Kitchen
27
26
  module Driver
@@ -63,6 +62,7 @@ module Kitchen
63
62
 
64
63
  default_config :machine_type, "n1-standard-1"
65
64
  default_config :network, "default"
65
+ default_config :network_ip, nil
66
66
  default_config :network_project, nil
67
67
  default_config :subnet, nil
68
68
  default_config :subnet_project, nil
@@ -334,8 +334,8 @@ module Kitchen
334
334
  disk_name.to_s.match(DISK_NAME_REGEX).to_s.length == disk_name.length
335
335
  end
336
336
 
337
- def image_exist?
338
- check_api_call { connection.get_image(image_project, image_name) }
337
+ def image_exist?(image = image_name)
338
+ check_api_call { connection.get_image(image_project, image) }
339
339
  end
340
340
 
341
341
  def server_exist?(server_name)
@@ -362,6 +362,10 @@ module Kitchen
362
362
  config[:network_project].nil? ? project : config[:network_project]
363
363
  end
364
364
 
365
+ def network_ip
366
+ config[:network_ip]
367
+ end
368
+
365
369
  def region
366
370
  config[:region].nil? ? region_for_zone : config[:region]
367
371
  end
@@ -424,11 +428,7 @@ module Kitchen
424
428
  end
425
429
 
426
430
  def generate_server_name
427
- name = if config[:inst_name]
428
- config[:inst_name]
429
- else
430
- "tk-#{instance.name.downcase}-#{SecureRandom.hex(3)}"
431
- end
431
+ name = config[:inst_name] || "tk-#{instance.name.downcase}-#{SecureRandom.hex(3)}"
432
432
 
433
433
  if name.length > 63
434
434
  warn("The TK instance name (#{instance.name}) has been removed from the GCE instance name due to size limitations. Consider setting shorter platform or suite names.")
@@ -440,13 +440,12 @@ module Kitchen
440
440
 
441
441
  def create_disks(server_name)
442
442
  disks = []
443
-
444
443
  config[:disks].each do |disk_name, disk_config|
445
444
  unique_disk_name = "#{server_name}-#{disk_name}"
446
445
  if disk_config[:boot]
447
446
  disk = create_local_disk(unique_disk_name, disk_config)
448
447
  disks.unshift(disk)
449
- elsif disk_config[:disk_type] == "local-ssd"
448
+ elsif (disk_config[:disk_type] == "local-ssd") || disk_config[:custom_image]
450
449
  disk = create_local_disk(unique_disk_name, disk_config)
451
450
  disks.push(disk)
452
451
  else
@@ -469,10 +468,15 @@ module Kitchen
469
468
  if disk_config[:disk_type] == "local-ssd"
470
469
  info("Creating a 375 GB local ssd as scratch disk (https://cloud.google.com/compute/docs/disks/#localssds).")
471
470
  disk.type = "SCRATCH"
472
- else
473
- info("Creating a #{disk_config[:disk_size]} GB boot disk named #{unique_disk_name}...")
471
+ elsif disk.boot
472
+ info("Creating a #{disk_config[:disk_size]} GB boot disk named #{unique_disk_name} from image #{image_name}...")
474
473
  params.source_image = boot_disk_source_image unless disk_config[:disk_type] == "local-ssd"
475
474
  params.disk_name = unique_disk_name unless disk_config[:disk_type] == "local-ssd"
475
+ else
476
+ info("Creating a #{disk_config[:disk_size]} GB extra disk named #{unique_disk_name} from image #{disk_config[:custom_image]}...")
477
+ params.source_image = image_url(disk_config[:custom_image]) unless disk_config[:disk_type] == "local-ssd"
478
+ params.disk_name = unique_disk_name unless disk_config[:disk_type] == "local-ssd"
479
+
476
480
  end
477
481
  disk.initialize_params = params
478
482
  disk
@@ -520,8 +524,8 @@ module Kitchen
520
524
  @boot_disk_source ||= image_url
521
525
  end
522
526
 
523
- def image_url
524
- return "projects/#{image_project}/global/images/#{image_name}" if image_exist?
527
+ def image_url(image = image_name)
528
+ return "projects/#{image_project}/global/images/#{image}" if image_exist?(image)
525
529
  end
526
530
 
527
531
  def image_name_for_family(image_family)
@@ -572,6 +576,7 @@ module Kitchen
572
576
  def instance_network_interfaces
573
577
  interface = Google::Apis::ComputeV1::NetworkInterface.new
574
578
  interface.network = network_url if config[:subnet_project].nil?
579
+ interface.network_ip = network_ip unless network_ip.nil?
575
580
  interface.subnetwork = subnet_url if subnet_url
576
581
  interface.access_configs = interface_access_configs
577
582
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Chef Partner Engineering (<partnereng@chef.io>)
3
- # Copyright:: Copyright (c) 2015-2020 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software, Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,6 +18,6 @@
18
18
 
19
19
  module Kitchen
20
20
  module Driver
21
- GCE_VERSION = "2.0.3".freeze
21
+ GCE_VERSION = "2.3.0".freeze
22
22
  end
23
23
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-google
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Leonard
8
8
  - Chef Partner Engineering
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-01-15 00:00:00.000000000 Z
12
+ date: 2022-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gcewinpass
@@ -32,9 +32,9 @@ dependencies:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: 0.23.9
35
- - - "<"
35
+ - - "<="
36
36
  - !ruby/object:Gem::Version
37
- version: 0.36.0
37
+ version: 0.54.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,93 +42,23 @@ dependencies:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
44
  version: 0.23.9
45
- - - "<"
45
+ - - "<="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.36.0
47
+ version: 0.54.0
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: test-kitchen
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 1.4.1
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: bundler
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- type: :development
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- - !ruby/object:Gem::Dependency
77
- name: pry
78
- requirement: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- type: :development
84
- prerelease: false
85
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- - !ruby/object:Gem::Dependency
91
- name: rake
92
- requirement: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- type: :development
98
- prerelease: false
99
- version_requirements: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- - !ruby/object:Gem::Dependency
105
- name: rspec
106
- requirement: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- type: :development
112
- prerelease: false
113
- version_requirements: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- - !ruby/object:Gem::Dependency
119
- name: byebug
120
- requirement: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- type: :development
126
- prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
61
+ version: 1.4.1
132
62
  description: A Test-Kitchen driver for Google Compute Engine
133
63
  email:
134
64
  - andy@hurricane-ridge.com
@@ -144,7 +74,7 @@ homepage: https://github.com/test-kitchen/kitchen-google
144
74
  licenses:
145
75
  - Apache-2.0
146
76
  metadata: {}
147
- post_install_message:
77
+ post_install_message:
148
78
  rdoc_options: []
149
79
  require_paths:
150
80
  - lib
@@ -152,15 +82,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
152
82
  requirements:
153
83
  - - ">="
154
84
  - !ruby/object:Gem::Version
155
- version: '2.3'
85
+ version: '2.7'
156
86
  required_rubygems_version: !ruby/object:Gem::Requirement
157
87
  requirements:
158
88
  - - ">="
159
89
  - !ruby/object:Gem::Version
160
90
  version: '0'
161
91
  requirements: []
162
- rubygems_version: 3.0.3
163
- signing_key:
92
+ rubygems_version: 3.2.3
93
+ signing_key:
164
94
  specification_version: 4
165
95
  summary: Kitchen::Driver::Gce
166
96
  test_files: []