Ce document fournit une vue d'ensemble et une explication détaillée du fichier HUAWEI_NET.py, utilisé pour interagir avec les équipements réseaux de Huawei via des requêtes API et pour gérer les configurations réseau.
Le script HUAWEI_NET.py est conçu pour automatiser plusieurs tâches de gestion des équipements réseau Huawei à travers des interactions avec l'API de Huawei. Il permet de récupérer des informations sur les dispositifs, de trier ces dispositifs selon certaines spécifications, d'exporter ces informations sous format Excel, et de mettre à jour la configuration des ports Ethernet.
Description: Obtient un token d'authentification de l'API Huawei.
Paramètres:
- Aucun
Retourne:
token_id_value: Token utilisé pour les requêtes authentifiées.
Exemple d'utilisation:
token = get_token()Description: Récupère les dispositifs depuis l'API Huawei en utilisant un token d'authentification.
Paramètres:
token: Token d'authentification obtenu viaget_token.
Retourne:
device_dict: Dictionnaire contenant les données des dispositifs.
Exemple d'utilisation:
devices = get_device(token)Description: Trie les dispositifs par type et nom de site.
Paramètres:
site_Name_args: Nom du site pour lequel trier les dispositifs.device_dict: Dictionnaire des dispositifs.device_Type_args: Type de dispositif à filtrer (par défaut "LSW").
Retourne:
devices_List: Liste des dispositifs triés.
Exemple d'utilisation:
sorted_devices = Device_Sorter("Site1", devices)Description: Exporte une liste de dispositifs triés dans un fichier Excel.
Paramètres:
token: Token d'authentification.site_devices_List: Liste des dispositifs à exporter.custom_Name_Path: Chemin du fichier de sortie.
Retourne:
- Aucun
Exemple d'utilisation:
export_xlsx(token, sorted_devices, "output.xlsx")Description: Met à jour la configuration Ethernet d'un dispositif spécifique.
Paramètres:
token: Token d'authentification.body_dict: Dictionnaire de la configuration à appliquer.Id: Identifiant du dispositif.Device_name: Nom du dispositif.ethernet_interface_Name: Nom de l'interface Ethernet.
Retourne:
- Aucun
Exemple d'utilisation:
update_ethernet_request(token, config, device_id, "Device1", "eth0")Description: Met à jour la configuration Eth-Trunk d'un dispositif spécifique.
Paramètres:
token: Token d'authentification.body: Dictionnaire de la configuration à appliquer.Id: Identifiant du dispositif.Device_name: Nom du dispositif.ethtrunk_name: Nom de l'Eth-Trunk.
Retourne:
- Aucun
Exemple d'utilisation:
update_ethtrunk_request(token, trunk_config, device_id, "Device1", "trunk1")Description: Obtient les interfaces réseau d'un dispositif.
Paramètres:
token: Token d'authentification.Id: Identifiant du dispositif.interface_Type: Type d'interface ("Ethernet" ou "Eth-Trunk").
Retourne:
- Liste des interfaces.
Exemple d'utilisation:
interfaces = get_interfaces(token, device_id, "Ethernet")Description: Compare deux dictionnaires pour s'assurer que le dictionnaire à envoyer à l'API contient uniquement les clés attendues.
Paramètres:
compared_dict: Dictionnaire à comparer.comparator_dict: Dictionnaire de comparaison.interface_Type: Type d'interface.
Retourne:
compared_dict: Dictionnaire nettoyé.
Exemple d'utilisation:
clean_dict = dict_comparator(new_config, existing_config, "Ethernet")Description: Convertit les types de données dans un dictionnaire pour correspondre aux types attendus par l'API.
Paramètres:
interface_comparator: Dictionnaire comparateur.interface_compared: Dictionnaire à comparer.interface_Type: Type d'interface.
Retourne:
- Dictionnaire avec les types de données ajustés.
Exemple d'utilisation:
converted_dict = type_converter(comparator, to_convert, "Ethernet")Description: Compare les valeurs de deux dictionnaires pour les interfaces Ethernet.
Paramètres:
interfaces_compared: Dictionnaire des interfaces comparées.interfaces_comparator: Dictionnaire comparateur.interface_Type: Type d'interface.
Retourne:
- Booléen indiquant s'il existe des différences.
Exemple d'utilisation:
has_diff = ethernet_value_comparator(current_config, new_config, "Ethernet")Description: Compare les valeurs de deux dictionnaires pour les interfaces Eth-Trunk.
Paramètres:
ethtrunk_compared: Dictionnaire des interfaces comparées.ethtrunk_comparator: Dictionnaire comparateur.interface_Type: Type d'interface.
Retourne:
- Booléen indiquant s'il existe des différences.
Exemple d'utilisation:
has_diff = ethtrunk_value_comparator(current_trunk_config, new_trunk_config, "Eth-Trunk")Description: Traite une demande de configuration Ethernet et met à jour si nécessaire.
Paramètres:
token: Token d'authentification.stackId: Identifiant de la pile.device_name: Nom du dispositif.deviceId: Identifiant du dispositif.device_interface_list: Liste des interfaces du dispositif.request_interface_dict: Dictionnaire de la demande d'interface.interface_Type: Type d'interface.ethernet_interface_Name: Nom de l'interface Ethernet.already_seen_devices_list: Liste des dispositifs déjà traités.
Retourne:
- Liste contenant les informations sur les modifications détectées et mises à jour.
Exemple d'utilisation:
result = Ethernet_Request(token, stack_id, "Device1", device_id, interfaces, config, "Ethernet", "eth0", seen_devices)Description: Traite une demande de configuration Eth-Trunk et met à jour si nécessaire.
Paramètres:
token: Token d'authentification.stackId: Identifiant de la pile.device_name: Nom du dispositif.deviceId: Identifiant du dispositif.device_ethtrunk_list: Liste des Eth-Trunks du dispositif.request_ethtrunk_dict: Dictionnaire de la demande d'Eth-Trunk.interface_Type: Type d'interface.ethtrunk_interface_Name: Nom de l'Eth-Trunk.already_seen_devices_list: Liste des dispositifs déjà traités.
Retourne:
- Liste contenant les informations sur les modifications détectées et mises à jour.
Exemple d'utilisation:
result = EthTrunk_Request(token, stack_id, "Device1", device_id, trunks, trunk_config, "Eth-Trunk", "trunk1", seen_devices)Description: Importe les configurations d'un fichier Excel et applique les modifications nécessaires.
Paramètres:
token: Token d'authentification.filename_or_path: Chemin du fichier Excel à importer.
Retourne:
- Aucun
Exemple d'utilisation:
Import(token, "config.xlsx")Pour utiliser ce script, vous devez d'abord obtenir un token avec la fonction get_token(), puis vous pouvez appeler les autres fonctions en passant ce token comme argument. Le script peut être exécuté directement avec des arguments spécifiques pour exporter ou importer des configurations via des fichiers Excel.
Exemple de commande:
python HUAWEI_NET.py -s Site1 -f output.xlsxCette commande exporte les configurations du site Site1 dans le fichier output.xlsx.