Обощение массовой загрузки пакетов с сервера.

This commit is contained in:
2023-12-17 19:19:59 +03:00
parent d9fca1fa72
commit eefbc25be0
18 changed files with 116 additions and 77 deletions

View File

@@ -219,6 +219,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Загрузить пакет DVM");
DownloadDVMPackage();
break;
case DownloadDVMPackages:
Print("Загрузить пакеты DVM");
DownloadDVMPackages();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
@@ -433,4 +437,19 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
File package_json = dvmPackage.getJsonFile();
response.object = new Pair(Utils.packFile(results_zip), Utils.packFile(package_json));
}
private void DownloadDVMPackages() throws Exception {
Vector<Integer> ids = (Vector<Integer>) request.object;
Vector<Pair<Integer, Pair<byte[], byte[]>>> res = new Vector<>();
for (int dvmPackage_id : ids) {
if (!db.dvmPackages.containsKey(dvmPackage_id))
throw new RepositoryRefuseException("Не найдено пакета тестирования DVM с ключом " + dvmPackage_id);
DVMPackage dvmPackage = db.dvmPackages.get(dvmPackage_id);
File workspace = dvmPackage.getLocalWorkspace();
File results_zip = new File(workspace, "results.zip");
File package_json = dvmPackage.getJsonFile();
res.add(new Pair<>(dvmPackage_id, new Pair(Utils.packFile(results_zip), Utils.packFile(package_json))));
}
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = res;
}
}