Ejemplo n.º 1
0
def get_schedules_info(filename):
    # x,y,z都为字典的拆分所产生出来的临时变量
    # 后面会优化
    try:
        r = AutomatorRecorder.getschedule(filename)
        if len(r['schedules']) > 1:
            count = 0
            for i in r['schedules']:
                x = list(i.values())
                y = list(i.keys())
                x[2] = [x[2]]
                y[2] = 'batchlist'
                r['schedules'][count] = [dict(zip(y, x))]
                if count < len(r['schedules']):
                    count = count + 1
        elif len(r['schedules']) == 1:
            x = list(r.values())
            y = list(x[0][0].keys())
            z = list(x[0][0].values())
            for i in range(len(y)):
                if y[i] == 'batchfile':
                    y[i] = 'batchlist'
                    # if not type(z[i]) is list:
                    z[i] = [z[i]]
                r['schedules'] = [dict(zip(y, z))]
        if r:
            return ListReply(r, 0)
        else:
            return 500
    except Exception as e:
        return 500
Ejemplo n.º 2
0
def save_schedules():
    # '{"name":"test","batchlist":["zhuangbeirichang"],"condition":{},"type":"asap"}'
    try:
        obj = request.json
        ScheduleFileName = request.json.get("filename")
        # old_schedule = AutomatorRecorder.getschedule(ScheduleFileName)
        obj.pop("filename")
        save_dict = {"schedules": [obj]}
        if check_valid_schedule(save_dict, is_raise=False):
            AutomatorRecorder.setschedule(ScheduleFileName, save_dict)
            old_schedule = AutomatorRecorder.getschedule(ScheduleFileName)
            return jsonify({"code": 200, "msg": f"{old_schedule}-保存成功"})
        else:
            return jsonify({"code": 500, "msg": f"{save_dict}-保存失败"})
    except Exception as e:
        return jsonify({"code": 500, "msg": f"{e}-保存失败"})
Ejemplo n.º 3
0
 def __init__(self, name: str, pcr: Optional[PCRInitializer]):
     self.pcr = pcr
     self.state = 0
     self.config = {}
     self.SL = []  # 处理后的schedule
     self.run_status = {}  # 运行状态
     self.checked_status = {}  # 存放一个计划是否已经被add过
     self.subs = {}  # 关系表
     self.not_restart_name = []  # record=1,不用重启的列表
     self.always_restart_name = []  # record=2,循环执行的列表
     if name != "":
         self.name = name
         self.schedule = AutomatorRecorder.getschedule(name)
         self._parse()
         self._init_status()
     else:
         self.name = ""
         self.schedule = {}
     self.run_thread: Optional[threading.Thread] = None