Skip to content

Commit

Permalink
Merge pull request #216 from nuwang/fix_service_zones
Browse files Browse the repository at this point in the history
Refactor zone name handling and fix os zone default
  • Loading branch information
nuwang committed Sep 4, 2019
2 parents f230030 + 640eb02 commit b12f575
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 15 deletions.
5 changes: 2 additions & 3 deletions cloudbridge/base/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,8 @@ def region_name(self):
@property
def zone_name(self):
if not self._zone_name:
region = self.compute.regions.get(self.region_name)
# TODO: Default zone
zone = next(iter(region.zones))
region = self.compute.regions.current
zone = region.default_zone
self._zone_name = zone.name if zone else None
return self._zone_name

Expand Down
4 changes: 4 additions & 0 deletions cloudbridge/base/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,10 @@ def to_json(self):
js['zones'] = [z.id for z in self.zones]
return js

@property
def default_zone(self):
return next(iter(self.zones))


class BaseBucketObject(BaseCloudResource, BucketObject):

Expand Down
8 changes: 0 additions & 8 deletions cloudbridge/providers/openstack/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,14 +321,6 @@ def _connect_neutron(self):
session=self._keystone_session,
region_name=self.region_name)

@property
def zone_name(self):
if not self._zone_name:
region = self.compute.regions.get(self.region_name)
zone = next(iter(region.zones))
self._zone_name = zone.name if zone else None
return self._zone_name

def service_zone_name(self, service):
service_name = service._service_event_pattern
if ("networking" in service_name and
Expand Down
12 changes: 8 additions & 4 deletions cloudbridge/providers/openstack/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -649,14 +649,18 @@ class OpenStackComputeService(BaseComputeService):

def __init__(self, provider):
super(OpenStackComputeService, self).__init__(provider)
# pylint:disable=protected-access
self.service_zone_name = self.provider._get_config_value(
'os_compute_zone_name', cb_helpers.get_env(
'OS_COMPUTE_ZONE_NAME', self.provider.zone_name))
self._vm_type_svc = OpenStackVMTypeService(self.provider)
self._instance_svc = OpenStackInstanceService(self.provider)
self._region_svc = OpenStackRegionService(self.provider)
self._images_svc = OpenStackImageService(self.provider)
# Region service must be defined before invoking the following
# pylint:disable=protected-access
self.service_zone_name = self.provider._get_config_value(
'os_compute_zone_name',
cb_helpers.get_env(
'OS_COMPUTE_ZONE_NAME',
self.provider._zone_name or
self.regions.current.default_zone.name))

@property
def images(self):
Expand Down

0 comments on commit b12f575

Please sign in to comment.