summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-07-26 07:22:21 +0000
committerGerrit Code Review <review@openstack.org>2016-07-26 07:22:21 +0000
commit08ba2aa97851eaa93be20cfc39d842b383e21435 (patch)
treeb718461f99f853cc6d31640b87f0b137c39998d8 /openstackclient
parentb838e9970d90920950af06769204d63ca6781293 (diff)
parent61b9d9fe2d0c6c99d5e77361111f02a19d169782 (diff)
downloadpython-openstackclient-08ba2aa97851eaa93be20cfc39d842b383e21435.tar.gz
Merge "Add "--marker" and "--limit" options to "snapshot list""
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/tests/volume/v2/test_snapshot.py34
-rw-r--r--openstackclient/volume/v2/snapshot.py17
2 files changed, 48 insertions, 3 deletions
diff --git a/openstackclient/tests/volume/v2/test_snapshot.py b/openstackclient/tests/volume/v2/test_snapshot.py
index 04e0285e..3eb740ba 100644
--- a/openstackclient/tests/volume/v2/test_snapshot.py
+++ b/openstackclient/tests/volume/v2/test_snapshot.py
@@ -12,6 +12,7 @@
# under the License.
#
+import argparse
import mock
from mock import call
@@ -260,16 +261,33 @@ class TestSnapshotList(TestSnapshot):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
+
+ self.snapshots_mock.list.assert_called_once_with(
+ limit=None, marker=None, search_opts={'all_tenants': False})
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
def test_snapshot_list_with_options(self):
- arglist = ["--long"]
- verifylist = [("long", True), ('all_projects', False)]
+ arglist = [
+ "--long",
+ "--limit", "2",
+ "--marker", self.snapshots[0].id,
+ ]
+ verifylist = [
+ ("long", True),
+ ("limit", 2),
+ ("marker", self.snapshots[0].id),
+ ('all_projects', False),
+ ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
+ self.snapshots_mock.list.assert_called_once_with(
+ limit=2,
+ marker=self.snapshots[0].id,
+ search_opts={'all_tenants': False}
+ )
self.assertEqual(self.columns_long, columns)
self.assertEqual(self.data_long, list(data))
@@ -285,9 +303,21 @@ class TestSnapshotList(TestSnapshot):
columns, data = self.cmd.take_action(parsed_args)
+ self.snapshots_mock.list.assert_called_once_with(
+ limit=None, marker=None, search_opts={'all_tenants': True})
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
+ def test_snapshot_list_negative_limit(self):
+ arglist = [
+ "--limit", "-2",
+ ]
+ verifylist = [
+ ("limit", -2),
+ ]
+ self.assertRaises(argparse.ArgumentTypeError, self.check_parser,
+ self.cmd, arglist, verifylist)
+
class TestSnapshotSet(TestSnapshot):
diff --git a/openstackclient/volume/v2/snapshot.py b/openstackclient/volume/v2/snapshot.py
index ba692074..8304a5eb 100644
--- a/openstackclient/volume/v2/snapshot.py
+++ b/openstackclient/volume/v2/snapshot.py
@@ -134,6 +134,18 @@ class ListSnapshot(command.Lister):
default=False,
help=_('List additional fields in output'),
)
+ parser.add_argument(
+ '--marker',
+ metavar='<marker>',
+ help=_('The last snapshot ID of the previous page'),
+ )
+ parser.add_argument(
+ '--limit',
+ type=int,
+ action=parseractions.NonNegativeAction,
+ metavar='<limit>',
+ help=_('Maximum number of snapshots to display'),
+ )
return parser
def take_action(self, parsed_args):
@@ -174,7 +186,10 @@ class ListSnapshot(command.Lister):
}
data = self.app.client_manager.volume.volume_snapshots.list(
- search_opts=search_opts)
+ search_opts=search_opts,
+ marker=parsed_args.marker,
+ limit=parsed_args.limit,
+ )
return (column_headers,
(utils.get_item_properties(
s, columns,