[X2Go-Commits] [x2goserver] 03/03: X2Go/Server/DB.pm: add high-level MySQL/MariaDB support.

git-admin at x2go.org git-admin at x2go.org
Fri Feb 23 02:15:52 CET 2018


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch feature/mysql-backend
in repository x2goserver.

commit 86594106b11f2a00b4c44d5bc65949dc736c02ff
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Fri Feb 23 02:11:38 2018 +0100

    X2Go/Server/DB.pm: add high-level MySQL/MariaDB support.
    
    References the X2Go::Server::DB::MySQL module (and functions/subroutines
    in there) which currently does not yet exist.
---
 X2Go/Server/DB.pm | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 debian/changelog  |   3 ++
 2 files changed, 112 insertions(+), 1 deletion(-)

diff --git a/X2Go/Server/DB.pm b/X2Go/Server/DB.pm
index 16b11e5..cda339b 100644
--- a/X2Go/Server/DB.pm
+++ b/X2Go/Server/DB.pm
@@ -1,6 +1,8 @@
 # Copyright (C) 2007-2015 X2Go Project - http://wiki.x2go.org
 # Copyright (C) 2007-2015 Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
 # Copyright (C) 2007-2015 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
+# Copyright (C) 2017-2018 Walid Moghrabi <w.moghrabi at servicemagic.eu>
+# Copyright (C) 2018      Mihai Moldovan <ionic at ionic.de>
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -37,6 +39,7 @@ use Sys::Syslog qw( :standard :macros );
 use X2Go::Config qw( get_sqlconfig );
 use X2Go::Log qw( loglevel );
 use X2Go::Server::DB::PostgreSQL;
+use X2Go::Server::DB::MySQL;
 use X2Go::Utils qw( system_capture_merged_output system_capture_stdout_output );
 setlogmask( LOG_UPTO(loglevel()) );
 
@@ -55,7 +58,7 @@ my $dbpass;
 my $dbuser;
 my $sslmode;
 
-if ($backend ne 'postgres' && $backend ne 'sqlite')
+if ($backend ne 'postgres' && $backend ne 'mysql' && $backend ne 'sqlite')
 {
 	die "unknown backend $backend";
 }
@@ -75,6 +78,10 @@ sub dbsys_rmsessionsroot
 	{
 		X2Go::Server::DB::PostgreSQL::dbsys_rmsessionsroot($sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::dbsys_rmsessionsroot($sid);
+	}
 	if($backend eq 'sqlite')
 	{
 		system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "rmsessionsroot", "$sid");
@@ -88,6 +95,10 @@ sub dbsys_deletemounts
 	{
 		X2Go::Server::DB::PostgreSQL::dbsys_deletemounts($sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::dbsys_deletemounts($sid);
+	}
 	if ($backend eq 'sqlite')
 	{
 		system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "deletemounts", "$sid");
@@ -102,6 +113,10 @@ sub dbsys_listsessionsroot
 	{
 		return X2Go::Server::DB::PostgreSQL::dbsys_listsessionsroot($server);
 	}
+	if ($backend eq 'mysql')
+	{
+		return X2Go::Server::DB::MySQL::dbsys_listsessionsroot($server);
+	}
 	if($backend eq 'sqlite')
 	{
 		return split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "listsessionsroot", "$server"));
@@ -114,6 +129,10 @@ sub dbsys_listsessionsroot_all
 	{
 		return X2Go::Server::DB::PostgreSQL::dbsys_listsessionsroot_all();
 	}
+	if ($backend eq 'mysql')
+	{
+		return X2Go::Server::DB::MySQL::dbsys_listsessionsroot_all();
+	}
 	if ($backend eq 'sqlite')
 	{
 		return split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "listsessionsroot_all"));
@@ -128,6 +147,10 @@ sub dbsys_getmounts
 	{
 		@mounts = X2Go::Server::DB::PostgreSQL::dbsys_getmounts($sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		@mounts = X2Go::Server::DB::MySQL::dbsys_getmounts($sid);
+	}
 	if ($backend eq 'sqlite')
 	{
 		@mounts = split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "getmounts", "$sid"));
@@ -145,6 +168,10 @@ sub db_getmounts
 	{
 		@mounts = X2Go::Server::DB::PostgreSQL::db_getmounts($sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		@mounts = X2Go::Server::DB::MySQL::db_getmounts($sid);
+	}
 	if ($backend eq 'sqlite')
 	{
 		@mounts = split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "getmounts", "$sid"));
@@ -162,6 +189,10 @@ sub db_deletemount
 	{
 		X2Go::Server::DB::PostgreSQL::db_deletemount($sid, $path);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::db_deletemount($sid, $path);
+	}
 	if ($backend eq 'sqlite')
 	{
 		system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "deletemount", "$sid", "$path");
@@ -179,6 +210,10 @@ sub db_insertmount
 	{
 		$res_ok = X2Go::Server::DB::PostgreSQL::db_insertmount($sid, $path, $client);
 	}
+	if ($backend eq 'mysql')
+	{
+		$res_ok = X2Go::Server::DB::MySQL::db_insertmount($sid, $path, $client);
+	}
 	if ($backend eq 'sqlite')
 	{
 		if( system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "insertmount", "$sid", "$path", "$client") eq "ok")
@@ -199,6 +234,10 @@ sub db_insertsession
 	{
 		X2Go::Server::DB::PostgreSQL::db_insertsession($display, $server, $sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::db_insertsession($display, $server, $sid);
+	}
 	if ($backend eq 'sqlite')
 	{
 		my $err=system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "insertsession", "$display", "$server", "$sid");
@@ -220,6 +259,10 @@ sub db_insertshadowsession
 	{
 		X2Go::Server::DB::PostgreSQL::db_insertshadowsession($display, $server, $sid, $shadreq_user);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::db_insertshadowsession($display, $server, $sid, $shadreq_user);
+	}
 	if ($backend eq 'sqlite')
 	{
 		my $err=system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "insertshadowsession", "$display", "$server", "$sid", "$shadreq_user");
@@ -246,6 +289,10 @@ sub db_createsession
 	{
 		X2Go::Server::DB::PostgreSQL::db_createsession($sid, $cookie, $pid, $client, $gr_port, $snd_port, $fs_port, $tekictrl_port, $tekidata_port);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::db_createsession($sid, $cookie, $pid, $client, $gr_port, $snd_port, $fs_port, $tekictrl_port, $tekidata_port);
+	}
 	if ($backend eq 'sqlite')
 	{
 		my $err= system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "createsession", "$sid", "$cookie", "$pid", "$client", "$gr_port", "$snd_port", "$fs_port", "$tekictrl_port", "$tekidata_port");
@@ -272,6 +319,11 @@ sub db_createshadowsession
 		# for PostgreSQL we can use the normal db_createsession code...
 		X2Go::Server::DB::PostgreSQL::db_createsession($sid, $cookie, $pid, $client, $gr_port, $snd_port, $fs_port, -1, -1);
 	}
+	if ($backend eq 'mysql')
+	{
+		# for MySQL we can use the normal db_createsession code...
+		X2Go::Server::DB::MySQL::db_createsession($sid, $cookie, $pid, $client, $gr_port, $snd_port, $fs_port, -1, -1);
+	}
 	if ($backend eq 'sqlite')
 	{
 		my $err=system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "createshadowsession", "$sid", "$cookie", "$pid", "$client", "$gr_port", "$snd_port", "$fs_port", "$shadreq_user");
@@ -292,6 +344,10 @@ sub db_insertport
 	{
 		X2Go::Server::DB::PostgreSQL::db_insertport($server, $sid, $sshport);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::db_insertport($server, $sid, $sshport);
+	}
 	if ($backend eq 'sqlite')
 	{
 		my $err=system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "insertport", "$server", "$sid", "$sshport");
@@ -312,6 +368,10 @@ sub db_rmport
 	{
 		X2Go::Server::DB::PostgreSQL::db_rmport($server, $sid, $sshport);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::db_rmport($server, $sid, $sshport);
+	}
 	if ($backend eq 'sqlite')
 	{
 		system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "rmport", "$server", "$sid", "$sshport");
@@ -332,6 +392,10 @@ sub db_resume
 	{
 		X2Go::Server::DB::PostgreSQL::db_resume($client, $sid, $gr_port, $snd_port, $fs_port, $tekictrl_port, $tekidata_port);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::db_resume($client, $sid, $gr_port, $snd_port, $fs_port, $tekictrl_port, $tekidata_port);
+	}
 	if ($backend eq 'sqlite')
 	{
 		system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "resume", "$client", "$sid", "$gr_port", "$snd_port", "$fs_port", "$tekictrl_port", "$tekidata_port");
@@ -347,6 +411,10 @@ sub db_changestatus
 	{
 		X2Go::Server::DB::PostgreSQL::db_changestatus($status, $sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		X2Go::Server::DB::MySQL::db_changestatus($status, $sid);
+	}
 	if ($backend eq 'sqlite')
 	{
 		system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "changestatus", "$status", "$sid");
@@ -362,6 +430,10 @@ sub db_getstatus
 	{
 		$status = X2Go::Server::DB::PostgreSQL::db_getstatus($sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		$status = X2Go::Server::DB::MySQL::db_getstatus($sid);
+	}
 	if ($backend eq 'sqlite')
 	{
 		$status=system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "getstatus", "$sid");
@@ -379,6 +451,10 @@ sub db_getdisplays
 	{
 		@displays = X2Go::Server::DB::PostgreSQL::db_getdisplays($server);
 	}
+	if ($backend eq 'mysql')
+	{
+		@displays = X2Go::Server::DB::MySQL::db_getdisplays($server);
+	}
 	if ($backend eq 'sqlite')
 	{
 		@displays = split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "getdisplays", "$server"));
@@ -397,6 +473,10 @@ sub db_getports
 	{
 		@ports = X2Go::Server::DB::PostgreSQL::db_getports($server);
 	}
+	if ($backend eq 'mysql')
+	{
+		@ports = X2Go::Server::DB::MySQL::db_getports($server);
+	}
 	if ($backend eq 'sqlite')
 	{
 		@ports = split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "getports", "$server"));
@@ -413,6 +493,10 @@ sub db_getservers
 	{
 		@servers = X2Go::Server::DB::PostgreSQL::db_getservers();
 	}
+	if ($backend eq 'mysql')
+	{
+		@servers = X2Go::Server::DB::MySQL::db_getservers();
+	}
 	if ($backend eq 'sqlite')
 	{
 		@servers = split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "getservers"));
@@ -430,6 +514,10 @@ sub db_getagent
 	{
 		$agent = X2Go::Server::DB::PostgreSQL::db_getagent($sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		$agent = X2Go::Server::DB::MySQL::db_getagent($sid);
+	}
 	if($backend eq 'sqlite')
 	{
 		$agent=system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "getagent", "$sid");
@@ -446,6 +534,10 @@ sub db_getdisplay
 	{
 		$display = X2Go::Server::DB::PostgreSQL::db_getdisplay($sid);
 	}
+	if ($backend eq 'mysql')
+	{
+		$display = X2Go::Server::DB::MySQL::db_getdisplay($sid);
+	}
 	if ($backend eq 'sqlite')
 	{
 		$display=system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "getdisplay", "$sid");
@@ -461,6 +553,10 @@ sub db_listsessions
 	{
 		return X2Go::Server::DB::PostgreSQL::db_listsessions($server);
 	}
+	if ($backend eq 'mysql')
+	{
+		return X2Go::Server::DB::MySQL::db_listsessions($server);
+	}
 	if ($backend eq 'sqlite')
 	{
 		return split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "listsessions", "$server"));
@@ -473,6 +569,10 @@ sub db_listsessions_all
 	{
 		return X2Go::Server::DB::PostgreSQL::db_listsessions_all();
 	}
+	if ($backend eq 'mysql')
+	{
+		return X2Go::Server::DB::MySQL::db_listsessions_all();
+	}
 	if ($backend eq 'sqlite')
 	{
 		return split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "listsessions_all"));
@@ -486,6 +586,10 @@ sub db_listshadowsessions
 	{
 		return X2Go::Server::DB::PostgreSQL::db_listshadowsessions($server);
 	}
+	if ($backend eq 'mysql')
+	{
+		return X2Go::Server::DB::MySQL::db_listshadowsessions($server);
+	}
 	if ($backend eq 'sqlite')
 	{
 		return split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "listshadowsessions", "$server"));
@@ -498,6 +602,10 @@ sub db_listshadowsessions_all
 	{
 		return X2Go::Server::DB::PostgreSQL::db_listshadowsessions_all();
 	}
+	if ($backend eq 'mysql')
+	{
+		return X2Go::Server::DB::MySQL::db_listshadowsessions_all();
+	}
 	if ($backend eq 'sqlite')
 	{
 		return split("\n",system_capture_merged_output("$x2go_lib_path/libx2go-server-db-sqlite3-wrapper", "listshadowsessions_all"));
diff --git a/debian/changelog b/debian/changelog
index b84d9c8..8725910 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -62,6 +62,9 @@ x2goserver (4.1.0.1-0x2go1) UNRELEASED; urgency=medium
     - x2goserver/sbin/x2godbadmin: whitespace only.
     - x2goserver/sbin/x2godbadmin: use global variable instead of hardcoded
       string (since the global variable is used latter on anyway).
+    - X2Go/Server/DB.pm: add high-level MySQL/MariaDB support. References the
+      X2Go::Server::DB::MySQL module (and functions/subroutines in there)
+      which currently does not yet exist.
   * debian/{control,compat}:
     + Bump DH compat level to 9.
   * debian/:

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goserver.git


More information about the x2go-commits mailing list