[X2Go-Commits] [x2goclient] 36/94: Add --try-resume cmd line option and feature. Bump version to 0.5.99.1.
git-admin at x2go.org
git-admin at x2go.org
Fri Dec 15 21:06:34 CET 2023
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to annotated tag 0.6.1.0
in repository x2goclient.
commit e2dedb1ce4f755197167cb350379d7c961683762
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Sat May 12 22:46:30 2018 +0200
Add --try-resume cmd line option and feature. Bump version to 0.5.99.1.
---
debian/changelog | 7 ++++---
debian/control | 2 +-
man/man1/pyhoca-cli.1 | 5 ++++-
pyhoca-cli | 2 +-
pyhoca-cli.spec | 4 ++--
pyhoca/cli/__init__.py | 2 +-
pyhoca/cli/frontend.py | 27 ++++++++++++++++++++++++++-
7 files changed, 39 insertions(+), 10 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 37dfb7cf..619ded84 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,10 @@
-pyhoca-cli (0.5.99.0-0x2go1) UNRELEASED; urgency=medium
+pyhoca-cli (0.5.99.1-0x2go1) UNRELEASED; urgency=medium
- * New upstream version (0.5.99.0).
+ * New upstream version (0.5.99.1).
- Port to Python3.
- Add --force-password command line switch to override SSH key detection
code.
+ - Add --try-resume cmd line option and feature.
* debian/rules:
+ Build for Python3, not Python2.
+ Enforce Python3 build, fix FTBFS.
@@ -16,7 +17,7 @@ pyhoca-cli (0.5.99.0-0x2go1) UNRELEASED; urgency=medium
+ Switch to pybuild DH build system.
* debian/{control,compat}: Bump to DH version level 9.
- -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Fri, 22 Sep 2017 14:09:18 +0200
+ -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Sat, 12 May 2018 20:37:21 +0000
pyhoca-cli (0.5.0.4-0x2go1) unstable; urgency=medium
diff --git a/debian/control b/debian/control
index 21751792..3e54925f 100644
--- a/debian/control
+++ b/debian/control
@@ -23,7 +23,7 @@ Depends:
${misc:Depends},
${python3:Depends},
python3,
- python3-x2go (>=0.5.99.0-0~),
+ python3-x2go (>=0.5.99.1-0~),
python3-argparse,
python3-setproctitle,
Suggests:
diff --git a/man/man1/pyhoca-cli.1 b/man/man1/pyhoca-cli.1
index c1c575d8..750b5f7f 100644
--- a/man/man1/pyhoca-cli.1
+++ b/man/man1/pyhoca-cli.1
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH pyhoca-cli 1 "Sep 2017" "Version 0.5.0.5" "X2Go Application"
+.TH pyhoca-cli 1 "Sep 2017" "Version 0.5.99.1" "X2Go Application"
.SH NAME
pyhoca-cli \- X2Go command line client written in Python
.SH SYNOPSIS
@@ -70,6 +70,9 @@ The name of the session profile to be used to make the connection.
\*(T<\fB\-N, \-\-new\fR\*(T>
Start a new X2Go session on server (default mode if no mode is explicitly specified).
.TP
+\*(T<\fB\-\-try\-resume\fR\*(T>
+When given with \fI\-\-new\fR , try finding and resuming a session originally started with the same command. If that fails, start a new session, finally.
+.TP
\*(T<\fB\-R, \-\-resume\fR \fI<SESSION_NAME>\fR\*(T>
Resume existing X2Go session <SESSION_NAME> on server. Special values for <SESSION_NAME> are ,,NEWEST'' (will resume youngest session)
or ,,OLDEST'' (resume session with oldest timestamp).
diff --git a/pyhoca-cli b/pyhoca-cli
index 24913f5b..1df4cac5 100755
--- a/pyhoca-cli
+++ b/pyhoca-cli
@@ -128,6 +128,7 @@ liblogger = x2go.X2GoLogger()
# exclusive client control options
action_options = [
{'args':['-N','--new'], 'default': False, 'action': 'store_true', 'help': 'start a new X2Go session on server (default)', },
+ {'args':['--try-resume'], 'default': False, 'action': 'store_true', 'help': 'if given with --new, try to resume a running/suspended session, otherwise start a new session', },
{'args':['-R','--resume'], 'default': None, 'metavar': 'SESSION_NAME', 'help': 'resume a suspended X2Go session with name SESSION_NAME', },
{'args':['-D','--share-desktop'], 'default': None, 'metavar': 'USER at DISPLAY', 'help': 'share an X2Go session on server specified by USER at DISPLAY', },
{'args':['-S','--suspend'], 'default': None, 'metavar': 'SESSION_NAME', 'help': 'suspend running X2Go session SESSION_NAME', },
@@ -427,4 +428,3 @@ if __name__ == '__main__':
except (KeyboardInterrupt, SystemExit) as e:
x2go.x2go_cleanup(e)
-
diff --git a/pyhoca-cli.spec b/pyhoca-cli.spec
index 2d860936..4e4425dd 100644
--- a/pyhoca-cli.spec
+++ b/pyhoca-cli.spec
@@ -1,5 +1,5 @@
Name: pyhoca-cli
-Version: 0.5.99.0
+Version: 0.5.99.1
Release: 0.0x2go1%{?dist}
Summary: Command line X2Go client written in Python
@@ -19,7 +19,7 @@ BuildRequires: fdupes
%endif
BuildRequires: python3-setuptools
Requires: python3-setproctitle
-Requires: python3-x2go >= 0.5.99.0
+Requires: python3-x2go >= 0.5.99.1
Requires: python3-argparse
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff --git a/pyhoca/cli/__init__.py b/pyhoca/cli/__init__.py
index bebfe4aa..111e8bb5 100644
--- a/pyhoca/cli/__init__.py
+++ b/pyhoca/cli/__init__.py
@@ -25,6 +25,6 @@ For further information on X2Go, please visit the X2Go wiki:
http://wiki.x2go.org
"""
-__VERSION__ = "0.5.99.0"
+__VERSION__ = "0.5.99.1"
from .frontend import *
diff --git a/pyhoca/cli/frontend.py b/pyhoca/cli/frontend.py
index be0fcbcc..0eca99f5 100644
--- a/pyhoca/cli/frontend.py
+++ b/pyhoca/cli/frontend.py
@@ -219,7 +219,8 @@ class PyHocaCLI(x2go.X2GoClient):
"""
# resume a running session
self.logger('resuming X2Go session: %s' % self.args.resume, loglevel=x2go.loglevel_INFO, )
- available_sessions = self._X2GoClient__list_sessions(s_hash)
+ if available_sessions is None:
+ available_sessions = self._X2GoClient__list_sessions(s_hash)
if available_sessions and self.args.resume == 'OLDEST':
self._auto_resume_oldest(s_hash)
elif available_sessions and self.args.resume == 'NEWEST':
@@ -229,6 +230,26 @@ class PyHocaCLI(x2go.X2GoClient):
else:
self._runtime_error('requested session not available on X2Go server [%s]:%s' % (self.args.server, self.args.remote_ssh_port), exitcode=20)
+ def try_resume_session(self, s_hash):
+ """\
+ Use C{X2GoSession} object with session UUID C{s_hash} to resume a server-side suspended X2Go session
+ or to take over a server-side running X2Go session.
+
+ @param s_hash: session UUID
+ @type s_hash: C{str}
+
+ """
+ self.logger('trying to resume / take over X2Go session with command: %s' % self.args.command, loglevel=x2go.loglevel_INFO, )
+ available_sessions = self._X2GoClient__list_sessions(s_hash, with_command=self.args.command)
+ if available_sessions:
+ self.logger('matching sessions found: %s' % available_sessions.keys(), loglevel=x2go.loglevel_INFO, )
+ self.logger('picking the first in list: %s' % list(available_sessions.keys())[0], loglevel=x2go.loglevel_INFO, )
+ # FIXME: what session do we want to resume really (oldest, newest, etc.)?
+ self._X2GoClient__resume_session(s_hash, list(available_sessions.keys())[0])
+ return True
+ else:
+ return False
+
def share_desktop_session(self, s_hash):
"""\
Use C{X2GoSession} object with session UUID C{s_hash} to share a server-side X2Go desktop session that is available for sharing.
@@ -535,6 +556,10 @@ class PyHocaCLI(x2go.X2GoClient):
elif self.args.terminate:
self.terminate_session(self.x2go_session_hash)
+ elif self.args.new and self.args.try_resume and self.try_resume_session(self.x2go_session_hash):
+ # nothing to do here, if resumption attempt was successful
+ pass
+
elif self.args.new:
self.new_session(self.x2go_session_hash)
--
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