[X2Go-Commits] [x2goclient] 17/94: * 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-admin at x2go.org
git-admin at x2go.org
Fri Dec 15 21:04:33 CET 2023
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 at 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
More information about the x2go-commits
mailing list