This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to annotated tag 0.1.4.0
in repository x2goclient.
commit 95b44ad28a0d76a50785507d403f281145f99238
Author: mike <mike@cdb5e8f1-f799-4276-8919-bce57fd91830>
Date: Sat Nov 13 21:25:23 2010 +0000
* PyHocaCLI class and its X2goClient parent class now have separate loggers
* X2goSessionExceptions are now caught more globally
* allowing session profile option override from the command line
git-svn-id: https://svn.das-netzwerkteam.de/x2go/pyhoca-cli/trunk@53 cdb5e8f1-f799-4276-8919-bce57fd91830
---
pyhoca-cli | 3 +-
pyhoca/cli/frontend.py | 129 ++++++++++++++++++++++++++-----------------------
2 files changed, 71 insertions(+), 61 deletions(-)
diff --git a/pyhoca-cli b/pyhoca-cli
index 0aac277d..2d21c008 100755
--- a/pyhoca-cli
+++ b/pyhoca-cli
@@ -62,7 +62,7 @@ VERSION: %s
PRINT_ACTIONS = X2GO_PRINT_ACTIONS.keys()
-logger = x2go.X2goLogger(tag='MAIN')
+logger = x2go.X2goLogger()
liblogger = x2go.X2goLogger()
###
@@ -299,6 +299,7 @@ if __name__ == '__main__':
# parse command line
parser, args = parseargs()
+ args.parser = parser
try:
diff --git a/pyhoca/cli/frontend.py b/pyhoca/cli/frontend.py
index 9dbaa938..4a2ca6d7 100644
--- a/pyhoca/cli/frontend.py
+++ b/pyhoca/cli/frontend.py
@@ -190,29 +190,38 @@ class PyHocaCLI(x2go.X2goClient):
"""
self.args = args
if logger is None:
- logger = x2go.X2goLogger(tag='PyHocaCLI')
+ self._pyhoca_logger = x2go.X2goLogger(tag='PyHocaCLI')
else:
- self.logger = copy.deepcopy(logger)
- self.logger.tag = 'PyHocaCLI'
+ self._pyhoca_logger = copy.deepcopy(logger)
+ self._pyhoca_logger.tag = 'PyHocaCLI'
# initialize the X2goClient context and start the connection to the X2go server
- self.logger('preparing requested X2go session', x2go.loglevel_NOTICE, )
+ self._pyhoca_logger('preparing requested X2go session', x2go.loglevel_NOTICE, )
x2go.X2goClient.__init__(self, logger=liblogger)
_profiles = self._X2goClient__get_profiles()
if self.args.session_profile and _profiles.has_profile(self.args.session_profile):
- self.x2go_session_hash = self._X2goClient__register_session(profile_name=self.args.session_profile)
+ # override session profile options by option values from the arg parser
+ kwargs={}
+ if hasattr(self.args, 'parser'):
+ for a, v in self.args._get_kwargs():
+ if v != self.args.parser.get_default(a):
+ kwargs[a] = v
+
+ # setup up the session profile based X2go session
+ self.x2go_session_hash = self._X2goClient__register_session(profile_name=self.args.session_profile, **kwargs)
else:
+ # setup up the manually configured X2go session
self.x2go_session_hash = self._X2goClient__register_session(args.server, port=int(self.args.remote_ssh_port),
username=self.args.username,
password=self.args.password,
key_filename=self.args.ssh_privkey,
add_to_known_hosts=self.args.add_to_known_hosts,
- custom_profile_name = 'Pyhoca-Client_Session',
+ profile_name = 'Pyhoca-Client_Session',
session_type=self.args.session_type,
link=self.args.link,
geometry=self.args.geometry,
@@ -261,57 +270,58 @@ class PyHocaCLI(x2go.X2goClient):
STILL UNDOCUMENTED
"""
- if self.args.clean_sessions:
- self.clean_sessions(self.x2go_session_hash)
-
- # go through the possible X2go client modes
- if self.args.list_sessions:
- # print a beautified session list for the user
- self.list_sessions(self.x2go_session_hash)
- sys.exit(0)
+ try:
- if self.args.list_profiles:
- # print a beautified profile list for the user
- self.list_profiles()
- sys.exit(0)
+ if self.args.clean_sessions:
+ self.clean_sessions(self.x2go_session_hash)
- if self.args.resume:
- self.resume_session(self.x2go_session_hash)
+ # go through the possible X2go client modes
+ if self.args.list_sessions:
+ # print a beautified session list for the user
+ self.list_sessions(self.x2go_session_hash)
+ sys.exit(0)
- elif self.args.suspend:
- self.suspend_session(self.x2go_session_hash)
+ if self.args.list_profiles:
+ # print a beautified profile list for the user
+ self.list_profiles()
+ sys.exit(0)
- elif self.args.terminate:
- self.terminate_session(self.x2go_session_hash)
+ if self.args.resume:
+ self.resume_session(self.x2go_session_hash)
- elif self.args.new:
- self.new_session(self.x2go_session_hash)
+ elif self.args.suspend:
+ self.suspend_session(self.x2go_session_hash)
- # finally call the MainLoop of PyHocaCLI
- if not (self.args.new or self.args.resume or self.args.session_profile):
- sys.exit(0)
+ elif self.args.terminate:
+ self.terminate_session(self.x2go_session_hash)
- # give the session some time to come up...
- # no CTRL-C is allowed during this phase...
- i=0
- self.logger("give the X2go session some time to come up...", x2go.loglevel_NOTICE, )
- while i < self.args.time_to_wait:
- time.sleep(1)
- i+=1
+ elif self.args.new:
+ self.new_session(self.x2go_session_hash)
- if self._X2goClient__session_ok(self.x2go_session_hash):
+ # finally call the MainLoop of PyHocaCLI
+ if not (self.args.new or self.args.resume or self.args.session_profile):
+ sys.exit(0)
- profile_name = self._X2goClient__get_session_profile_name(self.x2go_session_hash)
- session_name = self._X2goClient__get_session_name(self.x2go_session_hash)
- self.logger("X2go session is now running, the X2go client's profile name is: %s" % profile_name, x2go.loglevel_INFO, )
- self.logger("X2go session name is: %s" % session_name, x2go.loglevel_INFO, )
- self.logger("Press CTRL+C to suspend the running session...", x2go.loglevel_NOTICE, )
- try:
+ # give the session some time to come up...
+ # no CTRL-C is allowed during this phase...
+ i=0
+ self._pyhoca_logger("give the X2go session some time to come up...", x2go.loglevel_NOTICE, )
+ while i < self.args.time_to_wait:
+ time.sleep(1)
+ i+=1
- session_duration = 0
- mounted = False
+ if self._X2goClient__session_ok(self.x2go_session_hash):
+ profile_name = self._X2goClient__get_session_profile_name(self.x2go_session_hash)
+ session_name = self._X2goClient__get_session_name(self.x2go_session_hash)
+ self._pyhoca_logger("X2go session is now running, the X2go client's profile name is: %s" % profile_name, x2go.loglevel_INFO, )
+ self._pyhoca_logger("X2go session name is: %s" % session_name, x2go.loglevel_INFO, )
+ self._pyhoca_logger("Press CTRL+C to suspend the running session...", x2go.loglevel_NOTICE, )
try:
+
+ session_duration = 0
+ mounted = False
+
while self._X2goClient__session_ok(self.x2go_session_hash):
time.sleep(2)
session_duration +=2
@@ -320,20 +330,19 @@ class PyHocaCLI(x2go.X2goClient):
time.sleep(2)
if self._X2goClient__has_session_terminated(self.x2go_session_hash):
- self.logger("X2go session %s has terminated" % session_name, x2go.loglevel_NOTICE, )
+ self._pyhoca_logger("X2go session %s has terminated" % session_name, x2go.loglevel_NOTICE, )
elif self._X2goClient__is_session_suspended(self.x2go_session_hash):
- self.logger("X2go session %s has been suspended" % session_name, x2go.loglevel_NOTICE, )
+ self._pyhoca_logger("X2go session %s has been suspended" % session_name, x2go.loglevel_NOTICE, )
elif self._X2goClient__is_session_running(self.x2go_session_hash):
- self.logger("X2go session %s has been moved to a different screen" % session_name, x2go.loglevel_NOTICE, )
-
- except x2go.X2goSessionException, e:
- self.logger("X2goSessionException occured:", x2go.loglevel_ERROR, )
- self.logger("-> %s" % str(e), x2go.loglevel_ERROR, )
-
- except KeyboardInterrupt:
- self.logger("Suspending X2go session %s" % session_name, x2go.loglevel_INFO, )
- self._X2goClient__suspend_session(self.x2go_session_hash)
- # giving nxproxy's SSH tunnel some time to settle
- time.sleep(2)
- self.logger("X2go session %s has been suspended" % session_name, x2go.loglevel_NOTICE, )
-
+ self._pyhoca_logger("X2go session %s has been moved to a different screen" % session_name, x2go.loglevel_NOTICE, )
+
+ except KeyboardInterrupt:
+ self._pyhoca_logger("Suspending X2go session %s" % session_name, x2go.loglevel_INFO, )
+ self._X2goClient__suspend_session(self.x2go_session_hash)
+ # giving nxproxy's SSH tunnel some time to settle
+ time.sleep(2)
+ self._pyhoca_logger("X2go session %s has been suspended" % session_name, x2go.loglevel_NOTICE, )
+
+ except x2go.X2goSessionException, e:
+ self._pyhoca_logger("X2goSessionException occured:", x2go.loglevel_ERROR, )
+ self._pyhoca_logger("-> %s" % str(e), x2go.loglevel_ERROR, )
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to annotated tag 0.1.4.0
in repository x2goclient.
commit 06253923cbd57032febb85e4f122a9df31832797
Author: mike <mike@cdb5e8f1-f799-4276-8919-bce57fd91830>
Date: Sat Nov 20 02:45:12 2010 +0000
* pyhoca-cli build script
git-svn-id: https://svn.das-netzwerkteam.de/x2go/pyhoca-cli/trunk@73 cdb5e8f1-f799-4276-8919-bce57fd91830
---
build-for-reprepro.sh | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/build-for-reprepro.sh b/build-for-reprepro.sh
new file mode 100755
index 00000000..5bc4bf8b
--- /dev/null
+++ b/build-for-reprepro.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# Copyright (C) 2010 by Mike Gabriel <m.gabriel(a)das-netzwerkteam.de>
+#
+# This programme is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This programme 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 General Public License for more details.
+#
+# You should have received a copy of the GNU 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.
+
+PACKAGE=pyhoca-cli
+
+rm -f ../$PACKAGE_*.changes
+rm -f ../$PACKAGE_*.upload
+rm -f ../$PACKAGE_*.build
+rm -f ../$PACKAGE_*.dsc
+rm -f ../$PACKAGE_*.tar.gz
+rm -f ../$PACKAGE*.deb
+
+cp debian/changelog debian/changelog.new
+editor debian/changelog.new
+mv debian/changelog.new debian/changelog
+
+debuild
+
+cd ..
+rm -f $PACKAGE_*.upload
+dupload --to nwt-ubuntu $PACKAGE_*.changes
+rm -f $PACKAGE_*.upload
+dupload --to nwt-debian $PACKAGE_*.changes
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to annotated tag 0.1.4.0
in repository x2goclient.
commit a99ff622c1434a570e5334d416d3c390ae6be0f0
Author: mike <mike@cdb5e8f1-f799-4276-8919-bce57fd91830>
Date: Thu Nov 11 09:02:25 2010 +0000
* fixing name tag whe logging (to distinguish X2goClient instance logging
and PyHocaCLI class logging)
git-svn-id: https://svn.das-netzwerkteam.de/x2go/pyhoca-cli/trunk@50 cdb5e8f1-f799-4276-8919-bce57fd91830
---
pyhoca/cli/frontend.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/pyhoca/cli/frontend.py b/pyhoca/cli/frontend.py
index e19cda89..9dbaa938 100644
--- a/pyhoca/cli/frontend.py
+++ b/pyhoca/cli/frontend.py
@@ -22,7 +22,9 @@
# 2010 Dick Kniep <dick.kniep(a)lindix.nl>
# 2010 Jörg Sawatzki <joerg.sawatzki(a)web.de>
-import sys, os
+import sys
+import os
+import copy
import time
import getpass
import x2go
@@ -190,7 +192,7 @@ class PyHocaCLI(x2go.X2goClient):
if logger is None:
logger = x2go.X2goLogger(tag='PyHocaCLI')
else:
- self.logger = logger
+ self.logger = copy.deepcopy(logger)
self.logger.tag = 'PyHocaCLI'
# initialize the X2goClient context and start the connection to the X2go server
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to annotated tag 0.1.4.0
in repository x2goclient.
commit 3e09aa96afc106a7a7a35057dfd006384d017aa8
Author: mike <mike@cdb5e8f1-f799-4276-8919-bce57fd91830>
Date: Fri Nov 19 22:28:09 2010 +0000
* wrong copyright header
* removed Replaces:-line in control file
git-svn-id: https://svn.das-netzwerkteam.de/x2go/pyhoca-cli/trunk@71 cdb5e8f1-f799-4276-8919-bce57fd91830
---
debian/control | 1 -
pyhoca/__init__.py | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/debian/control b/debian/control
index eb220a8d..559181ae 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,6 @@ Homepage: http://das-netzwerkteam.de/site/?q=node/71
XS-Python-Version: all
Package: pyhoca-cli
-Replaces: pyhoca-cli
Architecture: all
Depends: ${misc:Depends}, python, python-x2go (>=0.0.14-0~nwt1), python-argparse
Description: An command line X2go client written in Python
diff --git a/pyhoca/__init__.py b/pyhoca/__init__.py
index 6d579482..6204815a 100644
--- a/pyhoca/__init__.py
+++ b/pyhoca/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Copyright (C) 2010 by Dick Kniep <m.gabriel(a)das-netzwerkteam.de>
+# Copyright (C) 2010 by Mike Gabriel <m.gabriel(a)das-netzwerkteam.de>
#
# PyHoca CLI is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to annotated tag 0.1.4.0
in repository x2goclient.
commit e636fd356c9a1d3da2df9d6d9f4df487b10b28f4
Author: mike <mike@cdb5e8f1-f799-4276-8919-bce57fd91830>
Date: Tue Nov 9 09:11:03 2010 +0000
* adapted pyhoca-cli to changes in X2goClient API (strict separation of session
profile based methods and session oriented methods)
git-svn-id: https://svn.das-netzwerkteam.de/x2go/pyhoca-cli/trunk@39 cdb5e8f1-f799-4276-8919-bce57fd91830
---
pyhoca/cli/frontend.py | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/pyhoca/cli/frontend.py b/pyhoca/cli/frontend.py
index 7401ec8b..5e4459c5 100644
--- a/pyhoca/cli/frontend.py
+++ b/pyhoca/cli/frontend.py
@@ -191,13 +191,14 @@ class PyHocaCLI(x2go.X2goClient):
x2go.X2goClient.__init__(self, logger=liblogger)
- if self.args.session_profile and self.has_session_profile(self.args.session_profile):
+ _session_profiles = self._X2goClient__get_session_profiles()
+ if self.args.session_profile and _session_profiles.has_profile(self.args.session_profile):
- self.x2go_session_hash = self.register_session(profile_name=self.args.session_profile)
+ self.x2go_session_hash = self._X2goClient__register_session(profile_name=self.args.session_profile)
else:
- self.x2go_session_hash = self.register_session(args.server, port=int(self.args.remote_ssh_port),
+ self.x2go_session_hash = self._X2goClient__register_session(args.server, port=int(self.args.remote_ssh_port),
username=self.args.username,
password=self.args.password,
key_filename=self.args.ssh_privkey,
@@ -287,31 +288,31 @@ class PyHocaCLI(x2go.X2goClient):
profile_name = self.get_profile_name(self.x2go_session_hash)
session_name = self.get_session_name(self.x2go_session_hash)
- self.logger("X2go session is now running, the X2go client's profile name is: %s." % profile_name, x2go.loglevel_INFO, )
- self.logger("X2go session name is: %s." % session_name, x2go.loglevel_INFO, )
- self.logger("Press CTRL+C to suspend the running session.", x2go.loglevel_NOTICE, )
+ self.logger("X2go session is now running, the X2go client's profile name is: %s" % profile_name, x2go.loglevel_INFO, )
+ self.logger("X2go session name is: %s" % session_name, x2go.loglevel_INFO, )
+ self.logger("Press CTRL+C to suspend the running session...", x2go.loglevel_NOTICE, )
try:
session_duration = 0
mounted = False
- while self.session_ok(self.x2go_session_hash):
+ while self._X2goClient__session_ok(self.x2go_session_hash):
time.sleep(2)
session_duration +=2
# wait a little longer before telling the user what had happened
time.sleep(2)
- if self.has_terminated(self.x2go_session_hash):
- self.logger("X2go session %s has terminated." % session_name, x2go.loglevel_NOTICE, )
- elif self.is_suspended(self.x2go_session_hash):
- self.logger("X2go session %s has been suspended." % session_name, x2go.loglevel_NOTICE, )
- elif self.is_running(self.x2go_session_hash):
- self.logger("X2go session %s has been moved to a different screen." % session_name, x2go.loglevel_NOTICE, )
+ if self._X2goClient__has_terminated(self.x2go_session_hash):
+ self.logger("X2go session %s has terminated" % session_name, x2go.loglevel_NOTICE, )
+ elif self._X2goClient__is_suspended(self.x2go_session_hash):
+ self.logger("X2go session %s has been suspended" % session_name, x2go.loglevel_NOTICE, )
+ elif self._X2goClient__is_running(self.x2go_session_hash):
+ self.logger("X2go session %s has been moved to a different screen" % session_name, x2go.loglevel_NOTICE, )
except KeyboardInterrupt:
- self.logger("Suspending X2go session %s." % session_name, x2go.loglevel_INFO, )
+ self.logger("Suspending X2go session %s" % session_name, x2go.loglevel_INFO, )
self._X2goClient__suspend_session(self.x2go_session_hash)
# giving nxproxy's SSH tunnel some time to settle
time.sleep(2)
- self.logger("X2go session %s has been suspended." % session_name, x2go.loglevel_NOTICE, )
+ self.logger("X2go session %s has been suspended" % session_name, x2go.loglevel_NOTICE, )
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to annotated tag 0.1.4.0
in repository x2goclient.
commit a077a980c6b5e7e2bd4b09c62c4c29fe590a9b1b
Author: mike <mike@cdb5e8f1-f799-4276-8919-bce57fd91830>
Date: Sun Nov 7 00:34:00 2010 +0000
* added --session-profile option (run a session profile as configured in ~/.x2goclient/sessions)
git-svn-id: https://svn.das-netzwerkteam.de/x2go/pyhoca-cli/trunk@31 cdb5e8f1-f799-4276-8919-bce57fd91830
---
pyhoca-cli | 4 ++++
pyhoca/cli/frontend.py | 20 ++++++++++----------
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/pyhoca-cli b/pyhoca-cli
index 974f7856..aedcdaa4 100755
--- a/pyhoca-cli
+++ b/pyhoca-cli
@@ -203,6 +203,10 @@ Possible values for the --pack NX option are:
if not x2go.utils.is_in_nx3packmethods(a.pack):
runtime_error("unknown pack method '%s'" % args.pack, parser=p, exitcode=10)
+ else:
+ if not (a.resume or a.suspend or a.terminate or a.list_sessions):
+ a.new = True
+
# X2go printing
if ((a.pdfview_cmd and a.printer) or
(a.pdfview_cmd and a.save_to_folder) or
diff --git a/pyhoca/cli/frontend.py b/pyhoca/cli/frontend.py
index 11ff709a..5546e41a 100644
--- a/pyhoca/cli/frontend.py
+++ b/pyhoca/cli/frontend.py
@@ -118,7 +118,10 @@ class PyHocaCLI(x2go.X2goClient):
"""
# start a new session and run a command
self.logger('starting a new X2go session', x2go.loglevel_INFO, )
- self.logger('Command for new session is: %s' % self.args.command, x2go.loglevel_DEBUG, )
+ if self.args.session_profile is None:
+ self.logger('command for new session is: %s' % self.args.command, loglevel=x2go.loglevel_DEBUG, )
+ else:
+ self.logger('command from session profile to run is: %s' % self.session_registry(self.x2go_session_hash).session_params['cmd'], loglevel=x2go.loglevel_DEBUG, )
self._X2goClient__start_session(s_hash)
@@ -176,12 +179,12 @@ class PyHocaCLI(x2go.X2goClient):
self.logger('preparing requested X2go session', x2go.loglevel_NOTICE, )
x2go.X2goClient.__init__(self, logger=liblogger)
- _profile_id = None
- if self.args.session_profile:
- self.load_session_profiles()
- _profile_id = self.get_profile_id(self.args.session_profile)
- if not _profile_id:
+ if self.args.session_profile and self.has_session_profile(self.args.session_profile):
+
+ self.x2go_session_hash = self.register_session(profile_name=self.args.session_profile)
+
+ else:
self.x2go_session_hash = self.register_session(args.server, port=int(self.args.remote_ssh_port),
username=self.args.username,
@@ -202,9 +205,6 @@ class PyHocaCLI(x2go.X2goClient):
print_action_args=self.args.print_action_args,
share_local_folders=self.args.share_local_folders,
cmd=self.args.command)
- else:
-
- self.x2go_session_hash = self.register_session(profile_id = _profile_id)
self.with_session(self.x2go_session_hash).load_host_keys(ssh_known_hosts_filename)
@@ -256,7 +256,7 @@ class PyHocaCLI(x2go.X2goClient):
self.new_session(self.x2go_session_hash)
# finally call the MainLoop of PyHocaCLI
- if not (self.args.new or self.args.resume):
+ if not (self.args.new or self.args.resume or self.args.session_profile):
sys.exit(0)
# give the session some time to come up...
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to annotated tag 0.1.4.0
in repository x2goclient.
commit 5cf374abea625fe956a7db380b3e1f7a00f6b4e5
Author: mike <mike@cdb5e8f1-f799-4276-8919-bce57fd91830>
Date: Mon Nov 1 09:50:29 2010 +0000
* fixed pyhoca-cli
git-svn-id: https://svn.das-netzwerkteam.de/x2go/pyhoca-cli/trunk@20 cdb5e8f1-f799-4276-8919-bce57fd91830
---
pyhoca-cli | 5 ++--
pyhoca/cli/frontend.py | 62 ++++++++++++++++++++++++++++++++++++++------------
2 files changed, 50 insertions(+), 17 deletions(-)
diff --git a/pyhoca-cli b/pyhoca-cli
index 632c0fa9..97bb404e 100755
--- a/pyhoca-cli
+++ b/pyhoca-cli
@@ -45,7 +45,7 @@ from x2go.defaults import DEFAULT_PDFVIEW_CMD
from x2go.defaults import DEFAULT_PDFSAVE_LOCATION
from x2go.defaults import DEFAULT_PRINTCMD_CMD
-from pyhoca.cli import current_home, PyHocaCLI
+from pyhoca.cli import current_home, PyHocaCLI, runtime_error
# version information
PROG_NAME = os.path.basename(sys.argv[0])
@@ -136,8 +136,8 @@ def version():
def parseargs():
- global DEBUG
global logger
+ global liblogger
p = argparse.ArgumentParser(description='X2go command line client implemented in Python.',\
epilog="""
@@ -296,6 +296,7 @@ if __name__ == '__main__':
thisPyHocaCLI = PyHocaCLI(args, logger=logger, liblogger=liblogger)
thisPyHocaCLI.authenticate()
thisPyHocaCLI.MainLoop()
+
sys.exit(0)
except (KeyboardInterrupt, SystemExit), e:
diff --git a/pyhoca/cli/frontend.py b/pyhoca/cli/frontend.py
index 15a85d74..6706c32e 100644
--- a/pyhoca/cli/frontend.py
+++ b/pyhoca/cli/frontend.py
@@ -44,12 +44,22 @@ ssh_config_filename = os.path.join(current_home, '.ssh', 'config')
if not os.path.isfile(ssh_config_filename):
self._touch_file(ssh_config_filename)
-def _touch_file(self, filename):
+def _touch_file(filename):
if not os.path.isfile(filename):
f = open(filename, 'w')
f.close()
+# sometimes we have to fail...
+def runtime_error(m, parser=None, exitcode=-1):
+ """\
+ STILL UNDOCUMENTED
+ """
+ if parser is not None:
+ parser.print_usage()
+ sys.stderr.write ("%s: error: %s\n" % (os.path.basename(sys.argv[0]), m))
+ sys.exit(exitcode)
+
class PyHocaCLI(x2go.X2goClient):
"""\
@@ -57,13 +67,9 @@ class PyHocaCLI(x2go.X2goClient):
"""
x2go_session_hash = None
- # sometimes we have to fail...
- def runtime_error(self, m, exitcode=-1):
- """\
- STILL UNDOCUMENTED
- """
- sys.stderr.write ("%s: error: %s\n" % (sys.argv[0], m))
- sys.exit(exitcode)
+
+ def _runtime_error(self, m, exitcode=-1):
+ runtime_error(m, exitcode=exitcode)
def list_sessions(self, s_hash):
@@ -103,7 +109,7 @@ class PyHocaCLI(x2go.X2goClient):
"""
# clean all sessions from X2go server
self.logger('cleaning up all running sessions from X2go server: %s' % self.args.server, x2go.loglevel_NOTICE, )
- X2goClient.clean_sessions(self, s_hash)
+ x2go.X2goClient.clean_sessions(self, s_hash)
def new_session(self, s_hash):
@@ -113,7 +119,7 @@ class PyHocaCLI(x2go.X2goClient):
# start a new session and run a command
self.logger('starting a new X2go session', x2go.loglevel_INFO, )
self.logger('Command for new session is: %s' % self.args.command, x2go.loglevel_DEBUG, )
- self.start_session(s_hash)
+ x2go.X2goClient.start_session(self, s_hash)
def resume_session(self, s_hash):
@@ -126,7 +132,7 @@ class PyHocaCLI(x2go.X2goClient):
if self.args.resume in available_sessions.keys():
x2go.X2goClient.resume_session(self, s_hash, self.args.resume)
else:
- self.runtime_error('requested session not available on X2go server [%s]:%s.' % (self.args.server, self.args.remote_ssh_port), exitcode=20)
+ self._runtime_error('requested session not available on X2go server [%s]:%s.' % (self.args.server, self.args.remote_ssh_port), exitcode=20)
def suspend_session(self, s_hash):
@@ -139,7 +145,7 @@ class PyHocaCLI(x2go.X2goClient):
if self.args.suspend in available_sessions.keys():
x2go.X2goClient.suspend_session(self, s_hash, self.args.suspend)
else:
- self.runtime_error('requested session not available on X2go server [%s]:%s.' % (self.args.server, self.args.remote_ssh_port), exitcode=21)
+ self._runtime_error('requested session not available on X2go server [%s]:%s.' % (self.args.server, self.args.remote_ssh_port), exitcode=21)
def terminate_session(self, s_hash):
@@ -152,7 +158,7 @@ class PyHocaCLI(x2go.X2goClient):
if self.args.terminate in available_sessions.keys():
x2go.X2goClient.terminate_session(self, s_hash, self.args.terminate)
else:
- self.runtime_error('requested session not available on X2go server [%s]:%s.' % (self.args.server, self.args.remote_ssh_port), exitcode=22)
+ self._runtime_error('requested session not available on X2go server [%s]:%s.' % (self.args.server, self.args.remote_ssh_port), exitcode=22)
def __init__(self, args, logger=None, liblogger=None):
@@ -164,6 +170,7 @@ class PyHocaCLI(x2go.X2goClient):
logger = x2go.X2goLogger(tag='PyHocaCLI')
else:
self.logger = logger
+ self.logger.tag = 'PyHocaCLI'
# initialize the X2goClient context and start the connection to the X2go server
self.logger('preparing requested X2go session', x2go.loglevel_NOTICE, )
@@ -206,15 +213,40 @@ class PyHocaCLI(x2go.X2goClient):
except x2go.PasswordRequiredException:
self.args.password = getpass.getpass()
except x2go.BadHostKeyException:
- self.runtime_error('SSH host key verification for remote host [%s]:%s failed' % (self.args.server, self.args.remote_ssh_port), exitcode=-254)
+ self._runtime_error('SSH host key verification for remote host [%s]:%s failed' % (self.args.server, self.args.remote_ssh_port), exitcode=-254)
except x2go.SSHException, e:
- self.runtime_error(str(e), exitcode=253)
+ self._runtime_error(str(e), exitcode=253)
def MainLoop(self):
"""\
STILL UNDOCUMENTED
"""
+ if self.args.clean_sessions:
+ self.clean_sessions(self.x2go_session_hash)
+
+ # go through the possible X2go client modes
+ if self.args.list_sessions:
+ # print a beautified session list for the user
+ self.list_sessions(self.x2go_session_hash)
+ sys.exit(0)
+
+ if self.args.resume:
+ self.resume_session(self.x2go_session_hash)
+
+ elif self.args.suspend:
+ self.suspend_session(self.x2go_session_hash)
+
+ elif self.args.terminate:
+ self.terminate_session(self.x2go_session_hash)
+
+ elif self.args.new:
+ self.new_session(self.x2go_session_hash)
+
+ # finally call the MainLoop of PyHocaCLI
+ if not (self.args.new or self.args.resume):
+ sys.exit(0)
+
# give the session some time to come up...
# no CTRL-C is allowed during this phase...
i=0
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git