bosh_openstack_cpi 1.3033.0 → 1.3039.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/openstack/cloud.rb +39 -28
- data/lib/cloud/openstack/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4b4be6f3273b4e67b919cc550a49fd54a43fdc1
|
4
|
+
data.tar.gz: 3a04b00f00665a402df33090333755eec6ad8a9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 751948c5de3e5eba400a1b1e6b8406f5aec0b58a3f8b6b3c38cdb59d756cddeef75bb7f36e5fee833b7275f16d5fe64a51a0f166220fa73e1c728418f11fd63e
|
7
|
+
data.tar.gz: 43498578e3f1e5c00420828e7574d6ed4b1ddd58f8a942821395660d700be0030fc04612c105abd197e07630caa1821108e017a0a729eb0ae7c4639a081bfba6
|
@@ -54,7 +54,7 @@ module Bosh::OpenStackCloud
|
|
54
54
|
|
55
55
|
@openstack_properties['connection_options'] ||= {}
|
56
56
|
|
57
|
-
extra_connection_options = {'instrumentor' => Bosh::OpenStackCloud::ExconLoggingInstrumentor}
|
57
|
+
@extra_connection_options = {'instrumentor' => Bosh::OpenStackCloud::ExconLoggingInstrumentor}
|
58
58
|
|
59
59
|
openstack_params = {
|
60
60
|
:provider => 'OpenStack',
|
@@ -64,19 +64,19 @@ module Bosh::OpenStackCloud
|
|
64
64
|
:openstack_tenant => @openstack_properties['tenant'],
|
65
65
|
:openstack_region => @openstack_properties['region'],
|
66
66
|
:openstack_endpoint_type => @openstack_properties['endpoint_type'],
|
67
|
-
:connection_options => @openstack_properties['connection_options'].merge(extra_connection_options)
|
67
|
+
:connection_options => @openstack_properties['connection_options'].merge(@extra_connection_options)
|
68
68
|
}
|
69
69
|
|
70
70
|
connect_retry_errors = [Excon::Errors::GatewayTimeout]
|
71
71
|
|
72
|
-
connect_retry_options = {
|
72
|
+
@connect_retry_options = {
|
73
73
|
sleep: CONNECT_RETRY_DELAY,
|
74
74
|
tries: CONNECT_RETRY_COUNT,
|
75
75
|
on: connect_retry_errors,
|
76
76
|
}
|
77
77
|
|
78
78
|
begin
|
79
|
-
Bosh::Common.retryable(connect_retry_options) do |tries, error|
|
79
|
+
Bosh::Common.retryable(@connect_retry_options) do |tries, error|
|
80
80
|
@logger.error("Failed #{tries} times, last failure due to: #{error.inspect}") unless error.nil?
|
81
81
|
@openstack = Fog::Compute.new(openstack_params)
|
82
82
|
end
|
@@ -96,11 +96,11 @@ module Bosh::OpenStackCloud
|
|
96
96
|
:openstack_tenant => @openstack_properties['tenant'],
|
97
97
|
:openstack_region => @openstack_properties['region'],
|
98
98
|
:openstack_endpoint_type => @openstack_properties['endpoint_type'],
|
99
|
-
:connection_options => @openstack_properties['connection_options'].merge(extra_connection_options)
|
99
|
+
:connection_options => @openstack_properties['connection_options'].merge(@extra_connection_options)
|
100
100
|
}
|
101
101
|
|
102
102
|
begin
|
103
|
-
Bosh::Common.retryable(connect_retry_options) do |tries, error|
|
103
|
+
Bosh::Common.retryable(@connect_retry_options) do |tries, error|
|
104
104
|
@logger.error("Failed #{tries} times, last failure due to: #{error.inspect}") unless error.nil?
|
105
105
|
@glance = Fog::Image.new(glance_params)
|
106
106
|
end
|
@@ -108,26 +108,6 @@ module Bosh::OpenStackCloud
|
|
108
108
|
cloud_error('Unable to connect to the OpenStack Image Service API. Check task debug log for details.')
|
109
109
|
end
|
110
110
|
|
111
|
-
volume_params = {
|
112
|
-
:provider => "OpenStack",
|
113
|
-
:openstack_auth_url => @openstack_properties['auth_url'],
|
114
|
-
:openstack_username => @openstack_properties['username'],
|
115
|
-
:openstack_api_key => @openstack_properties['api_key'],
|
116
|
-
:openstack_tenant => @openstack_properties['tenant'],
|
117
|
-
:openstack_region => @openstack_properties['region'],
|
118
|
-
:openstack_endpoint_type => @openstack_properties['endpoint_type'],
|
119
|
-
:connection_options => @openstack_properties['connection_options'].merge(extra_connection_options)
|
120
|
-
}
|
121
|
-
|
122
|
-
begin
|
123
|
-
Bosh::Common.retryable(connect_retry_options) do |tries, error|
|
124
|
-
@logger.error("Failed #{tries} times, last failure due to: #{error.inspect}") unless error.nil?
|
125
|
-
@volume = Fog::Volume.new(volume_params)
|
126
|
-
end
|
127
|
-
rescue Bosh::Common::RetryCountExceeded, Excon::Errors::ClientError, Excon::Errors::ServerError
|
128
|
-
cloud_error('Unable to connect to the OpenStack Volume API. Check task debug log for details.')
|
129
|
-
end
|
130
|
-
|
131
111
|
@metadata_lock = Mutex.new
|
132
112
|
end
|
133
113
|
|
@@ -424,6 +404,7 @@ module Bosh::OpenStackCloud
|
|
424
404
|
# this disk will be attached to
|
425
405
|
# @return [String] OpenStack volume UUID
|
426
406
|
def create_disk(size, cloud_properties, server_id = nil)
|
407
|
+
volume_service_client = connect_to_volume_service
|
427
408
|
with_thread_name("create_disk(#{size}, #{cloud_properties}, #{server_id})") do
|
428
409
|
raise ArgumentError, 'Disk size needs to be an integer' unless size.kind_of?(Integer)
|
429
410
|
cloud_error('Minimum disk size is 1 GiB') if (size < 1024)
|
@@ -446,7 +427,7 @@ module Bosh::OpenStackCloud
|
|
446
427
|
end
|
447
428
|
|
448
429
|
@logger.info('Creating new volume...')
|
449
|
-
new_volume = with_openstack {
|
430
|
+
new_volume = with_openstack { volume_service_client.volumes.create(volume_params) }
|
450
431
|
|
451
432
|
@logger.info("Creating new volume `#{new_volume.id}'...")
|
452
433
|
wait_resource(new_volume, :available)
|
@@ -465,6 +446,7 @@ module Bosh::OpenStackCloud
|
|
465
446
|
# @param [optional, String] volume_type to be passed to the volume API
|
466
447
|
# @return [String] OpenStack volume UUID
|
467
448
|
def create_boot_disk(size, stemcell_id, availability_zone = nil, boot_volume_cloud_properties = {})
|
449
|
+
volume_service_client = connect_to_volume_service
|
468
450
|
with_thread_name("create_boot_disk(#{size}, #{stemcell_id}, #{availability_zone}, #{boot_volume_cloud_properties})") do
|
469
451
|
raise ArgumentError, "Disk size needs to be an integer" unless size.kind_of?(Integer)
|
470
452
|
cloud_error("Minimum disk size is 1 GiB") if (size < 1024)
|
@@ -481,7 +463,7 @@ module Bosh::OpenStackCloud
|
|
481
463
|
volume_params[:volume_type] = boot_volume_cloud_properties["type"] if boot_volume_cloud_properties["type"]
|
482
464
|
|
483
465
|
@logger.info("Creating new boot volume...")
|
484
|
-
boot_volume = with_openstack {
|
466
|
+
boot_volume = with_openstack { volume_service_client.volumes.create(volume_params) }
|
485
467
|
|
486
468
|
@logger.info("Creating new boot volume `#{boot_volume.id}'...")
|
487
469
|
wait_resource(boot_volume, :available)
|
@@ -656,6 +638,35 @@ module Bosh::OpenStackCloud
|
|
656
638
|
|
657
639
|
private
|
658
640
|
|
641
|
+
##
|
642
|
+
# Creates a client for the OpenStack volume service, or return
|
643
|
+
# the existing connectuion
|
644
|
+
#
|
645
|
+
#
|
646
|
+
def connect_to_volume_service
|
647
|
+
volume_params = {
|
648
|
+
:provider => "OpenStack",
|
649
|
+
:openstack_auth_url => @openstack_properties['auth_url'],
|
650
|
+
:openstack_username => @openstack_properties['username'],
|
651
|
+
:openstack_api_key => @openstack_properties['api_key'],
|
652
|
+
:openstack_tenant => @openstack_properties['tenant'],
|
653
|
+
:openstack_region => @openstack_properties['region'],
|
654
|
+
:openstack_endpoint_type => @openstack_properties['endpoint_type'],
|
655
|
+
:connection_options => @openstack_properties['connection_options'].merge(@extra_connection_options)
|
656
|
+
}
|
657
|
+
|
658
|
+
begin
|
659
|
+
Bosh::Common.retryable(@connect_retry_options) do |tries, error|
|
660
|
+
@logger.error("Failed #{tries} times, last failure due to: #{error.inspect}") unless error.nil?
|
661
|
+
@volume ||= Fog::Volume.new(volume_params)
|
662
|
+
end
|
663
|
+
rescue Bosh::Common::RetryCountExceeded, Excon::Errors::ClientError, Excon::Errors::ServerError => e
|
664
|
+
cloud_error("Unable to connect to the OpenStack Volume API: #{e.message}. Check task debug log for details.")
|
665
|
+
end
|
666
|
+
|
667
|
+
@volume
|
668
|
+
end
|
669
|
+
|
659
670
|
##
|
660
671
|
# Generates an unique name
|
661
672
|
#
|
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.3039.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: 2015-08-
|
11
|
+
date: 2015-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-aws
|
@@ -44,42 +44,42 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 1.3039.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.3039.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bosh_cpi
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.3039.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.3039.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bosh-registry
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.
|
75
|
+
version: 1.3039.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.
|
82
|
+
version: 1.3039.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: httpclient
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,7 +180,7 @@ dependencies:
|
|
180
180
|
version: '0'
|
181
181
|
description: |-
|
182
182
|
BOSH OpenStack CPI
|
183
|
-
|
183
|
+
e8cf4e
|
184
184
|
email: support@cloudfoundry.com
|
185
185
|
executables:
|
186
186
|
- bosh_openstack_console
|