def _start(self, client_name): self._reconnect(delete_old_q=True) self._publisher_greenlet = vnc_greenlets.VncGreenlet( 'Kombu ' + client_name, self._publisher) self._connection_monitor_greenlet = vnc_greenlets.VncGreenlet( 'Kombu ' + client_name + '_ConnMon', self._connection_watch_forever)
def _start(self, client_name): self._reconnect(delete_old_q=True) self._publisher_greenlet = vnc_greenlets.VncGreenlet( 'Kombu ' + client_name, self._publisher) self._connection_monitor_greenlet = vnc_greenlets.VncGreenlet( 'Kombu ' + client_name + '_ConnMon', self._connection_watch_forever) if self._heartbeat_seconds: self._connection_heartbeat_greenlet = vnc_greenlets.VncGreenlet( 'Kombu ' + client_name + '_ConnHeartBeat', self._connection_heartbeat) else: self._connection_heartbeat_greenlet = None
def get_middleware_app(self): if not self._auth_method: return None if not self._multi_tenancy: return None # keystone middleware is needed for fetching objects app = AuthPostKeystone(self._server_mgr.api_bottle, {'auth_svc': self}) auth_middleware = auth_token.AuthProtocol(app, self._conf_info) self._auth_middleware = auth_middleware # open access for troubleshooting admin_port = self._conf_info['admin_port'] self._local_auth_app = LocalAuth(self._server_mgr.api_bottle, self._conf_info) vnc_greenlets.VncGreenlet("VNC Auth Keystone", self._local_auth_app.start_http_server) app = auth_middleware # allow multi tenancy to be updated dynamically app = AuthPreKeystone(auth_middleware, None, self._multi_tenancy, self._server_mgr) return app
def get_middleware_app(self): if not self._auth_method: return None if not self._auth_needed: return None # keystone middleware is needed for fetching objects app = AuthPostKeystone(self._server_mgr.api_bottle, {'auth_svc': self}) auth_middleware = auth_token.AuthProtocol(app, self._conf_info) self._auth_middleware = auth_middleware while True: try: self._auth_token = auth_middleware._identity_server._adapter.get_token( ) break except auth_token.ServiceError as e: msg = "Error in getting admin token: " + str(e) time.sleep(2) self._server_mgr.config_log("Auth token fetched from keystone.", level=SandeshLevel.SYS_NOTICE) # open access for troubleshooting admin_port = self._conf_info['admin_port'] self._local_auth_app = LocalAuth(self._server_mgr.api_bottle, self._conf_info) vnc_greenlets.VncGreenlet("VNC Auth Keystone", self._local_auth_app.start_http_server) app = AuthPreKeystone(auth_middleware, None, self._server_mgr) return app
def reset(self): self._id_to_metas = {} while not self._queue.empty(): self._queue.get_nowait() if (self._dequeue_greenlet is not None and gevent.getcurrent() != self._dequeue_greenlet): self._dequeue_greenlet.kill() self._dequeue_greenlet =\ vnc_greenlets.VncGreenlet("VNC IfMap Dequeue", self._ifmap_dequeue_task)
def __init__(self, uuid, obj_dict=None): self.uuid = uuid self.virtual_networks = set() self.logical_routers = set() self.bgp_router = None self.config_manager = None self.nc_q = queue.Queue(maxsize=1) self.vn_ip_map = {'irb': {}, 'lo0': {}} self.config_sent = False self.init_cs_state() self.update(obj_dict) plugin_params = {"physical_router": self} self.config_manager = DeviceConf.plugin(self.vendor, self.product, plugin_params, self._logger) if self.config_manager: self.set_conf_sent_state(False) self.config_repush_interval = PushConfigState.get_repush_interval() self.nc_handler_gl = vnc_greenlets.VncGreenlet( "VNC Device Manager", self.nc_handler) self.uve_send()
def __init__(self, db_client_mgr, ifmap_srv_ip, ifmap_srv_port, uname, passwd, ssl_options): self._ifmap_srv_ip = ifmap_srv_ip self._ifmap_srv_port = ifmap_srv_port self._username = uname self._password = passwd self._ssl_options = ssl_options self._dequeue_greenlet = None self._CONTRAIL_XSD = "http://www.contrailsystems.com/vnc_cfg.xsd" self._IPERMS_NAME = "id-perms" self._NAMESPACES = { 'env': "http://www.w3.org/2003/05/soap-envelope", 'ifmap': "http://www.trustedcomputinggroup.org/2010/IFMAP/2", 'meta': "http://www.trustedcomputinggroup.org/2010/IFMAP-METADATA/2", 'contrail': self._CONTRAIL_XSD } self._db_client_mgr = db_client_mgr self._sandesh = db_client_mgr._sandesh ConnectionState.update( conn_type=ConnectionType.IFMAP, name='IfMap', status=ConnectionStatus.INIT, message='', server_addrs=["%s:%s" % (ifmap_srv_ip, ifmap_srv_port)]) self._conn_state = ConnectionStatus.INIT self._is_ifmap_up = False self._queue = Queue(self._get_api_server()._args.ifmap_queue_size) self.reset() # Set the signal handler signal.signal(signal.SIGUSR2, self.handler) self._init_conn() self._publish_config_root() self._health_checker_greenlet =\ vnc_greenlets.VncGreenlet('VNC IfMap Health Checker', self._health_checker)
def get_middleware_app(self): if not self._auth_method: return None if not self._multi_tenancy: return None # keystone middleware is needed for fetching objects # app = bottle.app() app = AuthPostKeystone(bottle.app(), {'auth_svc': self}) auth_middleware = auth_token.AuthProtocol(app, self._conf_info) self._auth_middleware = auth_middleware while True: try: self._auth_token = auth_middleware.get_admin_token() break except auth_token.ServiceError as e: msg = "Error in getting admin token: " + str(e) time.sleep(2) self._server_mgr.config_log("Auth token fetched from keystone.", level=SandeshLevel.SYS_NOTICE) # open access for troubleshooting admin_port = self._conf_info['admin_port'] self._local_auth_app = LocalAuth(bottle.app(), self._conf_info) vnc_greenlets.VncGreenlet("VNC Auth Keystone", self._local_auth_app.start_http_server) app = auth_middleware # allow multi tenancy to be updated dynamically app = AuthPreKeystone(auth_middleware, {'admin_token': self._auth_token}, self._multi_tenancy) return app
def get_middleware_app(self): if not self._auth_method: return None if not self._auth_needed: return None # keystone middleware is needed for fetching objects app = AuthPostKeystone(self._server_mgr, self) auth_middleware = auth_token.AuthProtocol(app, self._conf_info) self._auth_middleware = auth_middleware # open access for troubleshooting self._local_auth_app = LocalAuth(self._server_mgr.api_bottle, self._conf_info) vnc_greenlets.VncGreenlet("VNC Auth Keystone", self._local_auth_app.start_http_server) app = AuthPreKeystone(auth_middleware, None, self._server_mgr) return app
def __init__(self, db_client_mgr=None, spawn_dispatch_greenlet=False): if db_client_mgr: self._set_db_conn(db_client_mgr) if spawn_dispatch_greenlet: self._dispatch_greenlet = vnc_greenlets.VncGreenlet( "Event Dispatcher", self.dispatch)
def client_reconnect(self): if self.client_reconnect_gl is None: self.client_reconnect_gl =\ vnc_greenlets.VncGreenlet("djm reconnect", self.zk_reconnect)