示例#1
0
    def load_rules(self, project_id, force_reload=False):
        """Loads policy_path's rules.

        Policy file is cached and will be reloaded if modified.

        :param force_reload: Whether to reload rules from config file.
        """

        if force_reload:
            self.use_conf = force_reload

        if self.use_conf:
            if not self.metadata_path:
                self.metadata_path = self._get_metadata_path(project_id)

            if self.metadata_path != None and self._load_metadata_file(
                    self.metadata_path, force_reload,
                    overwrite=self.overwrite) == True:
                self.current_adapter = BaseAdapter.get_adapter_by_policy_info(
                    self.current_policy, project_id)
                LOG.info("current_policy = %s" % self.current_policy)
            else:
                LOG.info(
                    "Metadata file not found or format error, disable the multi-policy feature."
                )

            if self.current_adapter != None:
                self.current_adapter.load_rules(force_reload)
示例#2
0
文件: op_and.py 项目: hsluoyz/patron
    def set_details(self, policy_info, project_id = ""):
        self.loaded = False
        self.name = policy_info.get("name")
        self.type = policy_info.get("type")
        self.version = policy_info.get("version")

        # Parse the adapter names from "content" field.
        adapter_names = re.split("[,]", policy_info.get("content", "").replace(" ", ""))
        for adapter_name in adapter_names:
            if (policy_info.has_key(adapter_name)):
                self.adapters.append(BaseAdapter.get_adapter_by_policy_info(policy_info[adapter_name], project_id))

        self.project_id = project_id

        self.policy_path = None
        self.use_conf = True
示例#3
0
    def set_details(self, policy_info, project_id=""):
        self.loaded = False
        self.name = policy_info.get("name")
        self.type = policy_info.get("type")
        self.version = policy_info.get("version")

        # Parse the adapter names from "content" field.
        adapter_names = re.split(
            "[,]",
            policy_info.get("content", "").replace(" ", ""))
        for adapter_name in adapter_names:
            if (policy_info.has_key(adapter_name)):
                self.adapters.append(
                    BaseAdapter.get_adapter_by_policy_info(
                        policy_info[adapter_name], project_id))

        self.project_id = project_id

        self.policy_path = None
        self.use_conf = True
示例#4
0
文件: policy.py 项目: hsluoyz/patron
    def load_rules(self, project_id, force_reload=False):
        """Loads policy_path's rules.

        Policy file is cached and will be reloaded if modified.

        :param force_reload: Whether to reload rules from config file.
        """

        if force_reload:
            self.use_conf = force_reload

        if self.use_conf:
            if not self.metadata_path:
                self.metadata_path = self._get_metadata_path(project_id)

            if self.metadata_path != None and self._load_metadata_file(
                    self.metadata_path, force_reload, overwrite=self.overwrite) == True:
                self.current_adapter = BaseAdapter.get_adapter_by_policy_info(self.current_policy, project_id)
                LOG.info("current_policy = %s" % self.current_policy)
            else:
                LOG.info("Metadata file not found or format error, disable the multi-policy feature.")

            if self.current_adapter != None:
                self.current_adapter.load_rules(force_reload)