summaryrefslogtreecommitdiff
path: root/openstackclient/volume
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/volume')
-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