De temps à autre, j’ai besoin de décompiler des blueprints réalisés dans des contextes différents pour ré-utiliser des scripts que je n’ai pas exporté ou ajouté sur un git.
L’ouverture d’un blueprint exporté en json et sa lecture peuvent s’avérer assez fastidieuse. Il existe, avec Self-Service, une ligne de commande permettant de décompiler un blueprint à partir d’un fichier.
Pour l’environnement, j’ai un calm-dsl qui tourne sous forme d’un container Docker. Plusieurs articles sont disponibles pour le setup de Calm-DSL, comme cette vidéo de Nutanix University Calm DSL – Workstation Setup
Pour décompiler mes blueprints à partir d’un json existant, je procède de la manière suivante :
1. Uploader les blueprints sur le container Docker
Pousser les bluperints sur le container docker en question dans /tmp par exemple, via le Docker Desktop ou via CLi :
2. Exécuter la commande de décompile :
J’exécute ensuite en SSH la commande pour décompiler le blueprint à partir du fichier indiqué en argument. La syntaxe est la suivante :
calm decompile bl --file /tmp/myblueprint-file.json
Dans mon cas, la commande va produire la sortie suivante :
3. Récupérer mes fichiers
Mon blueprint étant maintenant décompilé correctement, je peux accéder à mes fichiers.
Ces derniers ont été décompilés dans mon container local à la racine :
Je peux donc les exporter et les ouvrir depuis ma machine. J’ai donc un répertoire scripts avec l’ensemble des scripts exportés du blueprint .
Je peux manipuler et retravailler plus facilement mes scripts que parcourir le json exporté ou devoir réimporter le blueprint dans une nouvelle GUI Self-Service (Prism Central ou Self-Service VM).
Cette action peut se faire sans connexion à un Prism Central en se basant uniquement sur une connexion en cache dans le calm-dsl init.