summaryrefslogtreecommitdiff
path: root/openstackclient/volume/v1
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2013-04-11 16:02:53 -0500
committerDean Troyer <dtroyer@gmail.com>2013-10-25 12:21:41 -0500
commit9137cc304d73aa60548fa255d2bf668600aa0ec4 (patch)
treeb1b3cd6349477ebb33e04de89503fe313ab97d6c /openstackclient/volume/v1
parent1fa1330e1d8bc9361bbe8c88490a20f9b8fddec1 (diff)
downloadpython-openstackclient-9137cc304d73aa60548fa255d2bf668600aa0ec4.tar.gz
Do lookups for user, project in volume create
This required https://review.openstack.org/26323 in keystoneclient, merged long ago... Also adds some tests for 'volume create' Change-Id: I55bededbc20b5dcf2833c59eb2b6b069703d8a9a
Diffstat (limited to 'openstackclient/volume/v1')
-rw-r--r--openstackclient/volume/v1/volume.py27
1 files changed, 19 insertions, 8 deletions
diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py
index c6690fd6..0253bc1d 100644
--- a/openstackclient/volume/v1/volume.py
+++ b/openstackclient/volume/v1/volume.py
@@ -61,14 +61,14 @@ class CreateVolume(show.ShowOne):
help='Type of volume',
)
parser.add_argument(
- '--user-id',
- metavar='<user-id>',
- help='Override user id derived from context (admin only)',
+ '--user',
+ metavar='<user>',
+ help='Specify a different user (admin only)',
)
parser.add_argument(
- '--project-id',
- metavar='<project-id>',
- help='Override project id derived from context (admin only)',
+ '--project',
+ metavar='<project>',
+ help='Specify a diffeent project (admin only)',
)
parser.add_argument(
'--availability-zone',
@@ -98,6 +98,7 @@ class CreateVolume(show.ShowOne):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
+ identity_client = self.app.client_manager.identity
volume_client = self.app.client_manager.volume
source_volume = None
@@ -107,6 +108,16 @@ class CreateVolume(show.ShowOne):
parsed_args.source,
).id
+ project = None
+ if parsed_args.project:
+ project = utils.find_resource(
+ identity_client.tenants, parsed_args.project).id
+
+ user = None
+ if parsed_args.user:
+ user = utils.find_resource(
+ identity_client.users, parsed_args.user).id
+
volume = volume_client.volumes.create(
parsed_args.size,
parsed_args.snapshot_id,
@@ -114,8 +125,8 @@ class CreateVolume(show.ShowOne):
parsed_args.name,
parsed_args.description,
parsed_args.volume_type,
- parsed_args.user_id,
- parsed_args.project_id,
+ user,
+ project,
parsed_args.availability_zone,
parsed_args.property,
parsed_args.image