Удаление артефактов с помощью JFrog CLI дает "200 OK", но артефакты не удаляются - PullRequest
2 голосов
/ 03 августа 2020

Я создал AQL, который дает мне ряд артефактов, которые я хочу удалить из Artifactory. Я могу запустить команду поиска с помощью jfrog-cli и получить правильный список артефактов:

jfrog rt s --spec search-aql.json

Когда я пытаюсь удалить те же артефакты с тем же AQL, все выглядит нормально:

  • Перечислены артефакты
  • У меня возникает вопрос, удалять их или нет.
  • Я отвечаю «да», и команда продолжает регистрировать удаление каждого item.

Кажется, что каждый элемент возвращен и напечатан на моей консоли, за которым следует это сообщение:

[Error] Artifactory response: 200 OK

Двоичные файлы также выводятся на консоль, поэтому вывод консоли действительно беспорядочно.

В итоге я получаю сводку:

{
  "status": "failure",
  "totals": {
    "success": 0,
    "failure": 68
  }
}
[Error] Artifactory response: 200 OK

С тем же пользователем я могу удалять отдельные артефакты с помощью REST API, поэтому у пользователя есть необходимые права для удаления.

Я использую версию 1.38.2 JFrog CLI и 7.2.1 Artifactory.

Может ли кто-нибудь помочь мне понять, что не так или как отладить эту проблему?

Обновление 2020/08/06: при настройке файла журнала vel для отладки, как это предлагает @Prostagma, я получаю две дополнительные строки журнала для каждого артефакта. Вот пример регистрации двух артефактов:

[Info] [Thread 1] Deleting <path>/<artifact>.jar.sha512
[Debug] Sending HTTP DELETE request to: https://repo.enonic.com/<path>/<artifact>.jar.sha512
[Error] Artifactory response: 200 OK
<sha512 hash>
[Info] [Thread 0] Deleting <path>/<artifact>.jar
[Debug] Sending HTTP DELETE request to: https://repo.enonic.com/<path>/<artifact>.jar
[Error] Artifactory response: 200 OK
<binary contents of <artifact>.jar

1 Ответ

1 голос
/ 08 августа 2020

Более подробный ответ тем, кто столкнется с этой проблемой в будущем -

Погрузившись в код, мы видим, что CLI ожидает получить статус 204 от Artifactory после удаления: https://github.com/jfrog/jfrog-client-go/blob/v0.12.0/artifactory/services/delete.go#L110

В некоторых установках может быть прокси-сервер, который изменяет коды ответа, например, когда Artifactory возвращает 204, он может изменить код состояния на 200.

Убедитесь, что ваш прокси не изменяет коды состояния, возвращаемые Artifactory.

...