[X2Go-Commits] [x2gobroker] 02/05: rename checkload() -> check_load in agent.py/loadchecker.py, handle reported errors in loadchecker.check_load()
git-admin at x2go.org
git-admin at x2go.org
Mon Mar 30 13:28:01 CEST 2015
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository x2gobroker.
commit db17a98b723fb5bcc62b00f904903bb5abac4ba5
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Mon Mar 30 13:22:05 2015 +0200
rename checkload() -> check_load in agent.py/loadchecker.py, handle reported errors in loadchecker.check_load()
---
x2gobroker/agent.py | 4 ++--
x2gobroker/loadchecker.py | 41 +++++++++++++++++++++++++++--------------
2 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/x2gobroker/agent.py b/x2gobroker/agent.py
index aa73a87..203b66c 100644
--- a/x2gobroker/agent.py
+++ b/x2gobroker/agent.py
@@ -400,7 +400,7 @@ def find_busy_servers(username, remote_agent=None, logger=None, **kwargs):
tasks['findbusyservers'] = find_busy_servers
-def checkload(remote_agent=None, logger=None, **kwargs):
+def check_load(remote_agent=None, logger=None, **kwargs):
"""\
Query X2Go Broker Agent for a summary of system load specific
parameters.
@@ -440,7 +440,7 @@ def checkload(remote_agent=None, logger=None, **kwargs):
pass
return load_factor
-tasks['checkload'] = checkload
+tasks['checkload'] = check_load
def add_authorized_key(username, pubkey_hash, authorized_keys_file='%h/.x2go/authorized_keys', remote_agent=None, logger=None, **kwargs):
"""\
diff --git a/x2gobroker/loadchecker.py b/x2gobroker/loadchecker.py
index 61ada88..435e53e 100644
--- a/x2gobroker/loadchecker.py
+++ b/x2gobroker/loadchecker.py
@@ -29,49 +29,62 @@ import x2gobroker.config
from x2gobroker.loggers import logger_broker
-def checkload(backend, profile_id, hostname=None):
+def check_load(backend, profile_id, hostname=None):
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- logger_broker.debug('loadchecker.checkload(): connecting to load checker service socket {socket}'.format(socket=x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET))
+ logger_broker.debug('loadchecker.check_load(): connecting to load checker service socket {socket}'.format(socket=x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET))
try:
s.connect(x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET)
except socket.error, e:
- logger_broker.error('loadchecker.checkload(): failure when connecting to the load checker service socket {socket}: {errmsg}'.format(socket=x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET, errmsg=str(e)))
+ logger_broker.error('loadchecker.check_load(): failure when connecting to the load checker service socket {socket}: {errmsg}'.format(socket=x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET, errmsg=str(e)))
if hostname is not None:
load_factor = 'LOAD-UNAVAILABLE'
- logger_broker.debug('loadchecker.checkload(): sending backend={backend}, profile_id={profile_id}, hostname={hostname} to load checker service'.format(backend=backend, profile_id=profile_id, hostname=hostname))
+ logger_broker.debug('loadchecker.check_load(): sending backend={backend}, profile_id={profile_id}, hostname={hostname} to load checker service'.format(backend=backend, profile_id=profile_id, hostname=hostname))
try:
s.send('{backend}\r{profile_id}\r{hostname}\n'.format(backend=backend, profile_id=profile_id, hostname=hostname))
load_factor = s.recv(1024)
s.close()
except socket.error, e:
- logger_broker.error('loadchecker.checkload(): failure when sending data to the load checker service socket {socket}: {errmsg}'.format(socket=x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET, errmsg=str(e)))
+ logger_broker.error('loadchecker.check_load(): failure when sending data to the load checker service socket {socket}: {errmsg}'.format(socket=x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET, errmsg=str(e)))
if load_factor.startswith('LOAD-UNAVAILABLE'):
- logger_broker.warning('loadchecker.checkload(): load unavailable for backend={backend}, profile_id={profile_id}, hostname={hostname}'.format(backend=backend, profile_id=profile_id, hostname=hostname))
- return None
+ logger_broker.warning('loadchecker.check_load(): load unavailable for backend={backend}, profile_id={profile_id}, hostname={hostname}'.format(backend=backend, profile_id=profile_id, hostname=hostname))
+ return 'LOAD-UNAVAILABLE'
+
+ try:
+ load_factor = long(load_factor)
+ except ValueError:
+ logger_broker.warning('loadchecker.check_load(): load data for backend={backend}, profile_id={profile_id}, hostname={hostname} contained bogus (»{lf}«)'.format(backend=backend, profile_id=profile_id, hostname=hostname, lf=load_factor))
+ return 'LOAD-DATA-BOGUS'
- logger_broker.info('loadchecker.checkload(): load factor for backend={backend}, profile_id={profile_id}, hostname={hostname} is: {lf}'.format(backend=backend, profile_id=profile_id, hostname=hostname, lf=load_factor))
+ logger_broker.info('loadchecker.check_load(): load factor for backend={backend}, profile_id={profile_id}, hostname={hostname} is: {lf}'.format(backend=backend, profile_id=profile_id, hostname=hostname, lf=load_factor))
return load_factor
else:
raw_output = ""
- logger_broker.debug('loadchecker.checkload(): sending backend={backend}, profile_id={profile_id} to load checker service'.format(backend=backend, profile_id=profile_id, hostname=hostname))
+ logger_broker.debug('loadchecker.check_load(): sending backend={backend}, profile_id={profile_id} to load checker service'.format(backend=backend, profile_id=profile_id, hostname=hostname))
try:
s.send('{backend}\r{profile_id}\r\n'.format(backend=backend, profile_id=profile_id))
raw_output = s.recv(1024)
s.close()
except socket.error, e:
- logger_broker.error('loadchecker.checkload(): failure when sending data to the load checker service socket {socket}: {errmsg}'.format(socket=x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET, errmsg=str(e)))
+ logger_broker.error('loadchecker.check_load(): failure when sending data to the load checker service socket {socket}: {errmsg}'.format(socket=x2gobroker.defaults.X2GOBROKER_LOADCHECKER_SOCKET, errmsg=str(e)))
load_factors = {}
items = raw_output.split('\n')
for item in items:
if ":" in item:
key, val = item.split(':', 1)
- load_factors[key] = val
-
- logger_broker.info('loadchecker.checkload(): load metrics for backend={backend}, profile_id={profile_id} are: {lf}'.format(backend=backend, profile_id=profile_id, hostname=hostname, lf=load_factors))
+ try:
+ if val not in ('HOST-UNREACHABLE', 'LOAD-UNAVAILABLE', 'LOAD-DATA-BOGUS'):
+ load_factors[key] = long(val)
+ else:
+ load_factors[key] = val
+ except ValueError:
+ logger_broker.warning('loadchecker.check_load(): load data for backend={backend}, profile_id={profile_id}, hostname={hostname} contained bogus (»{lf}«)'.format(backend=backend, profile_id=profile_id, hostname=hostname, lf=val))
+ load_factors[key] = 'LOAD-DATA-BOGUS'
+
+ logger_broker.info('loadchecker.check_load(): load metrics for backend={backend}, profile_id={profile_id} are: {lf}'.format(backend=backend, profile_id=profile_id, hostname=hostname, lf=load_factors))
return load_factors
@@ -176,7 +189,7 @@ class LoadChecker(threading.Thread):
self.server_load[backend][profile_id] = {}
remote_agents = self.brokers[backend].get_all_remote_agents(profile_id)
for remote_agent in remote_agents:
- _load_factor = x2gobroker.agent.checkload(remote_agent, logger=self.logger)
+ _load_factor = x2gobroker.agent.check_load(remote_agent, logger=self.logger)
num_queries += 1
if _load_factor is None:
if self.logger: self.logger.info('LoadChecker.loadchecker(): backend={backend}, profile_id={profile_id}, hostname={hostname}, load factor not available'.format(backend=backend, profile_id=profile_id, hostname=remote_agent[u'hostname']))
--
Alioth's /srv/git/code.x2go.org/x2gobroker.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git
More information about the x2go-commits
mailing list