From d15dbe7f00cc20bc99e2763c57448c0fad3b72f4 Mon Sep 17 00:00:00 2001 From: Sven Riwoldt Date: Tue, 19 Nov 2024 14:36:07 +0000 Subject: [PATCH] Beginn Json und VM --- CMDB2CSV_Aufbaumaster.py | 111 ++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 65 deletions(-) diff --git a/CMDB2CSV_Aufbaumaster.py b/CMDB2CSV_Aufbaumaster.py index 3d0138c1..2aca7e49 100755 --- a/CMDB2CSV_Aufbaumaster.py +++ b/CMDB2CSV_Aufbaumaster.py @@ -1,9 +1,3 @@ -from cgitb import handler -from idlelib.browser import file_open - -from pandas.io.formats.info import INFO_DOCSTRING -from venv import logger - from PyQt5.QtWidgets import QApplication, QDialog, QFileDialog from PyQt5.uic import loadUi import sys, os, re @@ -11,13 +5,11 @@ from pathlib import Path import pandas as pd from icecream import ic import numpy as np -import logging - -from venv3_12.Scripts.bottle import DEBUG +import json class MainUI(QDialog): # erbt von QDialog - def __init__(self,log_file='Aufbaumaster2CSV.log'): + def __init__(self): # super (MainUI, self).__init__() #Aufrufen des Konstruktors von QDialog super().__init__() loadUi("Aufbaumaster2CSV.ui", self) @@ -31,6 +23,8 @@ class MainUI(QDialog): # erbt von QDialog self.df_cmdb_erw = None self.dfb_gg = None self.dfb_erw = None + self.df_vte_vm = None + self.df_cmdb_vm = None self.openBtn.clicked.connect(self.open_file_dialog) self.saveBtn.clicked.connect(self.save_file_dialog) self.filter = "Hostnamen" @@ -42,34 +36,9 @@ class MainUI(QDialog): # erbt von QDialog self.i = 1 self.temp = '' - logging.basicConfig(encoding = "utf-8",filemode = "a",format = "{asctime} - {levelname} - {message}",style = "{",datefmt = "%Y-%m-%d %H:%M",) - logger = logging.getLogger("Aufbaumaster2CSV") - - - file_handler = logging.FileHandler(log_file) - file_handler.setLevel(logging.INFO) - if not logger.hasHandlers(): - self.logger.addHandler(file_handler) - - - - - # Logging - #self.logger = logging.getLogger() - #self.logger.setLevel(logging.INFO) - #self.formatter = logging.Formatter('%(asctime)s | %(levelname)s | %(message)s') - - #self.stdout_handler = logging.StreamHandler(sys.stdout) - #self.stdout_handler.setLevel(logging.DEBUG) - #self.stdout_handler.setFormatter(self.formatter) - - #self.file_handler = logging.FileHandler('Aufbaumaster2CSV.log') - #self.file_handler.setLevel(logging.DEBUG) - #self.file_handler.setFormatter(self.formatter) - - #self.logger.addHandler(self.file_handler) - #self.logger.addHandler(self.stdout_handler) - + with open("CMDB_vars.json", "r") as file: + self.data = json.load(file) + print(self.data) def open_file_dialog(self): self.filename, _ = QFileDialog.getOpenFileName( @@ -88,6 +57,14 @@ class MainUI(QDialog): # erbt von QDialog self.collect_allgemein() self.collect_cmdb_daten_gg() self.collect_cmdb_daten_erw() + self.collect_vm() + + def collect_vm(self): + self.df_vte_vm= self.df_vte[self.df_vte['Gruppierung'] == 'VM'] + self.df_cmdb_vm = self.df_cmdb[self.df_cmdb['Filter'] == 'VM'] + + self.df_vte_vm = self.df_vte_vm.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x) + self.df_cmdb_vm = self.df_cmdb_vm.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x) def collect_cmdb_daten_gg(self): # Einlesen der Sheets allgemein @@ -98,6 +75,7 @@ class MainUI(QDialog): # erbt von QDialog # Sheet CMDB self.df_cmdb_gg = self.df_cmdb[self.df_cmdb['Filter'] == 'Grundgerät'] + # Führende Leerzeichen in allen Spalten entfernen self.df_vte_gg = self.df_vte_gg.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x) self.df_cmdb_gg = self.df_cmdb_gg.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x) @@ -221,10 +199,12 @@ class MainUI(QDialog): # erbt von QDialog def montageort(self, montage): # Fehlerbereinigung -# ic("Montage: ", montage) - if montage['ID\nStandort']not in ("Ber-PS", "Bon-BTW"): - print("Kein Standort P40 oder BTW") - sys.exit(0) + ic("Montage: ", montage) + if montage['ID\nStandort'] not in ("Ber-PS", "Bon-BTW", "KS-FRA", "KS-BLN", "KS-DRE", "KS-LEV"): + print("Kein Standort") + #sys.exit(0) + + else: if len((montage['Montageort'][8:13])) != 2: montage['HE'] = montage['Montageort'][8:10] @@ -481,6 +461,9 @@ class MainUI(QDialog): # erbt von QDialog def korrektur_sfp(self,sfp): self.configid = sfp['CONFIG-ID'] + # Auf dem Mach funktioniert die Zeile + # return [np.nan] * len(sfp) + if sfp['Serien-Nr.'] in ('', np.nan, 'bitte nachtragen'): if self.i == 1: sfp['Serien-Nr.'] = 'dummy' + str(self.i) @@ -491,8 +474,7 @@ class MainUI(QDialog): # erbt von QDialog if self.temp in self.objdict: print("Drin ",self.temp) else: -# self.logger.error("Fehlende Zuordnung zu Grundgerät im Aufbaumaster fehlt: ", sfp) - return [np.nan] * len(sfp) + print("Nicht drin ",self.temp) elif self.i !=1 and self.temp == self.configid: sfp['Serien-Nr.'] = 'dummy' + str(self.i) sfp['Bezeichner'] = "SFP" + str(self.i) @@ -500,46 +482,45 @@ class MainUI(QDialog): # erbt von QDialog if self.temp in self.objdict: print("Drin ",self.temp) else: -# self.logger.error("Fehlende Zuordnung zu Grundgerät im Aufbaumaster fehlt: ", sfp) - return [np.nan] * len(sfp) + print("Nicht drin ",self.temp) self.i = self.i + 1 elif self.i !=1 and self.temp != self.configid: self.i = 1 sfp['Serien-Nr.'] = 'dummy' + str(self.i) sfp['Bezeichner'] = "SFP" + str(self.i) self.temp = sfp['CONFIG-ID'] - + sfp['Objekttyp (CMDB)']=self.read_dict(self.temp) if self.temp in self.objdict: - sfp['Objekttyp (CMDB)'] = self.read_dict(self.temp) - print("Drin ",self.temp) + print("Drin ",self.temp) else: -# self.logger.error("Fehlende Zuordnung zu Grundgerät im Aufbaumaster fehlt: ", sfp) - return [np.nan] * len(sfp) - + print("Nicht drin ",self.temp) self.i = self.i + 1 else: if self.temp != self.configid: self.i = 1 - if self.temp in self.objdict: - print("Drin ", self.temp) - sfp['Objekttyp (CMDB)'] = self.read_dict(self.temp) - else: - self.logger.info("Fehlende Zuordnung zu Grundgerät im Aufbaumaster fehlt: ", sfp) - return [np.nan] * len(sfp) sfp['Bezeichner'] = "SFP" + str(self.i) + sfp['Objekttyp (CMDB)']=self.read_dict(self.temp) + if self.temp in self.objdict: + print("Drin ",self.temp) + else: + print("Nicht drin ",self.temp) self.i = self.i + 1 self.temp = self.configid elif self.temp == self.configid: - if self.temp in self.objdict: - sfp['Objekttyp (CMDB)'] = self.read_dict(self.temp) - print("Drin ", self.temp) - else: - self.logger.info("Fehlende Zuordnung zu Grundgerät im Aufbaumaster fehlt: ", sfp) - return [np.nan] * len(sfp) - sfp['Bezeichner'] = "SFP" + str(self.i) + sfp['Objekttyp (CMDB)']=self.read_dict(self.temp) + if self.temp in self.objdict: + print("Drin ",self.temp) + else: + print("Nicht drin ",self.temp) self.i = self.i + 1 self.temp = self.configid + + # if sfp['Objekttyp (CMDB)'] == np.nan: + + + + return sfp def read_dict(self,sfp):