[X2Go-Commits] x2gobroker.git - build-main (branch) updated: 0.0.1.0-8-gb24fe4e
X2Go dev team
git-admin at x2go.org
Sun May 19 13:05:04 CEST 2013
The branch, build-main has been updated
via b24fe4ed32dc3f3066f20b4f93f1df5bbbdaa778 (commit)
from b440438bdbdcdd248957f6e2e0cfe4deaab895b5 (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 -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
x2gobroker/uccsjson.py | 241 ++++++++++++++++++++++++++++++++++++++++++++++++
x2gobroker/web/uccs.py | 83 +----------------
2 files changed, 244 insertions(+), 80 deletions(-)
create mode 100644 x2gobroker/uccsjson.py
The diff of changes is:
diff --git a/x2gobroker/uccsjson.py b/x2gobroker/uccsjson.py
new file mode 100644
index 0000000..779e2ba
--- /dev/null
+++ b/x2gobroker/uccsjson.py
@@ -0,0 +1,241 @@
+# Copyright (C) 2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2012 by Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+# Copyright (C) 2012 by Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
+#
+# X2Go Session Broker is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# X2Go Session Broker is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program; if not, write to the
+# Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+import json
+
+def convert_to_builtin_type(obj):
+ """\
+ Helper function for converting Python objects to dictionaries.
+ Used for doing JSON dumps.
+
+ """
+ d = { }
+ d.update(obj.__dict__)
+ return d
+
+class ManagementServer():
+ """\
+ Base class for generating UCCS compatible JSON object.
+
+ """
+ def __init__(self, url, name):
+ """\
+ Initializ instance.
+
+ @param url: URL of the UCCS broker server
+ @type url: C{unicode}
+ @param name: human-readable, descriptive server name
+ @type name: C{unicode}
+
+ """
+ self.RemoteDesktopServers = []
+ self.AdditionalManagementServers = []
+ self.URL = url
+ self.Name = name
+
+ def set_default(self, ts_name):
+ """\
+ Define the default (terminal) server instance.
+
+ @param ts_name: name of the terminal server that is to be set as default
+ @type ts_name: C{unicode}
+
+ """
+ if isinstance(tsName, str):
+ self.DefaultServer = tsName
+ else:
+ raise TypeError("set_default expects a string argument")
+
+ def add_terminal_server(self, server):
+ """\
+ Add a terminal server to this management server object.
+
+ @param server: instance of class L{RDPServer} or L{X2GoServer}.
+ @type server: C{obj}
+
+ """
+ self.RemoteDesktopServers.append(server)
+
+ # NOT USED!!!
+ #def add_additional_management_server(self, amserver):
+ # if isinstance(amserver, AdditionalManagementServer):
+ # self.AdditionalManagementServers.append(amserver)
+ # else:
+ # raise TypeError("add_additional_management_server expects a "\
+ # "AdditionalManagementServer argument")
+
+ def toJson(self):
+ """\
+ Dump this instance as JSON object.
+
+ """
+ return json.dumps(self, default=convert_to_builtin_type)
+
+
+# NOT USED!!!
+#class AdditionalManagementServer():
+# def __init__(self, url, name):
+# self.URL = url
+# self.Name = name
+
+
+class RDPServer():
+ """\
+ Instantiate a UCCS compatible RDP server session profile object.
+
+ """
+ def __init__(self, host, name, username=None, password=None):
+ """\
+ @param host: hostname of RDP server host
+ @type host: C{unicode}
+ @param name: session profile name
+ @type name: C{unicode}
+ @param username: username to be used for login
+ @type username: C{unicode}
+ @param password: password to be used for login
+ @type password: C{unicode}
+
+ """
+ self.URL = unicode(host)
+ self.Name = unicode(name)
+ self.Protocol = u'freerdp'
+ self.DomainRequired = unicode(True)
+ self.Username = unicode(username)
+ self.Password = unicode(password)
+
+ def set_domain(self, domain):
+ """\
+ Set the domain for this RDP server.
+
+ @param domain: the domain name to be set
+ @type domain: C{unicode}
+
+ @raise TypeError: domain has to be C{str} or C{unicode}
+
+ """
+ if isinstance(domainName, str):
+ self.WindowsDomain = unicode(domain)
+ elif isinstance(domainName, unicode):
+ self.WindowsDomain = domain
+ else:
+ raise TypeError("set_domain() expects a string or unicode argument")
+
+ def toJson(self):
+ """\
+ Dump this instance as JSON object.
+
+ """
+ return json.dumps(self, default=convert_to_builtin_type)
+
+
+class ICAServer():
+ """\
+ Instantiate a UCCS compatible ICA server session profile object.
+
+ """
+ def __init__(self, host, name, username=None, password=None):
+ """\
+ @param host: hostname of ICA server host
+ @type host: C{unicode}
+ @param name: session profile name
+ @type name: C{unicode}
+ @param username: username to be used for login
+ @type username: C{unicode}
+ @param password: password to be used for login
+ @type password: C{unicode}
+
+ """
+ self.URL = unicode(host)
+ self.Name = unicode(name)
+ self.Protocol = u'ica'
+ self.DomainRequired = unicode(True)
+ self.Username = unicode(username)
+ self.Password = unicode(password)
+
+ def set_domain(self, domain):
+ """\
+ Set the domain for this ICA server.
+
+ @param domain: the domain name to be set
+ @type domain: C{unicode}
+
+ @raise TypeError: domain has to be C{str} or C{unicode}
+
+ """
+ if isinstance(domainName, str):
+ self.WindowsDomain = unicode(domain)
+ elif isinstance(domainName, unicode):
+ self.WindowsDomain = domain
+ else:
+ raise TypeError("set_domain() expects a string or unicode argument")
+
+ def toJson(self):
+ """\
+ Dump this instance as JSON object.
+
+ """
+ return json.dumps(self, default=convert_to_builtin_type)
+
+
+class X2GoServer():
+ """\
+ Instantiate a UCCS compatible X2Go Server session profile object.
+
+ """
+ def __init__(self, host, name, username=None, password=None):
+ """\
+ @param host: hostname of X2Go Server host
+ @type host: C{unicode}
+ @param name: session profile name
+ @type name: C{unicode}
+ @param username: username to be used for login
+ @type username: C{unicode}
+ @param password: password to be used for login
+ @type password: C{unicode}
+
+ """
+ self.URL = host
+ self.Name = name
+ self.Protocol = 'x2go'
+ self.SessionTypeRequired = True
+ self.Username = username
+ self.Password = password
+
+ def set_session_type(self, session_type):
+ """\
+ Set the session type to be used with this X2Go Server.
+
+ @param session_type: the session type to be set
+ @type session_type: C{unicode}
+
+ @raise TypeError: session_type has to be C{str} or C{unicode}
+
+ """
+ if isinstance(domainName, str):
+ self.SessionType = sessiontypeName
+ else:
+ raise TypeError("set_session_type() expects a string or unicode argument")
+
+ def toJson(self):
+ """\
+ Dump this instance as JSON object.
+
+ """
+ return json.dumps(self, default=convert_to_builtin_type)
+
diff --git a/x2gobroker/web/uccs.py b/x2gobroker/web/uccs.py
index be63096..b75effa 100644
--- a/x2gobroker/web/uccs.py
+++ b/x2gobroker/web/uccs.py
@@ -29,84 +29,7 @@ from tornado.escape import native_str, parse_qs_bytes
import x2gobroker.defaults
from x2gobroker.loggers import logger_broker, logger_error
-
-
-def convert_to_builtin_type(obj):
- d = { }
- d.update(obj.__dict__)
- return d
-
-
-class ManagementServer():
- def __init__(self, url, name):
- self.RemoteDesktopServers = []
- self.AdditionalManagementServers = []
- self.URL = url
- self.Name = name
-
- def set_default(self, tsName):
- if isinstance(tsName, str):
- self.DefaultServer = tsName
- else:
- raise TypeError("set_default expects a string argument")
-
- def add_terminal_server(self, server):
- self.RemoteDesktopServers.append(server)
-
- def add_additional_management_server(self, amserver):
- if isinstance(amserver, AdditionalManagementServer):
- self.AdditionalManagementServers.append(amserver)
- else:
- raise TypeError("add_additional_management_server expects a "\
- "AdditionalManagementServer argument")
-
- def toJson(self):
- return json.dumps(self, default=convert_to_builtin_type)
-
-
-class AdditionalManagementServer():
- def __init__(self, url, name):
- self.URL = url
- self.Name = name
-
-
-class RDPServer():
- def __init__(self, url, name, username=None, password=None):
- self.URL = url
- self.Name = name
- self.Protocol = 'freerdp'
- self.DomainRequired = True
- self.Username = username
- self.Password = password
-
- def add_domain(self, domainName):
- if isinstance(domainName, str):
- self.WindowsDomain = domainName
- else:
- raise TypeError("add_domain expects a string argument")
-
- def toJson(self):
- return json.dumps(self, default=convert_to_builtin_type)
-
-
-class X2GoServer():
- def __init__(self, url, name, username=None, password=None):
- self.URL = url
- self.Name = name
- self.Protocol = 'x2go'
- self.SessionTypeRequired = True
- self.Username = username
- self.Password = password
-
- def add_sessiontype(self, sessiontypeName):
- if isinstance(domainName, str):
- self.SessionType = sessiontypeName
- else:
- raise TypeError("add_sessiontype expects a string argument")
-
- def toJson(self):
- return json.dumps(self, default=convert_to_builtin_type)
-
+import x2gobroker.uccsjson
class X2GoBrokerWeb(tornado.web.RequestHandler):
@@ -179,7 +102,7 @@ class X2GoBrokerWeb(tornado.web.RequestHandler):
profiles = broker_backend.list_profiles(username)
if profiles:
- ms = ManagementServer('http://localhost:8080/uccs/{backend}'.format(backend=backend), 'X2Go Session Broker')
+ ms = x2gobroker.uccsjson.ManagementServer('http://localhost:8080/uccs/{backend}'.format(backend=backend), 'X2Go Session Broker')
profile_ids = profiles.keys()
profile_ids.sort()
@@ -189,7 +112,7 @@ class X2GoBrokerWeb(tornado.web.RequestHandler):
if profiles[profile_id]['directrdp']:
pass
else:
- ts = X2GoServer(
+ ts = x2gobroker.uccsjson.X2GoServer(
url='{hostname}:{port}'.format(hostname=profiles[profile_id]['host'], port=profiles[profile_id]['sshport'])
name=profiles[profile_id]['name']
username=profiles[profile_id]['user']
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