def initialize_db_connection(logger, args): credential = None if args.cassandra_user and args.cassandra_password: credential = { 'username': args.cassandra_user, 'password': args.cassandra_password } timeout = int(args.job_manager_db_conn_retry_timeout) max_retries = int(args.job_manager_db_conn_max_retries) retry_count = 1 while True: try: return VncObjectDBClient(args.cassandra_server_list, db_prefix=args.cluster_id, logger=logger.log, credential=credential, ssl_enabled=args.cassandra_use_ssl, ca_certs=args.cassandra_ca_certs) except Exception as e: if retry_count >= max_retries: raise e logger.error("Error while initializing db connection, " "retrying: %s" % str(e)) gevent.sleep(timeout) finally: retry_count = retry_count + 1
def start(self): # Connect to rabbitmq for config update notifications rabbitmq_qname = self._service_id self._vnc_amqp = VncAmqpHandle(self._sandesh, self._logger, self._db_cls, self._reaction_map, self._service_id, self._rabbitmq_cfg) self._vnc_amqp.establish() cassandra_credential = { 'username': self._cassandra_cfg['user'], 'password': self._cassandra_cfg['password'] } if not all(cassandra_credential.values()): cassandra_credential = None try: self._vnc_db = VncObjectDBClient(self._cassandra_cfg['servers'], self._cassandra_cfg['cluster_id'], logger=self._logger.log, credential=cassandra_credential) except Exception as e: template = 'Exception {0} connecting to Config DB. Arguments:\n{1!r}' msg = template.format(type(e).__name__, e.args) self._logger.error('%s: %s' % (msg, traceback.format_exc())) exit() self._db_cls.init(self, self._logger, self._vnc_db) self._sync_config_db()
def start(self): # Connect to rabbitmq for config update notifications rabbitmq_qname = self._service_id self._vnc_amqp = VncAmqpHandle(self._sandesh, self._logger, self._db_cls, self._reaction_map, self._service_id, self._rabbitmq_cfg) self._vnc_amqp.establish() cassandra_credential = { 'username': self._cassandra_cfg['user'], 'password': self._cassandra_cfg['password'] } if not all(cassandra_credential.values()): cassandra_credential = None self._vnc_db = VncObjectDBClient(self._cassandra_cfg['servers'], self._cassandra_cfg['cluster_id'], logger=self._logger.log, credential=cassandra_credential) self._db_cls.init(self, self._logger, self._vnc_db) self._sync_config_db()
def __init__(self, force, resources_file, cassandra_servers, cassandra_username, cassandra_password, cassandra_use_ssl, cassandra_ca_certs, db_prefix, cassandra_batch_size, zookeeper_servers, rules_per_security_group, keystone_client, dont_populate_zookeeper): self._force = force self._resource_distribution = yaml.load(resources_file) self._cassandra_batch_size = cassandra_batch_size self._rules_per_security_group = rules_per_security_group self._keystone_client = keystone_client self._dont_populate_zookeeper = dont_populate_zookeeper # Connect to cassandra database logger.debug("Initilizing the cassandra connection on %s", cassandra_servers) cassandra_credentials = {} if (cassandra_username is not None and cassandra_password is not None): cassandra_credentials = { 'username': cassandra_username, 'password': cassandra_password, } def vnc_cassandra_client_logger(msg, level=logging.INFO): logger.log(msg=msg, level=level) self._object_db = VncObjectDBClient(cassandra_servers, db_prefix, self._UUID_KEYSPACE, None, vnc_cassandra_client_logger, credential=cassandra_credentials, ssl_enabled=cassandra_use_ssl, ca_certs=cassandra_ca_certs) self._uuid_cf = self._object_db.get_cf('obj_uuid_table') self._fqname_cf = self._object_db.get_cf('obj_fq_name_table') # Initilize zookeeper client if self._dont_populate_zookeeper: self._zk_client = DummyZookeeperClient() else: self._zk_client = ZookeeperClient(zookeeper_servers)