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
_______________________________________________
x2go-commits mailing list
x2go-commits@lists.x2go.org
https://lists.x2go.org/listinfo/x2go-commits

Reply via email to