summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-05-05 13:41:04 +0000
committerGerrit Code Review <review@openstack.org>2015-05-05 13:41:04 +0000
commitcccd52acc85b4a2a6a61f6b3d58e755b3ddd64de (patch)
tree36706da605c0facde5c9045d07cf57591734271d
parentdba5cc40483878e8e745bf0cf137e5dbfc23cf9c (diff)
parentfb19cf53daf541285ba7007b0bdde68274619066 (diff)
downloadpython-heatclient-cccd52acc85b4a2a6a61f6b3d58e755b3ddd64de.tar.gz
Merge "Implement --marker for event-list --nested-depth"
-rw-r--r--heatclient/tests/test_shell.py49
-rw-r--r--heatclient/v1/shell.py10
2 files changed, 46 insertions, 13 deletions
diff --git a/heatclient/tests/test_shell.py b/heatclient/tests/test_shell.py
index c03dc3f..783ebf0 100644
--- a/heatclient/tests/test_shell.py
+++ b/heatclient/tests/test_shell.py
@@ -2426,19 +2426,11 @@ class ShellTestEventsNested(ShellBase):
for r in required:
self.assertRegexpMatches(list_text, r)
- def test_shell_nested_depth(self):
- self.register_keystone_auth_fixture()
- stack_id = 'teststack/1'
- nested_id = 'nested/2'
- timestamps = ("2014-01-06T16:14:00Z", # parent eventid1
- "2014-01-06T16:15:00Z", # nested n_eventid1
- "2014-01-06T16:16:00Z", # nested n_eventid2
- "2014-01-06T16:17:00Z") # parent eventid2
-
+ def _stub_event_list_response(self, stack_id, nested_id, timestamps):
# Stub events for parent stack
- ev_resp_dict = {"events": [{"id": "eventid1",
+ ev_resp_dict = {"events": [{"id": "p_eventid1",
"event_time": timestamps[0]},
- {"id": "eventid2",
+ {"id": "p_eventid2",
"event_time": timestamps[3]}]}
ev_resp = fakes.FakeHTTPResponse(
200,
@@ -2480,10 +2472,19 @@ class ShellTestEventsNested(ShellBase):
'GET', '/stacks/%s/events?sort_dir=asc' % (
nested_id)).AndReturn((nev_resp, nev_resp_dict))
+ def test_shell_nested_depth(self):
+ self.register_keystone_auth_fixture()
+ stack_id = 'teststack/1'
+ nested_id = 'nested/2'
+ timestamps = ("2014-01-06T16:14:00Z", # parent p_eventid1
+ "2014-01-06T16:15:00Z", # nested n_eventid1
+ "2014-01-06T16:16:00Z", # nested n_eventid2
+ "2014-01-06T16:17:00Z") # parent p_eventid2
+ self._stub_event_list_response(stack_id, nested_id, timestamps)
self.m.ReplayAll()
list_text = self.shell('event-list %s --nested-depth 1' % stack_id)
- required = ['id', 'eventid1', 'eventid2', 'n_eventid1', 'n_eventid2',
- 'stack_name', 'teststack', 'nested']
+ required = ['id', 'p_eventid1', 'p_eventid2', 'n_eventid1',
+ 'n_eventid2', 'stack_name', 'teststack', 'nested']
for r in required:
self.assertRegexpMatches(list_text, r)
@@ -2491,6 +2492,28 @@ class ShellTestEventsNested(ShellBase):
self.assertRegexpMatches(list_text,
"%s.*\n.*%s.*\n.*%s.*\n.*%s" % timestamps)
+ def test_shell_nested_depth_marker(self):
+ self.register_keystone_auth_fixture()
+ stack_id = 'teststack/1'
+ nested_id = 'nested/2'
+ timestamps = ("2014-01-06T16:14:00Z", # parent p_eventid1
+ "2014-01-06T16:15:00Z", # nested n_eventid1
+ "2014-01-06T16:16:00Z", # nested n_eventid2
+ "2014-01-06T16:17:00Z") # parent p_eventid2
+ self._stub_event_list_response(stack_id, nested_id, timestamps)
+ self.m.ReplayAll()
+ list_text = self.shell(
+ 'event-list %s --nested-depth 1 --marker n_eventid1' % stack_id)
+ required = ['id', 'p_eventid2', 'n_eventid1', 'n_eventid2',
+ 'stack_name', 'teststack', 'nested']
+ for r in required:
+ self.assertRegexpMatches(list_text, r)
+
+ self.assertNotRegexpMatches(list_text, 'p_eventid1')
+
+ self.assertRegexpMatches(list_text,
+ "%s.*\n.*%s.*\n.*%s.*" % timestamps[1:])
+
class ShellTestResources(ShellBase):
diff --git a/heatclient/v1/shell.py b/heatclient/v1/shell.py
index f24a83a..ba9e484 100644
--- a/heatclient/v1/shell.py
+++ b/heatclient/v1/shell.py
@@ -952,6 +952,9 @@ def do_event_list(hc, args):
except ValueError:
msg = _("--nested-depth invalid value %s") % args.nested_depth
raise exc.CommandError(msg)
+ # Until the API supports recursive event listing we'll have to do the
+ # marker filtering client-side
+ del (event_args['marker'])
else:
nested_depth = 0
@@ -974,6 +977,13 @@ def do_event_list(hc, args):
# will be needed to make "--marker" work for nested_depth lists
events.sort(key=lambda x: x.event_time)
+ # Slice the list if marker is specified
+ if args.marker:
+ marker_index = [e.id for e in events].index(args.marker)
+ else:
+ marker_index = 0
+ events = events[marker_index:]
+
utils.print_list(events, display_fields, sortby_index=None)