Aller au contenu

synowebapi : aidez-moi à trouver mon erreur


Messages recommandés

Bonjour à tous !

Ma commande :

$ synowebapi  --exec api=SYNO.Virtualization.API.Host method=get guest_name=ubu1

La response: 
[Line 265] Not a json value: ubu1
[Line 295] Exec WebAPI:  api=SYNO.Virtualization.API.Host, version=1, method=get, param={"guest_name":"ubu1"}, runner=SYSTEM_ADMIN
{
   "error" : {
      "code" : 103
   },
   "httpd_restart" : false,
   "success" : false
}

 

code 103: "The requested method does not exist"  selon le Synology Virtual Machine Manager API Guide

 

Je ne comprends pas

 

Lien vers le commentaire
Partager sur d’autres sites

J'utilise diverse API Synology, Srm, surveillance station. Souvent la documentation n'est pas à jour concernant le numéro de version.

Essaie version=2 etc.

$ synowebapi --exec api=SYNO.Virtualization.API.Host version=2 method=get guest_name=ubu1

Modifié par cadkey
Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, cadkey a dit :

Essaie  version=2 etc.

Je serai surpris que ça marche pour toi 🤨

Chez moi ça donne "code 104" cette fois ("The requested version does not support the function.")

Il y a 1 heure, cadkey a dit :

Souvent la documentation n'est pas à jour concernant le numéro de version.

Ça en effet c'est possible par contre : "© 2015-2019 Synology Inc. All rights reserved"

par acquis de conscience j'ai testé de 1 à 20

for v in {1..20} ; do synowebapi ... ; done

sans succes

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Comme je l'ai ecrit, sur les API Synology que j'utilise, le numéro de version est souvent erroné, dû à des mises à jour de l'API je suppose. Tu en doutes, pas grave^^

Dans ton cas, as-tu regardé la 1ere erreur indiquée, json value.

Modifié par cadkey
Lien vers le commentaire
Partager sur d’autres sites

il y a 27 minutes, cadkey a dit :

sur les API Synology sur j'utilise, le numéro de version est souvent erroné, dû à des mises à jour de l'API je suppose.

Le concept de "version" dans une API REST est de maintenir la compatibilité ascendante. Ca permet de continuer à utiliser les anciennes versions, même si des plus récentes implémentent des évolutions incompatibles, sous réserve de la stipuler explicitement (version=<n>) dans l'invocation.  Si on ne le fait pas c'est la version par défaut (la plus récente) qui est activée.

La documentation indique explicitement dans le cas de l'API "SYNO.Virtualization.API.Host" qu'elle documente la 1 :

image.png.b5569e9aa01d2c07177afc1b5b3ba653.png

Et même si une version 2 ou plus avait été implémentée depuis 2019 (ce qui n'est apparemment pas le cas vu le retour la "code 104" pour les numéros supérieurs) la version 1 serait toujours disponible et accessible en la ciblant explicitement.

il y a 27 minutes, cadkey a dit :

Dans ton cas, reviens à la 1ere erreur indiquée, json value.

Non, entre temps j'ai pu vérifier que c'est juste un warning de syntaxe. (j'ai oublié de venir le signaler ici).

En forçant les quotes pour faire plaisir au parser JSON, comme ceci

guest_name='"ubu1"' 

au lieu de

guest_name="ubu1" 

il disparait

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Trouvé !!!

Je suis trop c**

J'utilisais l'API "SYNO.Virtualization.API.Host" (qui n'implémente que la méthode "get" et concerne le NAS lui-même et pas les VMs) alors qu'il s'agit de méthodes de l'API "SYNO.Virtualization.API.Guest" (j'ai loupé le passage d'une à l'autre dans la doc)

 

 

**EDIT**

Par contre ça reste bien limité. Ce que je cherchais à faire est un suspend/resume programmé.

L'API pour cela pour ne peut être que "SYNO.Virtualization.API.Guest.Action" mais elle n'implémente que "poweron", "poweroff" et "shutdown"  😕

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.