Ошибка запроса SolarWinds N-central 5000 с использованием zeep

Я пытаюсь добавить клиента с помощью zeep в Python3 в N-central Solarwind и получаю ошибку 5000 Query failed.

      def addcustomer(request):
client = Client('http://server-name.com/dms/services/ServerEI?wsdl')
settings_type=client.get_type('ns0:T_KeyPair')
value = settings_type(
    'customer_name','id_'
    )
response =client.service.CustomerAdd(Username=USER,Password=PASS, Settings=value)
return render(request,'ncentral/addcustomer.html',locals())

Это то, что написано в Документах

int customerAdd (String username,
String password,
List settings)
выбрасывает RemoteException.
Добавляет нового клиента или сайт в N-central MSP.
Параметры:
username - имя пользователя MSP N-central.
пароль - Соответствующий пароль MSP N-central.
settings - Список настроек, хранящихся в Списке объектов EiKeyValue. Ниже приведен список допустимых ключей и значений.
Обязательное (Ключевое) имя клиента - (Значение) Желаемое имя для нового клиента или сайта. Максимум 120 символов.
Обязательный (ключ) parentid - (Значение) идентификатор (клиента) родительской сервисной организации или родительского клиента для нового клиента / сайта.
(Ключ) почтовый индекс / почтовый индекс - (Значение) Почтовый индекс / почтовый индекс клиента.
(Ключ) street1 - (Значение) Адресная строка 1 для покупателя. Максимум 100 символов.
(Ключ) street2 - (Значение) Адресная строка 2 для покупателя. Максимум 100 символов.
(Ключ) город - (Значение) Город заказчика.
(Ключ) штат / провинция - (Значение) Штат / провинция клиента.
(Ключ) телефон - (Значение) Номер телефона заказчика. (Ключ) страна - (Значение) Страна Заказчика. Двухсимвольный код страны, см. Http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 для получения списка кодов стран.
(Ключ) externalid - (Значение) Идентификатор внешней ссылки.
(Ключ) имя - (Значение) имя контактного лица с клиентом.
(Ключ) lastname - (Значение) Фамилия контактного лица клиента.
(Ключ) заголовок - (Значение) Должность контактного лица с клиентом.
(Ключевой) отдел - (Ценность) Отдел по работе с клиентами.
(Ключ) contact_telephone - (Значение) Телефон контактного лица клиента.
(Ключ) ext - (Значение) Добавочный номер телефона контактного лица.
(Ключ) адрес электронной почты - (Значение) адрес электронной почты контактного лица клиента. Максимум 100 символов.
(Ключ) тип лицензии - (Значение) Тип лицензии по умолчанию для новых устройств для клиента. Должен быть «Профессиональный» или «Существенный». По умолчанию установлено «Essential».

1 ответ

Решение

Формат был неправильным, следующий код работал у меня

      def addcustomer(request):
    client = Client('http://server-name/dms/services/ServerEI?wsdl')
    value = [
        {
            'Key': 'customername',
            'Value': 'testing'
        },
        {
            'Key': 'parentid',
            'Value': '123'
        },
    ]
    response = client.service.CustomerAdd(Username=USER, Password=PASS, Settings=value)
    return render(request, 'ncentral/customeradd.html', locals())
Другие вопросы по тегам