Python en un langage dynamique, tu peux patcher à tout moment le code de ton application, par exemple avec du currying (ajouter des méthodes dynamiquement à un objet)... en cours de fonctionnement !
Il y a bien un eval en python...
Autre piste: stocker les procédures python dans des grosses string (genre blob ou text dans la base de données), et utiliser un process.exec(python3 )... si tu mets un shebang à ton code dans la DB, tu peux créer un fichier temporaire avec le contenu de ton champs et l'executer directement avec process.exec - il doit y avoir un équivalent ssh dans paramiko. (ansible fait plus ou moins comme ça).
Ansible est une bonne piste aussi: ça fait tout ça et bien plus !
Tu géres un fichier hosts avec les adresses de et IoT
Ansible fait un inventaire des ressources pour toi quand il se connecte
Tu peux analyser cet inventaire et voir si il y a des décisions à prendre
Tu crées une liste de rôles pour les tâches les plus courantes
Ton appli automatise les appels aux procédures selon les besoins
En plus, tu peux utiliser la base SQLite directement comme liste de hosts !
[^] # Re: Self debug
Posté par François GUÉRIN (Mastodon) . En réponse au message Référencer du code dans une BdD ?. Évalué à 2. Dernière modification le 13 juillet 2020 à 23:12.
Python en un langage dynamique, tu peux patcher à tout moment le code de ton application, par exemple avec du currying (ajouter des méthodes dynamiquement à un objet)... en cours de fonctionnement !
Il y a bien un eval en python...
Autre piste: stocker les procédures python dans des grosses string (genre blob ou text dans la base de données), et utiliser un process.exec(python3 )... si tu mets un shebang à ton code dans la DB, tu peux créer un fichier temporaire avec le contenu de ton champs et l'executer directement avec process.exec - il doit y avoir un équivalent ssh dans paramiko. (ansible fait plus ou moins comme ça).
Ansible est une bonne piste aussi: ça fait tout ça et bien plus !
En plus, tu peux utiliser la base SQLite directement comme liste de hosts !
Courage !