Cas d'utilisation - Renvoyer l'URL de la carte d'un chemin calculé vers un système tiers

Dans un système tiers, vous pouvez déclencher NetBrain pour calculer un chemin de bout en bout, puis renvoyer l'URL de la carte du chemin calculé au système tiers.

Workflow

Le pseudo-code ci-dessous décrit le flux principal à la fois au NetBrain côté et côté système tiers.

1.Dans NetBrain:
1.1 Ouvrir le Gestionnaire des tâches d'automatisation du système in NetBrain Bureau.
1.2 Sous API Stub Manager, créez un Stub et  choisissez "Carte d'un chemin". Vérifiez en ligne vous aider pour plus de détails de réglage.
1.3 [Facultatif] Ajouter prédéfini Runbook dans le talon if nécessaire.
1.4 Enregistrer et  activer le Stub.
  
2.Dans Script (système tiers) :
2.1 Connectez-vous à NetBrain Session et  obtenir un jeton système.
2.2 Définir le locataire de l'opération et  domaine.
2.3 Obtenez les informations de passerelle par défaut de l'IP source.
2.4 Chemin de déclenchement et  obtenir l'ID de la carte.
2.5.0 Retour à NetBrain API Stub Manager, vérifiez l'historique des déclencheurs sous API Triggered Tasks, et  ouvert la carte.
2.5.1 [Facultatif] Exporter la carte Visio or Xmap.
2.6 Déconnectez-vous de la session.

Remarque : L'étape 2.5.0 est indispensable si l'étape 2.5.1 est définie, car le système ne créera pas d'enregistrement de carte tant que vous n'aurez pas ouvert l'ID de tâche de carte.

Script d'API

Vous pouvez vous référer au script ci-dessous pour appeler les API. Cet exemple de script importe d'abord une bibliothèque Python gérée par NetBrain, et vous devez écrire les vôtres en pratique.

importer netbrain_restful_lib as api
importer base64
 
##########
nb_url = "http(s):// NetBrain Serveur Web>/"
utilisateur = "NetBtain"
pwd = "Netbrain"
locataireName ='Premier locataire'
nom_domaine = 'L'intégration'
##########
 
# Étape 2.1: Connectez-vous à NetBrain session et obtenir un jeton système.
jeton = api.loginSession(nb_url, utilisateur, mot de passe)
impression(api.getTenants(nb_url, jeton))
impression(api.getDomains(nb_url, jeton))
# [{'tenantId': 'cb36f82b-4126-2fef-5310-c3a66f3dae4d', 'tenantName': 'Initial Tenant'},
# {'tenantId': '1aae7b92-520f-4d22-96ed-9ccc77ab5678', 'tenantName': 'TenantName'}]
# [{'domainId': '6f9be63d-2290-4121-ae8b-c8fdb53a56ec', 'domainName': 'Integration'}]
ID locataire = "cb36f82b-4126-2fef-5310-c3a66f3dae4d"
domaineId = "6f9be63d-2290-4121-ae8b-c8fdb53a56ec"
 
# Étape 2.2 : Définissez le locataire et le domaine de l'opération.
impression(api.loginDomain(nb_url, token, tenantId, domainId))
# loginDomain : connexion réussie !
 
# Étape 2.3 : Obtenez les informations de passerelle par défaut de l'IP source.
IP source = "10.30.8.108"
api.GetGatewayInfo(nb_url, token, sourceIP)
# [{'ip' : '10.30.8.105', 'devName' : 'HSRP', 'intfName' : '21'},
# {'ip' : '10.30.8.106', 'devName' : 'NBCNBJ-SW1', 'intfName' : 'Vlan2100'},
# {'ip' : '10.30.8.107', 'devName' : 'NBCNBJ-SW2', 'intfName' : 'Vlan2100'}]
 
# Étape 2.4 : Déclenchez le chemin et obtenez l'ID de la carte.
nom_stub = « PathStub »
sourceGwIP = "10.30.8.105"
IP dest = "10.30.7.108"
sourcePort = 80
portDest = 80
 
TriggerPathInput = {
    'paramètre_domaine':
    {
        'identifiant_locataire': identifiantlocataire,
        'id_domaine': IDdomaine
    },
    #Informations sur le talon du déclencheur
    'Réglage de base':
    {
        'utilisateur': utilisateur,
        'stub_name': nom_stub,      # Nom du stub que vous avez créé dans NetBrain
        'déclenché par':"Script API",
    }, 
    #Informations cartographiques (facultatif)
    "map_setting":
    {
        "map_create_mode":3#3 est le mode Chemin
        "map_path_para":
        {  
            "la source": IP source,
            "passerelle_source": sourceGwIP,
            "destination":destIP,
            "port_source":portsource,
            "le port de destination":portdest
        }
    }
}
map_url = api.TriggerPathMap(nb_url, token, TriggerPathInput)
impression(url_carte)
# MapURL : https://integrationlabv71.netbraintech.com/map.html?t=cb36f82b-4126-2fef-5310-c3a66f3dae4d
# &d=6f9be63d-2290-4121-ae8b-c8fdb53a56ec&id=145f86ad-de4e-4b7b-9ea9-48c52c20319f&maptype=1
 
# Étape 2.5.0 : Ouvrir la carte dans les tâches déclenchées par l'API.
# Étape 2.5.1 : [Facultatif] Exportez la carte Visio ou Xmap.
map_format = "visio"    # visio ou xmap
pages = Aucun            # Spécifiez la page Carte. Si aucun, toutes les pages seront exportées.
map_data = api.ExportMap(nb_url, token, map_url, map_format, pages)
if map_data :
    dossier = r"D:\\chemin.vsdx"
    avec ouvert(dossier, "wb"as ff :
        ff.write(base64.b64decode(map_data))