summaryrefslogtreecommitdiff
path: root/cinderclient/v3/availability_zones.py
diff options
context:
space:
mode:
Diffstat (limited to 'cinderclient/v3/availability_zones.py')
-rw-r--r--cinderclient/v3/availability_zones.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/cinderclient/v3/availability_zones.py b/cinderclient/v3/availability_zones.py
index 3b99540..db6b8da 100644
--- a/cinderclient/v3/availability_zones.py
+++ b/cinderclient/v3/availability_zones.py
@@ -16,4 +16,27 @@
"""Availability Zone interface (v3 extension)"""
-from cinderclient.v2.availability_zones import * # noqa
+from cinderclient import base
+
+
+class AvailabilityZone(base.Resource):
+ NAME_ATTR = 'display_name'
+
+ def __repr__(self):
+ return "<AvailabilityZone: %s>" % self.zoneName
+
+
+class AvailabilityZoneManager(base.ManagerWithFind):
+ """Manage :class:`AvailabilityZone` resources."""
+ resource_class = AvailabilityZone
+
+ def list(self, detailed=False):
+ """Lists all availability zones.
+
+ :rtype: list of :class:`AvailabilityZone`
+ """
+ if detailed is True:
+ return self._list("/os-availability-zone/detail",
+ "availabilityZoneInfo")
+ else:
+ return self._list("/os-availability-zone", "availabilityZoneInfo")