From 9137cc304d73aa60548fa255d2bf668600aa0ec4 Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Thu, 11 Apr 2013 16:02:53 -0500 Subject: 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 --- openstackclient/volume/v1/volume.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'openstackclient/volume/v1') 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='', - help='Override user id derived from context (admin only)', + '--user', + metavar='', + help='Specify a different user (admin only)', ) parser.add_argument( - '--project-id', - metavar='', - help='Override project id derived from context (admin only)', + '--project', + metavar='', + 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 -- cgit v1.2.1