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()
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.")
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()
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()
def run(self): conn = Conn.Conn(self.host, self.port) conn.lazy_connect() time.sleep(self.sec) conn.disconnect()