как запросить Маас API с завихрением

Я пытаюсь выяснить, как запросить сервер МААСА с помощью завихрения.

Я начинаю экспериментировать с запросом CLI так, чтобы я мог создать сценарий Python для удаленной команды и запросить, не имея необходимость использовать приложение CLI МААСА.

Конечная цель должна управлять/запрашивать МААСОМ с ansible.

Я попробовал:

curl -u "username:password"  "http://machine/MAAS/api/1.0/nodes/?op=list" 

Ответ был:

Unrecognised signature: GET
0
задан 3 February 2015 в 18:21

3 ответа

Проблема, с которой Вы сталкиваетесь, - то, что МААС требует аутентификации, прежде чем это возвратит список узлов. МААС обычно аутентифицирует запросы API через OAuth, не Базовая аутентификация HTTP , который является что curl -u использование по умолчанию для веб-URL.

К счастью, МААС также обеспечивает клиентскую библиотеку Python, названную apiclient, который включен в python-maas-client пакет. Пользование той библиотекой позволило бы Вам тривиально выпускать запрос с apikey, который можно получить из http://$MAAS_URL/MAAS/account/prefs/. Принятие Вас имеет APIKEY, и MAAS_URL, ниже отрывка демонстрирует, как Вы выбрали бы список:

APIKEY = "foo:bar:baz"
MAAS_URL = "http://my.maas.host/MAAS/api/1.0"

from apiclient import maas_client
auth = maas_client.MAASOAuth(*APIKEY.split(":"))
client = maas_client.MAASClient(auth, maas_client.MAASDispatcher(), MAAS_URL)
print client.get(u"nodes/", "list").read()

Кстати, AIUI curl -X GET является типом запроса curl проблемы по умолчанию.

[*] я верю маркировке пути, поскольку unicode не должен быть необходимым, но существует утверждение в коде, который может быть ошибкой. Сообщаемый https://bugs.launchpad.net/maas / + ошибка/1418158 .

1
ответ дан 6 October 2019 в 02:25

Я посмотрел http://marsweather.ingenology.com/ и нашел этот пример

curl -X GET http://marsweather.ingenology.com/v1/latest/

плюс другой код оболочки с помощью "завихрения". Я думаю, что это запустит Вас. У Вас все еще должны быть инструменты для контакта с JSON, но это кажется из объема для этого вопроса.

0
ответ дан 6 October 2019 в 02:25

Пример почты в API Мааса

desiredSettings = {
    "ip_range_high": "10.30.0.252",
    "ip_range_low": "10.30.0.152",
    "broadcast_ip": "10.30.0.255",
    "name": "eth3",
    "ip": "10.30.0.0",
    "subnet_mask": "255.255.255.0",
    "management": "2",
    "interface": "eth3"
}

#resp = client.post(u"nodegroups/%s/interfaces/" % (cluster_uuid), "new", **desiredSettings)
0
ответ дан 6 October 2019 в 02:25

Другие вопросы по тегам:

Похожие вопросы: