J'essaie d'utiliser le API Linode avec ceci linode-python SDK pour gérer mes serveurs Linode. Cependant, j'obtiens un TypeError que je ne comprends pas lorsque j'exécute l'application linode-disk-list() comando.
C'est ainsi que l'API linode-python définit la méthode que j'appelle. Comme vous pouvez le voir, un LinodeID est requis.
@__api_request(required=['LinodeID'],
returns=[{u'CREATE_DT': u'YYYY-MM-DD hh:mm:ss.0',
u'DISKID': 'Disk ID',
u'ISREADONLY': '0 or 1',
u'LABEL': 'Disk label',
u'LINODEID': 'Linode ID',
u'SIZE': 'Size of disk (MB)',
u'STATUS': 'Status flag',
u'TYPE': "in ['ext3', 'swap', 'raw']",
u'UPDATE_DT': u'YYYY-MM-DD hh:mm:ss.0'}])
def linode_disk_list(self, request):
"""Lists all disk images associated with a Linode."""
pass
Mon code crée une instance de l'API Linode Python selon les instructions du SDK et appelle ensuite la méthode linode_disk_list :
from linode import api as linode_api
api = linode_api.Api(<my_api_key>)
linode_id = 1800300
disks = api.linode_disk_list(linode_id)
Mon code génère cette erreur :
TypeError: wrapper() takes exactly 1 argument (2 given)
Je sais que je crée l'instance d'api correctement car je l'utilise pour appeler avec succès la méthode linode_ip_list avant d'appeler la méthode disk list.
Juste pour voir ce qui se passe, si je ne fournis pas l'argument linode_id, j'obtiens cette erreur :
linode.api.MissingRequiredArgument: 'LinodeID'
Si j'appelle la méthode avec un ID de linode, l'erreur dit que je lui donne deux arguments. Mais si je ne lui donne aucun argument, elle indique qu'il lui manque un argument. À ce stade, je ne sais pas si l'ID de nœud de ligne doit être un nombre entier ou une chaîne de caractères, mais j'obtiens la même erreur dans les deux cas. Comment puis-je appeler cette méthode pour ne pas obtenir l'argument TypeError ?
Gracias.