def pack_delete(request):
    pack_id = ReqParams.one(request, 'pack_id')

    # delete fw_files_storage
    # delete fw_files
    # delete pack_files_storage
    # delete pack_files

    file_list = FwFileDO.search_files_of_pack(pack_id)
    for file in file_list:
        FwFilesStorage.delete(file['file_id'])

    # if len(file_list) > 0:
    FwFileDO.delete_many_of_pack(pack_id)

    pack_info = PackFileDO.fetch_pack(pack_id)
    PackFilesStorage.delete(pack_info['file_id'])

    PackFileDO.delete(pack_id)

    # 保存操作日志
    LogRecords.save('',
                    category='statistics',
                    action='删除固件包',
                    desc='删除指定固件包(ID=%s)的信息,' % pack_id)

    return sys_app_ok_p([])
Example #2
0
    def remove_virtual_pack(pack_id):
        # 获取该固件包关联的所有文件 ID
        files_list = FwFileDO.get_files_of_pack(pack_id)
        file_id_list = [file_item['file_id'] for file_item in files_list]
        # 移除存储桶中的文件内容
        FwFilesStorage.delete_many(file_id_list)

        # 移除该固件包关联的所有文件记录
        FwFileDO.delete_many_of_pack(pack_id)

        # 移除固件包记录
        PackFileDO.delete(pack_id)
Example #3
0
    def remove_pack_proc(self, pack_id, task_id):
        # 获取该固件包关联的所有文件 ID
        files_list = FwFileDO.get_files_of_pack(pack_id)
        file_id_list = [file_item['file_id'] for file_item in files_list]

        # 第一步,总进度条的 0-80%
        # 移除存储桶中,该固件包关联的所有文件
        total_count = len(file_id_list)
        for index, file_id in enumerate(file_id_list):
            if MyTask.is_task_stopped(task_id):
                return
            self._save_task_percentage(task_id, index, total_count, 80.0)
            FwFilesStorage.delete(file_id)

            # print('delete {} of {}'.format(index, total_count))
            # time.sleep(2)
        # FwFilesStorage.delete_many(file_id_list)

        # 第二步,总进度条的 80-85%
        # 移除存储桶中,固件包自身文件
        MyTask.save_task_percentage(task_id, 80.0)
        pack_item = PackFileDO.fetch_pack(pack_id)
        pack_file_id = pack_item['file_id']
        PackFilesStorage.delete(pack_file_id)

        # 第三步,总进度条的 85-95%
        # 移除该固件包关联的所有文件记录
        MyTask.save_task_percentage(task_id, 85.0)
        FwFileDO.delete_many_of_pack(pack_id)

        # 第四步,总进度条的 95-100%
        # 移除该固件包自身记录
        MyTask.save_task_percentage(task_id, 95.0)
        PackFileDO.delete(pack_id)

        # 完成任务
        MyTask.save_task_percentage(task_id, 100.0)