Update CMDB2CSV_Aufbaumaster.py
This commit is contained in:
@@ -6,6 +6,7 @@ import pandas as pd
|
|||||||
from icecream import ic
|
from icecream import ic
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
class MainUI(QDialog): # erbt von QDialog
|
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 (MainUI, self).__init__() #Aufrufen des Konstruktors von QDialog
|
||||||
super().__init__()
|
super().__init__()
|
||||||
loadUi("Aufbaumaster2CSV.ui", self)
|
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.filename = None
|
||||||
|
self.onlyfilename = None
|
||||||
self.path = None
|
self.path = None
|
||||||
self.df_vte = None
|
self.df_vte = None
|
||||||
self.df_cmdb = None
|
self.df_cmdb = None
|
||||||
@@ -40,6 +55,10 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
self.data = json.load(file)
|
self.data = json.load(file)
|
||||||
print(self.data)
|
print(self.data)
|
||||||
|
|
||||||
|
# def do_something(self):
|
||||||
|
|
||||||
|
# MainUI.logger.debug("Debugging info...")
|
||||||
|
|
||||||
def open_file_dialog(self):
|
def open_file_dialog(self):
|
||||||
self.filename, _ = QFileDialog.getOpenFileName(
|
self.filename, _ = QFileDialog.getOpenFileName(
|
||||||
self,
|
self,
|
||||||
@@ -52,19 +71,31 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
|
|
||||||
if self.filename:
|
if self.filename:
|
||||||
self.path = Path(self.filename)
|
self.path = Path(self.filename)
|
||||||
|
self.onlyfilename = os.path.basename(self.filename)
|
||||||
|
|
||||||
|
|
||||||
self.collect_allgemein()
|
self.collect_allgemein()
|
||||||
self.collect_cmdb_daten_gg()
|
# self.collect_cmdb_daten_gg()
|
||||||
self.collect_cmdb_daten_erw()
|
# self.collect_cmdb_daten_erw()
|
||||||
self.collect_vm()
|
self.collect_vm()
|
||||||
|
|
||||||
def collect_vm(self):
|
def collect_vm(self):
|
||||||
self.df_vte_vm= self.df_vte[self.df_vte['Gruppierung'] == 'VM']
|
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_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_vte_vm = self.bereinigen_leerzeichen(self.df_vte_vm)
|
||||||
self.df_cmdb_vm = self.df_cmdb_vm.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
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):
|
def collect_cmdb_daten_gg(self):
|
||||||
# Einlesen der Sheets allgemein
|
# Einlesen der Sheets allgemein
|
||||||
@@ -77,9 +108,10 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
|
|
||||||
|
|
||||||
# Führende Leerzeichen in allen Spalten entfernen
|
# 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_vte_gg = self.bereinigen_leerzeichen(self.df_vte_gg)
|
||||||
self.df_cmdb_gg = self.df_cmdb_gg.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
self.df_cmdb_gg = self.bereinigen_leerzeichen(self.df_cmdb_gg)
|
||||||
|
|
||||||
|
|
||||||
# Teil Grundgeräte
|
# Teil Grundgeräte
|
||||||
self.df_cmdb_gg = self.df_cmdb_gg.drop(
|
self.df_cmdb_gg = self.df_cmdb_gg.drop(
|
||||||
columns=['WV-Start', 'WV-Ende', 'CMDB-Status', 'Aufgabe Schritt', 'Filter', 'Waermeabgabe [BTU/h]',
|
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):
|
def collect_cmdb_daten_erw(self):
|
||||||
############## Erweiterung ################################################################################
|
############## Erweiterung ################################################################################
|
||||||
# Kopieren
|
|
||||||
self.df_vte_erw = self.df_vte
|
|
||||||
self.df_cmdb_erw = self.df_cmdb
|
|
||||||
|
|
||||||
# Führende Leerzeichen in allen Spalten entfernen
|
# 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_vte_erw = self.bereinigen_leerzeichen(self.df_vte_erw)
|
||||||
self.df_cmdb_erw = self.df_cmdb_erw.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
self.df_cmdb_erw = self.bereinigen_leerzeichen(self.df_cmdb_erw)
|
||||||
|
|
||||||
|
|
||||||
# Auffüllen der Spalte Hostname
|
# Auffüllen der Spalte Hostname
|
||||||
self.df_vte_erw['Hostname']= self.df_vte_erw['Hostname'].replace('', np.nan)
|
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_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_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)
|
# print("Datei wurde gespeichert:", self.savefilename)
|
||||||
|
|
||||||
def collect_allgemein(self):
|
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')
|
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__":
|
if __name__ == "__main__":
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
ui = MainUI()
|
ui = MainUI()
|
||||||
|
|||||||
Reference in New Issue
Block a user