return
if status: # handle retries if update failed
- time.sleep(self.timetable['next'] - time.time())
+ time.sleep(max (0, self.timetable['next'] - time.time()))
self.retries_left = self.retries
else:
self.retries_left -= 1
:return: boolean
"""
self.debug("Module", str(self.__module__), "doesn't implement check() function. Using default.")
- if self._get_data() is None or len(self._get_data()) == 0:
+ data = self._get_data()
+
+ if data is None:
+ self.debug("failed to receive data during check().")
return False
- else:
- return True
+
+ if len(data) == 0:
+ self.debug("empty data during check().")
+ return False
+
+ self.debug("successfully received data during check(): '" + str(data) + "'")
+ return True
def create(self):
"""
"""
data = self._get_data()
if data is None:
+ self.debug("failed to receive data during create().")
return False
idx = 0
"""
data = self._get_data()
if data is None:
- self.debug("_get_data() returned no data")
+ self.debug("failed to receive data during update().")
return False
updated = False
self.__socket_config = res
return True
- def _connect2unixsocket(self, path=None):
+ def _connect2unixsocket(self):
"""
Connect to a unix socket, given its filename
:return: boolean
"""
- if path is None:
+ if self.unix_socket is None:
self.error("cannot connect to unix socket 'None'")
return False
try:
- self.debug("attempting DGRAM unix socket '" + str(path) + "'")
+ self.debug("attempting DGRAM unix socket '" + str(self.unix_socket) + "'")
self._sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
- self._sock.connect(path)
- self.debug("connected DGRAM unix socket '" + str(path) + "'")
+ self._sock.connect(self.unix_socket)
+ self.debug("connected DGRAM unix socket '" + str(self.unix_socket) + "'")
return True
except socket.error as e:
- self.error("Failed to connect DGRAM unix socket '" + str(path) + "':", str(e))
+ self.debug("Failed to connect DGRAM unix socket '" + str(self.unix_socket) + "':", str(e))
try:
- self.debug("attempting STREAM unix socket '" + str(path) + "'")
+ self.debug("attempting STREAM unix socket '" + str(self.unix_socket) + "'")
self._sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- self._sock.connect(path)
- self.debug("connected STREAM unix socket '" + str(path) + "'")
+ self._sock.connect(self.unix_socket)
+ self.debug("connected STREAM unix socket '" + str(self.unix_socket) + "'")
return True
except socket.error as e:
- self.error("Failed to connect STREAM unix socket '" + str(path) + "':", str(e))
+ self.debug("Failed to connect STREAM unix socket '" + str(self.unix_socket) + "':", str(e))
+ self.error("Failed to connect to unix socket '" + str(self.unix_socket) + "':", str(e))
self._sock = None
return False
"""
try:
if self.unix_socket is not None:
- _connect2unixsocket(self.unix_socket)
+ self._connect2unixsocket()
else:
if self.__socket_config is not None:
break
if buf is None or len(buf) == 0: # handle server disconnect
- self.debug("server closed the connection")
+ if data == "":
+ self._socketerror("unexpectedly disconnected")
+ else:
+ self.debug("server closed the connection")
self._disconnect()
break
self.name = ""
else:
self.name = str(self.name)
+
try:
self.unix_socket = str(self.configuration['socket'])
except (KeyError, TypeError):
self.port = int(self.configuration['port'])
except (KeyError, TypeError):
self.debug("No port specified. Using: '" + str(self.port) + "'")
+
try:
self.request = str(self.configuration['request'])
except (KeyError, TypeError):
self.debug("No request specified. Using: '" + str(self.request) + "'")
+
self.request = self.request.encode()
def check(self):