def __init__(self, server_ip, server_port, priority, allow_frmk_data, sendEvents, plugins, stopEvent): #self.conf = conf self.plugins = plugins self.sequence = 0 self.server_ip = server_ip self.server_port = server_port self.allow_frmk_data = allow_frmk_data self.monitor_scheduler = MonitorScheduler() self.monitor_scheduler.start() self.__patternFrmkMessageResponse = re.compile( "server_ip=\"(?P<srv_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" server_name=\"(?P<srv_name>([^\"]+))\" server_port=\"(?P<srv_port>\d+)\" framework_ip=\"(?P<frmk_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" framework_name=\"(?P<frmk_name>([^\"]+))\" framework_port=\"(?P<frmk_port>\d+)\"" ) self.frmk_hostname = '' self.frmk_ip = '' self.frmk_port = '' self.priority = priority self.__isAlive = False self.__stopped = False self.__sendEvents = sendEvents self.__keep_working = True self.__validFrmkData = False self.__threadControlMessages = None self.__controlMsgThread_isRunning = False self.__stopEvent = stopEvent self.__runningConnect = False self.__conn = None self.__writeLock = threading.RLock()
def __init__(self, server_ip, server_port, priority, allow_frmk_data, sendEvents, plugins, stopEvent, sensor_id,systemUUIDFile): #self.conf = conf self.plugins = plugins self.sequence = 0 self.server_ip = server_ip self.server_port = server_port self.allow_frmk_data = allow_frmk_data self.monitor_scheduler = MonitorScheduler() self.monitor_scheduler.start() self.__patternFrmkMessageResponse = re.compile("server_ip=\"(?P<srv_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" server_name=\"(?P<srv_name>([^\"]+))\" server_port=\"(?P<srv_port>\d+)\" framework_ip=\"(?P<frmk_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" framework_name=\"(?P<frmk_name>([^\"]+))\" framework_port=\"(?P<frmk_port>\d+)\"") self.__patternChangeUUID = re.compile('noack id="(?P<sec>\d+)" your_sensor_id="(?P<uuid>[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12})"') self.frmk_hostname = '' self.frmk_ip = '' self.frmk_port = '' self.priority = priority self.__isAlive = False self.__stopped = False self.__sendEvents = sendEvents self.__keep_working = True self.__validFrmkData = False self.__threadControlMessages = None self.__controlMsgThread_isRunning = False self.__stopEvent = stopEvent self.__sensorID = sensor_id self.__runningConnect = False self.__conn = None self.__systemUUIDFile = systemUUIDFile self.__writeLock = threading.RLock()
def __init__(self, server_ip, server_port, priority, allow_frmk_data, sendEvents, plugins): #self.conf = conf self.plugins = plugins self.sequence = 0 self.server_ip = server_ip self.server_port = server_port self.allow_frmk_data = allow_frmk_data self.monitor_scheduler = MonitorScheduler() self.monitor_scheduler.start() self.__patternFrmkMessageResponse = re.compile("server_ip=\"(?P<srv_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" server_name=\"(?P<srv_name>([^\"]+))\" server_port=\"(?P<srv_port>\d+)\" framework_ip=\"(?P<frmk_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" framework_name=\"(?P<frmk_name>([^\"]+))\" framework_port=\"(?P<frmk_port>\d+)\"") self.frmk_hostname = '' self.frmk_ip = '' self.frmk_port = '' self.priority = priority self.__isAlive = False self.__stopped = False self.__sendEvents = sendEvents self.__keep_working = True self.__validFrmkData = False
class ServerConn: __conn = None MSG_CONNECT = 'connect id="%s" ' + \ 'type="sensor" ' + \ 'version="' + __version__ + '"\n' MSG_APPEND_PLUGIN = 'session-append-plugin id="%s" ' + \ 'plugin_id="%s" enabled="%s" state="%s"\n' MSG_GET_FRAMEWORK = 'server-get-framework\n' def __init__(self, server_ip, server_port, priority, allow_frmk_data, sendEvents, plugins): #self.conf = conf self.plugins = plugins self.sequence = 0 self.server_ip = server_ip self.server_port = server_port self.allow_frmk_data = allow_frmk_data self.monitor_scheduler = MonitorScheduler() self.monitor_scheduler.start() self.__patternFrmkMessageResponse = re.compile("server_ip=\"(?P<srv_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" server_name=\"(?P<srv_name>([^\"]+))\" server_port=\"(?P<srv_port>\d+)\" framework_ip=\"(?P<frmk_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" framework_name=\"(?P<frmk_name>([^\"]+))\" framework_port=\"(?P<frmk_port>\d+)\"") self.frmk_hostname = '' self.frmk_ip = '' self.frmk_port = '' self.priority = priority self.__isAlive = False self.__stopped = False self.__sendEvents = sendEvents self.__keep_working = True self.__validFrmkData = False # connect to server # attempts == 0 means that agent try to connect forever # waittime = seconds between attempts def connect(self, attempts=3, waittime=10.0): self.__keep_working = True self.sequence = 1 count = 1 if self.__conn is None: logger.info("Connecting to server (%s, %s).." \ % (self.server_ip, self.server_port)) while self.__keep_working and not self.__isAlive: self.__connect_to_server() if self.__conn is not None: self.__isAlive = True self.__append_plugins() if self.allow_frmk_data: self.frmk_hostname, self.frmk_ip, self.frmk_port = self.__get_framework_connection_data() logger.info("Server (%s:%s) Framework Connnection Data FRMK_HN:%s, FRMK_IP:%s, FRMK_PORT:%s" % (self.server_ip, self.server_port, self.frmk_hostname, self.frmk_ip, self.frmk_port)) elif not self.__validFrmkData : logger.info("This server (%s:%s) doesn't support framework data connection" % (self.server_ip, self.server_port)) break else: logger.info("Can't connect to server, " + \ "retrying in %d seconds" % (waittime)) time.sleep(waittime) # check #attempts if attempts != 0 and count == attempts: break count += 1 else: logger.info("Reusing server connection (%s, %s).." \ % (self.server_ip, self.server_port)) return self.__conn def close(self): logger.info("Closing server connection..") if self.__conn is not None: self.__conn.close() self.__conn = None self.__isAlive = False self.__keep_working = False # Reset the current connection by closing and reopening it def reconnect(self, attempts=0, waittime=10.0): self.close() time.sleep(1) Stats.server_reconnect(self.server_ip) tmptries = 0 while tmptries < MAX_TRIES: if self.connect(attempts, waittime) is not None: break tmptries += 1 if tmptries == MAX_TRIES: self.__stopped = True self.__keep_working = False def send(self, msg): while self.__keep_working: try: if self.__isAlive: self.__conn.send(msg) except socket.error, e: logger.error(e) self.reconnect() except AttributeError: # self.__conn == None logger.error("Atributte Error, %s" % str(e)) self.reconnect() else:
class ServerConn: __conn = None MSG_CONNECT = 'connect id="%s" ' + \ 'type="sensor" ' + \ 'version="' + __version__ + '"\n' MSG_APPEND_PLUGIN = 'session-append-plugin id="%s" ' + \ 'plugin_id="%s" enabled="%s" state="%s"\n' MSG_GET_FRAMEWORK = 'server-get-framework\n' def __init__(self, server_ip, server_port, priority, allow_frmk_data, sendEvents, plugins, stopEvent): #self.conf = conf self.plugins = plugins self.sequence = 0 self.server_ip = server_ip self.server_port = server_port self.allow_frmk_data = allow_frmk_data self.monitor_scheduler = MonitorScheduler() self.monitor_scheduler.start() self.__patternFrmkMessageResponse = re.compile( "server_ip=\"(?P<srv_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" server_name=\"(?P<srv_name>([^\"]+))\" server_port=\"(?P<srv_port>\d+)\" framework_ip=\"(?P<frmk_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" framework_name=\"(?P<frmk_name>([^\"]+))\" framework_port=\"(?P<frmk_port>\d+)\"" ) self.frmk_hostname = '' self.frmk_ip = '' self.frmk_port = '' self.priority = priority self.__isAlive = False self.__stopped = False self.__sendEvents = sendEvents self.__keep_working = True self.__validFrmkData = False self.__threadControlMessages = None self.__controlMsgThread_isRunning = False self.__stopEvent = stopEvent self.__runningConnect = False self.__conn = None self.__writeLock = threading.RLock() def connect(self, attempts=3, waittime=10.0): ''' connect to server: - attempts == 0 means that agent try to connect forever - waittime = seconds between attempts ''' self.__keep_working = True self.sequence = 1 count = 1 if self.__conn is None: logger.info("Connecting to server (%s, %s).." % (self.server_ip, self.server_port)) while self.__keep_working and not self.__isAlive: if self.__stopEvent.isSet(): self.close() continue self.__connect_to_server() if self.__conn is not None: self.__append_plugins() self.control_messages() if self.allow_frmk_data: self.frmk_hostname, self.frmk_ip, self.frmk_port = self.__get_framework_connection_data( ) logger.debug( "Server (%s:%s) Framework Connection Data FRMK_HN:%s, FRMK_IP:%s, FRMK_PORT:%s" % (self.server_ip, self.server_port, self.frmk_hostname, self.frmk_ip, self.frmk_port)) elif not self.__validFrmkData: logger.info( "This server (%s:%s) doesn't support framework data connection" % (self.server_ip, self.server_port)) break else: logger.info("Can't connect to server, " + \ "retrying in %d seconds" % (waittime)) #if self.__keep_working: time.sleep(waittime) # check #attempts if attempts != 0 and count == attempts: break count += 1 else: logger.info("Reusing server connection (%s, %s).." \ % (self.server_ip, self.server_port)) return self.__conn def close(self): self.__keep_working = False self.__isAlive = False if self.__conn is not None: logger.info("Closing server connection..") try: self.__conn.shutdown(socket.SHUT_RDWR) self.__conn.close() except Exception, e: pass self.__conn = None self.__controlMsgThread_isRunning = False
class ServerConn: __conn = None MSG_CONNECT = 'connect id="%s" ' + \ 'type="sensor" ' + \ 'version="' + __version__ + '" sensor_id="%s" \n' MSG_APPEND_PLUGIN = 'session-append-plugin id="%s" ' + \ 'plugin_id="%s" enabled="%s" state="%s"\n' MSG_GET_FRAMEWORK = 'server-get-framework\n' def __init__(self, server_ip, server_port, priority, allow_frmk_data, sendEvents, plugins, stopEvent, sensor_id,systemUUIDFile): #self.conf = conf self.plugins = plugins self.sequence = 0 self.server_ip = server_ip self.server_port = server_port self.allow_frmk_data = allow_frmk_data self.monitor_scheduler = MonitorScheduler() self.monitor_scheduler.start() self.__patternFrmkMessageResponse = re.compile("server_ip=\"(?P<srv_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" server_name=\"(?P<srv_name>([^\"]+))\" server_port=\"(?P<srv_port>\d+)\" framework_ip=\"(?P<frmk_ip>(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3}))\" framework_name=\"(?P<frmk_name>([^\"]+))\" framework_port=\"(?P<frmk_port>\d+)\"") self.__patternChangeUUID = re.compile('noack id="(?P<sec>\d+)" your_sensor_id="(?P<uuid>[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12})"') self.frmk_hostname = '' self.frmk_ip = '' self.frmk_port = '' self.priority = priority self.__isAlive = False self.__stopped = False self.__sendEvents = sendEvents self.__keep_working = True self.__validFrmkData = False self.__threadControlMessages = None self.__controlMsgThread_isRunning = False self.__stopEvent = stopEvent self.__sensorID = sensor_id self.__runningConnect = False self.__conn = None self.__systemUUIDFile = systemUUIDFile self.__writeLock = threading.RLock() def connect(self, attempts=3, waittime=10.0): ''' connect to server: - attempts == 0 means that agent try to connect forever - waittime = seconds between attempts ''' self.__keep_working = True self.sequence = 1 count = 1 if self.__conn is None: logger.info("Connecting to server (%s, %s).." \ % (self.server_ip, self.server_port)) while self.__keep_working and not self.__isAlive: if self.__stopEvent.isSet(): self.close() continue self.__connect_to_server() if self.__conn is not None: self.__append_plugins() self.control_messages() if self.allow_frmk_data: self.frmk_hostname, self.frmk_ip, self.frmk_port = self.__get_framework_connection_data() logger.debug("Server (%s:%s) Framework Connection Data FRMK_HN:%s, FRMK_IP:%s, FRMK_PORT:%s" % (self.server_ip, self.server_port, self.frmk_hostname, self.frmk_ip, self.frmk_port)) elif not self.__validFrmkData : logger.info("This server (%s:%s) doesn't support framework data connection" % (self.server_ip, self.server_port)) break else: logger.info("Can't connect to server, " + \ "retrying in %d seconds" % (waittime)) #if self.__keep_working: time.sleep(waittime) # check #attempts if attempts != 0 and count == attempts: break count += 1 else: logger.info("Reusing server connection (%s, %s).." \ % (self.server_ip, self.server_port)) return self.__conn def close(self): self.__keep_working = False self.__isAlive = False if self.__conn is not None: logger.info("Closing server connection..") try: self.__conn.shutdown(socket.SHUT_RDWR) self.__conn.close() except Exception,e: pass self.__conn = None self.__controlMsgThread_isRunning = False