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.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):