Beginn Json und VM

This commit is contained in:
2024-11-19 14:36:07 +00:00
parent a5f9da04d4
commit d15dbe7f00

View File

@@ -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.QtWidgets import QApplication, QDialog, QFileDialog
from PyQt5.uic import loadUi from PyQt5.uic import loadUi
import sys, os, re import sys, os, re
@@ -11,13 +5,11 @@ from pathlib import Path
import pandas as pd import pandas as pd
from icecream import ic from icecream import ic
import numpy as np import numpy as np
import logging import json
from venv3_12.Scripts.bottle import DEBUG
class MainUI(QDialog): # erbt von QDialog 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 (MainUI, self).__init__() #Aufrufen des Konstruktors von QDialog
super().__init__() super().__init__()
loadUi("Aufbaumaster2CSV.ui", self) loadUi("Aufbaumaster2CSV.ui", self)
@@ -31,6 +23,8 @@ class MainUI(QDialog): # erbt von QDialog
self.df_cmdb_erw = None self.df_cmdb_erw = None
self.dfb_gg = None self.dfb_gg = None
self.dfb_erw = None self.dfb_erw = None
self.df_vte_vm = None
self.df_cmdb_vm = None
self.openBtn.clicked.connect(self.open_file_dialog) self.openBtn.clicked.connect(self.open_file_dialog)
self.saveBtn.clicked.connect(self.save_file_dialog) self.saveBtn.clicked.connect(self.save_file_dialog)
self.filter = "Hostnamen" self.filter = "Hostnamen"
@@ -42,34 +36,9 @@ class MainUI(QDialog): # erbt von QDialog
self.i = 1 self.i = 1
self.temp = '' self.temp = ''
logging.basicConfig(encoding = "utf-8",filemode = "a",format = "{asctime} - {levelname} - {message}",style = "{",datefmt = "%Y-%m-%d %H:%M",) with open("CMDB_vars.json", "r") as file:
logger = logging.getLogger("Aufbaumaster2CSV") self.data = json.load(file)
print(self.data)
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)
def open_file_dialog(self): def open_file_dialog(self):
self.filename, _ = QFileDialog.getOpenFileName( self.filename, _ = QFileDialog.getOpenFileName(
@@ -88,6 +57,14 @@ class MainUI(QDialog): # erbt von QDialog
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()
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): def collect_cmdb_daten_gg(self):
# Einlesen der Sheets allgemein # Einlesen der Sheets allgemein
@@ -98,6 +75,7 @@ class MainUI(QDialog): # erbt von QDialog
# Sheet CMDB # Sheet CMDB
self.df_cmdb_gg = self.df_cmdb[self.df_cmdb['Filter'] == 'Grundgerät'] self.df_cmdb_gg = self.df_cmdb[self.df_cmdb['Filter'] == 'Grundgerät']
# 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.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_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): def montageort(self, montage):
# Fehlerbereinigung # Fehlerbereinigung
# ic("Montage: ", montage) ic("Montage: ", montage)
if montage['ID\nStandort']not in ("Ber-PS", "Bon-BTW"): if montage['ID\nStandort'] not in ("Ber-PS", "Bon-BTW", "KS-FRA", "KS-BLN", "KS-DRE", "KS-LEV"):
print("Kein Standort P40 oder BTW") print("Kein Standort")
sys.exit(0) #sys.exit(0)
else: else:
if len((montage['Montageort'][8:13])) != 2: if len((montage['Montageort'][8:13])) != 2:
montage['HE'] = montage['Montageort'][8:10] montage['HE'] = montage['Montageort'][8:10]
@@ -481,6 +461,9 @@ class MainUI(QDialog): # erbt von QDialog
def korrektur_sfp(self,sfp): def korrektur_sfp(self,sfp):
self.configid = sfp['CONFIG-ID'] 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 sfp['Serien-Nr.'] in ('', np.nan, 'bitte nachtragen'):
if self.i == 1: if self.i == 1:
sfp['Serien-Nr.'] = 'dummy' + str(self.i) sfp['Serien-Nr.'] = 'dummy' + str(self.i)
@@ -491,8 +474,7 @@ class MainUI(QDialog): # erbt von QDialog
if self.temp in self.objdict: if self.temp in self.objdict:
print("Drin ",self.temp) print("Drin ",self.temp)
else: else:
# self.logger.error("Fehlende Zuordnung zu Grundgerät im Aufbaumaster fehlt: ", sfp) print("Nicht drin ",self.temp)
return [np.nan] * len(sfp)
elif self.i !=1 and self.temp == self.configid: elif self.i !=1 and self.temp == self.configid:
sfp['Serien-Nr.'] = 'dummy' + str(self.i) sfp['Serien-Nr.'] = 'dummy' + str(self.i)
sfp['Bezeichner'] = "SFP" + 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: if self.temp in self.objdict:
print("Drin ",self.temp) print("Drin ",self.temp)
else: else:
# self.logger.error("Fehlende Zuordnung zu Grundgerät im Aufbaumaster fehlt: ", sfp) print("Nicht drin ",self.temp)
return [np.nan] * len(sfp)
self.i = self.i + 1 self.i = self.i + 1
elif self.i !=1 and self.temp != self.configid: elif self.i !=1 and self.temp != self.configid:
self.i = 1 self.i = 1
sfp['Serien-Nr.'] = 'dummy' + str(self.i) sfp['Serien-Nr.'] = 'dummy' + str(self.i)
sfp['Bezeichner'] = "SFP" + str(self.i) sfp['Bezeichner'] = "SFP" + str(self.i)
self.temp = sfp['CONFIG-ID'] self.temp = sfp['CONFIG-ID']
sfp['Objekttyp (CMDB)']=self.read_dict(self.temp)
if self.temp in self.objdict: if self.temp in self.objdict:
sfp['Objekttyp (CMDB)'] = self.read_dict(self.temp)
print("Drin ",self.temp) print("Drin ",self.temp)
else: else:
# self.logger.error("Fehlende Zuordnung zu Grundgerät im Aufbaumaster fehlt: ", sfp) print("Nicht drin ",self.temp)
return [np.nan] * len(sfp)
self.i = self.i + 1 self.i = self.i + 1
else: else:
if self.temp != self.configid: if self.temp != self.configid:
self.i = 1 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['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.i = self.i + 1
self.temp = self.configid self.temp = self.configid
elif 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['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.i = self.i + 1
self.temp = self.configid self.temp = self.configid
# if sfp['Objekttyp (CMDB)'] == np.nan:
return sfp return sfp
def read_dict(self,sfp): def read_dict(self,sfp):