[X2Go-Commits] [x2gobroker] 03/03: LoadChecker.loadchecker(): Report about query failures, as well, in query cycle summary.

git-admin at x2go.org git-admin at x2go.org
Sat Mar 28 00:43:58 CET 2015


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2gobroker.

commit 0ddf164399d2cd9101896faf4fb8546278a67548
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Sat Mar 28 00:43:44 2015 +0100

    LoadChecker.loadchecker(): Report about query failures, as well, in query cycle summary.
---
 debian/changelog          |    2 ++
 x2gobroker/loadchecker.py |   15 ++++++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 7f3bbf8..e7d8539 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -256,6 +256,8 @@ x2gobroker (0.0.3.0-0x2go1) UNRELEASED; urgency=low
       frequency.
     - x2gobroker-agent.pl: Fall-back CPU detection for virtualized systems (e.g.
       QEMU hosts).
+    - LoadChecker.loadchecker(): Report about query failures, as well, in query
+      cycle summary.
   * debian/control:
     + Provide separate bin:package for SSH brokerage: x2gobroker-ssh.
     + Replace LDAP support with session brokerage support in LONG_DESCRIPTION.
diff --git a/x2gobroker/loadchecker.py b/x2gobroker/loadchecker.py
index d21e776..61ada88 100644
--- a/x2gobroker/loadchecker.py
+++ b/x2gobroker/loadchecker.py
@@ -157,6 +157,7 @@ class LoadChecker(threading.Thread):
             # all configured/enabled broker backends
             self.brokers = {}
             num_queries = 0
+            num_failed_queries = 0
             for backend in self.broker_backends:
 
                 if self.logger: self.logger.debug('LoadChecker.loadchecker(): load checker thread waking up...')
@@ -175,9 +176,14 @@ 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:
-                        self.server_load[backend][profile_id][remote_agent[u'hostname']] = x2gobroker.agent.checkload(remote_agent, logger=self.logger)
-                        if self.logger: self.logger.info('LoadChecker.loadchecker(): contacted remote broker agent for backend={backend}, profile_id={profile_id}, hostname={hostname}, new load factor is: {lf}'.format(backend=backend, profile_id=profile_id, hostname=remote_agent[u'hostname'], lf=self.server_load[backend][profile_id][remote_agent[u'hostname']]))
+                        _load_factor = x2gobroker.agent.checkload(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']))
+                            num_failed_queries += 1
+                        else:
+                            if self.logger: self.logger.info('LoadChecker.loadchecker(): contacted remote broker agent for backend={backend}, profile_id={profile_id}, hostname={hostname}, new load factor is: {lf}'.format(backend=backend, profile_id=profile_id, hostname=remote_agent[u'hostname'], lf=_load_factor))
+                        self.server_load[backend][profile_id][remote_agent[u'hostname']] = _load_factor
                         if time_to_sleep > 0:
                             if self.logger: self.logger.debug('LoadChecker.loadchecker(): sleeping for {secs}secs before querying next server'.format(secs=time_to_sleep))
                             time.sleep(time_to_sleep)
@@ -207,12 +213,11 @@ class LoadChecker(threading.Thread):
                 time.sleep(self.load_checker_intervals)
             if num_queries > 0:
                 if time_to_sleep > 0:
-                    if self.logger: self.logger.debug('LoadChecker.loadchecker(): performed {num} queries, sleeping for {secs}secs before starting next query cycle'.format(num=num_queries, secs=self.load_checker_intervals - time_to_sleep * num_queries))
+                    if self.logger: self.logger.debug('LoadChecker.loadchecker(): performed {num} queries (failures: {num_failures}), sleeping for {secs}secs before starting next query cycle'.format(num=num_queries, num_failures=num_failed_queries, secs=self.load_checker_intervals - time_to_sleep * num_queries))
                     time.sleep(self.load_checker_intervals - time_to_sleep * num_queries)
                 time_to_sleep = self.load_checker_intervals / (num_queries +1)
             else:
-                if num_queries == 0:
-                    if self.logger: self.logger.warning('LoadChecker.loadchecker(): performed {num} queries in this cycle, if this message keeps repeating itself, consider disabling the X2Go Broker Load Checker daemon'.format(num=num_queries, secs=self.load_checker_intervals - time_to_sleep * num_queries))
+                if self.logger: self.logger.warning('LoadChecker.loadchecker(): performed {num} queries (failures: {num_failures}) in this cycle, if this message keeps repeating itself, consider disabling the X2Go Broker Load Checker daemon'.format(num=num_queries, num_failures=num_failed_queries, secs=self.load_checker_intervals - time_to_sleep * num_queries))
                 time_to_sleep = 0
 
     def stop_thread(self):

--
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