Compare commits
No commits in common. "main" and "oglog" have entirely different histories.
36
CHANGELOG.md
36
CHANGELOG.md
|
@ -5,42 +5,6 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.8.0] - 2025-04-23
|
||||
|
||||
### Added
|
||||
|
||||
- Have the oglive agent send /stopped on poweroff or restart
|
||||
|
||||
## [0.7.2] - 2025-04-21
|
||||
|
||||
### Fixed
|
||||
|
||||
- Have the partitioning functions return a meaningful rc
|
||||
|
||||
## [0.7.1] - 2025-04-15
|
||||
|
||||
### Fixed
|
||||
|
||||
- getConfiguration.py: don't fail if NTFS filesystems are mounted ro
|
||||
|
||||
## [0.7.0] - 2025-04-15
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed references to ogGlobals.OGLOG in python code
|
||||
|
||||
## [0.6.1] - 2025-04-15
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed capturing of partclone output and management of return value
|
||||
|
||||
## [0.6.0] - 2025-04-15
|
||||
|
||||
### Changed
|
||||
|
||||
- ogGetIpAddress() is no longer required in ogGlobals--move it back into NetLib
|
||||
|
||||
## [0.5.0] - 2025-04-15
|
||||
|
||||
### Changed
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
os.system ('pkill -f OGAgent')
|
||||
time.sleep (3)
|
||||
os.system ('poweroff')
|
||||
sys.exit (0)
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
os.system ('pkill -f OGAgent')
|
||||
time.sleep (3)
|
||||
os.system ('reboot')
|
||||
sys.exit (0)
|
||||
|
|
|
@ -74,5 +74,4 @@ else:
|
|||
|
||||
# Borramos marcas de arranque de Windows
|
||||
for f in glob.glob ('/mnt/*/ogboot.*') + glob.glob ('/mnt/*/*/ogboot.*'):
|
||||
try: os.unlink (f)
|
||||
except: pass
|
||||
os.unlink (f)
|
||||
|
|
|
@ -179,7 +179,7 @@ def ogCreatePartitions (disk, parts):
|
|||
p = subprocess.run (['sfdisk', DISK], input=sfdisk_input, capture_output=True, text=True)
|
||||
subprocess.run (['partprobe', DISK])
|
||||
if CACHESIZE: CacheLib.ogMountCache()
|
||||
return not p.returncode
|
||||
return True
|
||||
|
||||
|
||||
#/**
|
||||
|
@ -285,7 +285,7 @@ def ogCreateGptPartitions (disk, parts):
|
|||
p = subprocess.run (['sgdisk'] + DELOPTIONS + OPTIONS + [DISK], capture_output=True, text=True)
|
||||
subprocess.run (['partprobe', DISK])
|
||||
if CACHESIZE: CacheLib.ogMountCache()
|
||||
return not p.returncode
|
||||
return True
|
||||
|
||||
|
||||
#/**
|
||||
|
|
|
@ -512,8 +512,6 @@ def ogRestoreImage (repo, imgpath, disk, par):
|
|||
rc = None
|
||||
try:
|
||||
p = subprocess.run (program, shell=True, capture_output=True, text=True)
|
||||
print (p.stdout)
|
||||
print (p.stderr)
|
||||
rc = p.returncode
|
||||
if not rc:
|
||||
SystemLib.ogRaiseError ([], ogGlobalsOG_ERR_IMAGE, f'{imgfile}, {disk}, {par}')
|
||||
|
|
|
@ -142,29 +142,7 @@ def ogGetHostname():
|
|||
#@note Usa las variables utilizadas por el initrd "/etc/net-ethX.conf
|
||||
#*/ ##
|
||||
def ogGetIpAddress():
|
||||
if "IPV4ADDR" in os.environ:
|
||||
ip = os.environ["IPV4ADDR"]
|
||||
if '/' in ip: ip = ip.split ('/')[0]
|
||||
return ip
|
||||
|
||||
extra_args = []
|
||||
if "DEVICE" in os.environ:
|
||||
extra_args = [ "dev", os.environ["DEVICE"] ]
|
||||
ipas = subprocess.run (['ip', '-json', 'address', 'show', 'up'] + extra_args, capture_output=True, text=True).stdout
|
||||
|
||||
ipasj = json.loads (ipas)
|
||||
addresses = []
|
||||
for e in ipasj:
|
||||
if 'lo' == e['ifname']: continue
|
||||
if 'addr_info' not in e: continue
|
||||
addrs = e['addr_info']
|
||||
for a in addrs:
|
||||
if 'inet' != a['family']: continue
|
||||
addresses.append ({ 'local': a['local'], 'prefixlen': a['prefixlen'] })
|
||||
|
||||
if 1 != len (addresses):
|
||||
raise Exception ('more than one local IP address found')
|
||||
return addresses[0]
|
||||
return ogGlobals.ogGetIpAddress()
|
||||
|
||||
|
||||
#/**
|
||||
|
|
|
@ -6,6 +6,33 @@ import os.path
|
|||
import locale
|
||||
import importlib.util
|
||||
|
||||
## required for defining OGLOGFILE
|
||||
def ogGetIpAddress():
|
||||
if "IPV4ADDR" in os.environ:
|
||||
ip = os.environ["IPV4ADDR"]
|
||||
if '/' in ip: ip = ip.split ('/')[0]
|
||||
return ip
|
||||
|
||||
extra_args = []
|
||||
if "DEVICE" in os.environ:
|
||||
extra_args = [ "dev", os.environ["DEVICE"] ]
|
||||
ipas = subprocess.run (['ip', '-json', 'address', 'show', 'up'] + extra_args, capture_output=True, text=True).stdout
|
||||
|
||||
ipasj = json.loads (ipas)
|
||||
addresses = []
|
||||
for e in ipasj:
|
||||
if 'lo' == e['ifname']: continue
|
||||
if 'addr_info' not in e: continue
|
||||
addrs = e['addr_info']
|
||||
for a in addrs:
|
||||
if 'inet' != a['family']: continue
|
||||
addresses.append ({ 'local': a['local'], 'prefixlen': a['prefixlen'] })
|
||||
|
||||
if 1 != len (addresses):
|
||||
raise Exception ('more than one local IP address found')
|
||||
return addresses[0]
|
||||
ip = ogGetIpAddress()
|
||||
|
||||
def load_lang (name):
|
||||
global lang
|
||||
if name in sys.modules:
|
||||
|
@ -61,8 +88,9 @@ OGPYFUNCS = os.path.join (OPENGNSYS, 'functions')
|
|||
OGSCRIPTS = os.path.join (OPENGNSYS, 'scripts')
|
||||
OGIMG = os.path.join (OPENGNSYS, 'images')
|
||||
OGCAC = os.path.join (OPENGNSYS, 'cache')
|
||||
OGLOGFILE = '/var/log/clone-engine.log'
|
||||
OGJSONLOGFILE = '/var/log/clone-engine.json.log'
|
||||
OGLOG = '/var/log'
|
||||
OGLOGFILE = f'{OGLOG}/clone-engine.log'
|
||||
OGJSONLOGFILE = f'{OGLOG}/clone-engine.json.log'
|
||||
DEBUG = 'yes'
|
||||
_path = os.environ['PATH'] + ':/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/opt/oglive/rootfs/opt/drbl/sbin'
|
||||
os.environ['PATH'] = ':'.join ([OGSCRIPTS, _path, OGAPI, OGBIN])
|
||||
|
|
|
@ -145,10 +145,6 @@ def main (repo, imgname, disk, par, proto='UNICAST', protoopt=''):
|
|||
SystemLib.ogEcho (['log', 'session'], None, f'[55] {ogGlobals.lang.MSG_HELP_ogRestoreImage}: restoreImage {params}')
|
||||
retval = subprocess.run (['restoreImage.py'] + params).returncode
|
||||
|
||||
## turn shell's success into python success (without ending up with True or False)
|
||||
if retval: retval = 0
|
||||
else: retval = 1
|
||||
|
||||
# Mostrar resultados.
|
||||
resumerestoreimage = subprocess.run (['grep', '--max-count', '1', 'Total Time:', ogGlobals.OGLOGCOMMAND], capture_output=True, text=True).stdout
|
||||
SystemLib.ogEcho (['log', 'session'], None, f' [ ] {resumerestoreimage} ')
|
||||
|
|
|
@ -21,7 +21,7 @@ if len (sys.argv) > 1:
|
|||
#SERVERLOGDIR = unused
|
||||
|
||||
# Fichero de listado: hard-IP
|
||||
HARDFILE = f'/tmp/hard-{ogGetIpAddress()}'
|
||||
HARDFILE = f'{ogGlobals.OGLOG}/hard-{ogGetIpAddress()}'
|
||||
out = ogListHardwareInfo()
|
||||
with open (HARDFILE, 'w') as fd:
|
||||
fd.write (out)
|
||||
|
|
|
@ -18,7 +18,7 @@ prog = os.path.basename (sys.argv[0])
|
|||
|
||||
def main (disk, par, reduced):
|
||||
ip = NetLib.ogGetIpAddress()
|
||||
softfile = f'/tmp/soft-{ip}-{disk}-{par}'
|
||||
softfile = f'{ogGlobals.OGLOG}/soft-{ip}-{disk}-{par}'
|
||||
software_list = InventoryLib.ogListSoftware (disk, par)
|
||||
|
||||
if reduced:
|
||||
|
|
Loading…
Reference in New Issue