def setUp(self): HttpServerTestCase.setUp(self) # Initiating config objects without any filename # will lead to setting defaults and that's what we # need to run the tests AMQPServiceConfigInstance = AmqpConfig() AMQPServiceConfigInstance.reconnectOnConnectionLoss = False # Launch AMQP Broker self.amqpBroker = AmqpFactory(AMQPServiceConfigInstance) self.amqpBroker.preConnect() self.amqpClient = reactor.connectTCP(AMQPServiceConfigInstance.host, AMQPServiceConfigInstance.port, self.amqpBroker) # Wait for AMQP Broker connection to get ready yield self.amqpBroker.getChannelReadyDeferred() # Add the broker to the RouterPB yield self.pbRoot_f.addAmqpBroker(self.amqpBroker) # Setup smpp client manager pb yield self.clientManager_f.addAmqpBroker(self.amqpBroker) p = portal.Portal(JasminPBRealm(self.clientManager_f)) p.registerChecker(AllowAnonymousAccess()) jPBPortalRoot = JasminPBPortalRoot(p) self.CManagerServer = reactor.listenTCP( 0, pb.PBServerFactory(jPBPortalRoot)) self.CManagerPort = self.CManagerServer.getHost().port # Start DLRThrower DLRThrowerConfigInstance = DLRThrowerConfig() self.DLRThrower = DLRThrower() self.DLRThrower.setConfig(DLRThrowerConfigInstance) yield self.DLRThrower.addAmqpBroker(self.amqpBroker) # Connect to redis server RedisForJasminConfigInstance = RedisForJasminConfig() self.redisClient = yield ConnectionWithConfiguration( RedisForJasminConfigInstance) # Authenticate and select db if RedisForJasminConfigInstance.password is not None: yield self.redisClient.auth(RedisForJasminConfigInstance.password) yield self.redisClient.select(RedisForJasminConfigInstance.dbid) # Connect CM with RC: self.clientManager_f.addRedisClient(self.redisClient) # Set a smpp client manager proxy instance self.SMPPClientManagerPBProxy = SMPPClientManagerPBProxy()
def runScenario(): try: ## First part, SMPP Client connector management ############################################### # Connect to SMPP Client management PB proxy proxy_smpp = SMPPClientManagerPBProxy() yield proxy_smpp.connect('127.0.0.1', 8989, 'cmadmin', 'cmpwd') # Provision SMPPClientManagerPBProxy with a connector and start it connector1 = { 'id': 'abc', 'username': '******', 'reconnectOnConnectionFailure': True } config1 = SMPPClientConfig(**connector1) yield proxy_smpp.add(config1) yield proxy_smpp.start('abc') ## Second part, User and Routing management ########################################### # Connect to Router PB proxy proxy_router = RouterPBProxy() yield proxy_router.connect('127.0.0.1', 8988, 'radmin', 'rpwd') # Provision RouterPBProxy with MT routes yield proxy_router.mtroute_add( DefaultRoute(SmppClientConnector('abc')), 0) routes = yield proxy_router.mtroute_get_all() print("Configured routes: \n\t%s" % pickle.loads(routes)) # Provisiong router with users g1 = Group(1) u1 = User(uid=1, group=g1, username='******', password='******') yield proxy_router.group_add(g1) yield proxy_router.user_add(u1) users = yield proxy_router.user_get_all() print("Users: \n\t%s" % pickle.loads(users)) ## Last, tear down ################## # Stop connector yield proxy_smpp.stop('abc') except Exception as e: print("ERROR RUNNING SCENARIO: %s" % str(e)) finally: reactor.stop()