Adds num-streams command
Which returns the count of the number of streams matching filter criteria. Change-Id: I25799365f1185cbb9ad4f277d8e5809887fd8295
This commit is contained in:
parent
04e8283e92
commit
abba44f40e
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
|
|
||||||
import base
|
import base
|
||||||
|
import json
|
||||||
import jsonutil
|
import jsonutil
|
||||||
|
|
||||||
from docopt import docopt
|
from docopt import docopt
|
||||||
@ -54,13 +55,17 @@ class Streams(object):
|
|||||||
|
|
||||||
def cmdline(self, version, cmdline):
|
def cmdline(self, version, cmdline):
|
||||||
arguments = docopt(Streams.__doc__, argv=cmdline)
|
arguments = docopt(Streams.__doc__, argv=cmdline)
|
||||||
if version.base_args['--debug']:
|
debug = version.base_args['--debug']
|
||||||
|
if debug:
|
||||||
print arguments
|
print arguments
|
||||||
|
|
||||||
response = self.do_streams(version, arguments)
|
response = self.do_streams(version, arguments)
|
||||||
# Handle cmdline output here, not in do_foo()
|
# Handle cmdline output here, not in do_foo()
|
||||||
raw_rows = response.json(object_hook=jsonutil.object_hook)
|
raw_rows = response.json(object_hook=jsonutil.object_hook)
|
||||||
|
|
||||||
|
if debug:
|
||||||
|
print json.dumps(raw_rows, indent=2)
|
||||||
|
|
||||||
# TODO(sandy): This should come from the server-issued
|
# TODO(sandy): This should come from the server-issued
|
||||||
# schema at some point.
|
# schema at some point.
|
||||||
keys = ['id', 'state', 'name', 'first_event', 'last_event',
|
keys = ['id', 'state', 'name', 'first_event', 'last_event',
|
||||||
@ -92,13 +97,72 @@ class Streams(object):
|
|||||||
return base.get(version.base_url, cmd, params)
|
return base.get(version.base_url, cmd, params)
|
||||||
|
|
||||||
|
|
||||||
|
class NumStreams(object):
|
||||||
|
"""usage:
|
||||||
|
klugman.py num-streams [options]
|
||||||
|
|
||||||
|
options:
|
||||||
|
--state <state>
|
||||||
|
return streams in state
|
||||||
|
--older_than <datetime>
|
||||||
|
list streams older than datetime
|
||||||
|
--younger_than <datetime>
|
||||||
|
list streams younger than datetime
|
||||||
|
--trigger_name <name>
|
||||||
|
list streams with given trigger definition
|
||||||
|
--distinguishing_traits <dtraits>
|
||||||
|
list stream with specific distriquishing traits
|
||||||
|
|
||||||
|
Stream states:
|
||||||
|
collecting - collecting events
|
||||||
|
ready - ready for processing
|
||||||
|
triggered - being processed
|
||||||
|
processed - processing completed
|
||||||
|
error - pipeline processing failed
|
||||||
|
commit_error - pipeline result commit failed
|
||||||
|
|
||||||
|
Distinguishing trait format:
|
||||||
|
"trait:value;trait:value;..."
|
||||||
|
"""
|
||||||
|
|
||||||
|
def cmdline(self, version, cmdline):
|
||||||
|
arguments = docopt(NumStreams.__doc__, argv=cmdline)
|
||||||
|
debug = version.base_args['--debug']
|
||||||
|
if debug:
|
||||||
|
print arguments
|
||||||
|
|
||||||
|
response = self.do_stream_count(version, arguments)
|
||||||
|
raw_rows = response.json(object_hook=jsonutil.object_hook)
|
||||||
|
|
||||||
|
keys = ['count']
|
||||||
|
base.dump_response(keys, raw_rows)
|
||||||
|
|
||||||
|
def do_stream_count(self, version, arguments):
|
||||||
|
state = arguments.get('--state')
|
||||||
|
older = arguments.get('--older_than')
|
||||||
|
younger = arguments.get('--younger_than')
|
||||||
|
trigger = arguments.get('--trigger_name')
|
||||||
|
traits = arguments.get('--distinguishing_traits')
|
||||||
|
|
||||||
|
cmd = "streams/count"
|
||||||
|
params = base.remove_empty({'state': state,
|
||||||
|
'older_than': older,
|
||||||
|
'younger_than': younger,
|
||||||
|
'trigger_name': trigger,
|
||||||
|
'distinguishing_traits': traits})
|
||||||
|
|
||||||
|
return base.get(version.base_url, cmd, params)
|
||||||
|
|
||||||
|
|
||||||
class V1(base.Impl):
|
class V1(base.Impl):
|
||||||
"""usage:
|
"""usage:
|
||||||
klugman.py streams [<args>...] [options]
|
klugman.py streams [<args>...] [options]
|
||||||
|
klugman.py num-streams [<args>...] [options]
|
||||||
|
|
||||||
-h, --help show command options
|
-h, --help show command options
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, base_url, base_args):
|
def __init__(self, base_url, base_args):
|
||||||
cmds = {'streams': Streams()}
|
cmds = {'streams': Streams(),
|
||||||
|
'num-streams': NumStreams()}
|
||||||
super(V1, self).__init__(base_url, base_args, cmds, V1.__doc__)
|
super(V1, self).__init__(base_url, base_args, cmds, V1.__doc__)
|
||||||
|
@ -64,6 +64,7 @@ class V2(base.Impl):
|
|||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
klugman.py [options] streams [<args>...]
|
klugman.py [options] streams [<args>...]
|
||||||
|
klugman.py num-streams [<args>...] [options]
|
||||||
klugman.py [options] archives [<args>...]
|
klugman.py [options] archives [<args>...]
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
@ -72,5 +73,6 @@ Options:
|
|||||||
|
|
||||||
def __init__(self, base_url, base_args):
|
def __init__(self, base_url, base_args):
|
||||||
cmds = {'streams': v1.Streams(),
|
cmds = {'streams': v1.Streams(),
|
||||||
|
'num-streams': v1.NumStreams(),
|
||||||
'archives': Archives()}
|
'archives': Archives()}
|
||||||
super(V2, self).__init__(base_url, base_args, cmds, V2.__doc__)
|
super(V2, self).__init__(base_url, base_args, cmds, V2.__doc__)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user