首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3 MAAS

Python3 MAAS
EN

Ask Ubuntu用户
提问于 2017-05-20 14:17:51
回答 1查看 489关注 0票数 0

我再一次想办法用python查询MAAS .

配置文件中有以下内容..。

代码语言:javascript
复制
# /etc/maasinv/maasinv.ini
[maas]
apikey = FbT9S6S9B3U7y38HKZ:NotRealNunyaNunya:randomkeyblahwhatever
url =  http://<valid IP>:5240/MAAS/api/2.0/

我在剧本里有以下几点。

代码语言:javascript
复制
#!/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)

我得到的反应是..。

代码语言:javascript
复制
 urllib.error.HTTPError: HTTP Error 400: BAD REQUEST

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

代码语言:javascript
复制
curl http://<valid IP>:5240/MAAS/api/2.0/nodes/op=list/

是否有人让它起作用了,或者我应该回到使用subprocess运行客户端?

代码语言:javascript
复制
MAAS Version 2.1.3+bzr5573-0ubuntu1 (16.04.1)
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2017-06-20 19:28:38

首先,我注意到您在data = client.get("nodes", op=list").read()中有一个错误(注意“后列表”)

不过,这可能只是这里的一个错误。

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

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

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/917125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档