diff options
author | Bin Yang <bin.yang@windriver.com> | 2018-11-26 13:10:30 +0000 |
---|---|---|
committer | Bin Yang <bin.yang@windriver.com> | 2018-11-26 13:17:59 +0000 |
commit | 2c3a49d866ebd62210f2fbcd3a1681e58f794efa (patch) | |
tree | 0d175fef6abd6441cd89327e5a1f18f6b061cca2 /share/common | |
parent | 370ed53582ba1da526b7cc7c52fd780eb7a5b70b (diff) |
Cache AAI data1.2.2
Add profiler decorator
Change-Id: I280b5799fa876d881dc2331b44dd34344437eba3
Issue-ID: MULTICLOUD-417
Signed-off-by: Bin Yang <bin.yang@windriver.com>
Diffstat (limited to 'share/common')
-rw-r--r-- | share/common/msapi/extsys.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/share/common/msapi/extsys.py b/share/common/msapi/extsys.py index e1534523..9b65072e 100644 --- a/share/common/msapi/extsys.py +++ b/share/common/msapi/extsys.py @@ -12,6 +12,7 @@ import json import logging import re +from django.core.cache import cache from common.exceptions import VimDriverNewtonException from common.utils import restcall @@ -22,6 +23,12 @@ logger = logging.getLogger(__name__) def get_vim_by_id(vim_id): + # try to load from cache + cachedviminfostr = cache.get("VIMINFOCACHE_"+vim_id) + if cachedviminfostr: + viminfo = json.loads(cachedviminfostr) + return viminfo + cloud_owner,cloud_region_id = decode_vim_id(vim_id) if cloud_owner and cloud_region_id: @@ -74,6 +81,8 @@ def get_vim_by_id(vim_id): viminfo['openstack_region_id'] = tmp_viminfo.get("cloud-epa-caps") \ if tmp_viminfo.get("cloud-epa-caps") else cloud_region_id + # cache the viminfo for 24 hour + cache.set("VIMINFOCACHE_"+vim_id, json.dumps(viminfo), 3600*24) return viminfo return None |