示例#1
0
 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")
示例#3
0
 def get_sep(self, db):
     return SonicDBConfig.getSeparator(db)
示例#4
0
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: