bosh_vsphere_cpi 1.2881.0 → 1.2889.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|