|
|
@@ -0,0 +1,45 @@ |
|
|
|
from __future__ import absolute_import |
|
|
|
from __future__ import print_function |
|
|
|
from nilmdb.utils.printf import * |
|
|
|
import nilmdb.client |
|
|
|
import sys |
|
|
|
|
|
|
|
def setup(self, sub): |
|
|
|
cmd = sub.add_parser("remove", help="Remove data", |
|
|
|
description=""" |
|
|
|
Remove all data from a specified time range within a |
|
|
|
stream. |
|
|
|
""") |
|
|
|
cmd.set_defaults(verify = cmd_remove_verify, |
|
|
|
handler = cmd_remove) |
|
|
|
|
|
|
|
group = cmd.add_argument_group("Data selection") |
|
|
|
group.add_argument("path", |
|
|
|
help="Path of stream, e.g. /foo/bar") |
|
|
|
group.add_argument("-s", "--start", required=True, |
|
|
|
metavar="TIME", type=self.arg_time, |
|
|
|
help="Starting timestamp (free-form)") |
|
|
|
group.add_argument("-e", "--end", required=True, |
|
|
|
metavar="TIME", type=self.arg_time, |
|
|
|
help="Ending timestamp (free-form)") |
|
|
|
|
|
|
|
group = cmd.add_argument_group("Output format") |
|
|
|
group.add_argument("-c", "--count", action="store_true", |
|
|
|
help="Output number of data points removed") |
|
|
|
|
|
|
|
def cmd_remove_verify(self): |
|
|
|
if self.args.start is not None and self.args.end is not None: |
|
|
|
if self.args.start > self.args.end: |
|
|
|
self.parser.error("start is after end") |
|
|
|
|
|
|
|
def cmd_remove(self): |
|
|
|
try: |
|
|
|
count = self.client.stream_remove(self.args.path, |
|
|
|
self.args.start, self.args.end) |
|
|
|
except nilmdb.client.ClientError as e: |
|
|
|
self.die("Error removing data: %s", str(e)) |
|
|
|
|
|
|
|
if self.args.count: |
|
|
|
printf("%d\n", count) |
|
|
|
|
|
|
|
return 0 |