Cette section explique comment créer une API parser à extraire les métriques clés d'un réseau Cisco ACI.

1.Cliquez dans la barre des tâches et sélectionnez Équipement Parser.

2.Choisir Nœuds logiques du Type de nœud Liste, sélectionnez ACI Cisco dans la deuxième liste, puis sélectionnez un type de nœud spécifique.

3.Définissez les fonctions pour récupérer les données des appareils. Cette étape contient trois fonctions. Définissez ces fonctions étape par étape :

No.

Nom de la fonction

Explication

1

Déclarer les paramètres

Cette fonction consiste à déclarer les paramètres provenant des entrées utilisateur au moment de l'exécution.  

Cette fonction est au format JSON et un exemple de code est le suivant :

'' '
Commencer à déclarer les paramètres
 [
    {"name": "$intf_name"} # spécifiez le nom du paramètre
 ]
 Fin déclarer
 '' '

Le nom de l'élément défini dans cette fonction fait référence au nom des paramètres (variables) qui reçoivent des valeurs de l'entrée utilisateur.

2

def BuildParameters (contexte, nom_appareil, paramètres)

Cette fonction est utilisée pour déclarer les paramètres provenant de GDR, DeviceSetting et SDN. Il contient trois paramètres fixes :

aux contextes — objets de contexte appelés par python. Il contient des informations sur le locataire, le domaine ou l'utilisateur.

nom de l'appareil — les noms des appareils cibles.

params — les paramètres provenant des entrées utilisateur (définis dans la fonction Déclarer les paramètres. Il est utilisé pour transmettre les paramètres provenant des entrées utilisateur à la fonction en cours.

Cette fonction prend également en charge l'appel d'API intégrées pour obtenir des paramètres d'appareil ou d'interface :

GetDeviceProperties (contexte, dev_name, params) — the params est le paramètre et son type à récupérer. Par exemple, {'techName' : 'Cisco ACI', 'paramType' : 'SDN', 'params' : ['dn', 'model'] }.

GetInterfaceProperties(context, dev_name, intf_name, params) — reportez-vous au ObtenirDeviceProperties API.

Le type des valeurs renvoyées par cette fonction est tuple (bool, list).

def BuildParameters(context, device_name, params):
    intf_name = paramètres['intf_name']
    # get_dn = GetDeviceProperties(context, device_name, {'techName': 'Cisco ACI', 'paramType': 'SDN', 'params' : ['dn'] })
    get_dn = GetInterfaceProperties(context, device_name,intf_name, {'techName'"Cisco ACI"'paramType''SDN''paramètres' : ['dn'] })
    dn = obtenir_dn['paramètres']['dn']
    rtn_params = [{ 'devName' : nom de l'appareil, 'dn' : dn }]
    # lever NameError(rtn_params)
    # [{'devName': 'Leaf1', 'dn': 'topology/pod-1/node-101/sys/inst-overlay-1/lb-[lo0]'}]
    retourner rtn_params

3

def RetrieveData (périphériques)

Cette fonction permet de récupérer les données des équipements en fonction des paramètres déclarés dans les fonctions Declare Parameters et BuildParameters. Cette fonction contient un paramètre.

Voici un exemple de code de cette fonction :

def Récupérer les données (rtn_params) :
    # lever NameError(rtn_params)
    # endpoint=rtn_params['endpoint']
    dn =rtn_params['dn']
    URL = '/api/mois/' + dn + '.json'
    rtn_params['URL'] = URL
    données = getData(rtn_params)
    retourner données,

5.Cliquez sur Récupérer et sélectionnez un appareil pour récupérer des données d'échantillon.

6.Définissez les fonctions pour analyser les métriques clés à partir des données récupérées. Cette étape contient deux fonctions. Définissez ces fonctions étape par étape :

No.

Nom de la fonction

Explication

1

Déclarer l'arborescence des variables

Cette fonction consiste à déclarer les métriques (variables) et leurs types que vous souhaitez analyser à partir des données de périphérique récupérées, et à générer une arborescence de variables. Les paramètres suivants d'une variable sont définis :

name — le nom de la variable

type — le type de valeur d'une variable. Le type comprend string, int, bool, double et table.

Cette fonction est au format JSON et un exemple de code est le suivant :

'' '
Commencer à déclarer la variable
[
    {"name": "Intf_Info", "type": "table","columns": [
        {"name": "Nom_interface", "type": "chaîne"},
        {"name": "adminSt", "type": "string"},
        {"name": "dn", "type": "chaîne"}
    ]}
]
Fin déclarer
 
'' '

2

def ParseText (original_result)

Cette fonction est utilisée pour renvoyer les valeurs métriques spécifiques et affecter les valeurs aux variables correspondantes dans l'arborescence des variables.

Voici un exemple de code de cette fonction :

importer re 
importer json
def ParseText(_original_result) :
    original_result = json.loads(_original_result)
    nom_intf = résultat_original[0]['l1PhysIf']['les attributs']['identifiant']
    dn_original = résultat_original[0]['l1PhysIf']['les attributs']['dn']
    adminSt_original =résultat_original[0]['l1PhysIf']['les attributs']['adminSt']
    Nom_interface =[]
    adminSt=[]
    dn=[]
    Nom_interface.append(nom_intf)
    adminSt.append(adminSt_original)
    dn.append(dn_original)
    valeur = {}
    valeur['Intf_Info']= {'Nom_Interface' : Nom_Interface,'adminSt':adminSt,'dn':dn}
    retourner Plus-value

7.Cliquez sur Enregistrer dans le coin supérieur droit de la page. La série parser sera enregistré dans le Parser Bibliothèque.

 

Voir aussi:

Filtre avancé