def run(self): ''' Thread handler ''' try: # Request creation resource = [] resource.append(self.__resourcepath) resource.append(self.__buyerFile) self.__logger.debug("[TCPClient][run]Resource read: {}\n".format(resource)) # Test if compressed content is needed bidList = [] zippedfile = None testfile = None if (self.__compression): zippedfile = gzip.open(''.join(resource)+".gz", "r+") bidList = zippedfile.readlines() self.__logger.info("[TCPClient][run](Compressed) Content size {0}".format(sys.getsizeof(bidList))) else: testfile = open(''.join(resource), 'r') bidList = testfile.readlines() self.__logger.info("[TCPClient][run](Uncompressed) Content size {0}".format(sys.getsizeof(bidList))) data = Request(self.__client_request_type, self.__client_request_code, bidList) # Client socket binding sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((self.__serverhost, self.__serverport)) # Sending JSON data over the socket sock.send(data.to_json()) self.__logger.info("[TCPClient][run]Request sent...") start = time.time() response = self.__receive_data(sock) end = time.time() self.__logger.debug("[TCPClient][run]Reception::Time Elapsed: {0}".format(end - start)) self.__logger.debug("[TCPClient][run](Compressed) Dimension:: {0}".format(sys.getsizeof(response))) # Treating compressed data result = self.__compression.decompress(response) data = Data(False, [], 0) data.from_json(result) if (int(data.nrbytes) == sys.getsizeof(data.vector)): self.__logger.info("[TCPClient][run]Integrity is OK") self.__logger.info("[TCPClient][run]Allocations") for allocation in data.vector: self.__logger.info(allocation) except Exception, e: self.__logger.error("Error::NET::sending exception {0}".format(e))
def run(self): ''' Thread handler ''' try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Request creation resource = [] resource.append(self.__resourcepath) resource.append(self.__buyerFile) self.__logger.debug( "[TCPClient][run]Resource read: {}\n".format(resource)) # Test if compressed content is needed bidList = [] zippedfile = None testfile = None if (self.__compression): zippedfile = gzip.open(''.join(resource) + ".gz", "r+") bidList = zippedfile.readlines() self.__logger.info( "[TCPClient][run](Compressed) Content size {0}".format( sys.getsizeof(bidList))) else: testfile = open(''.join(resource), 'r') bidList = testfile.readlines() self.__logger.info( "[TCPClient][run](Uncompressed) Content size {0}".format( sys.getsizeof(bidList))) data = Request(self.__client_request_type, self.__client_request_code, bidList) # Client socket binding connected = False hosts = self.__serverhosts[:] while not connected and hosts: host = hosts.pop() try: self.__logger.debug( "[TCPClient][run]Trying to connect to host {0}".format( host)) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(self.__conn_timeout) sock.connect((host, self.__serverport)) connected = True sock.settimeout(self.__recv_timeout) except socket.error as e: self.__logger.debug( "[TCPClient][run]Failed to connect to host {0}".format( host)) if not hosts: self.__logger.error("Error::NET::No hosts available") raise Exception # Sending JSON data over the socket sock.sendall(data.to_json()) self.__logger.info("[TCPClient][run]Request sent...") start = time.time() response = self.__receive_data(sock) end = time.time() self.__logger.debug( "[TCPClient][run]Reception::Time Elapsed: {0}".format(end - start)) self.__logger.debug( "[TCPClient][run](Compressed) Dimension:: {0}".format( sys.getsizeof(response))) self.__logger.debug( "[TCPClient][run]Raw Response: {0}".format(response)) # Treating compressed data result = self.__compression.decompress(response) data = Data(False, [], 0) data.from_json(result) if (int(data.nrbytes) == sys.getsizeof(data.vector)): self.__logger.info("[TCPClient][run]Integrity is OK") self.__logger.info("[TCPClient][run]Allocations") for allocation in data.vector: self.__logger.info(allocation) else: self.__logger.debug( "[TCPClient][run]Data from json: {0}".format(data)) except Exception, e: self.__logger.error("Error::NET::sending exception {0}".format(e))
def start_monitor(self): ''' Thread handler ''' print('starting monitor') conn = None ports = [ 'Gi 0/25', 'Gi 0/26', 'Gi 0/27', 'Gi 0/28', ] stop_count = [0 for x in range(len(ports))] try: # Request creation conn = self.login_to_switch(self.__switch_addr, False) while 1: if conn == -1: print("Error connecting") break for i in range(len(ports)): p = ports[i] conn, disconnected = self.link_disconnected(conn, p) print("link {} disconnected: {}".format(p, disconnected)) if disconnected: stop_count[i] += 1 print("stop count: ", stop_count) if stop_count[i] == self.tolerance: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sock.connect( (self.__serverhosts, self.__serverport)) except Exception as e: print(e) print("host :", self.__serverhosts) print("port :", self.__serverport) print("link {} disconnected: {}".format( p, disconnected)) data = Request(self.__request_type, self.__request_code, (self.__switch_addr, p)) sock.sendall(data.to_json()) print(data.to_json()) del ports[i] del stop_count[i] else: stop_count[i] = 0 sleep(self.interval) except Exception as e: print(e) finally: if conn: conn.close() print("ending monitor")