Merge "Add support for events to v1"
This commit is contained in:
commit
6db1bdc111
42
README.md
42
README.md
@ -124,5 +124,45 @@ $ klugman streams --older_than 01-31-2015T13:30
|
||||
$ klugman streams --older_than 01-31-2015T13:30 --state completed
|
||||
...
|
||||
|
||||
```
|
||||
$ klugman events --traits=os_distro:com.redhat
|
||||
+--------------------+------------------------------------------+
|
||||
| Property | Value |
|
||||
+--------------------+------------------------------------------+
|
||||
| _mark | 1 |
|
||||
| bandwidth_in | 537783 |
|
||||
| bandwidth_out | 19189871 |
|
||||
| disk_gb | 160 |
|
||||
| display_name | Instance_296624 |
|
||||
| ephemeral_gb | 0 |
|
||||
| event_type | compute.instance.update |
|
||||
| instance_flavor | 4GB Standard Instance |
|
||||
| instance_flavor_id | 5 |
|
||||
| instance_id | 60c52a73-ec8e-47bc-81eb-eee38931a60e |
|
||||
| instance_type | 4GB Standard Instance |
|
||||
| launched_at | 2014-04-17 11:40:15.321940 |
|
||||
| memory_mb | 4096 |
|
||||
| message_id | 8eca72ba-3adb-4354-aaa4-f61980549e07 |
|
||||
| os_architecture | x64 |
|
||||
| os_distro | com.redhat |
|
||||
| os_version | 6.3 |
|
||||
| request_id | req-511c28a6-c6ec-4173-a124-7c92989e443c |
|
||||
| root_gb | 160 |
|
||||
| service | publisher-189550 |
|
||||
| state | active |
|
||||
| state_description | powering-off |
|
||||
| tenant_id | 854126 |
|
||||
| timestamp | 2015-03-03 20:13:56.560940 |
|
||||
| user_id | 366869 |
|
||||
| vcpus | 2 |
|
||||
+--------------------+------------------------------------------+
|
||||
|
||||
$ klugman events --msg_id=8eca72ba-3adb-4354-aaa4-f61980549e07
|
||||
...
|
||||
|
||||
|
||||
$ klugman events --name=compute.instance.power_off.end
|
||||
...
|
||||
|
||||
$ klugman events --from="2015-03-04T22:25" --to="2015-03-04T22:45"
|
||||
|
||||
```
|
||||
|
@ -27,7 +27,8 @@ def dump_response(keys, rows):
|
||||
for row in rows:
|
||||
x = prettytable.PrettyTable(["Property", "Value"])
|
||||
for key in keys:
|
||||
x.add_row([key, row.get(key)])
|
||||
if key in row:
|
||||
x.add_row([key, row[key]])
|
||||
print x
|
||||
|
||||
|
||||
|
@ -40,7 +40,7 @@ import v1
|
||||
import v2
|
||||
|
||||
versions = {1: v1.V1, 2: v2.V2}
|
||||
latest = 2
|
||||
latest = 1
|
||||
|
||||
|
||||
def main():
|
||||
|
@ -191,15 +191,73 @@ class NumStreams(object):
|
||||
return base.get(version.base_url, cmd, params)
|
||||
|
||||
|
||||
class Events(object):
|
||||
"""usage:
|
||||
klugman.py events [options]
|
||||
|
||||
options:
|
||||
--debug
|
||||
--name <name>
|
||||
return events of type <name>
|
||||
--from <datetime>
|
||||
list events generated before datetime
|
||||
--to <datetime>
|
||||
list events generated after datetime
|
||||
--traits <traits>
|
||||
list events with specific traits
|
||||
--msg_id <message_id>
|
||||
get event with <message_id>
|
||||
|
||||
Trait format:
|
||||
"trait:value;trait:value;..."
|
||||
"""
|
||||
|
||||
def cmdline(self, version, cmdline):
|
||||
arguments = docopt(Events.__doc__, argv=cmdline)
|
||||
debug = version.base_args['--debug']
|
||||
if debug:
|
||||
print arguments
|
||||
|
||||
response = self.do_event(version, arguments)
|
||||
raw_rows = response.json(object_hook=jsonutil.object_hook)
|
||||
|
||||
keys = set()
|
||||
for row in raw_rows:
|
||||
keys.update(row.keys())
|
||||
keys = sorted(list(keys))
|
||||
base.dump_response(keys, raw_rows)
|
||||
|
||||
def do_event(self, version, arguments):
|
||||
_from = arguments.get('--from')
|
||||
_to = arguments.get('--to')
|
||||
name = arguments.get('--name')
|
||||
traits = arguments.get('--traits')
|
||||
msg_id = arguments.get('--msg_id')
|
||||
|
||||
if msg_id:
|
||||
cmd = "events/%s" % msg_id
|
||||
return base.get(version.base_url, cmd, {})
|
||||
|
||||
cmd = "events"
|
||||
params = base.remove_empty({'from_datetime': _from,
|
||||
'to_datetime': _to,
|
||||
'event_name': name,
|
||||
'traits': traits})
|
||||
|
||||
return base.get(version.base_url, cmd, params)
|
||||
|
||||
|
||||
class V1(base.Impl):
|
||||
"""usage:
|
||||
klugman.py streams [<args>...] [options]
|
||||
klugman.py num-streams [<args>...] [options]
|
||||
klugman.py events [<args>...] [options]
|
||||
|
||||
-h, --help show command options
|
||||
"""
|
||||
|
||||
def __init__(self, base_url, base_args):
|
||||
cmds = {'streams': Streams(),
|
||||
'num-streams': NumStreams()}
|
||||
'num-streams': NumStreams(),
|
||||
'events': Events()}
|
||||
super(V1, self).__init__(base_url, base_args, cmds, V1.__doc__)
|
||||
|
@ -65,6 +65,7 @@ class V2(base.Impl):
|
||||
Usage:
|
||||
klugman.py [options] streams [<args>...]
|
||||
klugman.py num-streams [<args>...] [options]
|
||||
klugman.py events [<args>...] [options]
|
||||
klugman.py [options] archives [<args>...]
|
||||
|
||||
Options:
|
||||
@ -74,5 +75,6 @@ Options:
|
||||
def __init__(self, base_url, base_args):
|
||||
cmds = {'streams': v1.Streams(),
|
||||
'num-streams': v1.NumStreams(),
|
||||
'events': v1.Events(),
|
||||
'archives': Archives()}
|
||||
super(V2, self).__init__(base_url, base_args, cmds, V2.__doc__)
|
||||
|
Loading…
x
Reference in New Issue
Block a user