[X2Go-Commits] x2gobroker.git - master (branch) updated: 0.0.2.3-52-g014e9a5

X2Go dev team git-admin at x2go.org
Wed Oct 2 16:58:17 CEST 2013


The branch, master has been updated
       via  014e9a5c9b1535aa2a53114654f17f61d01cdf8c (commit)
      from  6f11897f570fdea9e1c1353ac2a614b253183a7e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 014e9a5c9b1535aa2a53114654f17f61d01cdf8c
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Oct 2 16:50:36 2013 +0200

    Add utils function: matching_hostnames(): test hostname lists for matching hostnames (with/without domain name).

-----------------------------------------------------------------------

Summary of changes:
 debian/changelog               |    2 ++
 x2gobroker/tests/test_utils.py |   37 +++++++++++++++++++++++++++++++++++++
 x2gobroker/utils.py            |   21 +++++++++++++++++++++
 3 files changed, 60 insertions(+)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 8a05da2..bb2cb50 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -40,6 +40,8 @@ x2gobroker (0.0.3.0-0~x2go1) UNRELEASED; urgency=low
     - Fix the ping task in x2gobroker-agent.pl, process it without checking the
       given username.
     - Fix remote agent detection in case of some agents being down.
+    - Add utils function: matching_hostnames(): test hostname lists for
+      matching hostnames (with/without domain name).
   * /debian/control:
     + Replace LDAP support with session brokerage support in LONG_DESCRIPTION.
   * /debian/x2gobroker-agent.dirs:
diff --git a/x2gobroker/tests/test_utils.py b/x2gobroker/tests/test_utils.py
index 2480ffb..96ce51e 100644
--- a/x2gobroker/tests/test_utils.py
+++ b/x2gobroker/tests/test_utils.py
@@ -94,6 +94,43 @@ class TestX2GoBrokerUtils(unittest.TestCase):
         self.assertEqual(esl_keys, sln_keys)
         self.assertEqual(['extern', 'intern'], subdomains)
 
+    def test_matching_hostnames(self):
+
+        server_list_a = ['server1', 'server2', 'server3']
+        server_list_b = ['server2', 'server3', 'server4']
+        matching_hostnames = x2gobroker.utils.matching_hostnames(server_list_a, server_list_b)
+        self.assertEqual(matching_hostnames, ['server2', 'server3'])
+
+        server_list_a = ['server1.domain1', 'server2.domain1', 'server3.domain1']
+        server_list_b = ['server2', 'server3', 'server4']
+        matching_hostnames = x2gobroker.utils.matching_hostnames(server_list_a, server_list_b)
+        self.assertEqual(matching_hostnames, ['server2', 'server3'])
+
+        server_list_a = ['server1', 'server2', 'server3']
+        server_list_b = ['server2.domain2', 'server3.domain2', 'server4.domain2']
+        matching_hostnames = x2gobroker.utils.matching_hostnames(server_list_a, server_list_b)
+        self.assertEqual(matching_hostnames, ['server2', 'server3'])
+
+        server_list_a = ['server1.domain1', 'server2.domain1', 'server3.domain1']
+        server_list_b = ['server2.domain2', 'server3.domain2', 'server4.domain2']
+        matching_hostnames = x2gobroker.utils.matching_hostnames(server_list_a, server_list_b)
+        self.assertEqual(matching_hostnames, [])
+
+        server_list_a = ['server1.domain1', 'server2.domain2', 'server3.domain1']
+        server_list_b = ['server2.domain2', 'server3.domain2', 'server4.domain2']
+        matching_hostnames = x2gobroker.utils.matching_hostnames(server_list_a, server_list_b)
+        self.assertEqual(matching_hostnames, ['server2.domain2'])
+
+        server_list_a = ['server1.domain1', 'server2', 'server3.domain1']
+        server_list_b = ['server2.domain2', 'server3.domain2', 'server4.domain2']
+        matching_hostnames = x2gobroker.utils.matching_hostnames(server_list_a, server_list_b)
+        self.assertEqual(matching_hostnames, [])
+
+        server_list_a = ['server1.domain1', 'server2', 'server3.domain1']
+        server_list_b = ['server2', 'server3.domain2', 'server4.domain2']
+        matching_hostnames = x2gobroker.utils.matching_hostnames(server_list_a, server_list_b)
+        self.assertEqual(matching_hostnames, ['server2'])
+
 
 def test_suite():
     from unittest import TestSuite, makeSuite
diff --git a/x2gobroker/utils.py b/x2gobroker/utils.py
index 83656ec..cc01eae 100644
--- a/x2gobroker/utils.py
+++ b/x2gobroker/utils.py
@@ -148,3 +148,24 @@ def normalize_hostnames(servers):
         servers_normalized = servers
 
     return servers_normalized, subdomains
+
+def matching_hostnames(server_list_a, server_list_b):
+
+    matching_hosts = []
+
+    ### NORMALIZE (=reduce to hostname only) server names (list A) if possible
+    server_list_a_normalized, subdomains_a = normalize_hostnames(server_list_a)
+
+    ### NORMALIZE server names (in list B), only if we have a unique domain match in list A
+    if len(subdomains_a) <= 1:
+
+        server_list_b_normalized, subdomains_b = normalize_hostnames(server_list_b)
+        if len(subdomains_b) <= 1:
+
+            if len(subdomains_a) == 0 or len(subdomains_b) == 0:
+                matching_hosts = list(set(server_list_a_normalized).intersection(set(server_list_b_normalized)))
+
+    if not matching_hosts:
+        matching_hosts = list(set(server_list_a).intersection(set(server_list_b)))
+
+    return matching_hosts


hooks/post-receive
-- 
x2gobroker.git (HTTP(S) Session broker for X2Go)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "x2gobroker.git" (HTTP(S) Session broker for X2Go).




More information about the x2go-commits mailing list