Python3 МААС API

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

У меня есть следующее в файле конфигурации...

# /etc/maasinv/maasinv.ini
[maas]
apikey = FbT9S6S9B3U7y38HKZ:NotRealNunyaNunya:randomkeyblahwhatever
url =  http://<valid IP>:5240/MAAS/api/2.0/

У меня есть следующее в сценарии..

#!/usr/bin/env python3
from apiclient import maas_client
import configparser
config = configparser.ConfigParser()
config.read('/etc/maasinv/maasinv.ini')
APIKEY = config['maas']['apikey']
MAAS_URL = config['maas']['url']
auth = maas_client.MAASOAuth(*APIKEY.split(":"))
client = maas_client.MAASClient(auth, maas_client.MAASDispatcher(), MAAS_URL)
data = client.get("nodes", op=list").read()
print (data)

Ответ, который я получаю...

 urllib.error.HTTPError: HTTP Error 400: BAD REQUEST

Выполнение ниже вихревого запроса дает мне forbidden который, кажется, говорит мне, что я близок:

curl http://<valid IP>:5240/MAAS/api/2.0/nodes/op=list/

Имеет любого полученного это для работы или если я возвращаюсь к использованию subprocess выполнять клиент?

MAAS Version 2.1.3+bzr5573-0ubuntu1 (16.04.1)
0
задан 20 May 2017 в 07:17

1 ответ

Во-первых, я замечаю, что у Вас есть опечатка в data = client.get("nodes", op=list").read() (заметьте "после списка)

, Который, однако, может быть опечаткой только в здесь.

, Если Вы удаляете ,op=list часть, она должна работать.

у меня есть следующее в скрипте, который я запускаю, и оно работает просто великолепно: nodes=client.get(u"nodes/?hostname="+hostname).read().decode("utf-8")

1
ответ дан 3 November 2019 в 05:29

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

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