Использование curl в качестве теста

Я пишу конфигурацию Puppet для автоматизации создания ресурса репозитория Elastic Search. К сожалению, насколько я могу судить, нет способа указать эту конфигурацию в конфигурационном файле Elastic Search YAML, поэтому я застрял в HTTP и зависании. В качестве ресурсов я объявлял следующее:

file { 'curator_repository_config': path => "${elasticsearch::install_dir}/config/s3-repository.json", owner => $elasticsearch::user, group => $elasticsearch::user, mode => '0400', content => template('chromeriver/curator/s3-repository.json.erb'), } exec { 'create_es_repository': command => "curl -is -X PUT 'http://localhost:9200/_snapshot/s3' -d @${elasticsearch::install_dir}/config/s3-repository.json", unless => "curl -is -X GET 'http://localhost:9200/_snapshot/s3'", path => '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin', user => $elasticsearch::user, require => [ Service['elasticsearch'], File['curator_repository_config'] ] } 

Понимание конфигурации Puppet не обязательно, чтобы ответить на этот вопрос, но выше, по существу, создает файл с именем s3-repository.json который содержит сведения о конфигурации, которые в конечном итоге используются в POST для Elastic Search.

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

 #!/bin/bash if ! curl -is -X GET 'http://localhost:9200/_snapshot/s3' &>/dev/null; then curl -is -X PUT 'http://localhost:9200/_snapshot/s3' @/path/to/s3-repository.json fi 

Проблема, с которой я сталкиваюсь, заключается в том, что curl возвращает 0 для 404 в запросе GET . Я хотел бы иметь curl return 1 если ответ является ответом не-200.

Есть ли простой способ сделать это с помощью curl ?

Interesting Posts

чтение дескриптора устройства / 64, ошибка -71

Как изменить подстановки шрифтов в kpdf?

Как перебрать каталоги и очистить скрипт bash

Установка GRUB2 на внешний жесткий диск без живого компакт-диска

Использование предела iptables -m в противоположном направлении

Связать мои скрипты, чтобы сделать установщик в Unix?

Управление дисковым пространством на серверах

vmstat – столбец r, означает ли это количество процессов или потоков

Существует ли типичный способ передачи пароля в файл Systemd Unit?

Несколько интерфейсов Lan на одной виртуальной машине вместо нескольких виртуальных машин

Linux EXT 4: Как просмотреть файлы, которые занимают группу блоков?

Найти шаблон из одного файла, указанного в другом

Где я могу найти индекс опций preseed?

Ubuntu wifi подключается и работает в течение 5 минут, затем перестает работать, оставаясь подключенным, нужна помощь

Предполагается, что проводка через беспроводную сеть для локальной подсети используется NetworkManager

Linux и Unix - лучшая ОС в мире.