Files
qt5-legatus-legacy/Lts/Tools/Niklas-Excon-Helper/initiate.py
T
2026-08-13 18:33:10 +02:00

177 lines
5.4 KiB
Python
Executable File

import os.path
import shutil
import subprocess
import sys
import stat
from prompt_toolkit import prompt
import settings
from local import check_rpm_package_installed
from network import is_reachable, check_ssh_credentials
def initiate():
root_pass = prompt("Local root password:")
install_self(root_pass)
if autoinit(root_pass):
return
settings_dict = dict()
tds = prompt("Address of TDS (Standard is EXCTDS01):")
if tds == "":
tds = "EXCTDS01"
settings_dict["tds"] = tds
if tds != "localhost":
tds_user = prompt("TDS Username (Standard is ctc):")
if tds_user == "":
tds_user = "ctc"
settings_dict["tds_user"] = tds_user
tds_pass = prompt("TDS Password (Standard is ctc11de):")
if tds_pass == "":
tds_pass = "ctc11de"
settings_dict["tds_pass"] = tds_pass
ws = prompt("Address of WS (Standard is localhost):")
if ws == "":
ws = "localhost"
settings_dict["ws"] = ws
if ws != "localhost":
ws_user = prompt("WS Username (Standard is ctc):")
if ws_user == "":
ws_user = "ctc"
settings_dict["ws_user"] = ws_user
ws_pass = prompt("WS Password (Standard is ctc11de):")
if ws_pass == "":
ws_pass = "ctc11de"
settings_dict["ws_pass"] = ws_pass
dbs = prompt("Address of DBS (Standard is EXCDBS01):")
if dbs == "":
dbs = "EXCDBS01"
settings_dict["dbs"] = dbs
if dbs != "localhost":
dbs_user = prompt("DBS Username (Standard is postgres):")
if dbs_user == "":
dbs_user = "postgres"
settings_dict["dbs_user"] = dbs_user
dbs_pass = prompt("DBS Password (Standard is postgres):")
if dbs_pass == "":
dbs_pass = "postgres"
settings_dict["dbs_pass"] = dbs_pass
avs = prompt("Address of AVS (Standard is EXCDAVS01):")
if avs == "":
avs = "EXCAVS01"
settings_dict["avs"] = avs
if avs != "localhost":
avs_user = prompt("AVS Username (Standard is ctc):")
if avs_user == "":
avs_user = "ctc"
settings_dict["avs_user"] = avs_user
avs_pass = prompt("AVS Password (Standard is ctc11de):")
if avs_pass == "":
avs_pass = "ctc11de"
settings_dict["avs_pass"] = avs_pass
build = prompt("Is the software installed over rpm? (y/n):")
if build == "y":
aws = prompt("Admin Workstation Address (Standard is CCSAWS01):")
if aws == "":
aws = "CCSAWS01"
settings_dict["aws"] = aws
settings_dict["rpm"] = True
else:
settings_dict["rpm"] = False
settings.save_settings(settings_dict, root_pass)
print("Erfolgreich gespeichert!")
def autoinit(root_pass):
settings_dict = dict()
if is_reachable("EXCTDS01", False):
tds = "EXCTDS01"
if check_ssh_credentials(tds, "ctc", "ctc11de"):
tds_user = "ctc"
tds_pass = "ctc11de"
settings_dict["tds_user"] = tds_user
settings_dict["tds_pass"] = tds_pass
else:
print("Auto Init failed. Please enter the credentials manually.")
return False
else:
tds = "localhost"
settings_dict["tds"] = tds
if is_reachable("EXCDBS01", False):
dbs = "EXCDBS01"
if check_ssh_credentials(dbs, "postgres", "postgres"):
settings_dict["dbs_user"] = "postgres"
settings_dict["dbs_pass"] = "postgres"
else:
print("Auto Init failed. Please enter the credentials manually.")
return False
else:
dbs = "localhost"
settings_dict["dbs"] = dbs
settings_dict["ws"] = "localhost"
settings_dict["ws_user"] = "ctc"
settings_dict["ws_pass"] = "ctc11de"
if is_reachable("EXCAVS01", False):
settings_dict["avs"] = "EXCAVS01"
if check_ssh_credentials("EXCAVS01", "ctc", "ctc11de"):
settings_dict["avs_user"] = "ctc"
settings_dict["avs_pass"] = "ctc11de"
else:
print("Auto Init failed. Please enter the credentials manually.")
return False
if check_rpm_package_installed('guez_ws'):
if is_reachable("CCSAWS01", False):
aws = "CCSAWS01"
if check_ssh_credentials(aws, "root", "!Moutde"):
settings_dict["aws"] = aws
settings_dict["aws_user"] = "root"
settings_dict["aws_pass"] = "!Moutde"
settings_dict["rpm"] = True
else:
print("Auto Init failed. Please enter the credentials manually.")
return False
else:
print("Auto Init failed. Please enter the credentials manually.")
return False
else:
settings_dict["rpm"] = False
settings.save_settings(settings_dict, root_pass)
def install_self(root_pass):
target_bin_path = f"/usr/local/bin/excon"
try:
# Kopiere die Datei nach /usr/local/bin mit sudo
subprocess.run(f"echo {root_pass} | sudo -S cp {sys.executable} {target_bin_path}", shell=True, check=True)
# Setze die Ausführberechtigung für die Datei
subprocess.run(f"echo {root_pass} | sudo -S chmod +x {target_bin_path}", shell=True, check=True)
except subprocess.CalledProcessError as e:
print(f"Fehler beim Kopieren der Datei nach '/usr/local/bin': {e}")
except Exception as e:
print(f"Unbekannter Fehler: {e}")