2828from utils import execution_time
2929from messages import ERR , MSG
3030from metaclasses import Singleton
31- from time import sleep
31+ from time import time , sleep
32+ from datetime import datetime
3233
3334
3435local_cache = []
@@ -42,6 +43,7 @@ def __init__(self, **kwargs):
4243 self .__sensorsConf = None
4344 self .__metaData = None
4445 self .__metricsDesc = {}
46+ self .__updateTime = None
4547 self .logger = kwargs ['logger' ]
4648 self .server = kwargs ['server' ]
4749 self .port = kwargs ['port' ]
@@ -76,6 +78,10 @@ def metaData(self):
7678 def metricsDesc (self ):
7779 return self .__metricsDesc
7880
81+ @property
82+ def getUpdateTime (self ):
83+ return self .__updateTime
84+
7985 def getSensorPeriodForMetric (self , metric ):
8086 sensor = self .metaData .getSensorForMetric (metric )
8187 if not sensor :
@@ -139,6 +145,7 @@ def __initializeTables(self):
139145 sleep (self .sleepTime )
140146 else :
141147 self .__metaData = Topo (topoStr )
148+ self .__updateTime = time ()
142149 foundItems = len (self .metaData .allParents ) - 1
143150 sensors = self .metaData .sensorsSpec .keys ()
144151 self .logger .info (MSG ['MetaSuccess' ])
@@ -163,6 +170,12 @@ def GET(self, **params):
163170 resp = self .update ()
164171 # resp = json.dumps(resp)
165172
173+ # /metadata/time
174+ elif '/metadata/time' == cherrypy .request .script_name :
175+ # cherrypy.response.headers['Content-Type'] = 'application/json'
176+ ts = int (self .getUpdateTime )
177+ resp = [datetime .utcfromtimestamp (ts ).strftime ('%Y-%m-%d %H:%M:%S' )]
178+
166179 # /metadata/sensorsconfig
167180 elif '/metadata/sensorsconfig' == cherrypy .request .script_name :
168181 # cherrypy.response.headers['Content-Type'] = 'application/json'
@@ -189,6 +202,7 @@ def update(self, refresh_all=False):
189202 self .logger .error (MSG ['NoData' ]) # Please check the pmcollector is properly configured and running.
190203 raise cherrypy .HTTPError (404 , ERR [404 ])
191204 self .__metaData = Topo (topoStr )
205+ self .__updateTime = time ()
192206 self .logger .details (MSG ['MetaSuccess' ])
193207 self .logger .debug (MSG ['ReceivAttrValues' ].format ('parents' , ", " .join (self .metaData .allParents )))
194208 return ({'msg' : MSG ['MetaSuccess' ]})
0 commit comments