def __init__(self, *args, **kwargs): if 'switch_type' in kwargs: self.switch_type = kwargs.pop('switch_type') else: self.switch_type = ['openflow'] super(RyuApp, self).__init__(*args, **kwargs) RyuApp._instance = self self.logger.debug(" __init__()") self.result = {} self.lock = False self.dp_id = None self.configured = False self.dl_port = None # port numbers in the OpenFlow switch self.ul_port = None # self.status = 'init' self.logger.debug("%s, %s" % (args, kwargs)) self.pl_conf = ObjectView(CONF['pipeline_conf'], logger=self.logger) self.bm_conf = ObjectView(CONF['benchmark_conf'], logger=self.logger) # port "names" used to configure the OpenFlow switch self.dl_port_name = self.bm_conf.sut.downlink_port self.ul_port_name = self.bm_conf.sut.uplink_port self.instantiate_pipeline() self._timer = LoopingCall(self.handle_timer) wsgi = kwargs['wsgi'] self.waiters = {} self.data = {'waiters': self.waiters} mapper = wsgi.mapper wsgi.registory['TipsyController'] = self.data for attr in dir(TipsyController): if attr.startswith('get_'): mapper.connect('tipsy', '/tipsy/' + attr[len('get_'):], controller=TipsyController, action=attr, conditions=dict(method=['GET'])) self.initialize_datapath() self.change_status('wait') # Wait datapath to connect
def _create_timer(self, name, func, *arg, **kwarg): timer = LoopingCall(func, *arg, **kwarg) self._timers[name] = timer return timer