diff --git a/cinderlib/cinderlib.py b/cinderlib/cinderlib.py index c5e78ae..0960b31 100644 --- a/cinderlib/cinderlib.py +++ b/cinderlib/cinderlib.py @@ -103,7 +103,7 @@ class Backend(object): **kwargs): vol = objects.Volume(self, size=size, name=name, description=description, bootable=bootable, - availability_zone=self.id, **kwargs) + **kwargs) vol.create() return vol diff --git a/cinderlib/objects.py b/cinderlib/objects.py index 2363bda..988fe0a 100644 --- a/cinderlib/objects.py +++ b/cinderlib/objects.py @@ -200,10 +200,12 @@ class Volume(NamedObject): def __init__(self, backend_or_vol, **kwargs): # Accept backend name for convenience if isinstance(backend_or_vol, six.string_types): + kwargs.setdefault('availability_zone', backend_or_vol) backend_or_vol = self.backend_class.backends[backend_or_vol] - + elif isinstance(backend_or_vol, self.backend_class): + kwargs.setdefault('availability_zone', backend_or_vol.id) # Accept a volume as additional source data - if isinstance(backend_or_vol, Volume): + elif isinstance(backend_or_vol, Volume): # Availability zone (backend) will be the same as the source kwargs.pop('availability_zone', None) for key in backend_or_vol._ovo.fields: