Exemple de PUT sur confd avec python requests

Added by Michel Renon 4 months ago

Bonjour,
J'ai une question concernant l'envoi de requetes PUT à confd :
je souhaite modifier le groupe destinataire de l'appel entrant.
le code est en python, avec la librairie requests.

Sur l'appel entrant id 2, je souhaite modifier la destination vers le groupe id 8.

je fais une requete PUT avec les paramètres suivants :
url = 'https://192.168.0.49:9486/1.1/incalls/2'
headers : {
'Accept': 'application/json',
'X-Auth-Token': u'8ebd...cc05f'
},

data : {
'incall_id': 2,
'body': {
'id': 2,
'destination': {
'group_id': 8,
'type': 'group',
}
},
}

'verify': False # car mon serveur interne n'a pas de certificat

Et j'ai une réponse 500.

En allant voir le log du serveur confd, j'ai les infos :
key error 'destination'

et en demandant l'affichage de la variable 'form' du fichier
/usr/lib/python2.7/dist-packages/xivo_confd/plugins/incalls/resource.py line 69,
form est un OrderedDict vide.

Donc, ma requete PUT a son paramètre 'data' incorrect, mais je n'ai aucune idée de comment le corriger.

Merci pour toute aide.
Michel


Replies (3)

RE: Exemple de PUT sur confd avec python requests - Added by Pascal Cadotte-Michaud 4 months ago

Bonjour,

voici une ligne avec curl qui retourne 204

curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'X-Auth-Token: bdec686b-8a8a-473c-bb4b-699e68cce39a' -d '{ \ 
   "destination": { \ 
     "type": "group", \ 
     "group_id": 12 \ 
   } \ 
 }' 'https://pcm-dev-0:9486/1.1/incalls/1'

dans ton body il y a un niveau de trop.

{
  incall_id:2,
  body: {BODY}
}

seulement BODY devrait être présent

et le champ id est redondant puisqu'il est dans l'URL mais je crois que xivo-confd va l'ignorer.

RE: Exemple de PUT sur confd avec python requests - Added by François Blackburn 4 months ago

Merci Michel, tu viens de trouver un petit bug en passant par la #6763 :)
Mais comme dit Pascal, ton body n'est pas bon.

RE: Exemple de PUT sur confd avec python requests - Added by Michel Renon 4 months ago

Merci beaucoup, ça marche maintenant !
j'ai du corriger le body, mais aussi ajouter le "content-type" et bien sur passer les données en json... :-)

Michel

(1-3/3)