Mercurial > code > home > repos > homeauto
diff service/environment/environment.py @ 440:6304b0370491
environment graph service standardization
Ignore-this: 3aeb86c03902af984a871c9c2d2dd7cd
author | drewp@bigasterisk.com |
---|---|
date | Thu, 18 Apr 2019 09:12:26 -0700 |
parents | 596c645a1fc5 |
children | a93fbf0d0daa |
line wrap: on
line diff
--- a/service/environment/environment.py Mon Apr 15 00:17:04 2019 -0700 +++ b/service/environment/environment.py Thu Apr 18 09:12:26 2019 -0700 @@ -4,20 +4,28 @@ daytime/night, overall modes like 'maintenance mode', etc """ -import sys, datetime, cyclone.web -from twisted.internet import reactor, task +import sys, datetime, cyclone.web, logging +from docopt import docopt +from twisted.internet import reactor, task, defer from dateutil.tz import tzlocal from dateutil.relativedelta import relativedelta, FR from rdflib import Namespace, Literal -sys.path.append("/my/proj/homeauto/lib") +from greplin import scales +from greplin.scales.cyclonehandler import StatsHandler from patchablegraph import PatchableGraph, CycloneGraphEventsHandler, CycloneGraphHandler from twilight import isWithinTwilight +from logsetup import log, enableTwistedLog from rdfdoc import Doc ROOM = Namespace("http://projects.bigasterisk.com/room/") DEV = Namespace("http://projects.bigasterisk.com/device/") +STATS = scales.collection('/root', + scales.PmfStat('update'), +) + +@STATS.update.time() def update(masterGraph): stmt = lambda s, p, o: masterGraph.patchObject(ROOM.environment, s, p, o) @@ -47,8 +55,17 @@ def main(): - from twisted.python import log as twlog - twlog.startLogging(sys.stderr) + arg = docopt(""" + Usage: environment.py [options] + + -v Verbose + """) + log.setLevel(logging.INFO) + if arg['-v']: + enableTwistedLog() + log.setLevel(logging.DEBUG) + defer.setDebugging(True) + masterGraph = PatchableGraph() class Application(cyclone.web.Application): @@ -62,6 +79,7 @@ (r'/graph/events', CycloneGraphEventsHandler, {'masterGraph': masterGraph}), (r'/doc', Doc), # to be shared + (r'/stats/(.*)', StatsHandler, {'serverName': 'environment'}), ] cyclone.web.Application.__init__(self, handlers, masterGraph=masterGraph)