示例#1
0
  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
示例#2
0
文件: base.py 项目: MI-OSiRIS/ryu
 def _create_timer(self, name, func, *arg, **kwarg):
     timer = LoopingCall(func, *arg, **kwarg)
     self._timers[name] = timer
     return timer