gpt4 book ai didi

使用 Foreman 的 API 更新主机的 Python 脚本

转载 作者:太空狗 更新时间:2023-10-30 01:08:09 24 4
gpt4 key购买 nike

我想用 Python 编写一个脚本,给定主机和主机组这两个参数,使用 Foreman API ( http://theforeman.org/api/apidoc/v1/hosts/update.html) 更改主机的主机组。

执行此操作的 cURL 命令如下(有效!):

curl -s -H "Accept:application/json" -X PUT --insecure --negotiate -u : -d "host[hostgroup_id]=ZZZZZ" https://foreman.mydomain.com:443/api/hosts/XXXX

但是现在,我想使用 Python 脚本来完成它。

我使用 Python request 库没有问题,直到我到达必须传递参数的部分。

我正在关注此信息 http://docs.python-requests.org/en/latest/user/quickstart/#passing-parameters-in-urls但显然这不起作用,因为这不是 Foreman 的 API 期望接收参数的方式。

那么,有什么想法可以让我以 Foreman 可以理解的方式传递参数吗?

在此先感谢任何帮助!

最佳答案

抱歉,我找到了方法,但我忘记发布了。下一个代码可以解决这个问题:

def updateHost(host_id, new_hostgroup_id):
url = "https://foreman.mydomain.com:443/api/hosts/" + host_id
payload = {'host[hostgroup_id]': new_hostgroup_id}
headers = {'Accept': 'application/json'}
r = requests.put(url, data=payload, headers=headers, verify=False, uth=HTTPKerberosAuth())
if (r.status_code != requests.codes.ok):
raise BadStatusCodeRequest("HTTP Request status code error: " + r.raise_for_status())

关于使用 Foreman 的 API 更新主机的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24763665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com