Python3 MAAS API

Python3 MAAS API

我再次尝试弄清楚如何使用 python 查询 MAAS......

我在配置文件中有以下内容......

# /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

运行下面的 curl 请求forbidden似乎告诉我我已经接近了:

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

有人让这个工作了吗?还是我应该重新使用它subprocess来运行客户端?

MAAS Version 2.1.3+bzr5573-0ubuntu1 (16.04.1)

答案1

首先,我注意到你有一个拼写错误data = client.get("nodes", op=list").read()(请注意列表后的“)

但这可能只是打字错误。

如果您删除该,op=list部分,它应该可以工作。

我运行的脚本中有以下内容并且运行良好: nodes=client.get(u"nodes/?hostname="+hostname).read().decode("utf-8")

相关内容