Anpassungen wegen SFP
This commit is contained in:
@@ -28,7 +28,6 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
self.group = None
|
self.group = None
|
||||||
self.typ = None
|
self.typ = None
|
||||||
|
|
||||||
|
|
||||||
def open_file_dialog(self):
|
def open_file_dialog(self):
|
||||||
self.filename, _ = QFileDialog.getOpenFileName(
|
self.filename, _ = QFileDialog.getOpenFileName(
|
||||||
self,
|
self,
|
||||||
@@ -112,19 +111,15 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
|
|
||||||
self.dfb_gg = self.dfb_gg.apply(self.pruefe_und_setze_wert, axis=1)
|
self.dfb_gg = self.dfb_gg.apply(self.pruefe_und_setze_wert, axis=1)
|
||||||
|
|
||||||
|
self.df_gg = self.dfb_gg.apply(self.anpassung_Objekttyp, axis=1)
|
||||||
|
|
||||||
# Setzen von int für HE und Anz. HE
|
# Setzen von int für HE und Anz. HE
|
||||||
self.dfb_gg['HE'] = self.dfb_gg['HE'].apply(lambda x: x if pd.isnull(x) else str(int(x)))
|
self.dfb_gg['HE'] = self.dfb_gg['HE'].apply(lambda x: x if pd.isnull(x) else str(int(x)))
|
||||||
|
|
||||||
# self.dfb['belegte\nHE'] = self.dfb['belegte\nHE'].apply(lambda x: x if pd.isnull(x) else str(int(x)))
|
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################
|
|
||||||
|
|
||||||
def has_special_characters(self, s):
|
def has_special_characters(self, s):
|
||||||
# Regex pattern für Sonderzeichen
|
# Regex pattern für Sonderzeichen
|
||||||
return bool(re.search(r'[^A-Za-z0-9]', s))
|
return bool(re.search(r'[^A-Za-z0-9]', s))
|
||||||
|
|
||||||
|
|
||||||
def suche_Einschub(self, einschub):
|
def suche_Einschub(self, einschub):
|
||||||
if einschub['Montageort'][-1] in ('v','h'):
|
if einschub['Montageort'][-1] in ('v','h'):
|
||||||
if einschub['Montageort'][-1] == 'v':
|
if einschub['Montageort'][-1] == 'v':
|
||||||
@@ -133,7 +128,39 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
einschub['Einschub'] = 'Rückseite'
|
einschub['Einschub'] = 'Rückseite'
|
||||||
return einschub
|
return einschub
|
||||||
|
|
||||||
|
def anpassung_Objekttyp(self, objekttyp):
|
||||||
|
if objekttyp['Objekttyp (CMDB)'] == 'Genucenter':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__APPLIANCE'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'HW Appliance':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__APPLIANCE'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'Paketfilter / ALG':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__APPLIANCE'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'Kryptierer':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__SD_KRYPTIERER'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'Server':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__SERVER'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'Switch':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__SWITCH'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'virtuelle Maschine':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__VIRTUAL_SERVER'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'Terminalserver':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__TERMINALSERVER'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'Storage':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__SAN'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'SFP':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__SD_SFP'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'Speichersystem':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__SAN'
|
||||||
|
elif objekttyp['Objekttyp (CMDB)'] == 'Router':
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__ROUTER'
|
||||||
|
|
||||||
|
if objekttyp['Hostname'][1:3] == "vho":
|
||||||
|
objekttyp['Objekttyp (CMDB)'] = 'C__OBJTYPE__VIRTUAL_HOST'
|
||||||
|
|
||||||
|
return objekttyp
|
||||||
|
|
||||||
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"):
|
||||||
@@ -159,8 +186,6 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
|
|
||||||
return hersteller
|
return hersteller
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def pruefe_und_setze_wert(self, zeile):
|
def pruefe_und_setze_wert(self, zeile):
|
||||||
#ic(zeile)
|
#ic(zeile)
|
||||||
################################################################
|
################################################################
|
||||||
@@ -332,51 +357,6 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
elif zeile['Hostname'][6:8] == "x1":
|
elif zeile['Hostname'][6:8] == "x1":
|
||||||
zeile['Segment'] = 'm10 SecA2sIM'
|
zeile['Segment'] = 'm10 SecA2sIM'
|
||||||
|
|
||||||
################################################################
|
|
||||||
|
|
||||||
# Genucenter -
|
|
||||||
# HW Appliance -
|
|
||||||
# Kryptierer -
|
|
||||||
# Medienkonverter
|
|
||||||
# Paketfilter / ALG -
|
|
||||||
# Router - C__OBJTYPE__ROUTER
|
|
||||||
# Server --
|
|
||||||
# SFP - C__OBJTYPE__SD_SFP -
|
|
||||||
# Speichersystem C__OBJTYPE__SAN -
|
|
||||||
# Storage C__OBJTYPE__SAN -
|
|
||||||
# Switch C__OBJTYPE__SWITCH -
|
|
||||||
# virtuelle Maschine Objekttyp = C__OBJTYPE__VIRTUAL_SERVER
|
|
||||||
# Terminalserver Objekttyp = C__OBJTYPE__TERMINALSERVER -
|
|
||||||
# wenn vho dann Objekttyp = C__OBJTYPE__VIRTUAL_HOST -
|
|
||||||
|
|
||||||
if zeile['Objekttyp (CMDB)'] == 'Genucenter':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__APPLIANCE'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'HW Appliance':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__APPLIANCE'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'Paketfilter / ALG':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__APPLIANCE'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'Kryptierer':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__SD_KRYPTIERER'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'Server':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__SERVER'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'Switch':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__SWITCH'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'virtuelle Maschine':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__VIRTUAL_SERVER'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'Terminalserver':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__TERMINALSERVER'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'Storage':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__SAN'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'SFP':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__SD_SFP'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'Speichersystem':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__SAN'
|
|
||||||
elif zeile['Objekttyp (CMDB)'] == 'Router':
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__ROUTER'
|
|
||||||
|
|
||||||
if zeile['Hostname'][1:3] == "vho":
|
|
||||||
zeile['Objekttyp (CMDB)'] = 'C__OBJTYPE__VIRTUAL_HOST'
|
|
||||||
|
|
||||||
return zeile
|
return zeile
|
||||||
|
|
||||||
def collect_cmdb_daten_erw(self):
|
def collect_cmdb_daten_erw(self):
|
||||||
@@ -397,12 +377,6 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
# Nach relevanten Spalten filtern Erweiterung
|
# Nach relevanten Spalten filtern Erweiterung
|
||||||
self.df_vte_erw = self.df_vte_erw[self.df_vte_erw['Gruppierung'] == 'Erweiterung']
|
self.df_vte_erw = self.df_vte_erw[self.df_vte_erw['Gruppierung'] == 'Erweiterung']
|
||||||
|
|
||||||
# Auf reellen Zeilenindex setzen, ab 0
|
|
||||||
#self.df_vte_erw = self.df_vte_erw.reset_index(drop=False)
|
|
||||||
|
|
||||||
#debug
|
|
||||||
#self.df_vte_erw.to_csv("VTE_ERW.csv", index=None, header=True,encoding='utf-8')
|
|
||||||
|
|
||||||
|
|
||||||
# Füllen der leeren Zellen mit NaN, sonst git es Probleme bei ffill, so konnte ich fillna nutzen
|
# Füllen der leeren Zellen mit NaN, sonst git es Probleme bei ffill, so konnte ich fillna nutzen
|
||||||
self.df_cmdb_erw['Hostname']= self.df_cmdb_erw['Hostname'].replace('', np.nan)
|
self.df_cmdb_erw['Hostname']= self.df_cmdb_erw['Hostname'].replace('', np.nan)
|
||||||
@@ -416,37 +390,22 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
'kalk. Strom [A]'])
|
'kalk. Strom [A]'])
|
||||||
|
|
||||||
|
|
||||||
|
self.dfb_erw = self.df_vte_erw.merge(self.df_cmdb_erw,left_index = True, right_index = True, how = 'left')
|
||||||
|
|
||||||
|
# Das Merge bringt zwei Hostname-Spalten, daher Bereinigung und Korrektur
|
||||||
|
self.dfb_erw = self.dfb_erw.drop(columns=['Hostname_y'])
|
||||||
|
self.dfb_erw = self.dfb_erw.rename(columns={'Hostname_x': 'Hostname'})
|
||||||
|
|
||||||
# Auf reellen Zeilenindex setzen, ab 0
|
# Suche nur nach SFP
|
||||||
#self.df_cmdb_erw = self.df_cmdb_erw.reset_index(drop=False)
|
|
||||||
|
|
||||||
|
|
||||||
# debug
|
|
||||||
#self.df_cmdb_erw.to_csv("CMDB_ERW.csv", index=None, header=True, encoding='utf-8')
|
|
||||||
|
|
||||||
|
|
||||||
# Zusammensetzen der Tabellen mit über Index, normal brachte mehr als doppelt soviele Zeilen
|
|
||||||
#self.dfb_erw = self.df_vte_erw.merge(self.df_cmdb_erw, on=['Index'], how='left')
|
|
||||||
self.dfb_erw = self.df_vte_erw.merge(self.df_cmdb_erw,left_index = True, right_index = True, how = 'inner')
|
|
||||||
#self.dfb_erw = pd.concat([self.df_vte_erw, self.df_cmdb_erw], ignore_index=True)
|
|
||||||
#self.dfb_erw = (pd.concat([self.df_cmdb_erw, self.df_vte_erw])
|
|
||||||
# .sort_index(kind='stable')
|
|
||||||
# .reset_index(drop=True)
|
|
||||||
# )
|
|
||||||
|
|
||||||
# Bereinigen der Gesamttabelle, z.Zt nur SFPs gefiltert.
|
|
||||||
# Wenn Netzteilbezeichnung vorhanden werde ich dies auch einbauen, genau wie jedes andere Zubehör auch
|
|
||||||
|
|
||||||
search = r'SFP'
|
search = r'SFP'
|
||||||
|
|
||||||
self.dfb_erw = self.dfb_erw[self.dfb_erw['Modell'].str.contains(search, regex=True, na=False)]
|
self.dfb_erw = self.dfb_erw[self.dfb_erw['Modell'].str.contains(search, regex=True, na=False)]
|
||||||
|
|
||||||
|
# Anapssung des Objekttypen
|
||||||
|
self.dfb_erw = self.dfb_erw.apply(self.anpassung_Objekttyp, axis=1)
|
||||||
|
|
||||||
ic(self.dfb_erw)
|
ic(self.dfb_erw)
|
||||||
|
|
||||||
##########################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
def save_file_dialog(self):
|
def save_file_dialog(self):
|
||||||
# ic(self.dfb_gg)
|
# ic(self.dfb_gg)
|
||||||
options = QFileDialog.Options()
|
options = QFileDialog.Options()
|
||||||
@@ -456,14 +415,9 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
options=options)
|
options=options)
|
||||||
|
|
||||||
|
|
||||||
#print(os.path.splitext(os.path.basename(self.savefilename))[0])
|
|
||||||
#print(os.path.splitext(os.path.basename(self.savefilename))[1])
|
|
||||||
|
|
||||||
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.savefilename+"_ERW", 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):
|
||||||
self.df_vte = pd.read_excel(self.filename, header=7, na_filter=False, sheet_name='VTE-Input',
|
self.df_vte = pd.read_excel(self.filename, header=7, na_filter=False, sheet_name='VTE-Input',
|
||||||
@@ -471,7 +425,6 @@ 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')
|
||||||
|
|
||||||
|
|
||||||
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