Не удалось создать зону управления в dynatrace с помощью модуля uri ansible

#ansible #dynatrace

Вопрос:

У меня возникли трудности с созданием зоны управления в dynatrace с помощью ансибельного учебника на rhel 7 ниже приведен мой код, а также ожидаемые выходные данные и фактические выходные данные

 uri:
        url: "https://{{ xxxxxxx }}/e/{{ xxxxxxx }}/api/config/v1/managementZones"
        method: POST
        return_content: yes
        validate_certs: no
        status_code: 201,400
        headers:
           Accept: 'application/json'
           Authorization: 'Api-Token {{ xxxxxxxx }}'
        body_format: json
        body: "{{ somejsonoutput }}"
      register: managzone
      run_once: true
 

Я ожидаю, что приведенный выше код создаст зону управления, если она недоступна, но она работает не так, как ожидается.

ожидаемый результат:

 dynatrace_response_source": "Cluster",
        "elapsed": 0,
        "failed": false,
        "frame_options": "xxxxxxx",
        "json": {
            id: "xxxxx"
            name: "xxxxx"
                    }
            }
        },
        "msg": "HTTP Error 400: Bad Request",
        "pragma": "no-cache",
        "redirected": false,
        "status": 400,
 

но ниже приведен фактический объем производства

Выход

 "dynatrace_response_source": "Cluster",
        "elapsed": 0,
        "failed": false,
        "frame_options": "xxxxxxx",
        "json": {
            "error": {
                "code": 400,
                "constraintViolations": [
                    {
                        "location": null,
                        "message": "must not be blank",
                        "parameterLocation": "PAYLOAD_BODY",
                        "path": "name"
                    }
                ],
                "message": "Constraints violated."
            }
        },
        "msg": "HTTP Error 400: Bad Request",
        "pragma": "no-cache",
        "redirected": false,
        "status": 400,
 

Комментарии:

1. Можете ли вы запустить его с помощью «-vv», чтобы получить отладочный вывод, возможно, там видна дополнительная информация.

2. Я быстро попробовал, и вы получаете HTTP 400, когда зона управления уже существует. Для обновления вам нужно использовать PUT вместо POST. Поэтому вам сначала нужно будет запросить существующие зоны управления и выполнить ПУБЛИКАЦИЮ или РАЗМЕЩЕНИЕ соответственно.

Ответ №1:

Похоже, у вас отсутствует один из параметров в теле полезной нагрузки(формат json) или ваша структура json недействительна. Проверьте это в документации.
Одним из обязательных является имя MZ, другие параметры необязательны. Сначала попробуйте создать MZ без правил.