def fetch(self, req_orig): req = copy.deepcopy(req_orig) sep = "|" if req.db: sep = SonicDBConfig.getSeparator(req.db) key = req.table + sep + req.key_pattern if key in self.__key_cache: verbose_print("Cache Hit for Key: {}".format(key)) return self.__fetch_from_cache(key, req) else: verbose_print("Cache Miss for Key: {}".format(key)) req, fv_requested, ret_just_keys = self.__mutate_request(req) ret = self.m_engine.fetch(req) if ret["error"]: return ret self.__fill_cache(ret) return self.__mutate_response(ret, fv_requested, ret_just_keys)
def get_separator(self, db): return SonicDBConfig.getSeparator("CONFIG_DB")
def get_sep(self, db): return SonicDBConfig.getSeparator(db)
from dump.helper import create_template_dict from dump.match_infra import MatchRequest from swsscommon.swsscommon import SonicDBConfig from dump.match_helper import fetch_acl_counter_oid from .executor import Executor CFG_DB_SEPARATOR = SonicDBConfig.getSeparator("CONFIG_DB") ASIC_DB_SEPARATOR = SonicDBConfig.getSeparator("ASIC_DB") class Acl_Rule(Executor): """ Debug Dump Plugin for ACL Rule Module """ ARG_NAME = "acl_rule_name" def __init__(self, match_engine=None): super().__init__(match_engine) def get_all_args(self, ns=""): req = MatchRequest(db="CONFIG_DB", table="ACL_RULE", key_pattern="*", ns=ns) ret = self.match_engine.fetch(req) acl_rules = ret["keys"] return [key.split(CFG_DB_SEPARATOR, 1)[-1] for key in acl_rules] def execute(self, params): self.ret_temp = create_template_dict(dbs=["CONFIG_DB", "ASIC_DB"]) try: