示例#1
0
 def test_import_module_by_filename(self):
     ccc = import_module('./lib/test_mod/ccc/mod.py')
     eq_("this is ccc", ccc.name)
     ddd = import_module('./lib/test_mod/ddd/mod.py')
     # Note: When importing a module by filename, if module file name
     # is duplicated, import_module reload (override) a module instance.
     eq_("this is ddd", ddd.name)
 def test_import_module_by_filename(self):
     ccc = import_module('./lib/test_mod/ccc/mod.py')
     eq_("this is ccc", ccc.name)
     ddd = import_module('./lib/test_mod/ddd/mod.py')
     # Note: When importing a module by filename, if module file name
     # is duplicated, import_module reload (override) a module instance.
     eq_("this is ddd", ddd.name)
示例#3
0
 def test_import_module_by_filename(self):
     ccc = import_module('./lib/test_mod/ccc/mod.py')
     eq_("this is ccc", ccc.name)
     ddd = import_module('./lib/test_mod/ddd/mod.py')
     # Note: When importing a module by filename, if module file name
     # is duplicated, import_module returns a module instance which is
     # imported before.
     eq_("this is ccc", ddd.name)
示例#4
0
def _create_ofp_msg_ev_from_module(modname):
    mod = utils.import_module(modname)
    # print mod
    for _k, cls in inspect.getmembers(mod, inspect.isclass):
        if not hasattr(cls, 'cls_msg_type'):
            continue
        _create_ofp_msg_ev_class(cls)
示例#5
0
 def load_app(self, name):
     mod = utils.import_module(name)
     clses = inspect.getmembers(mod, lambda cls: (inspect.isclass(cls) and
                                                  issubclass(cls, RyuApp)))
     if clses:
         return clses[0][1]
     return None
示例#6
0
文件: app_manager.py 项目: xbee/ryu
 def load_app(self, name):
     mod = utils.import_module(name)
     clses = inspect.getmembers(mod, lambda cls: (inspect.isclass(cls) and
                                                  issubclass(cls, RyuApp)))
     if clses:
         return clses[0][1]
     return None
示例#7
0
def _create_ofp_msg_ev_from_module(modname):
    mod = utils.import_module(modname)
    # print mod
    for _k, cls in mod.__dict__.items():
        if not inspect.isclass(cls):
            continue
        if 'cls_msg_type' not in cls.__dict__:
            continue
        _create_ofp_msg_ev_class(cls)
示例#8
0
def _create_ofp_msg_ev_from_module(modname):
    mod = utils.import_module(modname)
    # print mod
    for _k, cls in mod.__dict__.items():
        if not inspect.isclass(cls):
            continue
        if 'cls_msg_type' not in cls.__dict__:
            continue
        _create_ofp_msg_ev_class(cls)
示例#9
0
 def load_app(self, name):
     mod = utils.import_module(name)
     for k, v in mod.__dict__.items():
         try:
             if issubclass(v, RyuApp):
                 return getattr(mod, k)
         except TypeError:
             pass
     return None
示例#10
0
 def load_app(self, name):
     mod = utils.import_module(name)
     for k, v in mod.__dict__.items():
         try:
             if issubclass(v, RyuApp):
                 return getattr(mod, k)
         except TypeError:
             pass
     return None
示例#11
0
文件: tester.py 项目: petershi4/ryu
    def __init__(self, *args, **kwargs):
        super(Tester, self).__init__()
        self.ev_q = dispatcher.EventQueue(QUEUE_NAME_RUN_TEST_EV,
                                         RUN_TEST_EV_DISPATCHER)

        run_test_mod = utils.import_module(FLAGS.run_test_mod)
        LOG.debug('import run_test_mod.[%s]', run_test_mod.__name__)

        self.run_test = run_test_mod.RunTest(*args, **kwargs)
        handler.register_instance(self.run_test)
示例#12
0
文件: app_manager.py 项目: wwmm1/MC
    def load_app(self, name):
        mod = utils.import_module(name)
        # print('6:mod:',mod)   #('6:mod:', <module 'ryu.controller.ofp_handler'
        # from '/usr/local/lib/python2.7/dist-packages/ryu/controller/ofp_handler.pyc'>)

        clses = inspect.getmembers(
            mod, lambda cls: (inspect.isclass(cls) and issubclass(cls, RyuApp)
                              and mod.__name__ == cls.__module__))
        if clses:
            # print('7:clses:',clses)    #('7:clses:', [('OFPHandler', <class 'ryu.controller.ofp_handler.OFPHandler'>)])
            # print('8:clses[0][1]',clses[0][1])  #('8:clses[0][1]', <class 'ryu.controller.ofp_handler.OFPHandler'>)

            return clses[0][1]
        return None
示例#13
0
    def load_app(self, name):

        # 加载整个name文件的环境,包括变量,类等。
        mod = utils.import_module(name)
        # 从mod中返回符合要求的member,返回以(name,value)组成的列表
        clses = inspect.getmembers(
            mod, lambda cls: (inspect.isclass(cls) and issubclass(cls, RyuApp)
                              and mod.__name__ == cls.__module__))

        # attention:the first app,like
        # 'class SimpleSwitch13(app_manager.RyuApp)'
        # getmembers返回的是(name,value)组成的列表,因此下面返回的是类对象
        if clses:
            return clses[0][1]
        return None
示例#14
0
def main():
    try:
        base_conf(project='ryu', version='ryu %s' % version)
    except cfg.RequiredOptError as e:
        base_conf.print_help()
        raise SystemExit(1)
    subcmd_name = base_conf.subcommand
    try:
        subcmd_mod_name = subcommands[subcmd_name]
    except KeyError:
        base_conf.print_help()
        raise SystemExit('Unknown subcommand %s' % subcmd_name)
    subcmd_mod = utils.import_module(subcmd_mod_name)
    subcmd = SubCommand(name=subcmd_name, entry=subcmd_mod.main)
    subcmd.run(base_conf.subcommand_args)
示例#15
0
文件: ryu_base.py 项目: AndreiaAB/ryu
def main():
    try:
        base_conf(project='ryu', version='ryu %s' % version)
    except cfg.RequiredOptError as e:
        base_conf.print_help()
        raise SystemExit(1)
    subcmd_name = base_conf.subcommand
    try:
        subcmd_mod_name = subcommands[subcmd_name]
    except KeyError:
        base_conf.print_help()
        raise SystemExit('Unknown subcommand %s' % subcmd_name)
    subcmd_mod = utils.import_module(subcmd_mod_name)
    subcmd = SubCommand(name=subcmd_name, entry=subcmd_mod.main)
    subcmd.run(base_conf.subcommand_args)
示例#16
0
    def load_app(self, name):
        # 导入模块
        mod = utils.import_module(name)
        # nspect模块用于收集python对象的信息
        # getmembers(object[, predicate])
        # 返回一个包含对象的所有成员的(name, value)列表。
        # 返回的内容比对象的__dict__包含的内容多,源码是通过dir()实现的。
        # predicate是一个可选的函数参数,被此函数判断为True的成员才被返回。

        # 如果为类,RyuApp子类,则获取其对象信息
        clses = inspect.getmembers(
            mod, lambda cls: (inspect.isclass(cls) and issubclass(cls, RyuApp)
                              and mod.__name__ == cls.__module__))
        if clses:
            return clses[0][1]
        return None
 def test_import_same_module3(self):
     fuga1 = import_module('./lib/test_mod/fuga/mod.py')
     eq_("this is fuga", fuga1.name)
     fuga3 = self._my_import('ryu.tests.unit.lib.test_mod.fuga.mod')
     eq_("this is fuga", fuga3.name)
     eq_(fuga1, fuga3)
 def test_import_same_module1(self):
     fuga1 = import_module('./lib/test_mod/fuga/mod.py')
     eq_("this is fuga", fuga1.name)
     eq_(ryu.tests.unit.lib.test_mod.fuga.mod, fuga1)
 def test_import_module_by_filename(self):
     fuga = import_module('./lib/test_mod/fuga/mod.py')
     eq_("this is fuga", fuga.name)
     hoge = import_module('./lib/test_mod/hoge/mod.py')
     eq_("this is hoge", hoge.name)
 def test_import_module_with_same_basename(self):
     fuga = import_module('ryu.tests.unit.lib.test_mod.fuga.mod')
     eq_("this is fuga", fuga.name)
     hoge = import_module('ryu.tests.unit.lib.test_mod.hoge.mod')
     eq_("this is hoge", hoge.name)
 def test_import_same_module1(self):
     fuga1 = import_module('./lib/test_mod/fuga/mod.py')
     eq_("this is fuga", fuga1.name)
     eq_(ryu.tests.unit.lib.test_mod.fuga.mod, fuga1)
示例#22
0
# limitations under the License.

import inspect
import struct
import base64

import six

from . import packet_base
from . import ethernet

from ryu import utils
from ryu.lib.stringify import StringifyMixin

# Packet class dictionary
mod = inspect.getmembers(utils.import_module("ryu.lib.packet"), lambda cls:
                         (inspect.ismodule(cls)))
cls_list = []
for _, m in mod:
    cl = inspect.getmembers(
        m, lambda cls:
        (inspect.isclass(cls) and issubclass(cls, packet_base.PacketBase)))
    cls_list.extend(list(cl))
PKT_CLS_DICT = dict(cls_list)


class Packet(StringifyMixin):
    """A packet decoder/encoder class.

    An instance is used to either decode or encode a single packet.
示例#23
0
 def test_import_module_with_same_basename(self):
     aaa = import_module('ryu.tests.unit.lib.test_mod.aaa.mod')
     eq_("this is aaa", aaa.name)
     bbb = import_module('ryu.tests.unit.lib.test_mod.bbb.mod')
     eq_("this is bbb", bbb.name)
示例#24
0
文件: __init__.py 项目: dshulyak/ryu

_OFPROTO_DIR = os.path.dirname(__file__)
_OFPROTO_PARSER_FILE_NAMES = glob.glob(os.path.join(
    _OFPROTO_DIR, 'ofproto_v[0-9]*_[0-9]*_parser.py'))
_OFPROTO_PARSER_FILE_NAMES = [os.path.basename(name)
                              for name in _OFPROTO_PARSER_FILE_NAMES]


_OFPROTO_MODULES = {}
for parser_file_name in _OFPROTO_PARSER_FILE_NAMES:
    # drop lasting '.py'
    parser_mod_name = __name__ + '.' + parser_file_name[:-3]
    consts_mod_name = parser_mod_name[:-7]      # drop lasting '_parser'
    try:
        parser_mod = utils.import_module(parser_mod_name)
        consts_mod = utils.import_module(consts_mod_name)
    except:
        continue

    assert consts_mod.OFP_VERSION not in _OFPROTO_MODULES
    _OFPROTO_MODULES[consts_mod.OFP_VERSION] = (consts_mod, parser_mod)


def get_ofp_modules():
    """get modules pair for the constants and parser of OF-wire of
    a given OF version.
    """
    return _OFPROTO_MODULES

示例#25
0
# limitations under the License.

"""
Events for Zebra protocol service.
"""

import inspect
import logging

from ryu import utils
from ryu.controller import event
from ryu.lib.packet import zebra


LOG = logging.getLogger(__name__)
MOD = utils.import_module(__name__)

ZEBRA_EVENTS = []


class EventZebraBase(event.EventBase):
    """
    The base class for Zebra protocol service event class.

    The subclasses have at least ``zclient`` and the same attributes with
    :py:class: `ryu.lib.packet.zebra.ZebraMessage`.
    ``zclient`` is an instance of Zebra client class. See
    :py:class: `ryu.services.protocols.zebra.client.zclient.ZClient` or
    :py:class: `ryu.services.protocols.zebra.server.zserver.ZClient`.

    The subclasses are named as::
示例#26
0
文件: ryu_base.py 项目: Aminiok/ryu
base_conf.register_cli_opt(RemainderOpt('subcommand_args', default=[],
                                        positional=True,
                                        help='subcommand specific arguments'))


class SubCommand(object):
    def __init__(self, name, entry):
        self.name = name
        self.entry = entry

    def run(self, args):
        prog = '%s %s' % (os.path.basename(sys.argv[0]), self.name,)
        self.entry(args=args, prog=prog)


def main():
    try:
        base_conf(project='ryu', version='ryu %s' % version)
    except cfg.RequiredOptError, e:
        base_conf.print_help()
        raise SystemExit(1)
    subcmd_name = base_conf.subcommand
    try:
        subcmd_mod_name = subcommands[subcmd_name]
    except KeyError:
        base_conf.print_help()
        raise SystemExit('Unknown subcommand %s' % subcmd_name)
    subcmd_mod = utils.import_module(subcmd_mod_name)
    subcmd = SubCommand(name=subcmd_name, entry=subcmd_mod.main)
    subcmd.run(base_conf.subcommand_args)
 def test_import_module_with_same_basename(self):
     fuga = import_module('ryu.tests.unit.lib.test_mod.fuga.mod')
     eq_("this is fuga", fuga.name)
     hoge = import_module('ryu.tests.unit.lib.test_mod.hoge.mod')
     eq_("this is hoge", hoge.name)
示例#28
0

class SubCommand(object):
    def __init__(self, name, entry):
        self.name = name
        self.entry = entry

    def run(self, args):
        prog = '%s %s' % (
            os.path.basename(sys.argv[0]),
            self.name,
        )
        self.entry(args=args, prog=prog)


def main():
    try:
        base_conf(project='ryu', version='ryu %s' % version)
    except cfg.RequiredOptError, e:
        base_conf.print_help()
        raise SystemExit(1)
    subcmd_name = base_conf.subcommand
    try:
        subcmd_mod_name = subcommands[subcmd_name]
    except KeyError:
        base_conf.print_help()
        raise SystemExit('Unknown subcommand %s' % subcmd_name)
    subcmd_mod = utils.import_module(subcmd_mod_name)
    subcmd = SubCommand(name=subcmd_name, entry=subcmd_mod.main)
    subcmd.run(base_conf.subcommand_args)
示例#29
0
 def test_import_same_module3(self):
     ggg1 = import_module('./lib/test_mod/ggg.py')
     eq_("this is ggg", ggg1.name)
     ggg2 = self._my_import('ryu.tests.unit.lib.test_mod.ggg')
     eq_("this is ggg", ggg2.name)
 def test_import_module_by_filename(self):
     fuga = import_module('./lib/test_mod/fuga/mod.py')
     eq_("this is fuga", fuga.name)
     hoge = import_module('./lib/test_mod/hoge/mod.py')
     eq_("this is hoge", hoge.name)
示例#31
0
文件: event.py 项目: jasuade/n2n-ryu
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Events for Zebra protocol service.
"""

import inspect
import logging

from ryu import utils
from ryu.controller import event
from ryu.lib.packet import zebra

LOG = logging.getLogger(__name__)
MOD = utils.import_module(__name__)

ZEBRA_EVENTS = []


class EventZebraBase(event.EventBase):
    """
    The base class for Zebra protocol service event class.

    The subclasses have at least ``zclient`` and the same attributes with
    :py:class: `ryu.lib.packet.zebra.ZebraMessage`.
    ``zclient`` is an instance of Zebra client class. See
    :py:class: `ryu.services.protocols.zebra.client.zclient.ZClient` or
    :py:class: `ryu.services.protocols.zebra.server.zserver.ZClient`.

    The subclasses are named as::
示例#32
0
import inspect
from ryu import utils

def _listify(may_list):
    if may_list is None:
        may_list = []
    if not isinstance(may_list, list):
        may_list = [may_list]
    return may_list

name = 'test'
mod = utils.import_module(name)
print mod.__name__
clses = inspect.getmembers(mod, lambda cls:inspect.isclass(cls))
print clses
for cls in _listify(clses[0][1]):
    print cls.__module__
    print cls.__name__



 def test_import_same_module3(self):
     fuga1 = import_module('./lib/test_mod/fuga/mod.py')
     eq_("this is fuga", fuga1.name)
     fuga3 = self._my_import('ryu.tests.unit.lib.test_mod.fuga.mod')
     eq_("this is fuga", fuga3.name)
     eq_(fuga1, fuga3)
示例#34
0
from ryu import utils

_OFPROTO_DIR = os.path.dirname(__file__)
_OFPROTO_PARSER_FILE_NAMES = glob.glob(
    os.path.join(_OFPROTO_DIR, 'ofproto_v[0-9]*_[0-9]*_parser.py'))
_OFPROTO_PARSER_FILE_NAMES = [
    os.path.basename(name) for name in _OFPROTO_PARSER_FILE_NAMES
]

_OFPROTO_MODULES = {}
for parser_file_name in _OFPROTO_PARSER_FILE_NAMES:
    # drop lasting '.py'
    parser_mod_name = __name__ + '.' + parser_file_name[:-3]
    consts_mod_name = parser_mod_name[:-7]  # drop lasting '_parser'
    try:
        parser_mod = utils.import_module(parser_mod_name)
        consts_mod = utils.import_module(consts_mod_name)
    except:
        continue

    assert consts_mod.OFP_VERSION not in _OFPROTO_MODULES
    _OFPROTO_MODULES[consts_mod.OFP_VERSION] = (consts_mod, parser_mod)


def get_ofp_modules():
    """get modules pair for the constants and parser of OF-wire of
    a given OF version.
    """
    return _OFPROTO_MODULES

示例#35
0
 def test_import_same_module2(self):
     fff1 = import_module('./lib/test_mod/fff.py')
     eq_("this is fff", fff1.name)
     fff2 = import_module('ryu.tests.unit.lib.test_mod.fff')
     eq_("this is fff", fff2.name)
示例#36
0
文件: packet.py 项目: Huangmachi/ryu
import inspect
import struct
import base64

import six

from . import packet_base
from . import ethernet

from ryu import utils
from ryu.lib.stringify import StringifyMixin


# Packet class dictionary
mod = inspect.getmembers(utils.import_module("ryu.lib.packet"),
                         lambda cls: (inspect.ismodule(cls)))
cls_list = []
for _, m in mod:
    cl = inspect.getmembers(m,
                            lambda cls: (
                                inspect.isclass(cls) and
                                issubclass(cls, packet_base.PacketBase)))
    cls_list.extend(list(cl))
PKT_CLS_DICT = dict(cls_list)


class Packet(StringifyMixin):
    """A packet decoder/encoder class.

    An instance is used to either decode or encode a single packet.
示例#37
0
 def test_import_same_module1(self):
     from ryu.tests.unit.lib.test_mod import eee as eee1
     eq_("this is eee", eee1.name)
     eee2 = import_module('./lib/test_mod/eee.py')
     eq_("this is eee", eee2.name)