bosh_openstack_cpi 1.2732.0 → 1.2739.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/openstack/cloud.rb +62 -17
- data/lib/cloud/openstack/version.rb +1 -1
- metadata +23 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ee4017a97b49dc2f34ddd078fc99feaa345f6cc3
|
|
4
|
+
data.tar.gz: 9e0d98ca439ee06d5dcb46482eaa6af6a7d9ad67
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 17da6ca3cc2b06ba342604dea03121cf17ca00a00ce834fc606c06b369a6525b86815b4e42a85b2a65461fd97dca17c56465a1781650c324f1b87c2a937c7d08
|
|
7
|
+
data.tar.gz: ae55d354e839c650c4d074e53221c4c789c361c12dcca851b4578837db969698a4e2e8ad44a87b7eb70dcb4822c84b6f54430d7378884e0500ee347c4c37f870
|
|
@@ -7,6 +7,8 @@ module Bosh::OpenStackCloud
|
|
|
7
7
|
class Cloud < Bosh::Cloud
|
|
8
8
|
include Helpers
|
|
9
9
|
|
|
10
|
+
OPTION_KEYS = ['openstack', 'registry', 'agent']
|
|
11
|
+
|
|
10
12
|
BOSH_APP_DIR = '/var/vcap/bosh'
|
|
11
13
|
FIRST_DEVICE_NAME_LETTER = 'b'
|
|
12
14
|
|
|
@@ -24,7 +26,7 @@ module Bosh::OpenStackCloud
|
|
|
24
26
|
# @option options [Hash] agent agent options
|
|
25
27
|
# @option options [Hash] registry agent options
|
|
26
28
|
def initialize(options)
|
|
27
|
-
@options = options
|
|
29
|
+
@options = normalize_options(options)
|
|
28
30
|
|
|
29
31
|
validate_options
|
|
30
32
|
initialize_registry
|
|
@@ -253,7 +255,7 @@ module Bosh::OpenStackCloud
|
|
|
253
255
|
@logger.debug("Using boot volume: `#{boot_vol_id}'")
|
|
254
256
|
end
|
|
255
257
|
|
|
256
|
-
use_config_drive =
|
|
258
|
+
use_config_drive = !!@openstack_properties.fetch("config_drive", nil)
|
|
257
259
|
|
|
258
260
|
server_params = {
|
|
259
261
|
:name => server_name,
|
|
@@ -800,6 +802,7 @@ module Bosh::OpenStackCloud
|
|
|
800
802
|
|
|
801
803
|
letter.succ! if flavor_has_ephemeral_disk?(flavor)
|
|
802
804
|
letter.succ! if flavor_has_swap_disk?(flavor)
|
|
805
|
+
letter.succ! if @openstack_properties['config_drive'] == 'disk'
|
|
803
806
|
letter
|
|
804
807
|
end
|
|
805
808
|
|
|
@@ -900,22 +903,35 @@ module Bosh::OpenStackCloud
|
|
|
900
903
|
# @return [void]
|
|
901
904
|
# @raise [ArgumentError] if options are not valid
|
|
902
905
|
def validate_options
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
906
|
+
schema = Membrane::SchemaParser.parse do
|
|
907
|
+
{
|
|
908
|
+
'openstack' => {
|
|
909
|
+
'auth_url' => String,
|
|
910
|
+
'username' => String,
|
|
911
|
+
'api_key' => String,
|
|
912
|
+
'tenant' => String,
|
|
913
|
+
optional('region') => String,
|
|
914
|
+
optional('endpoint_type') => String,
|
|
915
|
+
optional('state_timeout') => Numeric,
|
|
916
|
+
optional('stemcell_public_visibility') => enum(String, bool),
|
|
917
|
+
optional('connection_options') => Hash,
|
|
918
|
+
optional('boot_from_volume') => bool,
|
|
919
|
+
optional('default_key_name') => String,
|
|
920
|
+
optional('default_security_groups') => [String],
|
|
921
|
+
optional('wait_resource_poll_interval') => Integer,
|
|
922
|
+
optional('config_drive') => enum('disk', 'cdrom'),
|
|
923
|
+
},
|
|
924
|
+
'registry' => {
|
|
925
|
+
'endpoint' => String,
|
|
926
|
+
'user' => String,
|
|
927
|
+
'password' => String,
|
|
928
|
+
},
|
|
929
|
+
optional('agent') => Hash,
|
|
930
|
+
}
|
|
918
931
|
end
|
|
932
|
+
schema.validate(@options)
|
|
933
|
+
rescue Membrane::SchemaValidationError => e
|
|
934
|
+
raise ArgumentError, "Invalid OpenStack cloud properties: #{e.inspect}"
|
|
919
935
|
end
|
|
920
936
|
|
|
921
937
|
def initialize_registry
|
|
@@ -929,5 +945,34 @@ module Bosh::OpenStackCloud
|
|
|
929
945
|
registry_password)
|
|
930
946
|
end
|
|
931
947
|
|
|
948
|
+
def normalize_options(options)
|
|
949
|
+
unless options.kind_of?(Hash)
|
|
950
|
+
raise ArgumentError, "Invalid OpenStack cloud properties: Hash expected, received #{options}"
|
|
951
|
+
end
|
|
952
|
+
# we only care about two top-level fields
|
|
953
|
+
options = hash_filter(options.dup) { |key| OPTION_KEYS.include?(key) }
|
|
954
|
+
# nil values should be treated the same as missing keys (makes validating optional fields easier)
|
|
955
|
+
delete_entries_with_nil_keys(options)
|
|
956
|
+
end
|
|
957
|
+
|
|
958
|
+
def hash_filter(hash)
|
|
959
|
+
copy = {}
|
|
960
|
+
hash.each do |key, value|
|
|
961
|
+
copy[key] = value if yield(key)
|
|
962
|
+
end
|
|
963
|
+
copy
|
|
964
|
+
end
|
|
965
|
+
|
|
966
|
+
def delete_entries_with_nil_keys(options)
|
|
967
|
+
options.each do |key, value|
|
|
968
|
+
if value == nil
|
|
969
|
+
options.delete(key)
|
|
970
|
+
elsif value.kind_of?(Hash)
|
|
971
|
+
options[key] = delete_entries_with_nil_keys(value.dup)
|
|
972
|
+
end
|
|
973
|
+
end
|
|
974
|
+
options
|
|
975
|
+
end
|
|
976
|
+
|
|
932
977
|
end
|
|
933
978
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bosh_openstack_cpi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2739.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Piston Cloud Computing / VMware
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-09
|
|
11
|
+
date: 2014-10-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: fog
|
|
@@ -30,42 +30,42 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.
|
|
33
|
+
version: 1.2739.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.2739.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: bosh_cpi
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.
|
|
47
|
+
version: 1.2739.0
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 1.
|
|
54
|
+
version: 1.2739.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: bosh-registry
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.
|
|
61
|
+
version: 1.2739.0
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 1.
|
|
68
|
+
version: 1.2739.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: httpclient
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,9 +94,23 @@ dependencies:
|
|
|
94
94
|
- - ">="
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: 0.8.2
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: membrane
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 0.0.2
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 0.0.2
|
|
97
111
|
description: |-
|
|
98
112
|
BOSH OpenStack CPI
|
|
99
|
-
|
|
113
|
+
0d77bd
|
|
100
114
|
email: support@cloudfoundry.com
|
|
101
115
|
executables:
|
|
102
116
|
- bosh_openstack_console
|