diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2013-11-22 16:45:58 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2013-11-22 14:50:19 -0800 |
commit | 2a10dfbd9c9be0eb241ed628675816ab9874d89b (patch) | |
tree | 53619450c237e3bd69f256e5bd67f889e9a1e400 | |
parent | 5dd45aea0c9c2967d465f53fe707ed536c32ce5b (diff) |
base/app_manager: introduce singleton pattern to AppManager
Later VRRP service creates/deletes RyuApp dynamically as VRRP router
is enabled/disabled.
When creating/deleting RyuApp, unique RyuManager should be used.
There needs a way to get a unique RyuApp. So introduce singleton pattern
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/base/app_manager.py | 9 | ||||
-rwxr-xr-x | ryu/cmd/manager.py | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py index 21e129b5..883ca49c 100644 --- a/ryu/base/app_manager.py +++ b/ryu/base/app_manager.py @@ -149,6 +149,15 @@ class RyuApp(object): class AppManager(object): + # singletone + _instance = None + + @staticmethod + def get_instance(): + if not AppManager._instance: + AppManager._instance = AppManager() + return AppManager._instance + def __init__(self): self.applications_cls = {} self.applications = {} diff --git a/ryu/cmd/manager.py b/ryu/cmd/manager.py index 83867054..82dc60a1 100755 --- a/ryu/cmd/manager.py +++ b/ryu/cmd/manager.py @@ -63,7 +63,7 @@ def main(): app_lists = CONF.app_lists + CONF.app - app_mgr = AppManager() + app_mgr = AppManager.get_instance() app_mgr.load_apps(app_lists) contexts = app_mgr.create_contexts() app_mgr.instantiate_apps(**contexts) |