summaryrefslogtreecommitdiff
path: root/openstackclient/volume
diff options
context:
space:
mode:
authorjiahui.qiang <jiahui.qiang@easystack.cn>2017-01-06 22:49:41 +0800
committerjiahui.qiang <jiahui.qiang@easystack.cn>2017-01-07 22:21:11 +0800
commit27e0be051714fe11a3b9b5306f2e0a72d95fe2c3 (patch)
tree91082474a574c5d5b15baea2138d982054f2851f /openstackclient/volume
parent221cb5318ea8774abff36f73e127f89dcdb510f4 (diff)
downloadpython-openstackclient-27e0be051714fe11a3b9b5306f2e0a72d95fe2c3.tar.gz
Add --project and --project-domain option to "volume snapshot list"
Add "--project" and "--project-domain" option to volume v2's "volume snapshot list" command, it will filter list result by different project. Change-Id: I7dccd6d8d9f1889fa9cb0c2d04a42d77975c645b
Diffstat (limited to 'openstackclient/volume')
-rw-r--r--openstackclient/volume/v2/volume_snapshot.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/openstackclient/volume/v2/volume_snapshot.py b/openstackclient/volume/v2/volume_snapshot.py
index af29b777..3283bb53 100644
--- a/openstackclient/volume/v2/volume_snapshot.py
+++ b/openstackclient/volume/v2/volume_snapshot.py
@@ -24,6 +24,7 @@ from osc_lib import utils
import six
from openstackclient.i18n import _
+from openstackclient.identity import common as identity_common
LOG = logging.getLogger(__name__)
@@ -166,6 +167,12 @@ class ListVolumeSnapshot(command.Lister):
help=_('Include all projects (admin only)'),
)
parser.add_argument(
+ '--project',
+ metavar='<project>',
+ help=_('Filter results by project (name or ID) (admin only)')
+ )
+ identity_common.add_project_domain_option_to_parser(parser)
+ parser.add_argument(
'--long',
action='store_true',
default=False,
@@ -208,6 +215,7 @@ class ListVolumeSnapshot(command.Lister):
def take_action(self, parsed_args):
volume_client = self.app.client_manager.volume
+ identity_client = self.app.client_manager.identity
def _format_volume_id(volume_id):
"""Return a volume name if available
@@ -245,8 +253,20 @@ class ListVolumeSnapshot(command.Lister):
volume_id = utils.find_resource(
volume_client.volumes, parsed_args.volume).id
+ project_id = None
+ if parsed_args.project:
+ project_id = identity_common.find_project(
+ identity_client,
+ parsed_args.project,
+ parsed_args.project_domain).id
+
+ # set value of 'all_tenants' when using project option
+ all_projects = True if parsed_args.project else \
+ parsed_args.all_projects
+
search_opts = {
- 'all_tenants': parsed_args.all_projects,
+ 'all_tenants': all_projects,
+ 'project_id': project_id,
'name': parsed_args.name,
'status': parsed_args.status,
'volume_id': volume_id,