[X2Go-Commits] [python-x2go] 04/05: Provide API inline documentation for http(s) session broker client implementation.
git-admin at x2go.org
git-admin at x2go.org
Mon Oct 20 22:58:34 CEST 2014
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository python-x2go.
commit 1e11f64157fd36230e5d40f37f589e908be87721
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Mon Oct 20 22:52:18 2014 +0200
Provide API inline documentation for http(s) session broker client implementation.
---
debian/changelog | 2 +
x2go/backends/profiles/httpbroker.py | 96 ++++++++++++++++++++++++++++++++++
2 files changed, 98 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 0273933..7879fd9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ python-x2go (0.5.0.1-0x2go1) UNRELEASED; urgency=medium
* New upstream version (0.5.0.1):
- Update TODO file.
- Update README file.
+ - Provide API inline documentation for http(s) session
+ broker client implementation.
-- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Mon, 20 Oct 2014 22:24:21 +0200
diff --git a/x2go/backends/profiles/httpbroker.py b/x2go/backends/profiles/httpbroker.py
index 2e17e40..539bbd9 100644
--- a/x2go/backends/profiles/httpbroker.py
+++ b/x2go/backends/profiles/httpbroker.py
@@ -113,21 +113,77 @@ class X2GoSessionProfiles(base.X2GoSessionProfiles):
self.broker_my_pubkey, self.broker_my_privkey = genkeypair(local_username=_CURRENT_LOCAL_USER, client_address='127.0.0.1')
def get_broker_noauth(self):
+ """\
+ Accessor for the class's C{broker_noauth} property.
+
+ @return: C{True} if the broker probably does not expect authentication.
+ @rtype: C{bool}
+
+ """
return self.broker_noauth
def get_broker_username(self):
+ """\
+ Accessor for the class's C{broker_username} property.
+
+ @return: the username used for authentication against the session broker URL
+ @rtype: C{str}
+
+ """
return self.broker_username
def get_broker_url(self):
+ """\
+ Accessor for the class's C{broker_url} property.
+
+ @return: the session broker URL that was used at broker session instantiation
+ @rtype: C{str}
+
+ """
return self.broker_url
def set_broker_url(self, broker_url):
+ """\
+ Mutator for the class's C{broker_url} property.
+
+ @param broker_url: A new broker URL to use with this instance. Format is
+ C{<protocol>://<hostname>:<port>/<path>} (where protocol has to be C{http}
+ or C{https}.
+ @type broker_url: C{str}
+
+ @return: the session broker URL that was used at broker session instantiation
+ @rtype: C{str}
+
+ """
self.broker_url = broker_url
def get_broker_type(self):
+ """\
+ Accessor of the class's {_broker_type} property.
+
+ @return: either C{http} or C{https}.
+ @rtype: C{str}
+
+ """
return self._broker_type
def broker_simpleauth(self, broker_username, broker_password):
+ """\
+ Attempt a username / password authentication against the instance's
+ broker URL.
+
+ @param broker_username: username to use for authentication
+ @type broker_username: C{str}
+ @param broker_password: password to use for authentication
+ @type broker_password: C{str}
+
+ @return: C{True} if authentication has been successful
+ @rtype: C{bool}
+
+ @raise X2GoBrokerConnectionException: Raised on any kind of connection /
+ authentication failure.
+
+ """
if self.broker_url is not None:
request_data = {
'user': broker_username or '',
@@ -162,6 +218,14 @@ class X2GoSessionProfiles(base.X2GoSessionProfiles):
return False
def broker_disconnect(self):
+ """\
+ Disconnect from an (already) authenticated broker session.
+
+ All authentication parameters will be dropped (forgotten) and
+ this instance has to re-authenticate against / re-connect to the
+ session broker before any new interaction with the broker is possible.
+
+ """
_profile_ids = copy.deepcopy(self.profile_ids)
# forget nearly everything...
@@ -181,6 +245,17 @@ class X2GoSessionProfiles(base.X2GoSessionProfiles):
self.broker_noauth = False
def is_broker_authenticated(self):
+ """\
+ Detect if an authenticated broker session has already been
+ initiated. Todo so, a simple re-authentication (username, password)
+ will be attempted. If that fails, user credentials are not provided /
+ valid.
+
+ @return: C{True} if the broker session has already been authenticated
+ and user credentials are known / valid
+ @rtype: C{bool}
+
+ """
if self._broker_auth_successful is None:
# do a test auth against the given broker URL
try:
@@ -190,6 +265,13 @@ class X2GoSessionProfiles(base.X2GoSessionProfiles):
return self._broker_auth_successful
def broker_listprofiles(self):
+ """\
+ Obtain a session profile list from the X2Go Session Broker.
+
+ @return: session profiles as a Python dictionary.
+ @rtype: C{dict}
+
+ """
if self.broker_url is not None:
request_data = {
'task': 'listprofiles',
@@ -222,6 +304,20 @@ class X2GoSessionProfiles(base.X2GoSessionProfiles):
return {}
def broker_selectsession(self, profile_id):
+ """\
+ Select a session from the list of available session profiles (presented by
+ L{broker_listprofiles}). This method requests a session information dictionary
+ (server, port, SSH keys, already running / suspended sessions, etc.) from the
+ session broker for the provided C{profile_id}.
+
+ @param profile_id: profile ID of the selected session profile
+ @type profile_id: C{str}
+
+ @return: session information (server, port, SSH keys, etc.) for a selected
+ session profile (i.e. C{profile_id})
+ @rtype: C{dict}
+
+ """
if self.broker_url is not None:
if not self._broker_profile_cache.has_key(profile_id) or not self._broker_profile_cache[profile_id]:
request_data = {
--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/python-x2go.git
More information about the x2go-commits
mailing list