summaryrefslogtreecommitdiffstats
path: root/installer/slxos-export
diff options
context:
space:
mode:
authorSebastian Schmelzer2010-09-02 17:50:49 +0200
committerSebastian Schmelzer2010-09-02 17:50:49 +0200
commit416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 (patch)
tree4715f7d742fec50931017f38fe6ff0a89d4ceccc /installer/slxos-export
parentFix for the problem reported on the list (sed filter forgotten for the (diff)
downloadcore-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.tar.gz
core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.tar.xz
core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.zip
change dir structure
Diffstat (limited to 'installer/slxos-export')
-rwxr-xr-xinstaller/slxos-export323
1 files changed, 0 insertions, 323 deletions
diff --git a/installer/slxos-export b/installer/slxos-export
deleted file mode 100755
index 8c0733ab..00000000
--- a/installer/slxos-export
+++ /dev/null
@@ -1,323 +0,0 @@
-#! /usr/bin/perl
-# -----------------------------------------------------------------------------
-# Copyright (c) 2006, 2007 - 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/
-# -----------------------------------------------------------------------------
-use strict;
-use warnings;
-
-my $abstract = q[
-slxos-export
- OpenSLX-script to generate an export from a vendor-OS.
-];
-
-use Encode;
-use Getopt::Long qw(:config pass_through);
-use Pod::Usage;
-
-# add the folder this script lives in and the lib-folder to perl's
-# search path for modules:
-use FindBin;
-use lib "$FindBin::RealBin";
-use lib "$FindBin::RealBin/../lib";
-
-use lib "$FindBin::RealBin/../config-db";
-# development path to config-db
-
-use OpenSLX::Basics;
-use OpenSLX::OSExport::Engine;
-use OpenSLX::Utils;
-
-my %option;
-
-GetOptions(
- 'help|?' => \$option{helpReq},
- 'man' => \$option{manReq},
- 'version' => \$option{versionReq},
- )
- or pod2usage(2);
-pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq};
-if ($option{manReq}) {
- # avoid dubious problem with perldoc in combination with UTF-8 that
- # leads to strange dashes and single-quotes being used
- $ENV{LC_ALL} = 'POSIX';
- pod2usage(-verbose => 2);
-}
-if ($option{versionReq}) {
- system('slxversion');
- exit 1;
-}
-
-openslxInit();
-
-my $action = shift @ARGV || '';
-
-if ($action =~ m[^list-ex]i) {
- print _tr("List of exported vendor-OSes (exports):\n");
- foreach my $type (sort keys %supportedExportFileSystems) {
- # list all image files, followed by the block devices using it:
- my @files = map {
- my $image = decode('utf8', $_);
- $image =~ s[^.+/][];
- $image;
- }
- sort glob("$openslxConfig{'public-path'}/export/$type/*");
- my %imageFiles;
- foreach my $file (@files) {
- if ($file =~ m[^(.+)@(.+)$]) {
- # it's a link referring to a block device using this image,
- # we collect the name of the block device:
- push @{$imageFiles{$1}}, $2;
- } else {
- # it's an image file, we setup an empty array of block devices:
- $imageFiles{$file} = [];
- }
- }
- print join(
- '',
- map {
- my $devices = join(',', @{$imageFiles{$_}});
- my $name = "${_}::$type";
- if (length($devices)) {
- "\t$name".substr(' ' x 30, length($name))."($devices)\n";
- } else {
- "\t$name\n";
- }
- }
- grep {
- # filter out RSYNC_TMP folders:
- $_ !~ m[###];
- }
- sort keys %imageFiles
- );
- }
-} elsif ($action =~ m[^list-in]i) {
- my @vendorOSDirs
- = grep { -d $_ } glob("$openslxConfig{'private-path'}/stage1/*");
- print _tr("List of installed vendor-OSes:\n");
- print join(
- '',
- map {
- my $vendorOS = decode('utf8', $_);
- $vendorOS =~ s[^.+/][];
- "\t$vendorOS\n";
- }
- sort @vendorOSDirs
- );
-} elsif ($action =~ m[^list-ty]i) {
- print _tr("List of supported export types:\n\t");
- print join("\n\t", sort @supportedExportTypes) . "\n";
-} elsif ($action =~ m[^export]i) {
- if (scalar(@ARGV) != 2) {
- print STDERR _tr(
- "You need to specify exactly one vendor-os-name and one export-type!\n"
- );
- pod2usage(2);
- }
- my $vendorOSName = shift @ARGV;
- my $exportType = shift @ARGV;
-
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
-
- # create OSExport-engine for given export type and start it:
- my $engine = OpenSLX::OSExport::Engine->new;
- $engine->initializeForNew($vendorOSName, $exportType);
- if (!-e $engine->{'vendor-os-path'}) {
- die _tr("vendor-OS '%s' doesn't exist, giving up!\n",
- $engine->{'vendor-os-path'});
- }
- $engine->exportVendorOS();
-} elsif ($action =~ m[^remove]i) {
- if (scalar(@ARGV) != 1) {
- print STDERR _tr("You need to specify exactly one export-name!\n");
- pod2usage(2);
- }
- my $exportName = shift @ARGV;
-
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
-
- # create OSExport-engine for given export type and start it:
- my $engine = OpenSLX::OSExport::Engine->new;
- $engine->initializeFromExisting($exportName);
- $engine->purgeExport();
-} else {
- vlog(0, _tr(unshiftHereDoc(<<' END-OF-HERE'), $0));
- You need to specify exactly one action:
- export
- list-exported
- list-installed
- list-types
- remove
- Try '%s --help' for more info.
- END-OF-HERE
-}
-
-=head1 NAME
-
-slxos-export - OpenSLX-script to generate an export from a vendor-OS.
-
-=head1 SYNOPSIS
-
-slxos-export [options] <action>
-
-=head3 Options
-
- --help brief help message
- --log-level=<int> level of logging verbosity (0-3)
- --man show full documentation
- --version show version
-
-=head3 Actions
-
-=over 8
-
-=item B<< export <vendor-OS-name> <export-type> >>
-
-exports the vendor-OS with the given name using the given export type and
-adds it to the config-DB, too. The export will be named as the vendor-OS,
-but with an additional '-<X>' appended to it (where <X> will be replaced
-by the chosen export-type).
-
-=item B<< list-exported >>
-
-list all exported vendor-OSes
-
-=item B<< list-installed >>
-
-list all installed vendor-OSes
-
-=item B<< list-types >>
-
-list all supported export types
-
-=item B<< remove <export-name> >>
-
-removes the export with the given name from disk and config-DB
-
-=back
-
-=head1 DESCRIPTION
-
-B<slxos-export> converts an installed vendor-OS into a form that can be accessed
-via network by booting clients.
-
-The resulting form of such a conversion is called an I<export> and those come
-in different flavors:
-
-=over 8
-
-=item B< Export Type 'nfs'>
-
-NFS (network file system) is a well established networking file system, which
-is supported by LINUX since long.
-
-=item B< Export Type 'sqfs-nbd'>
-
-Squash-FS is a rather modern filesystem providing very good compression,
-resulting in considerably reduced network traffic during boot (and execution).
-However, in order to mount a squash-fs that resides on the server, the client
-has to get access to it first. This can be established via a network block
-device, which basically "transports" a block device over the network (from
-server to client), making it possible to use more or less any file system over
-the network.
-So, this example translates to 'use a squashfs on a network block device'.
-
-=back
-
-When invoking slxos-export, you have to pass it a vendor-OS name and the export
-type you want to use and it will do the conversion (which can take a while, so
-please be patient).
-
-The resulting export will be stored under C</srv/openslx/export>.
-
-=head1 OPTIONS
-
-=over 4
-
-=item B<--help>
-
-Prints a brief help message and exits.
-
-=item B<--man>
-
-Prints the manual page and exits.
-
-=item B<--version>
-
-Prints the version and exits.
-
-=back
-
-=head1 EXAMPLES
-
-=over 8
-
-=head3 Exporting a Vendor-OS via NFS
-
-=item B<< slxos-export export suse-10.2 nfs >>
-
-Exports the installed vendor-OS suse-10.2 via nfs, the
-resulting NFS-export will live in C</srv/openslx/export/nfs/suse-10.2>.
-
-=back
-
-=head3 Exporting a Vendor-OS via NBD
-
-=over 8
-
-=item B<< slxos-export export ubuntu-6.10 sqfs-nbd >>
-
-Exports the installed vendor-OS ubuntu-6.10 via nbd, the resulting
-Squash-FS will live in C</srv/openslx/export/nbd/ubuntu-6.10>.
-
-=back
-
-=head3 Removing an Export
-
-=over 8
-
-=item B<< slxos-export remove ubuntu-6.10 nbd >>
-
-Wipes the squash-FS of the export named 'ubuntu-6.10' from disk (i.e. the
-file C</srv/openslx/export/nbd/ubuntu-6.10> will be deleted) and
-removes that export from the config-DB, too.
-
-=back
-
-=head1 SEE ALSO
-
-slxsettings, slxos-setup, slxconfig, slxconfig-demuxer
-
-=head1 GENERAL OPENSLX OPTIONS
-
-Being a part of OpenSLX, this script supports several other options
-which can be used to overrule the OpenSLX settings:
-
- --db-name=<string> name of database
- --db-spec=<string> full DBI-specification of database
- --db-type=<string> type of database to connect to
- --locale=<string> locale to use for translations
- --log-level=<int> level of logging verbosity (0-3)
- --logfile=<string> file to write logging output to
- --private-path=<string> path to private data
- --public-path=<string> path to public (client-accesible) data
- --temp-path=<string> path to temporary data
-
-Please refer to the C<slxsettings>-manpage for a more detailed description
-of these options.
-
-=cut
-