Update CMDB2CSV_Aufbaumaster.py

This commit is contained in:
2024-11-25 15:00:30 +00:00
parent 91424f1e0a
commit 55627e198f

View File

@@ -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()