Class: Bosh::OpenStackCloud::AvailabilityZoneProvider
- Inherits:
-
Object
- Object
- Bosh::OpenStackCloud::AvailabilityZoneProvider
- Includes:
- Helpers
- Defined in:
- lib/cloud/openstack/availability_zone_provider.rb
Constant Summary
Constants included from Helpers
Helpers::DEFAULT_RETRY_TIMEOUT, Helpers::DEFAULT_STATE_TIMEOUT, Helpers::MAX_RETRIES
Instance Method Summary collapse
- #constrain_to_server_availability_zone? ⇒ Boolean
-
#initialize(openstack, ignore_server_availability_zone) ⇒ AvailabilityZoneProvider
constructor
A new instance of AvailabilityZoneProvider.
- #select(volume_ids, resource_pool_az) ⇒ Object
Methods included from Helpers
#cloud_error, #parse_openstack_response, #wait_resource, #with_openstack
Constructor Details
#initialize(openstack, ignore_server_availability_zone) ⇒ AvailabilityZoneProvider
Returns a new instance of AvailabilityZoneProvider.
5 6 7 8 |
# File 'lib/cloud/openstack/availability_zone_provider.rb', line 5 def initialize(openstack, ignore_server_availability_zone) @openstack = openstack @ignore_server_availability_zone = ignore_server_availability_zone end |
Instance Method Details
#constrain_to_server_availability_zone? ⇒ Boolean
21 22 23 |
# File 'lib/cloud/openstack/availability_zone_provider.rb', line 21 def constrain_to_server_availability_zone? !@ignore_server_availability_zone end |
#select(volume_ids, resource_pool_az) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cloud/openstack/availability_zone_provider.rb', line 10 def select(volume_ids, resource_pool_az) if volume_ids && !volume_ids.empty? && constrain_to_server_availability_zone? fog_volume_map = @openstack.volumes volumes = volume_ids.map { |vid| with_openstack { fog_volume_map.get(vid) } } ensure_same_availability_zone(volumes, resource_pool_az) volumes.first.availability_zone else resource_pool_az end end |