Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Package d’applications JET

Une fois le développement de l’application terminé, écrivez le fichier JSON (JavaScript Object Notation) décrivant le contenu à construire et à packager l’application avant de le déployer sur l’équipement. JSON est un format léger d’échange de données. Il est facile pour les humains de lire et d’écrire, et aussi pour les machines d’analyser et de générer. Pour plus de détails, voir https://www.json.org.

Les fichiers JSON sont constitués d’un ensemble d’attributs inclus dans un ensemble d’accolades. Les attributs utilisent deux structures :

  • Une collection de paires clé-valeur.

  • Liste ordonnée de valeurs.

Lisez plus en détail chacun des attributs contenus dans le format JSON pour le packaging des applications.

Attributs de la section principale

Le bloc supérieur du fichier JSON est la section principale du fichier. Il se compose d’attributs obligatoires et facultatifs.

Attributs obligatoires

Le tableau 1 décrit les attributs obligatoires que doivent avoir tous les fichiers JSON pour le packaging d’applications dans la section principale. Voici un exemple de fichier JSON d’application simple contenant uniquement les attributs obligatoires :

Tableau 1 : Attributs obligatoires dans la section principale du fichier JSON

Attribut

Description

Exemples de valeurs

"app-name"

Spécifiez le nom de l’application.

"sample_pyapp"

"app-path"

Spécifiez le chemin vers le répertoire d’implémentation de l’application. Tous les chemins doivent être relatifs au sandbox src.

"python/sample_pyapp"

"language"

Spécifiez la langue utilisée pour développer l’application.

"python", "c", "c++"

"main-scripts"

Il s’agit d’une liste d’attributs. Spécifiez le nom de fichier ou les noms du script principal ou des scripts qui s’exécutent sur l’équipement (ne spécifiez pas le module ici). Les fichiers de script principaux seront déployés sous le chemin /var/db/scripts/jet sur l’équipement.

["foo.py", "bar.py"]

"app-type"

Spécifiez si une application doit être un programme autonome ou un démon.

"standalone" Ou "daemon"

"sign"

Indiquez si la demande doit être signée ou non.

"yes" Ou "no"

"os-type"

Spécifiez si l’application doit être déployée sur l’ancien système d’exploitation Junos (bsd6) ou Junos OS avec FreeBSD (bsd10) mis à niveau.

"bsd6", bsd10ou "bsd11"

"target-arch"

Spécifiez l’architecture cible sur laquelle l’application doit être déployée.

"i386", "powerpc", "octeon", , "xlr"ou "arm"

"description"

Écrivez une brève description (une ligne) de l’application. Cela sera affiché dans la sortie de la show version commande opérationnelle.

"Simple Python test app"

Attributs optionnels

Le tableau 2 décrit les attributs facultatifs que vous pouvez inclure dans la section principale du fichier JSON pour le packaging de l’application. Voici un exemple de section principale avec des attributs obligatoires et facultatifs :

Tableau 2 : Attributs facultatifs dans la section principale du fichier JSON

Attribut

Description

Exemples de valeurs

"c-compiler-flags"

Spécifiez la liste des indicateurs du compiler C, le cas échéant. Les indicateurs de compilation peuvent être définis pour la section principale, les bibliothèques dépendantes (dep-libs) ou les modules Python dépendants (dep-py-modules).

"flag1 flag2 flag3"

"c++-compiler-flags"

Spécifiez la liste des indicateurs de compilation C++, le cas échéant. Les indicateurs de compilation peuvent être définis pour la section principale, les bibliothèques dépendantes (dep-libs) ou les modules Python dépendants (dep-py-modules).

"flag1 flag2 flag3"

"linker-flags"

Spécifiez la liste des indicateurs de linker, le cas échéant. Utilisez ces indicateurs pour spécifier des bibliothèques supplémentaires à relier ou des indicateurs supplémentaires spécifiques à une liaison requis lors de la liaison. Vous pouvez définir des indicateurs spécifiques à chaque linker dans la section principale ou dans la section dep-py-modules.

"flag1 flag2 flag3"

Attributs source

Le tableau 3 présente deux attributs source que vous pouvez utiliser pour spécifier les fichiers source pour le package d’application. Voici un exemple d’application Python avec des fichiers de module supplémentaires à déployer, ainsi que le fichier de script principal :

Tableau 3 : Attributs source que vous pouvez utiliser dans un fichier JSON

Attribut

Description

Exemples de valeurs

"srcs"

Spécifiez la liste des fichiers source supplémentaires. Pour les applications Python, ces fichiers source sont les fichiers de module supplémentaires. Pour les applications C ou C++, ces fichiers source sont les fichiers source à compiler pour générer des lib/binaires. Chaque entrée doit être une paire clé-valeur, où la clé est le chemin des fichiers source et la valeur est un tableau de noms de fichiers source.

"srcs": { 
      "python/sample_pyapp": ["a.py", "b.py"], 
     "python/sample_pyapp/temp": ["temp1.py", "temp2.py"] 
} 

"extn-srcs"

Cette section s’applique uniquement à Python. Spécifiez la liste des fichiers de modules C ou C++ à compiler. Chaque entrée doit être une paire clé-valeur, où la clé est le chemin des fichiers source et la valeur est un tableau de noms de fichiers source.

"extn-srcs": { 
    "python/sample_pyapp": ["foo.c", "bar.c"], 
    "python/sample_pyapp/temp": ["1.cpp", "2.cpp"] 
       }

Bibliothèques dépendantes

Vous devez compiler toutes les bibliothèques dépendantes disponibles dans la section Bibliothèques dépendantes (dep-libs). La bibliothèque générée à partir de ce code JSON est intégrée à l’application. La dep-libs section est un tableau de plusieurs dépendances de bibliothèque, chacune composée des paires clé-nom suivantes :

  • "lib-name" est le nom de la bibliothèque.

  • "lib-path" est le chemin du code source de la bibliothèque dans le sandbox de développement.

  • "srcs" est une paire clé-valeur dans laquelle le chemin est la clé et sa valeur est une liste de fichiers source.

Voici un exemple d’attribut dep-libs :

Modules Python dépendants

L’attribut modules Python dépendants (dep-py-modules) est utilisé uniquement pour les applications Python. Cet attribut contient tous les modules Python dépendants qui doivent être compilés et emballés avec l’application. L’attribut dep-py-modules est un tableau dans lequel vous pouvez spécifier plusieurs dépendances de module Python. Chaque dépendance est composée des objets suivants :

  • "py-module-name" est le nom du module Python.

  • "py-module-path" est le chemin du code source du module Python dans le sandbox de développement.

  • "srcs" est une paire clé-valeur dans laquelle le chemin est la clé et sa valeur est une liste de fichiers source.

  • "extn-srcs" est une paire clé-valeur dans laquelle le chemin est la clé et sa valeur est une liste de fichiers source d’extension Python.

Voici un exemple d’attribut dep-py-modules :