Exemplo n.º 1
0
    def from_json(cls, json_info, lists):
        """
        Generate object from JSON.
        :return:
        """
        new_sequence = []
        for sequence in json_info["sequences"]:
            tmp = Sequence.from_json(sequence, lists)
            new_sequence.append(tmp)
        json_info["sequences"] = new_sequence

        id = json_info["definitionId"]
        description = json_info["description"]
        name = json_info["name"]
        references = json_info.get("references")
        if json_info.get("defaultAction"):
            if type(json_info["defaultAction"]) == dict:
                defaultAction = json_info["defaultAction"]["type"]
            else:
                defaultAction = json_info["defaultAction"]
        else:
            defaultAction = None
        sequence = json_info["sequences"]

        return cls(name, description, sequence, defaultAction, id, references)
Exemplo n.º 2
0
    def from_json(cls,config,lists):
        """
        Generate object from JSON.
        :return:
        """
        new_sequence=[]
        for sequence in config["sequences"]:
            tmp = Sequence.from_json(sequence,lists)
            new_sequence.append(tmp)
        config["sequences"] = new_sequence

        id = config["definitionId"]
        name = config["name"]
        description = config["description"]
        references = config.get("references")
        defaultAction = config["defaultAction"]["type"]
        sequence = config["sequences"]
        return cls(name,description,defaultAction,sequence,id,references)

        pass
Exemplo n.º 3
0
    data_prefix_dest = DataPrefix(name="Prefix_dest2",
                                  prefix_list=prefix_list2,
                                  is_ipv6=False)

    # 创建Policer限速规则
    pc = Policer("SpeedLimit1", rate="150000", exceed="drop", burst="15000")

    # 创建Site列表

    site = Site("TestSite2", ["100", "1000-2000"])

    # 创建VPN列表

    vpn = Vpn("TestVPN2", ["10"])

    sq = Sequence(1, "Custom", "data", "accept", "ipv4", match=[], actions=[])
    # 创建Match规则
    sq.add_match("sourceDataPrefixList", data_prefix_source)
    sq.add_match("destinationDataPrefixList", data_prefix_dest)
    # 创建Action规则
    sq.add_action("set", "policer", pc)
    sq.add_action("nat", "useVpn", "0")
    sq.add_action("nat", "fallback", "")
    print(sq.to_json())

    # 创建Data Policy
    dp = DataPolicy("NAT_Data_policy2", "NAT", [sq], default_action="accept")

    # 创建Main Policy

    main_policy = MainPolicy(name="API_Policy",