Пример #1
0
    def prepareConnect(self,
                       userId=None,
                       destinationPort=None,
                       destinationIp=None,
                       destinationType=None,
                       reserved=None):
        """
		Connect request
		"""
        if self.cfg['proxy-type'] == PROXY_SOCKS4:
            tpl = templates.socks(version=4,
                                  more=templates.connect(
                                      userId=userId,
                                      destIp=destinationIp,
                                      destPort=destinationPort))
            req, summary = self.sockCodec4.encode(socks_tpl=tpl)

        if self.cfg['proxy-type'] == PROXY_SOCKS5:
            tpl = templates.socks(version=5,
                                  reserved=reserved,
                                  more=templates.connect(
                                      destIp=destinationIp,
                                      destPort=destinationPort,
                                      destType=destinationType))
            req, summary = self.sockCodec5.encode(socks_tpl=tpl)

        return (tpl, req, summary)
Пример #2
0
    def connect(self, dbName, timeout=5):
        """
		Connect to the database
		
		@param dbName: database name
		@type dbName: string		
		
		@param timeout: time max to wait to receive event in second (default=1s)
		@type timeout: integer		
		"""
        TestAdapterLib.check_timeout(caller=TestAdapterLib.caller(),
                                     timeout=timeout)

        self.debug('connect to the db')

        # log connect event
        tpl = templates.db(host=self.cfg['host'],
                           port=self.cfg['port'],
                           user=self.cfg['user'],
                           password=self.cfg['password'],
                           more=templates.connect(db=dbName))
        self.logSentEvent(shortEvt="connect",
                          tplEvt=self.encapsule(db_event=tpl))

        # connect
        if self.cfg['agent-support']:
            remote_cfg = {
                'cmd': 'Connect',
                'db-name': dbName,
                'dbtype': 'mysql',
                'user': self.cfg['user'],
                'password': self.cfg['password'],
                'host': self.cfg['host'],
                'port': self.cfg['port'],
                'timeout': int(timeout)
            }
            self.sendNotifyToAgent(data=remote_cfg)
        else:
            try:
                self.connPtr = MySQLdb.connect(host=self.cfg['host'],
                                               user=self.cfg['user'],
                                               passwd=self.cfg['password'],
                                               port=self.cfg['port'],
                                               connect_timeout=int(timeout),
                                               db=dbName)
            except MySQLdb.Error as e:
                self.onError(e)
            except Exception as e:
                self.error("unable to connect, generic error: %s" % str(e))
            else:
                # log connected event
                tpl = templates.db(host=self.cfg['host'],
                                   port=self.cfg['port'],
                                   user=self.cfg['user'],
                                   password=self.cfg['password'],
                                   more=templates.connected())
                self.logRecvEvent(shortEvt="connected",
                                  tplEvt=self.encapsule(db_event=tpl))
Пример #3
0
	def connect(self, dbName, timeout=10, sslSupport=False):
		"""
		Connect to the database
		
		@param dbName: database name
		@type dbName: string		
		
		@param sslSupport: ssl support (default=False)
		@type sslSupport: boolean		
		
		@param timeout: time max to wait to receive event in second (default=1s)
		@type timeout: integer		
		"""
		TestAdapterLib.check_timeout(caller=TestAdapterLib.caller(), timeout=timeout)
		
		self.debug('connect to the db')
		
		# log connect event
		tpl = templates.db( host=self.cfg['host'], port=self.cfg['port'], user=self.cfg['user'], password=self.cfg['password'], 
														more=templates.connect(db=dbName) )
		self.logSentEvent( shortEvt = "connect", tplEvt = self.encapsule(db_event=tpl) )
		
		# connect
		if self.cfg['agent-support']:
			remote_cfg = { 'cmd': 'Connect', 'db-name': dbName , 'dbtype': 'postgresql', 'user': self.cfg['user'],
															'password':self.cfg['password'],  'host':  self.cfg['host'], 'port': self.cfg['port'],
															'ssl-support': sslSupport, 'timeout': int(timeout)  }
			self.sendNotifyToAgent(data=remote_cfg)
		else:
			try:
				sslMode = 'disable'
				if sslSupport: sslMode = 'require'
				self.connPtr = psycopg2.connect(database=dbName, user=self.cfg['user'], password=self.cfg['password'], 
																						host=self.cfg['host'], port=self.cfg['port'], sslmode=sslMode, connect_timeout=timeout)
			except psycopg2.Error as e:
				self.onError(err=(0, str(e)) )
			except Exception as e:
				self.error( e )
			else:
				# log connected event
				tpl = templates.db( host=self.cfg['host'], port=self.cfg['port'], user=self.cfg['user'], password=self.cfg['password'], 
																		more=templates.connected() )
				self.logRecvEvent( shortEvt = "connected", tplEvt = self.encapsule(db_event=tpl) )
Пример #4
0
    def connect(self, dbName, timeout=1):
        """
		Connect to the database
		
		@param dbName: database name
		@type dbName: string		
		
		@param timeout: time max to wait to receive event in second (default=1s)
		@type timeout: integer		
		"""
        if not (isinstance(timeout, int)
                or isinstance(timeout, float)) or isinstance(timeout, bool):
            raise TestAdapterLib.ValueException(
                TestAdapterLib.caller(),
                "timeout argument is not a float or integer (%s)" %
                type(timeout))

        self.debug('connect to the db')

        # log connect event
        tpl = templates.db(host=self.cfg['host'],
                           port=self.cfg['port'],
                           user=self.cfg['user'],
                           password=self.cfg['password'],
                           more=templates.connect(db=dbName))
        self.logSentEvent(shortEvt="connect",
                          tplEvt=self.encapsule(db_event=tpl))

        # connect
        if self.cfg['agent-support']:
            remote_cfg = {
                'cmd': 'Connect',
                'db-name': dbName,
                'dbtype': 'mysql',
                'user': self.cfg['user'],
                'password': self.cfg['password'],
                'host': self.cfg['host'],
                'port': self.cfg['port'],
                'timeout': int(timeout)
            }
            self.sendNotifyToAgent(data=remote_cfg)
        else:
            try:
                if pymssql.__version__ >= "2.0.0":
                    self.connPtr = pymssql.connect(
                        host=self.cfg['host'],
                        user=self.cfg['user'],
                        password=self.cfg['password'],
                        port=self.cfg['port'],
                        database=dbName,
                        user_timeout=timeout)
                else:
                    self.connPtr = pymssql.connect(
                        host=self.cfg['host'],
                        user=self.cfg['user'],
                        password=self.cfg['password'],
                        database=dbName)
            except Exception as e:
                self.error(str(e))
            else:
                # log connected event
                tpl = templates.db(host=self.cfg['host'],
                                   port=self.cfg['port'],
                                   user=self.cfg['user'],
                                   password=self.cfg['password'],
                                   more=templates.connected())
                self.logRecvEvent(shortEvt="connected",
                                  tplEvt=self.encapsule(db_event=tpl))