ogclone-engine/admin/Interface/GetConfiguration.py

67 lines
2.1 KiB
Python

import os
import subprocess
#!/usr/bin/env python3
def main():
os.environ["DEBUG"] = "no"
ser = ogGetSerialNumber()
cfg = ""
disks = len(ogDiskToDev().split())
for dsk in range(1, disks + 1):
particiones = ogGetPartitionsNumber(dsk) or 0
ptt = ogGetPartitionTableType(dsk)
ptt_map = {"MSDOS": 1, "GPT": 2, "LVM": 3, "ZPOOL": 4}
ptt = ptt_map.get(ptt, 0)
cfg += f"{dsk}:0:{ptt}:::{ogGetDiskSize(dsk)}:0;"
for par in range(1, particiones + 1):
cod = ogGetPartitionId(dsk, par)
fsi = getFsType(dsk, par) or "EMPTY"
tam = ogGetPartitionSize(dsk, par) or "0"
soi = ""
uso = 0
if fsi not in ["", "EMPTY", "LINUX-SWAP", "LINUX-LVM", "ZVOL"]:
if ogMount(dsk, par):
soi = getOsVersion(dsk, par).split(":")[1]
if not soi:
soi = getOsVersion(dsk, par).split(":")[1]
if not soi and fsi not in ["EMPTY", "CACHE"]:
soi = "DATA"
uso = int(subprocess.getoutput(f"df {ogGetMountPoint(dsk, par)} | awk '{{getline; printf \"%d\",$5}}'") or 0)
cfg += f"{dsk}:{par}:{cod}:{fsi}:{soi}:{tam}:{uso};"
if not cfg:
cfg = "1:0:0:::0;"
cfgfile = "/tmp/getconfig"
with open(cfgfile, "w") as f:
f.write(f"{ser + ';' if ser else ''}{cfg}")
generateMenuDefault()
with open(cfgfile, "r") as f:
data = f.read()
for line in data.split(";"):
if line:
parts = line.split(":")
if len(parts) == 1:
print(f"ser={parts[0]}")
else:
print(f"disk={parts[0]}\tpar={parts[1]}\tcpt={parts[2]}\tfsi={parts[3]}\tsoi={parts[4]}\ttam={parts[5]}\tuso={parts[6]}")
for root, dirs, files in os.walk("/mnt"):
for file in files:
if file.startswith("ogboot."):
os.remove(os.path.join(root, file))
os.environ.pop("DEBUG", None)
if __name__ == "__main__":
main()