繁体   English   中英

Ansible VM:TypeError:__init __()至少接受3个参数(给定2个)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM