summaryrefslogtreecommitdiff
path: root/support/packet_generator/overwrite_yaml.py
blob: cfb661361e89401369750c59a2453e598f4efd39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import os
import yaml

class OverwriteYaml:
    def __init__(self, path_dict):
        self.traffic_playback_workpath = path_dict["traffic_playback_workpath"]
        self.data_path = os.path.join(self.traffic_playback_workpath, "traffic_pcap")

    def replace_from_yaml(self, yaml_name, pcap_name, clients_start="10.50.36.1", clients_end="10.50.36.1", servers_start="10.50.66.1", servers_end="10.50.66.1"):
        # 组织yaml路径、pcap路径
        yaml_abs_path = os.path.join(self.data_path, yaml_name)
        pcap_abs_path = os.path.join(self.data_path, pcap_name)
        #print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"), str(datetime.now().microsecond)[:3], yaml_abs_path, pcap_abs_path)
        with open(yaml_abs_path, "r", encoding="utf-8") as f:
            result = yaml.load(f.read(), Loader=yaml.FullLoader)
        # 修改pcap文件路径
        result[0]["cap_info"][0]["name"] = pcap_abs_path
        result[0]["generator"]["clients_start"] = clients_start
        result[0]["generator"]["clients_end"] = clients_end
        result[0]["generator"]["servers_start"] = servers_start
        result[0]["generator"]["servers_end"] = servers_end
        # 修改后重写数据
        with open(yaml_abs_path, "w", encoding="utf-8") as f:
            yaml.dump(result, f)
        # print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"), str(datetime.now().microsecond)[:3], result)