Réorganiser les éléments dans les données de configuration à l’aide du protocole XML Junos
Pour la plupart des objets de configuration, l’ordre de création de l’objet ou de ses enfants n’est pas significatif, car le logiciel de gestion de configuration Junos OS stocke et affiche les objets de configuration à des positions prédéterminées dans la hiérarchie de configuration. Toutefois, certains objets de configuration, tels que les stratégies de routage et les filtres de pare-feu, sont constitués d’éléments qui doivent être traités et analysés séquentiellement pour produire le comportement de routage souhaité. Lorsqu’une application cliente utilise le protocole de gestion XML Junos pour ajouter un nouvel élément à un jeu ordonné, l’élément est ajouté à la liste existante d’éléments. L’application cliente peut ensuite réorganiser les éléments, le cas échéant.
Dans une session de protocole XML Junos avec un périphérique exécutant Junos OS, pour modifier l’ordre des éléments de configuration dans un jeu ordonné, une application cliente inclut d’abord les éléments de balise décrits dans Création, modification ou suppression d’éléments de configuration à l’aide du protocole XML Junos. Si vous utilisez des éléments de balise XML Junos, l’application émet l’élément de balise conteneur qui représente l’ensemble ordonné et entoure l’élément de balise pour chaque identificateur de l’élément de configuration en mouvement. Dans les exemples suivants, l’élément de balise d’identificateur est appelé <name>
.
Pour déplacer un élément existant à la première position dans un jeu ordonné, l’application inclut l’attribut dans la balise conteneur d’ouverture insert="first"
de cet élément.
<configuration> <!-- opening tag for each parent of the set --> <ordered-set insert="first"> <name>identifier-for-moving-object</name> </ordered-set> <!-- closing tag for each parent of the set --> </configuration>
Pour déplacer un élément existant vers une position relative à un autre élément, l’application inclut l’attribut ou insert="after"
dans la balise conteneur d’ouverture pour indiquer la nouvelle position de l’élément insert="before"
mobile par rapport à un autre élément de référence dans le jeu. Pour identifier l’élément de référence, il inclut chacun des identificateurs de l’élément de référence en tant qu’attribut dans la balise conteneur d’ouverture pour le jeu ordonné.
Dans l’exemple suivant, les éléments de l’ensemble ont un identificateur, appelé <name>
:
<configuration> <!-- opening tag for each parent of the set --> <ordered-set insert="(before | after)" name="referent-value"> <name>identifier-for-moving-object</name> </ordered-set> <!-- closing tag for each parent of the set --> </configuration>
Dans l’exemple suivant, chaque élément de l’ensemble possède deux identificateurs. La balise d’ouverture apparaît sur deux lignes pour des raisons de lisibilité uniquement :
<configuration> <!-- opening tag for each parent of the set --> <ordered-set insert="(before | after)" identifier1="referent-value" identifier2="referent-value"> <identifier1>value-for-moving-object</identifier1> <identifier2>value-for-moving-object</identifier2> </ordered-set> <!-- closing tag for each parent of the set --> </configuration>
L’attribut insert
peut être combiné avec l’attribut or active
pour désactiver ou réactiver l’élément inactive
de configuration lors de sa réorganisation. Pour plus d’informations, consultez Modification simultanée de l’état d’activation d’un élément de configuration avec d’autres modifications à l’aide du protocole XML Junos.
Lorsque vous utilisez des commandes du mode de configuration pour réorganiser les éléments, l’application spécifie la commande équivalente à la insert
commande du mode de configuration de l’interface de ligne de commande.
<configuration-set> insert statement-path-to-object identifier-for-moving-object (before | after) referent-value </configuration-set>
L’attribut insert="first"
n’a pas de commande de mode de configuration CLI équivalente.
L’opération de réorganisation n’est pas disponible lorsque du texte ASCII formaté ou JSON est utilisé pour représenter les données de configuration.
L’exemple suivant montre comment déplacer un filtre de pare-feu appelé , défini au niveau de la hiérarchie, puis le placer après un autre filtre appeléolder-filter
newer-filter
à l’aide d’éléments de [edit firewall filter]
balise XML Junos. Cette opération équivaut à la commande de mode de configuration suivante :
[edit] user@host# insert firewall family inet filter older-filter after filter newer-filter

L’exemple suivant montre comment déplacer un filtre de pare-feu appelé , défini au niveau de la hiérarchie, puis le placer après un autre filtre appeléolder-filter
newer-filter
à l’aide des commandes du mode de [edit firewall filter]
configuration :
<rpc> <load-configuration action="set" format="text"> <configuration-set> insert firewall family inet filter older-filter after filter newer-filter </configuration-set> </load-configuration> </rpc>
L’exemple suivant montre comment déplacer un lien virtuel OSPF défini au niveau de la [edit protocols ospf area area]
hiérarchie. Le lien avec des identifiants et se déplace avant le lien avec des neighbor-id 192.168.0.3
identifiants et transit-area 10.10.10.1
transit-area 10.10.10.2
.neighbor-id 192.168.0.5
Cette opération équivaut à la commande de mode de configuration suivante :
[edit protocols ospf area area] user@host# insert virtual-link neighbor-id 192.168.0.3 transit-area 10.10.10.1 before virtual-link neighbor-id 192.168.0.5 transit-area 10.10.10.2
Application cliente
<rpc> <load-configuration> <configuration> <protocols> <ospf> <area> <name>area</name> <virtual-link insert="before" neighbor-id="192.168.0.5" transit-area="10.10.10.2"> <neighbor-id>192.168.0.3</neighbor-id> <transit-area>10.10.10.1</transit-area> </virtual-link> </area> </ospf> </protocols> </configuration> </load-configuration> </rpc>
Serveur de protocole XML Junos
<rpc-reply xmlns:junos="URL"> <load-configuration-results> <load-success/> </load-configuration-results> </rpc-reply>