[英]Ansible VM:TypeError: __init__() takes at least 3 arguments (2 given)
我正在学习有关虚拟机和其他虚拟机的信息,我正在尝试配置一个需要file.py才能完全正确配置该计算机的VM(使用Ansible和DigitalOcean API V2)(根据我正在研究的书) ),但当我尝试使用命令python do_api_v1.py时 ,输出显示:
**追踪(最近通话最近):
文件“ do_api_v1.py”,第12行,在do = DoManager(token)TypeError中: init ()至少接受3个参数(给定2个)**
文件do_api_v1.py就像这样:
"""
dependencias:
sudo pip install dopy pyopenssl ndg-httpsclient pyasn1
"""
import os
from dopy.manager import DoManager
import urllib3.contrib.pyopenssl
urllib3.contrib.pyopenssl.inject_into_urllib3()
api_version = os.getenv("DO_API_VERSION")
api_token=os.getenv("DO_API_
do = DoManager(None, 'api_token', 'api_version')
keys = do.all_ssh_keys()
print "ssh key nametid"
for key in keys:
print "%s\t%d" % (key["name"], key["id"])
print "Image name\tid"
imgs = do.all_images()
for img in imgs:
if img["slug"] == "ubuntu-14-04-x64":
print "%s\t%d" % (img["name"], img["id"])
print "Region name\tid"
regions = do.all_regions()
for region in regions:
if region["slug"] == "nyc2":
print "%s\t%d" % (region["slug"], region["id"])
print "Size name\tid"
sizes = do.sizes()
for size in sizes:
if size["slug"] == "512mb":
print "%s\t%d" % (size["slug"], size["id"])
如错误消息所述,您没有将足够的参数传递给DoManager
。 您需要传递一个强制性的client_id
作为第一个参数,并api_key
一个api_key
作为第二个参数。
DoManager需要更多参数。
从文档 :
对于API的V1:
# export DO_CLIENT_ID='client_id'
# export DO_API_KEY='long_api_key'
>>> from dopy.manager import DoManager
>>> do = DoManager('client_id', 'long_api_key')
对于V2:
# export DO_API_VERSION='2'
# export DO_API_TOKEN='api_token'
>>> from dopy.manager import DoManager
>>> do = DoManager(None, 'api_token', api_version=2)
这两个版本都要求您提供API密钥,但是V2不再需要客户端ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.