CoolRaoul Posté(e) le 25 février 2024 Posté(e) le 25 février 2024 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 0 Citer
cadkey Posté(e) le 25 février 2024 Posté(e) le 25 février 2024 (modifié) 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é le 25 février 2024 par cadkey 0 Citer
CoolRaoul Posté(e) le 25 février 2024 Auteur Posté(e) le 25 février 2024 (modifié) 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é le 25 février 2024 par CoolRaoul 0 Citer
cadkey Posté(e) le 25 février 2024 Posté(e) le 25 février 2024 (modifié) 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é le 25 février 2024 par cadkey 0 Citer
CoolRaoul Posté(e) le 25 février 2024 Auteur Posté(e) le 25 février 2024 (modifié) 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 : 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é le 25 février 2024 par CoolRaoul 0 Citer
CoolRaoul Posté(e) le 25 février 2024 Auteur Posté(e) le 25 février 2024 (modifié) 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é le 25 février 2024 par CoolRaoul 0 Citer
Messages recommandés
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.