Implement ability to specify external volumes
External volumes are created and managed by the user. They are not namespaced. They are expected to exist at the beginning of the up phase. Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
05935b5e54
commit
9cb58b796e
6 changed files with 93 additions and 21 deletions
|
|
@ -5,12 +5,19 @@ from docker.errors import NotFound
|
|||
|
||||
|
||||
class Volume(object):
|
||||
def __init__(self, client, project, name, driver=None, driver_opts=None):
|
||||
def __init__(self, client, project, name, driver=None, driver_opts=None,
|
||||
external=False):
|
||||
self.client = client
|
||||
self.project = project
|
||||
self.name = name
|
||||
self.driver = driver
|
||||
self.driver_opts = driver_opts
|
||||
self.external_name = None
|
||||
if external:
|
||||
if isinstance(external, dict):
|
||||
self.external_name = external.get('name')
|
||||
else:
|
||||
self.external_name = self.name
|
||||
|
||||
def create(self):
|
||||
return self.client.create_volume(
|
||||
|
|
@ -23,15 +30,19 @@ class Volume(object):
|
|||
def inspect(self):
|
||||
return self.client.inspect_volume(self.full_name)
|
||||
|
||||
@property
|
||||
def is_user_created(self):
|
||||
def exists(self):
|
||||
try:
|
||||
self.client.inspect_volume(self.name)
|
||||
self.inspect()
|
||||
except NotFound:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
@property
|
||||
def external(self):
|
||||
return bool(self.external_name)
|
||||
|
||||
@property
|
||||
def full_name(self):
|
||||
if self.external_name:
|
||||
return self.external_name
|
||||
return '{0}_{1}'.format(self.project, self.name)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue