Skip to content

Commit 9d3a956

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Add metadata as a filter condition when listing volumes"
2 parents 4ea3ded + 572eeb6 commit 9d3a956

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

openstackclient/tests/unit/volume/v3/test_volume.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1239,6 +1239,7 @@ def test_volume_list_no_options(self):
12391239
'user_id': None,
12401240
'name': None,
12411241
'status': None,
1242+
'metadata': None,
12421243
}
12431244
self.volumes_mock.list.assert_called_once_with(
12441245
search_opts=search_opts,
@@ -1282,6 +1283,7 @@ def test_volume_list_project(self):
12821283
'user_id': None,
12831284
'name': None,
12841285
'status': None,
1286+
'metadata': None,
12851287
}
12861288
self.volumes_mock.list.assert_called_once_with(
12871289
search_opts=search_opts,
@@ -1328,6 +1330,7 @@ def test_volume_list_project_domain(self):
13281330
'user_id': None,
13291331
'name': None,
13301332
'status': None,
1333+
'metadata': None,
13311334
}
13321335
self.volumes_mock.list.assert_called_once_with(
13331336
search_opts=search_opts,
@@ -1371,6 +1374,7 @@ def test_volume_list_user(self):
13711374
'user_id': self.user.id,
13721375
'name': None,
13731376
'status': None,
1377+
'metadata': None,
13741378
}
13751379
self.volumes_mock.list.assert_called_once_with(
13761380
search_opts=search_opts,
@@ -1416,6 +1420,7 @@ def test_volume_list_user_domain(self):
14161420
'user_id': self.user.id,
14171421
'name': None,
14181422
'status': None,
1423+
'metadata': None,
14191424
}
14201425
self.volumes_mock.list.assert_called_once_with(
14211426
search_opts=search_opts,
@@ -1459,6 +1464,7 @@ def test_volume_list_name(self):
14591464
'user_id': None,
14601465
'name': self.mock_volume.name,
14611466
'status': None,
1467+
'metadata': None,
14621468
}
14631469
self.volumes_mock.list.assert_called_once_with(
14641470
search_opts=search_opts,
@@ -1502,6 +1508,7 @@ def test_volume_list_status(self):
15021508
'user_id': None,
15031509
'name': None,
15041510
'status': self.mock_volume.status,
1511+
'metadata': None,
15051512
}
15061513
self.volumes_mock.list.assert_called_once_with(
15071514
search_opts=search_opts,
@@ -1544,6 +1551,7 @@ def test_volume_list_all_projects(self):
15441551
'user_id': None,
15451552
'name': None,
15461553
'status': None,
1554+
'metadata': None,
15471555
}
15481556
self.volumes_mock.list.assert_called_once_with(
15491557
search_opts=search_opts,
@@ -1587,6 +1595,7 @@ def test_volume_list_long(self):
15871595
'user_id': None,
15881596
'name': None,
15891597
'status': None,
1598+
'metadata': None,
15901599
}
15911600
self.volumes_mock.list.assert_called_once_with(
15921601
search_opts=search_opts,
@@ -1660,6 +1669,7 @@ def test_volume_list_with_marker_and_limit(self):
16601669
'user_id': None,
16611670
'name': None,
16621671
'all_tenants': False,
1672+
'metadata': None,
16631673
},
16641674
)
16651675
self.assertCountEqual(datalist, tuple(data))
@@ -1704,6 +1714,7 @@ def test_volume_list_backward_compatibility(self):
17041714
'user_id': None,
17051715
'name': None,
17061716
'status': None,
1717+
'metadata': None,
17071718
}
17081719
self.volumes_mock.list.assert_called_once_with(
17091720
search_opts=search_opts,

openstackclient/volume/v3/volume.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,16 @@ def get_parser(self, prog_name):
574574
metavar='<status>',
575575
help=_('Filter results by status'),
576576
)
577+
parser.add_argument(
578+
'--property',
579+
metavar='<key=value>',
580+
action=parseractions.KeyValueAction,
581+
dest='properties',
582+
help=_(
583+
'Filter by a property on the volume list '
584+
'(repeat option to filter by multiple properties) '
585+
),
586+
)
577587
parser.add_argument(
578588
'--all-projects',
579589
action='store_true',
@@ -642,6 +652,7 @@ def take_action(self, parsed_args):
642652
'user_id': user_id,
643653
'name': parsed_args.name,
644654
'status': parsed_args.status,
655+
'metadata': parsed_args.properties,
645656
}
646657

647658
data = volume_client.volumes.list(
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
features:
3+
- Add ``--property`` option to ``volume list`` command to filter volumes.

0 commit comments

Comments
 (0)