Exemple #1
0
    def init_conn(self):
        if self._conn is not None:
            return
        elif self._proc is None:
            raise Exception('Process terminated')

        # check proc
        if self._proc.poll() != None:
            ##import pdb; pdb.set_trace()
            raise Exception('Process terminated with exit code: %d' %
                            self._proc.poll())

        try_count = 0
        conn = None
        e = None
        while try_count < 30:  # 3 sec.
            try:
                conn = Conn.Conn(self.pgs.host,
                                 self.pgs.base_port + self._port_off)
                conn.do_request('ping')
                break
            except:
                e = sys.exc_info()[0]
                time.sleep(0.1)
                try_count = try_count + 1

        if conn == None:
            self._conn = None
            raise Exception('Failed to connect:%s' % str(e))
        else:
            self._conn = conn
    def test_logdelete(self):
        cm = None
        pgs1 = None
        try:
            cm = Cm.CM("test_portscan")
            cm.create_workspace()
            pg = Pg.PG(0)

            # pgs --> master
            pgs = Pgs.PGS(0, 'localhost', 1900, cm.dir)
            pg.join(pgs, start=True)
            pgs.smr.wait_role(Smr.SMR.MASTER)

            # -----------------------------------------
            # Test bad handshake blocks IP temporarily
            # -----------------------------------------
            for off in range(0, 3):
                # bad handshake
                try:
                    conn = Conn.Conn('localhost', 1900 + off)
                    resp = conn.do_request('ping')
                except:
                    pass
                self._check_conn_blocked()

            # wait for block released
            time.sleep(2.0)  # actually 1.5 sec

            # -------------------------------------------------------
            # Can't connect mgmt port SMR_MAX_MGMT_CLIENTS_PER_IP(50)
            # -------------------------------------------------------
            conns = []
            for i in range(50 - 1):  # -1
                conn = Conn.Conn('localhost', 1903)
                resp = conn.do_request('ping')
                assert (len(resp) == 1 and resp[0].startswith('+OK')), resp
                conns.append(conn)
            self._check_conn_blocked()

        finally:
            if pgs is not None:
                pgs.kill_smr()
                pgs.kill_be()
            if cm is not None:
                cm.remove_workspace()
Exemple #3
0
 def NewIndex(self):
     if not self.conns:
         return -1
     for i in xrange(len(self.conns)):
         if self.conns[i] is None:
             self.conns[i] = Conn.Conn()
             return i
         else:
             if self.conns[i].isUse is False:
                 return i
     return -1
 def _check_conn_blocked(self):
     st = time.time()
     for i in range(40):
         ok = True
         try:
             conn = Conn.Conn('localhost', 1900 + (i % 4))
             resp = conn.do_request('ping')
         except:
             ok = False
         if ok:
             raise Exception("Not blocked")
     et = time.time()
     if et - st > 1.0:
         raise Exception("10 connection try exceeds 1.0 sec.")
Exemple #5
0
def teardown_cluster(name, force=False):
    debug = True
    conn = Conn.Conn(gCtx.opt.cm_host, gCtx.opt.cm_port)
    try:
        for pgs in gCtx.pgs_ary:
            conn.do_request('pgs_leave %s %d forced' % (gCtx.opt.cluster_name, pgs.id), debug)
            time.sleep(0.1)
            conn.do_request('pgs_del %s %d' % (gCtx.opt.cluster_name, pgs.id), debug)
        conn.do_request('pg_del %s 0' % gCtx.opt.cluster_name, debug)
        conn.do_request('cluster_del %s' % gCtx.opt.cluster_name, debug)
    except:
        print (sys.exc_info()[0])
        raise
    finally:
        conn.disconnect()
Exemple #6
0
def setup_cluster(name):
    debug = True
    conn = Conn.Conn(gCtx.opt.cm_host, gCtx.opt.cm_port)
    try:
        conn.do_request('cluster_add %s 0:1' % gCtx.opt.cluster_name, debug)
        conn.do_request('pg_add %s 0' % gCtx.opt.cluster_name, debug)
        conn.do_request('slot_set_pg %s 0:8191 0' % gCtx.opt.cluster_name, debug)
        pm_name = socket.gethostname()
        pm_ip = socket.gethostbyname(pm_name)
        for pgs in gCtx.pgs_ary:
            # pgs_add <cluster_name> <pgsid> <pgid> <pm_name> <pm_ip> <base_port> <backend_port>
            conn.do_request('pgs_add %s %d %d %s %s %d %d' % (gCtx.opt.cluster_name, pgs.id, 0, pm_name, pm_ip, pgs.base_port, pgs.base_port + 9), debug)
            conn.do_request('pgs_join %s %d' % (gCtx.opt.cluster_name, pgs.id), debug)
    except:
        print (sys.exc_info()[0])
        raise
    finally:
        conn.disconnect()
Exemple #7
0
 def run(self):
     conn = Conn.Conn(self.host, self.port)
     conn.lazy_connect()
     time.sleep(self.sec)
     conn.disconnect()