dopv 0.12.0 → 0.13.0
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 +4 -4
- data/ChangeLog.md +13 -1
- data/Gemfile.lock +6 -6
- data/dopv.gemspec +1 -1
- data/lib/dopv/infrastructure/providers/vsphere.rb +14 -7
- data/lib/dopv/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b629f251875fa5a722c8653bf7fc876ed61351d3
|
4
|
+
data.tar.gz: 2f8482900d2ba04f2b9cd8fb95d40f6e272f60af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7732db19befd3c9598343dd1df16f8765336ebedd227692bbf8ca3c7c128d913afd481037c9efebc98ca259998323b9500e8d02ccbc404f19a4636253e193cf
|
7
|
+
data.tar.gz: 7e6ac4f822ad2379a33786ad1b5ee8653437175a9646fdeb99439197df0ca11e759ea9c4a5adf9b85d110c1a4254a030de09e7a18588e7205ad86419d14cd736
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 0.13.0 24.04.2017
|
2
|
+
## [deps]
|
3
|
+
* Update `dop_common`
|
4
|
+
|
5
|
+
## [vsphere]
|
6
|
+
* Some minor fixes and improvements
|
7
|
+
* Fix typo customization_domain_password in `customize_node_instance`
|
8
|
+
* Addition filtering apipa and ipv6 in `get_node_ip_addresses`
|
9
|
+
* Add ability to transform disks during clone from template (see plan node property thin_clone)
|
10
|
+
* Add missing requires
|
11
|
+
* Cleanup unnecessary delegators
|
12
|
+
|
1
13
|
# 0.12.0 07.04.2017
|
2
14
|
## [vsphere]
|
3
15
|
* Improve `destroy_node`
|
@@ -6,7 +18,7 @@
|
|
6
18
|
* Filtering apipa and ipv6
|
7
19
|
* Skipping if vm tools unmanaged or has no connected guest network interface
|
8
20
|
* Improve `customize_node_instance` windows sysprep
|
9
|
-
* Add
|
21
|
+
* Add ability to join domain or workgroup
|
10
22
|
* Some minor fixes and improvements
|
11
23
|
* `@wait_params` to instance
|
12
24
|
* Handling of properties thin/thick provisioning, timezone and product_id
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
dopv (0.
|
5
|
-
dop_common (~> 0.
|
4
|
+
dopv (0.13.0)
|
5
|
+
dop_common (~> 0.14, >= 0.14.0)
|
6
6
|
fog (~> 1.36.0)
|
7
7
|
fog-google (< 0.1.1)
|
8
8
|
fog-profitbricks (~> 0.0.5)
|
@@ -25,7 +25,7 @@ GEM
|
|
25
25
|
docile (1.1.5)
|
26
26
|
domain_name (0.5.20170404)
|
27
27
|
unf (>= 0.0.5, < 1.0.0)
|
28
|
-
dop_common (0.
|
28
|
+
dop_common (0.14.0)
|
29
29
|
hashdiff (~> 0.3, >= 0.3.1)
|
30
30
|
hiera (~> 3)
|
31
31
|
lockfile (~> 2)
|
@@ -202,7 +202,7 @@ GEM
|
|
202
202
|
builder
|
203
203
|
nokogiri (>= 1.4.1)
|
204
204
|
trollop
|
205
|
-
rest-client (2.0.
|
205
|
+
rest-client (2.0.2)
|
206
206
|
http-cookie (>= 1.0.2, < 2.0)
|
207
207
|
mime-types (>= 1.16, < 4.0)
|
208
208
|
netrc (~> 0.8)
|
@@ -210,7 +210,7 @@ GEM
|
|
210
210
|
rspec-core (~> 3.5.0)
|
211
211
|
rspec-expectations (~> 3.5.0)
|
212
212
|
rspec-mocks (~> 3.5.0)
|
213
|
-
rspec-command (1.0.
|
213
|
+
rspec-command (1.0.2)
|
214
214
|
mixlib-shellout (~> 2.0)
|
215
215
|
rspec (~> 3.2)
|
216
216
|
rspec-its (~> 1.2)
|
@@ -237,7 +237,7 @@ GEM
|
|
237
237
|
trollop (2.1.2)
|
238
238
|
unf (0.1.4)
|
239
239
|
unf_ext
|
240
|
-
unf_ext (0.0.7.
|
240
|
+
unf_ext (0.0.7.4)
|
241
241
|
xml-simple (1.1.5)
|
242
242
|
|
243
243
|
PLATFORMS
|
data/dopv.gemspec
CHANGED
@@ -44,7 +44,7 @@ Gem::Specification.new do |spec|
|
|
44
44
|
spec.add_dependency "fog-profitbricks", "~> 0.0.5" # fog dependency but fog-profitbricks > 0.5 requires ruby 2.x
|
45
45
|
spec.add_dependency "fog", "~> 1.36.0"
|
46
46
|
spec.add_dependency "gli", "~> 2.13.1"
|
47
|
-
spec.add_dependency "dop_common", "~> 0.
|
47
|
+
spec.add_dependency "dop_common", "~> 0.14", '>= 0.14.0'
|
48
48
|
spec.add_dependency 'parallel', '~> 1'
|
49
49
|
if RUBY_VERSION < "2"
|
50
50
|
spec.add_dependency "rest-client", "< 2.0"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rbvmomi'
|
2
2
|
require 'digest/sha2'
|
3
3
|
require 'fog'
|
4
|
+
require 'resolv'
|
4
5
|
|
5
6
|
module Dopv
|
6
7
|
module Infrastructure
|
@@ -8,7 +9,7 @@ module Dopv
|
|
8
9
|
class Vsphere < Base
|
9
10
|
extend Forwardable
|
10
11
|
|
11
|
-
def_delegators :@plan, :product_id, :organization_name, :
|
12
|
+
def_delegators :@plan, :product_id, :organization_name, :workgroup, :thin_clone
|
12
13
|
|
13
14
|
def initialize(node_config, data_disks_db, wait_params={})
|
14
15
|
super(node_config, data_disks_db)
|
@@ -68,9 +69,15 @@ module Dopv
|
|
68
69
|
def create_node_instance
|
69
70
|
::Dopv::log.info("Node #{nodename}: Creating node instance.")
|
70
71
|
@node_creation_opts['datastore'] = infrastructure_properties.default_pool unless infrastructure_properties.default_pool.nil?
|
71
|
-
|
72
|
-
|
73
|
-
|
72
|
+
@node_creation_opts['transform'] = thin_clone ? :sparse : :flat unless thin_clone.nil?
|
73
|
+
|
74
|
+
vm = compute_provider.vm_clone(
|
75
|
+
@node_creation_opts.merge(
|
76
|
+
'power_on' => false,
|
77
|
+
'wait' => true
|
78
|
+
)
|
79
|
+
)
|
80
|
+
|
74
81
|
compute_provider.servers.get(vm['new_vm']['id'])
|
75
82
|
end
|
76
83
|
|
@@ -140,7 +147,7 @@ module Dopv
|
|
140
147
|
if domain
|
141
148
|
customization_domain_password_settings = (RbVmomi::VIM::CustomizationPassword.new(
|
142
149
|
:plainText => true,
|
143
|
-
:value =>
|
150
|
+
:value => customization_domain_password(domain)
|
144
151
|
) rescue nil)
|
145
152
|
customization_id = RbVmomi::VIM::CustomizationIdentification.new(
|
146
153
|
:joinDomain => domain,
|
@@ -361,6 +368,7 @@ module Dopv
|
|
361
368
|
|
362
369
|
def get_node_ip_addresses(node_instance)
|
363
370
|
begin
|
371
|
+
is_windows = guest_id_to_os_family(node_instance) == :windows
|
364
372
|
raise ProviderError, "VMware Tools not installed" unless node_instance.tools_installed?
|
365
373
|
|
366
374
|
::Dopv::log.debug("Node #{nodename}: Waiting on VMware Tools for #{@wait_params[:maxtime]} seconds.")
|
@@ -373,7 +381,6 @@ module Dopv
|
|
373
381
|
node_ref_guest_net = nil
|
374
382
|
start_time = Time.now.to_f
|
375
383
|
is_connected = false
|
376
|
-
is_windows = guest_id_to_os_family(node_instance) == :windows
|
377
384
|
node_ref.guest.net.each do |i| is_connected ||= i.connected end
|
378
385
|
raise ProviderError, "No connected network interface available" unless is_connected
|
379
386
|
|
@@ -394,7 +401,7 @@ module Dopv
|
|
394
401
|
|
395
402
|
rescue Exception => e
|
396
403
|
::Dopv::log.debug("Node #{nodename}: Unable to obtain IP Addresses, Error: #{e.message}.")
|
397
|
-
[node_instance.public_ip_address].compact
|
404
|
+
[node_instance.public_ip_address].compact.select{|i| i.match(Resolv::IPv4::Regex) && !(i.start_with?('169.254.') && is_windows)}
|
398
405
|
end
|
399
406
|
end
|
400
407
|
end
|
data/lib/dopv/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dopv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavol Dilung
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-04-
|
12
|
+
date: 2017-04-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -289,20 +289,20 @@ dependencies:
|
|
289
289
|
requirements:
|
290
290
|
- - "~>"
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version: '0.
|
292
|
+
version: '0.14'
|
293
293
|
- - ">="
|
294
294
|
- !ruby/object:Gem::Version
|
295
|
-
version: 0.
|
295
|
+
version: 0.14.0
|
296
296
|
type: :runtime
|
297
297
|
prerelease: false
|
298
298
|
version_requirements: !ruby/object:Gem::Requirement
|
299
299
|
requirements:
|
300
300
|
- - "~>"
|
301
301
|
- !ruby/object:Gem::Version
|
302
|
-
version: '0.
|
302
|
+
version: '0.14'
|
303
303
|
- - ">="
|
304
304
|
- !ruby/object:Gem::Version
|
305
|
-
version: 0.
|
305
|
+
version: 0.14.0
|
306
306
|
- !ruby/object:Gem::Dependency
|
307
307
|
name: parallel
|
308
308
|
requirement: !ruby/object:Gem::Requirement
|