def __init__(self, args=None): self._args = args self._fabric_rt_inst_obj = None # Initialize discovery client self._disc = None if self._args.disc_server_ip and self._args.disc_server_port: self._disc = client.DiscoveryClient( self._args.disc_server_ip, self._args.disc_server_port, ModuleNames[Module.SCHEMA_TRANSFORMER]) # Initialize logger self.logger = SchemaTransformerLogger(self._disc, args) # Initialize amqp self._vnc_amqp = STAmqpHandle(self.logger, self._REACTION_MAP, self._args) self._vnc_amqp.establish() try: # Initialize cassandra self._object_db = SchemaTransformerDB(self, _zookeeper_client) DBBaseST.init(self, self.logger, self._object_db) DBBaseST._sandesh = self.logger._sandesh DBBaseST._vnc_lib = _vnc_lib ServiceChain.init() self.reinit() self._vnc_amqp._db_resync_done.set() except Exception as e: # If any of the above tasks like CassandraDB read fails, cleanup # the RMQ constructs created earlier and then give up. self._vnc_amqp.close() raise e
def __init__(self, st_logger=None, args=None): self._args = args self._fabric_rt_inst_obj = None if st_logger is not None: self.logger = st_logger else: # Initialize logger self.logger = SchemaTransformerLogger(args) # Initialize amqp self._vnc_amqp = STAmqpHandle(self.logger, self.REACTION_MAP, self._args) self._vnc_amqp.establish() SchemaTransformer._schema_transformer = self try: # Initialize cassandra self._object_db = SchemaTransformerDB(self, _zookeeper_client) DBBaseST.init(self, self.logger, self._object_db) DBBaseST._sandesh = self.logger._sandesh DBBaseST._vnc_lib = _vnc_lib ServiceChain.init() self.reinit() self._vnc_amqp._db_resync_done.set() except Exception as e: # If any of the above tasks like CassandraDB read fails, cleanup # the RMQ constructs created earlier and then give up. SchemaTransformer.destroy_instance() SchemaTransformer._schema_transformer = None raise
def __init__(self, st_logger=None, args=None): self._args = args self._fabric_rt_inst_obj = None if st_logger is not None: self.logger = st_logger else: # Initialize discovery client discovery_client = None if self._args.disc_server_ip and self._args.disc_server_port: dss_kwargs = {} if self._args.disc_server_ssl: if self._args.disc_server_cert: dss_kwargs.update( {'cert': self._args.disc_server_cert}) if self._args.disc_server_key: dss_kwargs.update({'key': self._args.disc_server_key}) if self._args.disc_server_cacert: dss_kwargs.update( {'cacert': self._args.disc_server_cacert}) discovery_client = client.DiscoveryClient( self._args.disc_server_ip, self._args.disc_server_port, ModuleNames[Module.SCHEMA_TRANSFORMER], **dss_kwargs) # Initialize logger self.logger = SchemaTransformerLogger(discovery_client, args) self.logger.error( "############# STARTING INITIALIZATION OF SCHEMA TRANSFORMER") # Initialize amqp self._vnc_amqp = STAmqpHandle(self.logger, self.REACTION_MAP, self._args) self.logger.error("############# INITIALIZE AMPQ") self._vnc_amqp.establish() try: # Initialize cassandra self.logger.error("############# INITIALIZE CASSANDRA") self._cassandra = SchemaTransformerDB(self, _zookeeper_client) DBBaseST.init(self, self.logger, self._cassandra) DBBaseST._sandesh = self.logger._sandesh DBBaseST._vnc_lib = _vnc_lib ServiceChain.init() self.reinit() self._vnc_amqp._db_resync_done.set() except Exception as e: # If any of the above tasks like CassandraDB read fails, cleanup # the RMQ constructs created earlier and then give up. self._vnc_amqp.close() raise e self.logger.error("############# INITIALIZATION OF AMPQ COMPLETED") self.logger.error( "############# INITIALIZATION OF CASSANDRA COMPLETED")
def __init__(self, st_logger=None, args=None): self._args = args self._fabric_rt_inst_obj = None self.timer_obj = self.STtimer( self._args.zk_timeout, self._args.yield_in_evaluate, print_stats=False) # print_stats: True for debugging if st_logger is not None: self.logger = st_logger else: # Initialize logger self.logger = SchemaTransformerLogger(args) # Initialize amqp self._vnc_amqp = STAmqpHandle(self.logger, self.REACTION_MAP, self._args, timer_obj=self.timer_obj) self._vnc_amqp.establish() SchemaTransformer._schema_transformer = self try: # Initialize cassandra self._object_db = SchemaTransformerDB(self, _zookeeper_client) ResourceBaseST.init(self, self.logger, self._object_db) ResourceBaseST._sandesh = self.logger._sandesh ResourceBaseST._vnc_lib = _vnc_lib ServiceChain.init() self.reinit() self._vnc_amqp._db_resync_done.set() except Exception as e: self._vnc_amqp._db_resync_done.set() # If any of the above tasks like CassandraDB read fails, cleanup # the RMQ constructs created earlier and then give up. SchemaTransformer.destroy_instance() SchemaTransformer._schema_transformer = None raise
def __init__(self, args=None): self._args = args self._fabric_rt_inst_obj = None # Initialize discovery client self._disc = None if self._args.disc_server_ip and self._args.disc_server_port: self._disc = client.DiscoveryClient( self._args.disc_server_ip, self._args.disc_server_port, ModuleNames[Module.SCHEMA_TRANSFORMER]) self._sandesh = Sandesh() # Reset the sandesh send rate limit value if args.sandesh_send_rate_limit is not None: SandeshSystem.set_sandesh_send_rate_limit( args.sandesh_send_rate_limit) sandesh.VnList.handle_request = self.sandesh_vn_handle_request sandesh.RoutintInstanceList.handle_request = \ self.sandesh_ri_handle_request sandesh.ServiceChainList.handle_request = \ self.sandesh_sc_handle_request sandesh.StObjectReq.handle_request = \ self.sandesh_st_object_handle_request module = Module.SCHEMA_TRANSFORMER module_name = ModuleNames[module] node_type = Module2NodeType[module] node_type_name = NodeTypeNames[node_type] instance_id = INSTANCE_ID_DEFAULT hostname = socket.gethostname() self._sandesh.init_generator( module_name, hostname, node_type_name, instance_id, self._args.collectors, 'to_bgp_context', int(args.http_server_port), ['cfgm_common', 'schema_transformer.sandesh'], self._disc, logger_class=args.logger_class, logger_config_file=args.logging_conf) self._sandesh.set_logging_params(enable_local_log=args.log_local, category=args.log_category, level=args.log_level, file=args.log_file, enable_syslog=args.use_syslog, syslog_facility=args.syslog_facility) ConnectionState.init( self._sandesh, hostname, module_name, instance_id, staticmethod(ConnectionState.get_process_state_cb), NodeStatusUVE, NodeStatus) self._sandesh.trace_buffer_create(name="MessageBusNotifyTraceBuf", size=1000) rabbit_servers = self._args.rabbit_server rabbit_port = self._args.rabbit_port rabbit_user = self._args.rabbit_user rabbit_password = self._args.rabbit_password rabbit_vhost = self._args.rabbit_vhost rabbit_ha_mode = self._args.rabbit_ha_mode self._db_resync_done = gevent.event.Event() q_name = 'schema_transformer.%s' % (socket.gethostname()) self._vnc_kombu = VncKombuClient(rabbit_servers, rabbit_port, rabbit_user, rabbit_password, rabbit_vhost, rabbit_ha_mode, q_name, self._vnc_subscribe_callback, self.config_log) self._cassandra = SchemaTransformerDB(self, _zookeeper_client) DBBaseST.init(self, self._sandesh.logger(), self._cassandra) DBBaseST._sandesh = self._sandesh DBBaseST._vnc_lib = _vnc_lib ServiceChain.init() self.reinit() # create cpu_info object to send periodic updates sysinfo_req = False cpu_info = vnc_cpu_info.CpuInfo(module_name, instance_id, sysinfo_req, self._sandesh, 60) self._cpu_info = cpu_info self._db_resync_done.set()