Esempio n. 1
0
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
Esempio n. 2
0
 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()
Esempio n. 4
0
    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)