OVH Community, votre nouvel espace communautaire.

Comment enregistrer nouvelle entrée DNS/ mettre à jour entée DNS avec nouvelle API ?


kelindil
18/02/2015, 18h48
Ah ! Parfait !

C'est effectivement comme cela qu'il fallait procéder. On peut fermer le post, du coup

Merci.

Ju.De
18/02/2015, 15h13
Bonjour,

Tu passe en paramètre de POST un dictionnaire avec tes valeurs.

Si je regarde la doc :*

'POST' : py:func:`Client.call` wrapper

Body parameters can be set either directly in ``_target`` or as keywork
arguments. If an argument collides with a Python reserved keyword,
prefix it with a '_'. For instance, ``from`` becomes ``_from``.

: param string _target: API method to call
: param string _need_auth: If True, send authentication headers. This is
the default
On peux donc passer les différents paramètres du POST comme des arguments de la fonction client.post().

Dès lors,

Code:
# Create new entry
dnsEntry = {u'ip': u'86.6.6.6', u'subDomain': u'', u'zone': u'my.domain.local'}

# Use POST to create entry
client.post('/domain/zone/my.domain.local/dynHost/record/',dnsEntry)
deviens :

Code:
client.post('/domain/zone/tondomaine.ovh/dynHost/record/',
                ip=u'86.6.6.6',
                subDomain=u'')
je viens de tester et c'est passé.

Bonus : À chaque fois que tu fais des modifications dans la zone DNS à travers l'API, il faut faire un POST sur
/domain/zone/{zoneName}/refresh
pour que les modifications soient prises en compte.

Cordialement,

kelindil
18/02/2015, 02h05
Bonjour,

Je tente d'utiliser la nouvelle API d'OVH (https://api.ovh.com/console/) pour faire un script qui gère des entrées DNS, cependant, je n'arrive pas à l'utiliser.

J'utilise un wrapper Python (https://pypi.python.org/pypi/ovh) qui semble très bien mais j'ai un message d'erreur assez étonnant.
Voici un exemple de code:
Code:
# -*- encoding: utf-8 -*-
import ovh

# Create a client using configuration
client = ovh.Client()

# Create new entry
dnsEntry = {u'ip': u'86.6.6.6', u'subDomain': u'', u'zone': u'my.domain.local'}

# Use POST to create entry
client.post('/domain/zone/my.domain.local/dynHost/record/',dnsEntry)
Et pourtant, j'ai comme message d'erreur:
Code:
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/local/lib/python2.7/dist-packages/ovh/client.py", line 250, in post
    return self.call('POST', _target, kwargs, _need_auth)
  File "/usr/local/lib/python2.7/dist-packages/ovh/client.py", line 332, in call
    raise BadParametersError(json_result.get('message'))
ovh.exceptions.BadParametersError: Missing ip parameter while calling creation handler
Comme cela est possible puisque le dictionnaire que je passe contient bien une IP comme demandée ?