From 35573ed53933ec51eaa2a0b2a14472719ad42981 Mon Sep 17 00:00:00 2001 From: Michael Ziegler Date: Mon, 8 Nov 2010 21:02:17 +0100 Subject: [PATCH] unify getUptime implementations and correctly handle None. fixes #116 --- pyweb/mumble/MumbleCtlDbus.py | 2 +- pyweb/mumble/MumbleCtlIce.py | 4 ++-- pyweb/mumble/models.py | 9 +++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/pyweb/mumble/MumbleCtlDbus.py b/pyweb/mumble/MumbleCtlDbus.py index 7766af0..1e9de50 100644 --- a/pyweb/mumble/MumbleCtlDbus.py +++ b/pyweb/mumble/MumbleCtlDbus.py @@ -330,7 +330,7 @@ class MumbleCtlDbus_118(MumbleCtlBase): return self._getDbusServerObject(srvid).sendMessageChannel( dbus.UInt32(channelid), tree, message ) def getUptime( self, srvid): - return 0 + return None @staticmethod def convertDbusTypeToNative(data): diff --git a/pyweb/mumble/MumbleCtlIce.py b/pyweb/mumble/MumbleCtlIce.py index dd9c871..23efaf9 100644 --- a/pyweb/mumble/MumbleCtlIce.py +++ b/pyweb/mumble/MumbleCtlIce.py @@ -635,7 +635,7 @@ class MumbleCtlIce_120(MumbleCtlIce_118): @protectDjangoErrPage def getUptime(self, srvid): - return 0 + return None class MumbleCtlIce_122(MumbleCtlIce_120): @@ -652,7 +652,7 @@ class MumbleCtlIce_122(MumbleCtlIce_120): @protectDjangoErrPage def getUptime(self, srvid): - return self._getIceServerObject(srvid).getUptime() + return None #self._getIceServerObject(srvid).getUptime() class MumbleCtlIce_123(MumbleCtlIce_120): diff --git a/pyweb/mumble/models.py b/pyweb/mumble/models.py index 1ac88b4..30da294 100644 --- a/pyweb/mumble/models.py +++ b/pyweb/mumble/models.py @@ -303,8 +303,13 @@ class Mumble( models.Model ): doc="False if a password is needed to join this server." ) uptime = property( lambda self: self.ctl.getUptime(self.srvid), doc="Number of seconds this instance has been running." ) - upsince = property( lambda self: datetime.datetime.fromtimestamp( float( time() - self.uptime ) ), - doc="Datetime since when the server is running." ) + + @property + def upsince(self): + """Datetime since when the server is running.""" + if self.uptime is not None: + return datetime.datetime.fromtimestamp( float( time() - self.uptime ) ) + return None is_server = True is_channel = False