diff options
author | Bastian Wissler | 2009-06-17 15:19:25 +0200 |
---|---|---|
committer | Bastian Wissler | 2009-06-17 15:19:25 +0200 |
commit | 87c90a67a367bf11e8a8aa4ffffbf245d15a78a1 (patch) | |
tree | 5f3875751b1d7b0a606791f552ff819daced7d6a /os-plugins/plugins/vmchooser/OpenSLX | |
parent | fixed a wrong package-name in xserver::OpenSLX::OSPlugin::Debian (diff) | |
download | core-87c90a67a367bf11e8a8aa4ffffbf245d15a78a1.tar.gz core-87c90a67a367bf11e8a8aa4ffffbf245d15a78a1.tar.xz core-87c90a67a367bf11e8a8aa4ffffbf245d15a78a1.zip |
vmchooser various changes:
* changed default.desktop to call the binary
* deleted vmchooser.sh (not needed any more,
as vmchooser binary reads from stage3 variables)
-> see Feature #429
* added distro specific classes to copy default.desktop
distro specific ;-) - Feature #268
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2962 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins/plugins/vmchooser/OpenSLX')
5 files changed, 218 insertions, 1 deletions
diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm new file mode 100644 index 00000000..ba8a32b0 --- /dev/null +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm @@ -0,0 +1,64 @@ +# Copyright (c) 2008 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# vmchooser/OpenSLX/Distro/Base.pm +# - provides base implementation of the Distro API for the vmchooser plugin. +# ----------------------------------------------------------------------------- +package vmchooser::OpenSLX::Distro::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use File::Basename; +use File::Path; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + $self->{engine} = shift; + weaken($self->{engine}); + # avoid circular reference between plugin and its engine + + return 1; +} + + +sub copyDefaultSession +{ + my $self = shift; + my $pluginroot = shift; + + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/etc/X11/sessions/default.desktop") { + rename("/etc/X11/sessions/default.desktop", + "/etc/X11/sessions/default.desktop.back") + } + copyFile("$pluginroot/default.desktop","/etc/X11/sessions"); + + return 1; +}
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Debian.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Debian.pm new file mode 100644 index 00000000..173f249e --- /dev/null +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Debian.pm @@ -0,0 +1,49 @@ +# Copyright (c) 2008 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# vmchooser/OpenSLX/Distro/Debian.pm +# - provides Debian implementation of the Distro API for the vmchooser plugin. +# ----------------------------------------------------------------------------- +package vmchooser::OpenSLX::Distro::Debian; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use base qw(vmchooser::OpenSLX::Distro::Base); + +use File::Basename; +use File::Path; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub copyDefaultSession +{ + my $self = shift; + my $pluginroot = shift; + + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/usr/share/xsessions/default.desktop") { + rename("/usr/share/xsessions/default.desktop", + "/usr/share/xsessions/default.desktop.back") + } + copyFile("$pluginroot/default.desktop","/usr/share/xsessions"); + + return 1; +}
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm new file mode 100644 index 00000000..9e0bf551 --- /dev/null +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm @@ -0,0 +1,49 @@ +# Copyright (c) 2008 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# vmchooser/OpenSLX/Distro/Suse.pm +# - provides Suse implementation of the Distro API for the vmchooser plugin. +# ----------------------------------------------------------------------------- +package vmchooser::OpenSLX::Distro::Suse; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use base qw(vmchooser::OpenSLX::Distro::Base); + +use File::Basename; +use File::Path; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub copyDefaultSession +{ + my $self = shift; + my $pluginroot = shift; + + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/etc/X11/sessions/default.desktop") { + rename("/etc/X11/sessions/default.desktop", + "/etc/X11/sessions/default.desktop.back") + } + copyFile("$pluginroot/default.desktop","/etc/X11/sessions"); + + return 1; +}
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Ubuntu.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Ubuntu.pm new file mode 100644 index 00000000..1677321f --- /dev/null +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Ubuntu.pm @@ -0,0 +1,50 @@ +# Copyright (c) 2008 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# vmchooser/OpenSLX/Distro/Ubuntu.pm +# - provides Ubuntu implementation of the Distro API for the vmchooser plugin. +# ----------------------------------------------------------------------------- +package vmchooser::OpenSLX::Distro::Ubuntu; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use base qw(vmchooser::OpenSLX::Distro::Base); + +use File::Basename; +use File::Path; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + + +sub copyDefaultSession +{ + my $self = shift; + my $pluginroot = shift; + + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/usr/share/xsessions/default.desktop") { + rename("/usr/share/xsessions/default.desktop", + "/usr/share/xsessions/default.desktop.back") + } + copyFile("$pluginroot/default.desktop","/usr/share/xsessions"); + + return 1; +}
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm b/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm index 096b6d0f..9ef9f7c4 100644 --- a/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm +++ b/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm @@ -10,6 +10,8 @@ # ----------------------------------------------------------------------------- # vmchooser.pm # - allows user to pick from a list of virtual machine images +# +# - serves as base for virtualizer plugins / and requires one of these # ----------------------------------------------------------------------------- package OpenSLX::OSPlugin::vmchooser; @@ -103,9 +105,12 @@ sub installationPhase foreach my $file ( qw( vmchooser printer.sh scanner.sh xmlfilter.sh default.desktop vmchooser.sh mesgdisp run-virt.sh ) ) { copyFile("$pluginBasePath/$file", "$pluginRepoPath/"); - chmod 0755, "$pluginRepoPath/$file"; + chmod 0755, "$pluginRepoPath/$file"; } + # set ditro-specific default session + $self->{distro}->copyDefaultSession($pluginRepoPath); + return; } |