| Summary: | Некорректный ответ package/build_dependency_set на пакет, не имеющий сборочных зависимостей | ||
|---|---|---|---|
| Product: | Infrastructure | Reporter: | Stanislav Levin <slev> |
| Component: | rdb.altlinux.org | Assignee: | Danil Shein <dshein> |
| Status: | CLOSED NOTABUG | QA Contact: | Andrey Cherepanov <cas> |
| Severity: | normal | ||
| Priority: | P5 | CC: | ancieg |
| Version: | unspecified | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
(Ответ для Stanislav Levin на комментарий #0) > Но если в запросе указан пакет, не имеющий сборочных зависимостей, то > фактический ответ: > { > "request_args": { > "branch": "sisyphus", > "packages": [ > "foo" > ], > "archs": [ > "x86_64", > "noarch" > ] > }, > "length": 0, > "packages": [] > } > > то есть как будто его и нет. По-моему, если зависимых пакетов нет, то и возвращать в списке зависимых пакетов ничего не нужно. (Ответ для Stanislav Levin на комментарий #0) > Корректный (на мой взгляд) вариант будет в этом случае: > > { > "request_args": {xxx}, > "length": 1, > "packages": [ > { > "package": "foo", > "length": 0, > "depends": [] > } > ] > } На мой взгляд это выглядит как-то неправильно: зависимых пакетов нет, но в списке указан пакет "foo". К тому же, если зависимых пакетов нет, то и length должна быть равна 0. Если никаких зависимостей не найдено, то и содержимое ответа соответствующее: длина: 0, пакетов: нет. Входные данные (имена пакетов, архитектуры) возвращаются в теле запроса - можно просто сравнить результат с входными данными. |
Согласно документации ответ-SUCCESS на запрос package/build_dependency_set должен содержать следующие поля: { "request_args": {}, "length": 0, "packages": [ { "package": "string", "length": 0, "depends": [ { "name": "string", "version": "string", "release": "string", "epoch": 0, "archs": [ "string" ] } ] } ] } где верхний length - это number of packages found. Но если в запросе указан пакет, не имеющий сборочных зависимостей, то фактический ответ: { "request_args": { "branch": "sisyphus", "packages": [ "foo" ], "archs": [ "x86_64", "noarch" ] }, "length": 0, "packages": [] } то есть как будто его и нет. В итоге приходится делать дополнительную проверку - есть ли мой пакет в списке или нет. То же самое происходит, если запрашивать список пакетов. Корректный (на мой взгляд) вариант будет в этом случае: { "request_args": {xxx}, "length": 1, "packages": [ { "package": "foo", "length": 0, "depends": [] } ] } Пример запроса: https://rdb.altlinux.org/api/package/build_dependency_set?branch=sisyphus&packages=liblmdb