refs #1112 use envvars for configuration
parent
029d3a778d
commit
9ac107dde4
|
@ -1,3 +1,10 @@
|
|||
ogagent (1.4.5~pre4-1) stable; urgency=medium
|
||||
|
||||
* Don't die when ogcore returns HTTP 4xx or 5xx
|
||||
* Get ogcore IP and port from the environment
|
||||
|
||||
-- OpenGnsys developers <info@opengnsys.es> Fri, 15 Nov 2024 11:43:01 +0100
|
||||
|
||||
ogagent (1.4.5~pre3-1) stable; urgency=medium
|
||||
|
||||
* Kill long running jobs in oglive
|
||||
|
|
|
@ -1 +1 @@
|
|||
1.4.5-pre3
|
||||
1.4.5-pre4
|
||||
|
|
|
@ -7,9 +7,9 @@ port=8000
|
|||
#path=test_modules/server,more_modules/server
|
||||
|
||||
# Remote OpenGnsys Service
|
||||
remote=https://192.168.2.1/opengnsys/rest
|
||||
remote={}://{}/opengnsys/rest
|
||||
# Alternate OpenGnsys Service (comment out to enable this option)
|
||||
#altremote=https://10.0.2.2/opengnsys/rest
|
||||
#altremote={}://{}/opengnsys/rest
|
||||
|
||||
# Execution level (permitted operations): status, halt, full
|
||||
level=full
|
||||
|
@ -23,15 +23,15 @@ log=DEBUG
|
|||
[ogAdmClient]
|
||||
#path=test_modules/server,more_modules/server
|
||||
|
||||
remote=https://192.168.2.1/opengnsys/rest
|
||||
remote={}://{}/opengnsys/rest
|
||||
log=DEBUG
|
||||
pathinterface=/opt/opengnsys/interfaceAdm
|
||||
urlMenu=https://192.168.2.1/opengnsys/varios/menubrowser.php
|
||||
urlMenu={}://{}/opengnsys/varios/menubrowser.php
|
||||
urlMsg=http://localhost/cgi-bin/httpd-log.sh
|
||||
|
||||
[CloningEngine]
|
||||
remote=https://192.168.2.1/opengnsys/rest
|
||||
remote={}://{}/opengnsys/rest
|
||||
log=DEBUG
|
||||
pathinterface=/opt/opengnsys/interfaceAdm
|
||||
urlMenu=https://192.168.2.1/opengnsys/varios/menubrowser.php
|
||||
urlMenu={}://{}/opengnsys/varios/menubrowser.php
|
||||
urlMsg=http://localhost/cgi-bin/httpd-log.sh
|
||||
|
|
|
@ -115,9 +115,18 @@ class OpenGnSysWorker(ServerWorker):
|
|||
t = 0 # Count of time
|
||||
# Generate random secret to send on activation
|
||||
self.random = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(self.length))
|
||||
|
||||
# Ensure cfg has required configuration variables or an exception will be thrown
|
||||
ogcore_scheme = os.environ['OGAGENTCFG_OGCORE_SCHEME'] or 'https'
|
||||
ogcore_ip = os.environ['OGAGENTCFG_OGCORE_IP'] or '192.168.2.1'
|
||||
ogcore_port = os.environ['OGAGENTCFG_OGCORE_PORT'] or '8443'
|
||||
ogcore_altip = os.environ['OGAGENTCFG_OGCORE_ALTIP'] or '192.168.2.254'
|
||||
ogcore_altport = os.environ['OGAGENTCFG_OGCORE_ALTPORT'] or '8443'
|
||||
ogcore_ip_port = ':'.join (map (str, filter (None, [ogcore_ip, ogcore_port ])))
|
||||
ogcore_altip_port = ':'.join (map (str, filter (None, [ogcore_altip, ogcore_altport ])))
|
||||
try:
|
||||
url = self.service.config.get(self.name, 'remote')
|
||||
url = url.format (ogcore_scheme, ogcore_ip_port)
|
||||
except NoOptionError as e:
|
||||
logger.error("Configuration error: {}".format(e))
|
||||
raise e
|
||||
|
@ -161,7 +170,9 @@ class OpenGnSysWorker(ServerWorker):
|
|||
logger.warn (str (e))
|
||||
# Trying to initialize on alternative server, if defined
|
||||
# (used in "exam mode" from the University of Seville)
|
||||
self.REST = REST(self.service.config.get(self.name, 'altremote'))
|
||||
alturl = self.service.config.get(self.name, 'altremote')
|
||||
alturl = alturl.format (ogcore_scheme, ogcore_altip_port)
|
||||
self.REST = REST(alturl)
|
||||
self.REST.sendMessage('ogagent/started', {'mac': self.interface.mac, 'ip': self.interface.ip,
|
||||
'secret': self.random, 'ostype': operations.os_type,
|
||||
'osversion': operations.os_version, 'alt_url': True,
|
||||
|
|
|
@ -142,7 +142,7 @@ class ogLiveWorker(ServerWorker):
|
|||
def notifier (self, job_id, result):
|
||||
logger.debug (f'notifier() called, job_id ({job_id}) result ({result})')
|
||||
result['job_id'] = job_id
|
||||
res = self.REST.sendMessage ('clients/status/webhook', result)
|
||||
self.REST.sendMessage ('clients/status/webhook', result)
|
||||
|
||||
def killer (self, job_id):
|
||||
logger.debug (f'killer() called, job_id ({job_id})')
|
||||
|
@ -366,12 +366,23 @@ class ogLiveWorker(ServerWorker):
|
|||
self.idaula = None ## Identificador del aula
|
||||
self.q = None ## for passing PIDs around
|
||||
|
||||
ogcore_scheme = os.environ['OGAGENTCFG_OGCORE_SCHEME'] or 'https'
|
||||
ogcore_ip = os.environ['OGAGENTCFG_OGCORE_IP'] or '192.168.2.1'
|
||||
ogcore_port = os.environ['OGAGENTCFG_OGCORE_PORT'] or '8443'
|
||||
urlmenu_scheme = os.environ['OGAGENTCFG_URLMENU_SCHEME'] or 'https'
|
||||
urlmenu_ip = os.environ['OGAGENTCFG_URLMENU_IP'] or '192.168.2.1'
|
||||
urlmenu_port = os.environ['OGAGENTCFG_URLMENU_PORT'] or '8443'
|
||||
ogcore_ip_port = ':'.join (map (str, filter (None, [ogcore_ip, ogcore_port ])))
|
||||
urlmenu_ip_port = ':'.join (map (str, filter (None, [urlmenu_ip, urlmenu_port])))
|
||||
try:
|
||||
url = self.service.config.get (self.name, 'remote')
|
||||
loglevel = self.service.config.get (self.name, 'log')
|
||||
self.pathinterface = self.service.config.get (self.name, 'pathinterface')
|
||||
self.urlMenu = self.service.config.get (self.name, 'urlMenu')
|
||||
self.urlMsg = self.service.config.get (self.name, 'urlMsg')
|
||||
|
||||
url = url.format (ogcore_scheme, ogcore_ip_port)
|
||||
self.urlMenu = self.urlMenu.format (urlmenu_scheme, urlmenu_ip_port)
|
||||
except NoOptionError as e:
|
||||
logger.error ("Configuration error: {}".format (e))
|
||||
raise e
|
||||
|
|
Loading…
Reference in New Issue