bosh_openstack_cpi 1.3048.0 → 1.3050.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ea6d566ec1030eebb8f64fd9ffcf96abc46b916
4
- data.tar.gz: eb8a153459334fad3613288377b11c44d8a32185
3
+ metadata.gz: 77ef3e3b4dfd8a243a6c8984b890cfaac5e7d1c9
4
+ data.tar.gz: 74319c92621ba3e24b9b61ca0e0d6637f3b7f9cd
5
5
  SHA512:
6
- metadata.gz: 87f303a055524376b0d54f38716170d812cb836758568b95a058277ee17650a03abf819966fa0a22bdbf0fab2b9180545c4fc73846d99af0f52f67c6a74c3d15
7
- data.tar.gz: 17969d3935afa0bc6b0c2bc458395f5229a3cb3415ace42cc353309ee6df92ece19ffebe0f93ca74c13a6c31fdc7253024cfe59633df2575199e49bf192b9437
6
+ metadata.gz: bb770f243c46fbfe17a2b97a36b75a35e7642823902d8064df6c7f5431e68386a45651a1b2d7bb992752d3f1adca419daae0beceaee25ec3768198105bd21829
7
+ data.tar.gz: 4229f2a405c25195deab289e26ca106de6d3f018986e1436cb423ff483656b71f9943d9468e4d8e724a1d55557702050718fee68bdba76c0cc3edf12dd1e8cfb
data/USAGE.md CHANGED
@@ -20,6 +20,8 @@ The registry options are passed to the Openstack CPI by the BOSH director based
20
20
  OpenStack API key
21
21
  * `tenant` (required)
22
22
  OpenStack tenant name
23
+ * `domain` (optional)
24
+ OpenStack domain name
23
25
  * `region` (optional)
24
26
  OpenStack region
25
27
  * `endpoint_type` (optional)
data/bin/openstack_cpi CHANGED
@@ -11,10 +11,18 @@ cloud_config = OpenStruct.new(:logger => Logger.new(STDERR))
11
11
 
12
12
  Bosh::Clouds::Config.configure(cloud_config)
13
13
 
14
- cloud_properties = cpi_config['cloud']['properties']
15
- cloud_properties['cpi_log'] = StringIO.new
14
+ cpi_log = StringIO.new
16
15
 
17
- cpi = Bosh::Clouds::Openstack.new(cloud_properties)
18
- cli = Bosh::Cpi::Cli.new(cpi, cloud_properties['cpi_log'], STDOUT)
16
+ cpi_lambda = lambda do
17
+ unless cpi_config.has_key?('cloud') && cpi_config['cloud'].has_key?('properties')
18
+ raise "Could not find cloud properties in the configuration"
19
+ end
19
20
 
20
- cli.run(ARGF.read)
21
+ cloud_properties = cpi_config['cloud']['properties']
22
+ cloud_properties['cpi_log'] = cpi_log
23
+ Bosh::Clouds::Openstack.new(cloud_properties)
24
+ end
25
+
26
+ cli = Bosh::Cpi::Cli.new(cpi_lambda, cpi_log, STDOUT)
27
+
28
+ cli.run(ARGF.read)
@@ -62,12 +62,13 @@ module Bosh::OpenStackCloud
62
62
  :openstack_username => @openstack_properties['username'],
63
63
  :openstack_api_key => @openstack_properties['api_key'],
64
64
  :openstack_tenant => @openstack_properties['tenant'],
65
+ :openstack_domain_name => @openstack_properties['domain'],
65
66
  :openstack_region => @openstack_properties['region'],
66
67
  :openstack_endpoint_type => @openstack_properties['endpoint_type'],
67
68
  :connection_options => @openstack_properties['connection_options'].merge(@extra_connection_options)
68
69
  }
69
70
 
70
- connect_retry_errors = [Excon::Errors::GatewayTimeout]
71
+ connect_retry_errors = [Excon::Errors::GatewayTimeout, Excon::Errors::SocketError]
71
72
 
72
73
  @connect_retry_options = {
73
74
  sleep: CONNECT_RETRY_DELAY,
@@ -94,6 +95,7 @@ module Bosh::OpenStackCloud
94
95
  :openstack_username => @openstack_properties['username'],
95
96
  :openstack_api_key => @openstack_properties['api_key'],
96
97
  :openstack_tenant => @openstack_properties['tenant'],
98
+ :openstack_domain_name => @openstack_properties['domain'],
97
99
  :openstack_region => @openstack_properties['region'],
98
100
  :openstack_endpoint_type => @openstack_properties['endpoint_type'],
99
101
  :connection_options => @openstack_properties['connection_options'].merge(@extra_connection_options)
@@ -230,9 +232,17 @@ module Bosh::OpenStackCloud
230
232
  nics = network_configurator.nics
231
233
  @logger.debug("Using NICs: `#{nics.join(', ')}'")
232
234
 
233
- image = with_openstack { @openstack.images.find { |i| i.id == stemcell_id } }
234
- cloud_error("Image `#{stemcell_id}' not found") if image.nil?
235
- @logger.debug("Using image: `#{stemcell_id}'")
235
+ image = nil
236
+ begin
237
+ Bosh::Common.retryable(@connect_retry_options) do |tries, error|
238
+ @logger.error("Unable to connect to OpenStack API to find image: `#{stemcell_id} due to: #{error.inspect}") unless error.nil?
239
+ image = with_openstack { @openstack.images.find { |i| i.id == stemcell_id } }
240
+ cloud_error("Image `#{stemcell_id}' not found") if image.nil?
241
+ @logger.debug("Using image: `#{stemcell_id}'")
242
+ end
243
+ rescue Bosh::Common::RetryCountExceeded, Excon::Errors::SocketError => e
244
+ cloud_error("Unable to connect to OpenStack API to find image: `#{stemcell_id}'")
245
+ end
236
246
 
237
247
  flavor = with_openstack { @openstack.flavors.find { |f| f.name == resource_pool['instance_type'] } }
238
248
  cloud_error("Flavor `#{resource_pool['instance_type']}' not found") if flavor.nil?
@@ -472,6 +482,20 @@ module Bosh::OpenStackCloud
472
482
  end
473
483
  end
474
484
 
485
+ ##
486
+ # Check whether an OpenStack volume exists or not
487
+ #
488
+ # @param [String] disk_id OpenStack volume UUID
489
+ # @return [bool] whether the specific disk is there or not
490
+ def has_disk?(disk_id)
491
+ with_thread_name("has_disk?(#{disk_id})") do
492
+ @logger.info("Check the presence of disk with id `#{disk_id}'...")
493
+ volume = with_openstack { @openstack.volumes.get(disk_id) }
494
+
495
+ !volume.nil?
496
+ end
497
+ end
498
+
475
499
  ##
476
500
  # Deletes an OpenStack volume
477
501
  #
@@ -532,9 +556,11 @@ module Bosh::OpenStackCloud
532
556
  cloud_error("Server `#{server_id}' not found") unless server
533
557
 
534
558
  volume = with_openstack { @openstack.volumes.get(disk_id) }
535
- cloud_error("Volume `#{disk_id}' not found") unless volume
536
-
537
- detach_volume(server, volume)
559
+ if volume.nil?
560
+ @logger.info("Disk `#{disk_id}' not found while trying to detach it from vm `#{server_id}'...")
561
+ else
562
+ detach_volume(server, volume)
563
+ end
538
564
 
539
565
  update_agent_settings(server) do |settings|
540
566
  settings['disks'] ||= {}
@@ -650,6 +676,7 @@ module Bosh::OpenStackCloud
650
676
  :openstack_username => @openstack_properties['username'],
651
677
  :openstack_api_key => @openstack_properties['api_key'],
652
678
  :openstack_tenant => @openstack_properties['tenant'],
679
+ :openstack_domain_name => @openstack_properties['domain'],
653
680
  :openstack_region => @openstack_properties['region'],
654
681
  :openstack_endpoint_type => @openstack_properties['endpoint_type'],
655
682
  :connection_options => @openstack_properties['connection_options'].merge(@extra_connection_options)
@@ -953,6 +980,7 @@ module Bosh::OpenStackCloud
953
980
  'username' => String,
954
981
  'api_key' => String,
955
982
  'tenant' => String,
983
+ optional('domain') => String,
956
984
  optional('region') => String,
957
985
  optional('endpoint_type') => String,
958
986
  optional('state_timeout') => Numeric,
@@ -3,6 +3,6 @@
3
3
 
4
4
  module Bosh
5
5
  module OpenStackCloud
6
- VERSION = '1.3048.0'
6
+ VERSION = '1.3050.0'
7
7
  end
8
8
  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.3048.0
4
+ version: 1.3050.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-18 00:00:00.000000000 Z
11
+ date: 2015-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog-aws
@@ -30,56 +30,56 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.27.0
33
+ version: 1.31.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.27.0
40
+ version: 1.31.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bosh_common
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.3048.0
47
+ version: 1.3050.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.3048.0
54
+ version: 1.3050.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.3048.0
61
+ version: 1.3050.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.3048.0
68
+ version: 1.3050.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.3048.0
75
+ version: 1.3050.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.3048.0
82
+ version: 1.3050.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
- e2c11a
183
+ b92cdc
184
184
  email: support@cloudfoundry.com
185
185
  executables:
186
186
  - bosh_openstack_console