From 55627e198fb09a05c80f15b926a74d79917c4200 Mon Sep 17 00:00:00 2001 From: Sven Riwoldt Date: Mon, 25 Nov 2024 15:00:30 +0000 Subject: [PATCH] Update CMDB2CSV_Aufbaumaster.py --- CMDB2CSV_Aufbaumaster.py | 58 ++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/CMDB2CSV_Aufbaumaster.py b/CMDB2CSV_Aufbaumaster.py index 2aca7e49..5c326176 100755 --- a/CMDB2CSV_Aufbaumaster.py +++ b/CMDB2CSV_Aufbaumaster.py @@ -6,6 +6,7 @@ import pandas as pd from icecream import ic import numpy as np import json +import logging class MainUI(QDialog): # erbt von QDialog @@ -13,7 +14,21 @@ class MainUI(QDialog): # erbt von QDialog # super (MainUI, self).__init__() #Aufrufen des Konstruktors von QDialog super().__init__() loadUi("Aufbaumaster2CSV.ui", self) + + self.logger = logging.getLogger("Aufbaumaster2CSV") + self.logger.setLevel(logging.DEBUG) + self.log_file = "aufbaumaster2csv.log" + self.file_handler = logging.FileHandler(self.log_file) + self.file_handler.setLevel(logging.DEBUG) + + + self.formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + self.file_handler.setFormatter(self.formatter) + if not self.logger.hasHandlers(): + self.logger.addHandler(self.file_handler) + self.filename = None + self.onlyfilename = None self.path = None self.df_vte = None self.df_cmdb = None @@ -40,6 +55,10 @@ class MainUI(QDialog): # erbt von QDialog self.data = json.load(file) print(self.data) +# def do_something(self): + +# MainUI.logger.debug("Debugging info...") + def open_file_dialog(self): self.filename, _ = QFileDialog.getOpenFileName( self, @@ -52,19 +71,31 @@ class MainUI(QDialog): # erbt von QDialog if self.filename: self.path = Path(self.filename) + self.onlyfilename = os.path.basename(self.filename) self.collect_allgemein() - self.collect_cmdb_daten_gg() - self.collect_cmdb_daten_erw() +# 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'] + if self.df_vte_vm.empty: + self.logger.info("Aufbaumaster %s hat keine VMs! - Beendung des Programms",self.onlyfilename) + sys.exit(0) 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) + self.df_vte_vm = self.bereinigen_leerzeichen(self.df_vte_vm) + self.df_cmdb_vm = self.bereinigen_leerzeichen(self.df_cmdb_vm) + + self.df_cmdb_vm = self.df_cmdb_vm.drop(columns=['WV-Start', 'WV-Ende', 'CMDB-Status', 'Aufgabe Schritt', 'Filter', 'Waermeabgabe [BTU/h]','kalk. Strom [A]']) + + ic(self.df_vte_vm) + ic(self.df_cmdb_vm) + + def bereinigen_leerzeichen(self, df): + return df.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x) def collect_cmdb_daten_gg(self): # Einlesen der Sheets allgemein @@ -77,9 +108,10 @@ class MainUI(QDialog): # erbt von QDialog # 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) + self.df_vte_gg = self.bereinigen_leerzeichen(self.df_vte_gg) + self.df_cmdb_gg = self.bereinigen_leerzeichen(self.df_cmdb_gg) + # Teil Grundgeräte self.df_cmdb_gg = self.df_cmdb_gg.drop( columns=['WV-Start', 'WV-Ende', 'CMDB-Status', 'Aufgabe Schritt', 'Filter', 'Waermeabgabe [BTU/h]', @@ -400,14 +432,13 @@ class MainUI(QDialog): # erbt von QDialog def collect_cmdb_daten_erw(self): ############## Erweiterung ################################################################################ - # Kopieren - self.df_vte_erw = self.df_vte - self.df_cmdb_erw = self.df_cmdb + # Führende Leerzeichen in allen Spalten entfernen - self.df_vte_erw = self.df_vte_erw.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x) - self.df_cmdb_erw = self.df_cmdb_erw.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x) + self.df_vte_erw = self.bereinigen_leerzeichen(self.df_vte_erw) + self.df_cmdb_erw = self.bereinigen_leerzeichen(self.df_cmdb_erw) + # Auffüllen der Spalte Hostname self.df_vte_erw['Hostname']= self.df_vte_erw['Hostname'].replace('', np.nan) @@ -540,6 +571,7 @@ class MainUI(QDialog): # erbt von QDialog self.dfb_gg.to_csv(os.path.splitext(os.path.basename(self.savefilename))[0]+"_GG"+os.path.splitext(os.path.basename(self.savefilename))[1], index=None, header=True, encoding='utf-8') self.dfb_erw.to_csv(os.path.splitext(os.path.basename(self.savefilename))[0]+"_ERW"+os.path.splitext(os.path.basename(self.savefilename))[1], index=None, header=True, encoding='utf-8') + self.dfb_vm.to_csv(os.path.splitext(os.path.basename(self.savefilename))[0]+"_VM"+os.path.splitext(os.path.basename(self.savefilename))[1], index=None, header=True, encoding='utf-8') # print("Datei wurde gespeichert:", self.savefilename) def collect_allgemein(self): @@ -548,6 +580,10 @@ class MainUI(QDialog): # erbt von QDialog self.df_cmdb = pd.read_excel(self.filename, header=2, sheet_name="CMDB", engine='pyxlsb') + # Kopieren + self.df_vte_erw = self.df_vte + self.df_cmdb_erw = self.df_cmdb + if __name__ == "__main__": app = QApplication(sys.argv) ui = MainUI()