bosh_vsphere_cpi 1.2881.0 → 1.2889.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/lib/cloud/vsphere/client.rb +27 -5
- data/lib/cloud/vsphere/cloud.rb +13 -23
- data/lib/cloud/vsphere/config.rb +0 -3
- data/lib/cloud/vsphere/disk_provider.rb +1 -22
- data/lib/cloud/vsphere/drs_rules/drs_lock.rb +0 -2
- data/lib/cloud/vsphere/drs_rules/drs_rule.rb +0 -4
- data/lib/cloud/vsphere/drs_rules/vm_attribute_manager.rb +0 -2
- data/lib/cloud/vsphere/file_provider.rb +0 -2
- data/lib/cloud/vsphere/lease_obtainer.rb +0 -2
- data/lib/cloud/vsphere/resources/cluster.rb +13 -10
- data/lib/cloud/vsphere/resources/datacenter.rb +28 -31
- data/lib/cloud/vsphere/resources/datastore.rb +2 -0
- data/lib/cloud/vsphere/resources/folder.rb +8 -7
- data/lib/cloud/vsphere/resources/resource_pool.rb +5 -4
- data/lib/cloud/vsphere/soap_stub.rb +0 -1
- data/lib/cloud/vsphere/version.rb +1 -1
- data/lib/cloud/vsphere/vm_creator.rb +0 -5
- data/lib/cloud/vsphere.rb +26 -1
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f732cb263b84c1859b030decb85a5137ae77c25
|
|
4
|
+
data.tar.gz: 4f218c7207396752c0bf42e8766f09ba9facfa15
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2d594e71275ddfdc3c073ebb452a45cfd815e570460e06202eec291fd0075633672a7e36e9008f90cabd01ebcc56e2d0d97f10e226c0ecd98ae525846f32ca0e
|
|
7
|
+
data.tar.gz: 3670ab84febbdf7983edbc7995bbea1eefaf29ec4db04cf7c16627bb8edcad0848c9e2ed3bd396f5ee781ebadad52d4a14318416fe3a6d0c45db679b973853c4
|
data/lib/cloud/vsphere/client.rb
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
require 'ruby_vim_sdk'
|
|
2
|
-
require 'cloud/vsphere/cloud_searcher'
|
|
3
|
-
require 'cloud/vsphere/soap_stub'
|
|
4
|
-
|
|
5
1
|
module VSphereCloud
|
|
6
2
|
|
|
7
3
|
class Client
|
|
@@ -19,7 +15,7 @@ module VSphereCloud
|
|
|
19
15
|
|
|
20
16
|
@metrics_cache = {}
|
|
21
17
|
@lock = Mutex.new
|
|
22
|
-
@logger = Bosh::Clouds::Config.logger
|
|
18
|
+
@logger = options.fetch(:logger) { Bosh::Clouds::Config.logger }
|
|
23
19
|
|
|
24
20
|
@cloud_searcher = CloudSearcher.new(service_content, @logger)
|
|
25
21
|
end
|
|
@@ -99,6 +95,7 @@ module VSphereCloud
|
|
|
99
95
|
end
|
|
100
96
|
|
|
101
97
|
def move_disk(source_datacenter, source_path, dest_datacenter, dest_path)
|
|
98
|
+
create_parent_folder(dest_datacenter, dest_path)
|
|
102
99
|
tasks = []
|
|
103
100
|
base_source_path = source_path.chomp(File.extname(source_path))
|
|
104
101
|
base_dest_path = source_path.chomp(File.extname(dest_path))
|
|
@@ -218,8 +215,33 @@ module VSphereCloud
|
|
|
218
215
|
disk_size_in_mb.nil? ? nil : Resources::Disk.new(disk_cid, disk_size_in_mb, datastore, disk_path)
|
|
219
216
|
end
|
|
220
217
|
|
|
218
|
+
def create_disk(datacenter, datastore, disk_cid, disk_folder, disk_size_in_mb)
|
|
219
|
+
disk_path = "[#{datastore.name}] #{disk_folder}/#{disk_cid}.vmdk"
|
|
220
|
+
|
|
221
|
+
create_parent_folder(datacenter, disk_path)
|
|
222
|
+
|
|
223
|
+
disk_spec = VimSdk::Vim::VirtualDiskManager::FileBackedVirtualDiskSpec.new
|
|
224
|
+
disk_spec.disk_type = 'preallocated'
|
|
225
|
+
disk_spec.capacity_kb = disk_size_in_mb * 1024
|
|
226
|
+
disk_spec.adapter_type = 'lsiLogic'
|
|
227
|
+
|
|
228
|
+
task = service_content.virtual_disk_manager.create_virtual_disk(
|
|
229
|
+
disk_path,
|
|
230
|
+
datacenter.mob,
|
|
231
|
+
disk_spec
|
|
232
|
+
)
|
|
233
|
+
wait_for_task(task)
|
|
234
|
+
|
|
235
|
+
Resources::Disk.new(disk_cid, disk_size_in_mb, datastore, disk_path)
|
|
236
|
+
end
|
|
237
|
+
|
|
221
238
|
private
|
|
222
239
|
|
|
240
|
+
def create_parent_folder(datacenter, disk_path)
|
|
241
|
+
destination_folder = File.dirname(disk_path)
|
|
242
|
+
create_datastore_folder(destination_folder, datacenter.mob)
|
|
243
|
+
end
|
|
244
|
+
|
|
223
245
|
def find_disk_size_using_browser(datastore, disk_cid, disk_folder)
|
|
224
246
|
search_spec_details = VimSdk::Vim::Host::DatastoreBrowser::FileInfo::Details.new
|
|
225
247
|
search_spec_details.file_type = true # actually return VmDiskInfos not FileInfos
|
data/lib/cloud/vsphere/cloud.rb
CHANGED
|
@@ -1,28 +1,6 @@
|
|
|
1
1
|
require 'json'
|
|
2
2
|
require 'membrane'
|
|
3
|
-
require 'ruby_vim_sdk'
|
|
4
3
|
require 'cloud'
|
|
5
|
-
require 'cloud/vsphere/retry_block'
|
|
6
|
-
require 'cloud/vsphere/client'
|
|
7
|
-
require 'cloud/vsphere/config'
|
|
8
|
-
require 'cloud/vsphere/file_provider'
|
|
9
|
-
require 'cloud/vsphere/agent_env'
|
|
10
|
-
require 'cloud/vsphere/lease_obtainer'
|
|
11
|
-
require 'cloud/vsphere/lease_updater'
|
|
12
|
-
require 'cloud/vsphere/resources'
|
|
13
|
-
require 'cloud/vsphere/resources/cluster'
|
|
14
|
-
require 'cloud/vsphere/resources/datacenter'
|
|
15
|
-
require 'cloud/vsphere/resources/datastore'
|
|
16
|
-
require 'cloud/vsphere/resources/folder'
|
|
17
|
-
require 'cloud/vsphere/resources/vm'
|
|
18
|
-
require 'cloud/vsphere/resources/resource_pool'
|
|
19
|
-
require 'cloud/vsphere/resources/scorer'
|
|
20
|
-
require 'cloud/vsphere/resources/util'
|
|
21
|
-
require 'cloud/vsphere/path_finder'
|
|
22
|
-
require 'cloud/vsphere/vm_creator_builder'
|
|
23
|
-
require 'cloud/vsphere/disk_provider'
|
|
24
|
-
require 'cloud/vsphere/vm_provider'
|
|
25
|
-
require 'cloud/vsphere/fixed_cluster_placer'
|
|
26
4
|
|
|
27
5
|
module VSphereCloud
|
|
28
6
|
class Cloud < Bosh::Cloud
|
|
@@ -39,7 +17,19 @@ module VSphereCloud
|
|
|
39
17
|
@logger = config.logger
|
|
40
18
|
@client = config.client
|
|
41
19
|
@cloud_searcher = CloudSearcher.new(@client.service_content, @logger)
|
|
42
|
-
@datacenter = Resources::Datacenter.new(
|
|
20
|
+
@datacenter = Resources::Datacenter.new({
|
|
21
|
+
client: @client,
|
|
22
|
+
use_sub_folder: @config.datacenter_use_sub_folder,
|
|
23
|
+
vm_folder: @config.datacenter_vm_folder,
|
|
24
|
+
template_folder: @config.datacenter_template_folder,
|
|
25
|
+
name: @config.datacenter_name,
|
|
26
|
+
disk_path: @config.datacenter_disk_path,
|
|
27
|
+
ephemeral_pattern: @config.datacenter_datastore_pattern,
|
|
28
|
+
persistent_pattern: @config.datacenter_persistent_datastore_pattern,
|
|
29
|
+
clusters: @config.datacenter_clusters,
|
|
30
|
+
logger: @config.logger,
|
|
31
|
+
mem_overcommit: @config.mem_overcommit
|
|
32
|
+
})
|
|
43
33
|
|
|
44
34
|
@resources = Resources.new(@datacenter, config)
|
|
45
35
|
@file_provider = FileProvider.new(config.rest_client, config.vcenter_host)
|
data/lib/cloud/vsphere/config.rb
CHANGED
|
@@ -17,22 +17,7 @@ module VSphereCloud
|
|
|
17
17
|
disk_cid = "disk-#{SecureRandom.uuid}"
|
|
18
18
|
@logger.debug("Creating disk '#{disk_cid}' in datastore '#{datastore.name}'")
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
disk_spec.disk_type = 'preallocated'
|
|
22
|
-
disk_spec.capacity_kb = disk_size_in_mb * 1024
|
|
23
|
-
disk_spec.adapter_type = 'lsiLogic'
|
|
24
|
-
|
|
25
|
-
disk_path = path(datastore, disk_cid)
|
|
26
|
-
create_parent_folder(disk_path)
|
|
27
|
-
|
|
28
|
-
task = @virtual_disk_manager.create_virtual_disk(
|
|
29
|
-
disk_path,
|
|
30
|
-
@datacenter.mob,
|
|
31
|
-
disk_spec
|
|
32
|
-
)
|
|
33
|
-
@client.wait_for_task(task)
|
|
34
|
-
|
|
35
|
-
Resources::Disk.new(disk_cid, disk_size_in_mb, datastore, disk_path)
|
|
20
|
+
@client.create_disk(@datacenter, datastore, disk_cid, @disk_path, disk_size_in_mb)
|
|
36
21
|
end
|
|
37
22
|
|
|
38
23
|
def find_and_move(disk_cid, cluster, datacenter_name, accessible_datastores)
|
|
@@ -51,7 +36,6 @@ module VSphereCloud
|
|
|
51
36
|
|
|
52
37
|
destination_path = path(destination_datastore, disk_cid)
|
|
53
38
|
@logger.info("Moving #{disk.path} to #{destination_path}")
|
|
54
|
-
create_parent_folder(destination_path)
|
|
55
39
|
@client.move_disk(datacenter_name, disk.path, datacenter_name, destination_path) #TODO: return the new disk
|
|
56
40
|
@logger.info('Moved disk successfully')
|
|
57
41
|
Resources::Disk.new(disk_cid, disk.size_in_mb, destination_datastore, destination_path)
|
|
@@ -82,10 +66,5 @@ module VSphereCloud
|
|
|
82
66
|
|
|
83
67
|
datastore
|
|
84
68
|
end
|
|
85
|
-
|
|
86
|
-
def create_parent_folder(disk_path)
|
|
87
|
-
destination_folder = File.dirname(disk_path)
|
|
88
|
-
@client.create_datastore_folder(destination_folder, @datacenter.mob)
|
|
89
|
-
end
|
|
90
69
|
end
|
|
91
70
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'cloud/vsphere/resources/resource_pool'
|
|
2
|
+
|
|
1
3
|
module VSphereCloud
|
|
2
4
|
class Resources
|
|
3
5
|
class Cluster
|
|
@@ -30,17 +32,18 @@ module VSphereCloud
|
|
|
30
32
|
# @param [ClusterConfig] config cluster configuration as specified by the
|
|
31
33
|
# operator.
|
|
32
34
|
# @param [Hash] properties prefetched vSphere properties for the cluster.
|
|
33
|
-
def initialize(datacenter,
|
|
35
|
+
def initialize(datacenter, datacenter_datastore_pattern, datacenter_persistent_datastore_pattern, mem_overcommit, cluster_config, properties, logger, client)
|
|
34
36
|
@datacenter = datacenter
|
|
35
|
-
@logger =
|
|
36
|
-
@client =
|
|
37
|
+
@logger = logger
|
|
38
|
+
@client = client
|
|
37
39
|
@properties = properties
|
|
38
40
|
|
|
39
41
|
@config = cluster_config
|
|
40
|
-
@cloud_config = cloud_config
|
|
41
42
|
@mob = properties[:obj]
|
|
42
|
-
@resource_pool = ResourcePool.new(
|
|
43
|
-
|
|
43
|
+
@resource_pool = ResourcePool.new(@client, @logger, cluster_config, properties["resourcePool"])
|
|
44
|
+
@datacenter_datastore_pattern = datacenter_datastore_pattern
|
|
45
|
+
@datacenter_persistent_datastore_pattern = datacenter_persistent_datastore_pattern
|
|
46
|
+
@mem_overcommit = mem_overcommit
|
|
44
47
|
@allocated_after_sync = 0
|
|
45
48
|
end
|
|
46
49
|
|
|
@@ -56,7 +59,7 @@ module VSphereCloud
|
|
|
56
59
|
# @return [Integer] amount of free memory in the cluster
|
|
57
60
|
def free_memory
|
|
58
61
|
synced_free_memory -
|
|
59
|
-
(@allocated_after_sync *
|
|
62
|
+
(@allocated_after_sync * @mem_overcommit).to_i
|
|
60
63
|
end
|
|
61
64
|
|
|
62
65
|
def total_free_ephemeral_disk_in_mb
|
|
@@ -104,16 +107,16 @@ module VSphereCloud
|
|
|
104
107
|
end
|
|
105
108
|
|
|
106
109
|
def ephemeral_datastores
|
|
107
|
-
@ephemeral_datastores ||= select_datastores(
|
|
110
|
+
@ephemeral_datastores ||= select_datastores(@datacenter_datastore_pattern)
|
|
108
111
|
end
|
|
109
112
|
|
|
110
113
|
def persistent_datastores
|
|
111
|
-
@persistent_datastores ||= select_datastores(
|
|
114
|
+
@persistent_datastores ||= select_datastores(@datacenter_persistent_datastore_pattern)
|
|
112
115
|
end
|
|
113
116
|
|
|
114
117
|
private
|
|
115
118
|
|
|
116
|
-
attr_reader :
|
|
119
|
+
attr_reader :config, :client, :properties, :logger
|
|
117
120
|
|
|
118
121
|
def select_datastores(pattern)
|
|
119
122
|
@datastores ||= Datastore.build_from_client(@client, properties['datastore'])
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'cloud/vsphere/resources/cluster'
|
|
2
|
+
|
|
1
3
|
module VSphereCloud
|
|
2
4
|
class Resources
|
|
3
5
|
class Datacenter
|
|
@@ -5,21 +7,32 @@ module VSphereCloud
|
|
|
5
7
|
|
|
6
8
|
attr_accessor :config
|
|
7
9
|
|
|
8
|
-
def initialize(
|
|
9
|
-
@
|
|
10
|
-
@
|
|
10
|
+
def initialize(attrs)
|
|
11
|
+
@client = attrs.fetch(:client)
|
|
12
|
+
@use_sub_folder = attrs.fetch(:use_sub_folder)
|
|
13
|
+
@vm_folder = attrs.fetch(:vm_folder)
|
|
14
|
+
@template_folder = attrs.fetch(:template_folder)
|
|
15
|
+
@name = attrs.fetch(:name)
|
|
16
|
+
@disk_path = attrs.fetch(:disk_path)
|
|
17
|
+
@ephemeral_pattern = attrs.fetch(:ephemeral_pattern)
|
|
18
|
+
@persistent_pattern = attrs.fetch(:persistent_pattern)
|
|
19
|
+
@clusters = attrs.fetch(:clusters)
|
|
20
|
+
@logger = attrs.fetch(:logger)
|
|
21
|
+
@mem_overcommit = attrs.fetch(:mem_overcommit)
|
|
11
22
|
end
|
|
12
23
|
|
|
24
|
+
attr_reader :name, :disk_path, :ephemeral_pattern, :persistent_pattern
|
|
25
|
+
|
|
13
26
|
def mob
|
|
14
|
-
mob = @
|
|
27
|
+
mob = @client.find_by_inventory_path(name)
|
|
15
28
|
raise "Datacenter: #{name} not found" if mob.nil?
|
|
16
29
|
mob
|
|
17
30
|
end
|
|
18
31
|
|
|
19
32
|
def vm_folder
|
|
20
|
-
if @
|
|
21
|
-
folder_path = [@
|
|
22
|
-
Folder.new(folder_path, @
|
|
33
|
+
if @use_sub_folder
|
|
34
|
+
folder_path = [@vm_folder, Bosh::Clouds::Config.uuid].join('/')
|
|
35
|
+
Folder.new(folder_path, @logger, @client, name)
|
|
23
36
|
else
|
|
24
37
|
master_vm_folder
|
|
25
38
|
end
|
|
@@ -30,36 +43,20 @@ module VSphereCloud
|
|
|
30
43
|
end
|
|
31
44
|
|
|
32
45
|
def master_vm_folder
|
|
33
|
-
Folder.new(@
|
|
46
|
+
Folder.new(@vm_folder, @logger, @client, name)
|
|
34
47
|
end
|
|
35
48
|
|
|
36
49
|
def template_folder
|
|
37
|
-
if @
|
|
38
|
-
folder_path = [@
|
|
39
|
-
Folder.new(folder_path, @
|
|
50
|
+
if @use_sub_folder
|
|
51
|
+
folder_path = [@template_folder, Bosh::Clouds::Config.uuid].join('/')
|
|
52
|
+
Folder.new(folder_path, @logger, @client, name)
|
|
40
53
|
else
|
|
41
54
|
master_template_folder
|
|
42
55
|
end
|
|
43
56
|
end
|
|
44
57
|
|
|
45
58
|
def master_template_folder
|
|
46
|
-
Folder.new(@
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def name
|
|
50
|
-
@config.datacenter_name
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def disk_path
|
|
54
|
-
@config.datacenter_disk_path
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def ephemeral_pattern
|
|
58
|
-
@config.datacenter_datastore_pattern
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def persistent_pattern
|
|
62
|
-
@config.datacenter_persistent_datastore_pattern
|
|
59
|
+
Folder.new(@template_folder, @logger, @client, name)
|
|
63
60
|
end
|
|
64
61
|
|
|
65
62
|
def inspect
|
|
@@ -74,14 +71,14 @@ module VSphereCloud
|
|
|
74
71
|
Cluster::PROPERTIES, :ensure_all => true)
|
|
75
72
|
|
|
76
73
|
clusters = {}
|
|
77
|
-
|
|
74
|
+
@clusters.each do |cluster_name, cluster_config|
|
|
78
75
|
cluster_mob = cluster_mobs[cluster_name]
|
|
79
76
|
raise "Can't find cluster: #{cluster_name}" if cluster_mob.nil?
|
|
80
77
|
|
|
81
78
|
cluster_properties = clusters_properties[cluster_mob]
|
|
82
79
|
raise "Can't find properties for cluster: #{cluster_name}" if cluster_properties.nil?
|
|
83
80
|
|
|
84
|
-
cluster = Cluster.new(self, @
|
|
81
|
+
cluster = Cluster.new(self, @ephemeral_pattern, @persistent_pattern, @mem_overcommit, cluster_config, cluster_properties, @logger, @client)
|
|
85
82
|
clusters[cluster.name] = cluster
|
|
86
83
|
end
|
|
87
84
|
clusters
|
|
@@ -113,7 +110,7 @@ module VSphereCloud
|
|
|
113
110
|
def cluster_tuples
|
|
114
111
|
cluster_tuples = @client.cloud_searcher.get_managed_objects(
|
|
115
112
|
Vim::ClusterComputeResource, root: mob, include_name: true)
|
|
116
|
-
cluster_tuples.delete_if { |name, _|
|
|
113
|
+
cluster_tuples.delete_if { |name, _| !@clusters.has_key?(name) }
|
|
117
114
|
cluster_tuples
|
|
118
115
|
end
|
|
119
116
|
end
|
|
@@ -3,10 +3,11 @@ module VSphereCloud
|
|
|
3
3
|
class Folder
|
|
4
4
|
attr_reader :mob, :path, :path_components
|
|
5
5
|
|
|
6
|
-
def initialize(path,
|
|
6
|
+
def initialize(path, logger, client, datacenter_name)
|
|
7
7
|
@path = path
|
|
8
|
-
@
|
|
9
|
-
|
|
8
|
+
@logger = logger
|
|
9
|
+
@client = client
|
|
10
|
+
@datacenter_name = datacenter_name
|
|
10
11
|
@path_components = path.split('/')
|
|
11
12
|
|
|
12
13
|
@mob = find_or_create_folder(@path_components)
|
|
@@ -23,12 +24,12 @@ module VSphereCloud
|
|
|
23
24
|
parent_folder = find_or_create_folder(path_components[0..-2])
|
|
24
25
|
|
|
25
26
|
begin
|
|
26
|
-
@
|
|
27
|
+
@logger.debug("Creating folder #{last_component}")
|
|
27
28
|
folder = parent_folder.create_folder(last_component)
|
|
28
29
|
rescue VimSdk::SoapError => e
|
|
29
30
|
raise e unless VimSdk::Vim::Fault::DuplicateName === e.fault
|
|
30
31
|
|
|
31
|
-
@
|
|
32
|
+
@logger.debug("Folder already exists #{last_component}")
|
|
32
33
|
folder = find_folder(path_components)
|
|
33
34
|
end
|
|
34
35
|
end
|
|
@@ -37,11 +38,11 @@ module VSphereCloud
|
|
|
37
38
|
end
|
|
38
39
|
|
|
39
40
|
def find_folder(path_components)
|
|
40
|
-
@
|
|
41
|
+
@client.find_by_inventory_path([@datacenter_name, 'vm', path_components].flatten)
|
|
41
42
|
end
|
|
42
43
|
|
|
43
44
|
def root_vm_folder
|
|
44
|
-
@
|
|
45
|
+
@client.find_by_inventory_path([@datacenter_name, 'vm'])
|
|
45
46
|
end
|
|
46
47
|
end
|
|
47
48
|
end
|
|
@@ -8,10 +8,11 @@ module VSphereCloud
|
|
|
8
8
|
# @param [Cluster] cluster parent cluster.
|
|
9
9
|
# @param [Vim::ResourcePool] root_resource_pool cluster's root resource
|
|
10
10
|
# pool.
|
|
11
|
-
def initialize(
|
|
12
|
-
@cloud_config = cloud_config
|
|
11
|
+
def initialize(client, logger, cluster_config, root_resource_pool)
|
|
13
12
|
@cluster_config = cluster_config
|
|
14
13
|
@root_resource_pool = root_resource_pool
|
|
14
|
+
@logger = logger
|
|
15
|
+
@client = client
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
def mob
|
|
@@ -20,8 +21,8 @@ module VSphereCloud
|
|
|
20
21
|
if @cluster_config.resource_pool.nil?
|
|
21
22
|
@mob = @root_resource_pool
|
|
22
23
|
else
|
|
23
|
-
client = @
|
|
24
|
-
logger = @
|
|
24
|
+
client = @client
|
|
25
|
+
logger = @logger
|
|
25
26
|
@mob = client.cloud_searcher.get_managed_object(
|
|
26
27
|
Vim::ResourcePool,
|
|
27
28
|
:root => @root_resource_pool,
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
require 'ruby_vim_sdk'
|
|
2
|
-
require 'cloud/vsphere/drs_rules/drs_rule'
|
|
3
|
-
require 'cloud/vsphere/resources/disk/ephemeral_disk'
|
|
4
|
-
require 'cloud/vsphere/resources/vm'
|
|
5
|
-
|
|
6
1
|
module VSphereCloud
|
|
7
2
|
class VmCreator
|
|
8
3
|
def initialize(memory, disk_size_in_mb, cpu, placer, client, cloud_searcher, logger, cpi, agent_env, file_provider, disk_provider)
|
data/lib/cloud/vsphere.rb
CHANGED
|
@@ -2,8 +2,33 @@ require 'forwardable'
|
|
|
2
2
|
require 'securerandom'
|
|
3
3
|
require 'common/thread_pool'
|
|
4
4
|
require 'common/thread_formatter'
|
|
5
|
+
require 'ruby_vim_sdk'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
require 'cloud/vsphere/retry_block'
|
|
8
|
+
require 'cloud/vsphere/agent_env'
|
|
9
|
+
require 'cloud/vsphere/client'
|
|
10
|
+
require 'cloud/vsphere/cloud'
|
|
11
|
+
require 'cloud/vsphere/cloud_searcher'
|
|
12
|
+
require 'cloud/vsphere/config'
|
|
13
|
+
require 'cloud/vsphere/cluster_config'
|
|
14
|
+
require 'cloud/vsphere/disk_provider'
|
|
15
|
+
require 'cloud/vsphere/file_provider'
|
|
16
|
+
require 'cloud/vsphere/fixed_cluster_placer'
|
|
17
|
+
require 'cloud/vsphere/lease_obtainer'
|
|
18
|
+
require 'cloud/vsphere/lease_updater'
|
|
19
|
+
require 'cloud/vsphere/path_finder'
|
|
20
|
+
require 'cloud/vsphere/resources/cluster'
|
|
21
|
+
require 'cloud/vsphere/resources/datacenter'
|
|
22
|
+
require 'cloud/vsphere/resources/datastore'
|
|
23
|
+
require 'cloud/vsphere/resources/disk/ephemeral_disk'
|
|
24
|
+
require 'cloud/vsphere/resources/folder'
|
|
25
|
+
require 'cloud/vsphere/resources/vm'
|
|
26
|
+
require 'cloud/vsphere/resources/resource_pool'
|
|
27
|
+
require 'cloud/vsphere/resources/scorer'
|
|
28
|
+
require 'cloud/vsphere/resources/util'
|
|
29
|
+
require 'cloud/vsphere/soap_stub'
|
|
30
|
+
require 'cloud/vsphere/vm_creator_builder'
|
|
31
|
+
require 'cloud/vsphere/vm_provider'
|
|
7
32
|
|
|
8
33
|
module Bosh
|
|
9
34
|
module Clouds
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bosh_vsphere_cpi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2889.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- VMware
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-03-
|
|
11
|
+
date: 2015-03-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bosh_common
|
|
@@ -16,28 +16,28 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.
|
|
19
|
+
version: 1.2889.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.
|
|
26
|
+
version: 1.2889.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bosh_cpi
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.
|
|
33
|
+
version: 1.2889.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.
|
|
40
|
+
version: 1.2889.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: membrane
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -208,7 +208,7 @@ dependencies:
|
|
|
208
208
|
version: '0'
|
|
209
209
|
description: |-
|
|
210
210
|
BOSH VSphere CPI
|
|
211
|
-
|
|
211
|
+
4200d2
|
|
212
212
|
email: support@cloudfoundry.com
|
|
213
213
|
executables:
|
|
214
214
|
- vsphere_cpi
|