28
28
from utils import execution_time
29
29
from messages import ERR , MSG
30
30
from metaclasses import Singleton
31
- from time import sleep
31
+ from time import time , sleep
32
+ from datetime import datetime
32
33
33
34
34
35
local_cache = []
@@ -42,6 +43,7 @@ def __init__(self, **kwargs):
42
43
self .__sensorsConf = None
43
44
self .__metaData = None
44
45
self .__metricsDesc = {}
46
+ self .__updateTime = None
45
47
self .logger = kwargs ['logger' ]
46
48
self .server = kwargs ['server' ]
47
49
self .port = kwargs ['port' ]
@@ -76,6 +78,10 @@ def metaData(self):
76
78
def metricsDesc (self ):
77
79
return self .__metricsDesc
78
80
81
+ @property
82
+ def getUpdateTime (self ):
83
+ return self .__updateTime
84
+
79
85
def getSensorPeriodForMetric (self , metric ):
80
86
sensor = self .metaData .getSensorForMetric (metric )
81
87
if not sensor :
@@ -139,6 +145,7 @@ def __initializeTables(self):
139
145
sleep (self .sleepTime )
140
146
else :
141
147
self .__metaData = Topo (topoStr )
148
+ self .__updateTime = time ()
142
149
foundItems = len (self .metaData .allParents ) - 1
143
150
sensors = self .metaData .sensorsSpec .keys ()
144
151
self .logger .info (MSG ['MetaSuccess' ])
@@ -163,6 +170,12 @@ def GET(self, **params):
163
170
resp = self .update ()
164
171
# resp = json.dumps(resp)
165
172
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
+
166
179
# /metadata/sensorsconfig
167
180
elif '/metadata/sensorsconfig' == cherrypy .request .script_name :
168
181
# cherrypy.response.headers['Content-Type'] = 'application/json'
@@ -189,6 +202,7 @@ def update(self, refresh_all=False):
189
202
self .logger .error (MSG ['NoData' ]) # Please check the pmcollector is properly configured and running.
190
203
raise cherrypy .HTTPError (404 , ERR [404 ])
191
204
self .__metaData = Topo (topoStr )
205
+ self .__updateTime = time ()
192
206
self .logger .details (MSG ['MetaSuccess' ])
193
207
self .logger .debug (MSG ['ReceivAttrValues' ].format ('parents' , ", " .join (self .metaData .allParents )))
194
208
return ({'msg' : MSG ['MetaSuccess' ]})
0 commit comments