bosh_openstack_cpi 1.2739.0 → 1.2743.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 +5 -5
- data/lib/cloud/openstack/network_configurator.rb +65 -39
- data/lib/cloud/openstack/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6a1bc8f7f331dd2ee6a73be9ef2941587e31f709
|
|
4
|
+
data.tar.gz: 08b4aa714a1ae17ced573d62f80c2cf5d9144ed1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cb86c810da3eebf9cd898d58f8d36f046a4cbf943bb031631e2f0faa122a23c53662c51847f582334f0bca07a1e7f37ac1a2d81bb6615359edc75b9c3bce7863
|
|
7
|
+
data.tar.gz: 6c0b429b35489c48f629bb85fed2d22e3a47f31458f97c4b2b4acb684814ab0ac7ded60c8a62dd9464d174d2f2bb47498472d1b815234838b1e037888a8ee4c5
|
|
@@ -371,7 +371,7 @@ module Bosh::OpenStackCloud
|
|
|
371
371
|
|
|
372
372
|
compare_security_groups(server, network_configurator.security_groups(@default_security_groups))
|
|
373
373
|
|
|
374
|
-
compare_private_ip_addresses(server, network_configurator.
|
|
374
|
+
compare_private_ip_addresses(server, network_configurator.private_ips)
|
|
375
375
|
|
|
376
376
|
network_configurator.configure(@openstack, server)
|
|
377
377
|
|
|
@@ -845,17 +845,17 @@ module Bosh::OpenStackCloud
|
|
|
845
845
|
# Compares actual server private IP addresses with the IP address specified at the network spec
|
|
846
846
|
#
|
|
847
847
|
# @param [Fog::Compute::OpenStack::Server] server OpenStack server
|
|
848
|
-
# @param [
|
|
848
|
+
# @param [Array] specified_ip_addresses IP addresses specified at the network spec (if Manual network)
|
|
849
849
|
# @return [void]
|
|
850
850
|
# @raise [Bosh::Clouds:NotSupported] If the IP address change, we need to recreate the VM as you can't
|
|
851
851
|
# change the IP address of a running server, so we need to send the InstanceUpdater a request to do it for us
|
|
852
|
-
def compare_private_ip_addresses(server,
|
|
852
|
+
def compare_private_ip_addresses(server, specified_ip_addresses)
|
|
853
853
|
actual_ip_addresses = with_openstack { server.private_ip_addresses }
|
|
854
854
|
|
|
855
|
-
unless
|
|
855
|
+
unless specified_ip_addresses.empty? || actual_ip_addresses.sort == specified_ip_addresses.sort
|
|
856
856
|
raise Bosh::Clouds::NotSupported,
|
|
857
857
|
'IP address change requires VM recreation: %s to %s' %
|
|
858
|
-
[actual_ip_addresses.join(', '),
|
|
858
|
+
[actual_ip_addresses.join(', '), specified_ip_addresses.join(', ')]
|
|
859
859
|
end
|
|
860
860
|
end
|
|
861
861
|
|
|
@@ -22,41 +22,55 @@ module Bosh::OpenStackCloud
|
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
@logger = Bosh::Clouds::Config.logger
|
|
25
|
-
@
|
|
25
|
+
@networks = []
|
|
26
26
|
@vip_network = nil
|
|
27
27
|
@security_groups = []
|
|
28
|
-
@
|
|
28
|
+
@net_ids = []
|
|
29
|
+
@dynamic_network = nil
|
|
29
30
|
|
|
30
31
|
spec.each_pair do |name, network_spec|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
case network_type
|
|
34
|
-
when "dynamic"
|
|
35
|
-
cloud_error("Must have exactly one dynamic or manual network per instance") if @network
|
|
36
|
-
@network = DynamicNetwork.new(name, network_spec)
|
|
37
|
-
@security_groups += extract_security_groups(network_spec)
|
|
38
|
-
@net_id = extract_net_id(network_spec)
|
|
39
|
-
|
|
40
|
-
when "manual"
|
|
41
|
-
cloud_error("Must have exactly one dynamic or manual network per instance") if @network
|
|
42
|
-
@network = ManualNetwork.new(name, network_spec)
|
|
43
|
-
@security_groups += extract_security_groups(network_spec)
|
|
44
|
-
@net_id = extract_net_id(network_spec)
|
|
45
|
-
cloud_error("Manual network must have net_id") if @net_id.nil?
|
|
46
|
-
|
|
47
|
-
when "vip"
|
|
48
|
-
cloud_error("More than one vip network") if @vip_network
|
|
49
|
-
@vip_network = VipNetwork.new(name, network_spec)
|
|
50
|
-
@security_groups += extract_security_groups(network_spec)
|
|
51
|
-
|
|
52
|
-
else
|
|
53
|
-
cloud_error("Invalid network type `#{network_type}': OpenStack " \
|
|
54
|
-
"CPI can only handle `dynamic', 'manual' or `vip' " \
|
|
55
|
-
"network types")
|
|
56
|
-
end
|
|
32
|
+
initialize_network(name, network_spec)
|
|
57
33
|
end
|
|
58
34
|
|
|
59
|
-
cloud_error("At least one dynamic or manual network should be defined") if @
|
|
35
|
+
cloud_error("At least one dynamic or manual network should be defined") if @networks.empty?
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
# Setup network configuration for one network spec.
|
|
40
|
+
#
|
|
41
|
+
# @param [String] network spec name
|
|
42
|
+
# @param [Hash] network spec
|
|
43
|
+
# configure
|
|
44
|
+
def initialize_network(name, network_spec)
|
|
45
|
+
network_type = network_spec["type"] || "manual"
|
|
46
|
+
|
|
47
|
+
case network_type
|
|
48
|
+
when "dynamic"
|
|
49
|
+
cloud_error("Only one dynamic network per instance should be defined") if @dynamic_network
|
|
50
|
+
net_id = extract_net_id(network_spec)
|
|
51
|
+
cloud_error("Dynamic network with id #{net_id} is already defined") if @net_ids.include?(net_id)
|
|
52
|
+
network = DynamicNetwork.new(name, network_spec)
|
|
53
|
+
@security_groups += extract_security_groups(network_spec)
|
|
54
|
+
@networks << {"network" => network, "net_id" => net_id}
|
|
55
|
+
@net_ids << net_id
|
|
56
|
+
@dynamic_network = network
|
|
57
|
+
when "manual"
|
|
58
|
+
net_id = extract_net_id(network_spec)
|
|
59
|
+
cloud_error("Manual network must have net_id") if net_id.nil?
|
|
60
|
+
cloud_error("Manual network with id #{net_id} is already defined") if @net_ids.include?(net_id)
|
|
61
|
+
network = ManualNetwork.new(name, network_spec)
|
|
62
|
+
@security_groups += extract_security_groups(network_spec)
|
|
63
|
+
@networks << {"network" => network, "net_id" => net_id}
|
|
64
|
+
@net_ids << net_id
|
|
65
|
+
when "vip"
|
|
66
|
+
cloud_error("Only one VIP network per instance should be defined") if @vip_network
|
|
67
|
+
@vip_network = VipNetwork.new(name, network_spec)
|
|
68
|
+
@security_groups += extract_security_groups(network_spec)
|
|
69
|
+
else
|
|
70
|
+
cloud_error("Invalid network type `#{network_type}': OpenStack " \
|
|
71
|
+
"CPI can only handle `dynamic', 'manual' or `vip' " \
|
|
72
|
+
"network types")
|
|
73
|
+
end
|
|
60
74
|
end
|
|
61
75
|
|
|
62
76
|
##
|
|
@@ -66,7 +80,10 @@ module Bosh::OpenStackCloud
|
|
|
66
80
|
# @param [Fog::Compute::OpenStack::Server] server OpenStack server to
|
|
67
81
|
# configure
|
|
68
82
|
def configure(openstack, server)
|
|
69
|
-
@
|
|
83
|
+
@networks.each do |network_info|
|
|
84
|
+
network = network_info["network"]
|
|
85
|
+
network.configure(openstack, server)
|
|
86
|
+
end
|
|
70
87
|
|
|
71
88
|
if @vip_network
|
|
72
89
|
@vip_network.configure(openstack, server)
|
|
@@ -102,11 +119,15 @@ module Bosh::OpenStackCloud
|
|
|
102
119
|
end
|
|
103
120
|
|
|
104
121
|
##
|
|
105
|
-
# Returns the private IP
|
|
122
|
+
# Returns the private IP addresses for this network configuration
|
|
106
123
|
#
|
|
107
|
-
# @return [String] private ip
|
|
108
|
-
def
|
|
109
|
-
@
|
|
124
|
+
# @return [Array<String>] private ip addresses
|
|
125
|
+
def private_ips
|
|
126
|
+
@networks.inject([]) do |memo, network_info|
|
|
127
|
+
network = network_info["network"]
|
|
128
|
+
memo << network.private_ip if network.is_a?(ManualNetwork)
|
|
129
|
+
memo
|
|
130
|
+
end
|
|
110
131
|
end
|
|
111
132
|
|
|
112
133
|
##
|
|
@@ -114,10 +135,15 @@ module Bosh::OpenStackCloud
|
|
|
114
135
|
#
|
|
115
136
|
# @return [Array] nics
|
|
116
137
|
def nics
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
138
|
+
@networks.inject([]) do |memo, network_info|
|
|
139
|
+
net_id = network_info["net_id"]
|
|
140
|
+
network = network_info["network"]
|
|
141
|
+
nic = {}
|
|
142
|
+
nic["net_id"] = net_id if net_id
|
|
143
|
+
nic["v4_fixed_ip"] = network.private_ip if network.is_a?(ManualNetwork)
|
|
144
|
+
memo << nic if nic.any?
|
|
145
|
+
memo
|
|
146
|
+
end
|
|
121
147
|
end
|
|
122
148
|
|
|
123
149
|
private
|
|
@@ -157,4 +183,4 @@ module Bosh::OpenStackCloud
|
|
|
157
183
|
end
|
|
158
184
|
|
|
159
185
|
end
|
|
160
|
-
end
|
|
186
|
+
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.2743.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-10-
|
|
11
|
+
date: 2014-10-14 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.2743.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.2743.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.2743.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.2743.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.2743.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.2743.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: httpclient
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,17 +100,17 @@ dependencies:
|
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
103
|
+
version: 1.1.0
|
|
104
104
|
type: :runtime
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
110
|
+
version: 1.1.0
|
|
111
111
|
description: |-
|
|
112
112
|
BOSH OpenStack CPI
|
|
113
|
-
|
|
113
|
+
01851c
|
|
114
114
|
email: support@cloudfoundry.com
|
|
115
115
|
executables:
|
|
116
116
|
- bosh_openstack_console
|