1
0
mirror of synced 2026-02-24 15:37:48 +00:00

Compare commits

...

58 Commits

Author SHA1 Message Date
Axel Beckert
e1caf2566a Declare this as 4.4 RC1 2013-10-28 22:39:03 +01:00
Axel Beckert
2c020323f6 Refactoring: xt-create-xen-config: Use s/// to strip trailing MB size suffixes 2013-10-28 22:28:40 +01:00
Axel Beckert
c82cb31adc Fix cases where maxmem is not defined
(which is fine)
2013-10-28 21:57:10 +01:00
Axel Beckert
b676da079c xen-delete-image: Exit with return code != 0 in all error cases 2013-10-28 21:31:14 +01:00
Axel Beckert
4d73574a40 xen-delete-image: Proper error message if --test is not used with --dir
Also abort earlier in this case.

Closes: #704878
2013-10-28 21:28:45 +01:00
Axel Beckert
55b303f5a9 Add changelog entry for Patryk Ściborek's fix 2013-10-28 20:54:39 +01:00
Patryk Ściborek
96679edad9 Fix disableStartStopDaemon() if /sbin/initctl is not present 2013-10-28 20:48:10 +01:00
Axel Beckert
ca734e511f Bump Standards-Version to 3.9.5 (no changes) 2013-10-28 10:54:50 +01:00
Axel Beckert
1e76cd2da9 Update changelog 2013-10-25 19:23:39 +02:00
Axel Beckert
d9ed3e65db Merge branch 'fix_passwd' of gitorious.org:xen-tools/aseques-xen-tools 2013-10-25 18:36:54 +02:00
Axel Beckert
73ced0b3f3 Update changelog 2013-10-25 18:36:48 +02:00
Joan
42345c75d4 Fix password interation on image creation 2013-10-25 10:51:11 +02:00
Axel Beckert
ff4aa11dd3 Merge branch 'maxmem' of gitorious.org:xen-tools/aseques-xen-tools 2013-10-23 13:59:16 +02:00
Axel Beckert
cfa30f06b6 Preliminary support for Ubuntu 14.04 Trusty Tahr 2013-10-23 13:54:45 +02:00
Joan
b51936e6ee Updated changelog 2013-10-18 14:09:59 +02:00
Joan
1374208d3b Implemente the option maxmem in xen-tools allowing to set a maximum value to enable dynamic memory ballooning. 2013-10-18 12:59:50 +02:00
Axel Beckert
0e8178ab0f Fix german-ish grammar and remove dash in "IP-Addresses" 2013-10-01 22:20:41 +02:00
Axel Beckert
d20f832f82 Also display MAC address after the DomU has been created 2013-10-01 22:19:10 +02:00
Axel Beckert
fae561aaca Meaningful whitespace fixes in hooks/common/40-setup-networking-deb 2013-09-24 23:16:22 +02:00
Axel Beckert
205bf96f0a Handle potentially empty gateway setting properly
… in hooks/common/40-setup-networking-deb

Thanks Simone Caruso!
2013-09-24 23:11:05 +02:00
Axel Beckert
571f540992 Refactoring: Replace all occurrences of "! -z" by "-n"
Occurred in hooks and bash-completion.
2013-09-24 22:54:05 +02:00
Axel Beckert
86dd78c681 Drop support for memory size in kilobytes in xen-create-image
Neither xt-create-xen-config nor xm support it.
2013-09-24 22:41:20 +02:00
Axel Beckert
6644afa9fd xen-list-images now displays a unit after the memory size 2013-09-24 22:36:27 +02:00
Axel Beckert
7bb7089c9f Changelog entry for Gitorious merge request #5 2013-09-24 22:20:14 +02:00
Axel Beckert
a9dfc112b9 Merge commit 'refs/merge-requests/5' of git://gitorious.org/xen-tools/xen-tools into merge-requests/5 2013-09-24 22:08:41 +02:00
Axel Beckert
c62b053a7b Also declare POD encoding in Xen::Tools::Common
Recode Xen::Tools::Common to UTF-8

Fixes FTBFS with Perl 5.18. Closes #720519 a second time.
2013-09-24 22:02:28 +02:00
Axel Beckert
cc4e170357 Dependency on Term::UI needed for Perl >= 5.17 2013-09-10 17:53:51 +02:00
Axel Beckert
70bf0607db Merge branch 'master' of gitorious.org:xen-tools/xen-tools 2013-09-10 16:14:01 +02:00
Axel Beckert
d8e4a4f264 Note that f1c7c6e1 closes #703159 2013-09-10 16:10:33 +02:00
Axel Beckert
5825331cea Fix typo in current changelog entry 2013-08-24 04:07:16 +02:00
Axel Beckert
f1c7c6e11c Loop around calling "passwd" to get a second chance to change the password
Needs Term::UI which is part of Debian's perl-modules package, hence
no new (build-) dependencies needed.
2013-08-24 00:54:21 +02:00
Axel Beckert
3b806d9f25 Do not run "passwd" via runCommand
runCommand captures STDOUT for logging which is not desired for
interactive commands.

Makes --passwd usable again.

Thanks to Christan Herzog for the bug report.
2013-08-24 00:12:44 +02:00
Axel Beckert
97b0ed29c0 Also switch from cdn.debian.net to http.debian.net in xen-tools.conf 2013-08-23 21:13:44 +02:00
Axel Beckert
12960c8f2b Release 4.4 beta 1 2013-08-23 19:31:47 +02:00
Axel Beckert
029faab59c Add build-dependencies on libdata-validate-{domain,ip,uri}-perl 2013-08-23 19:31:47 +02:00
Axel Beckert
cb5ce9ea5c Bump Standards-Version to 3.9.4 (no changes) 2013-08-23 19:08:42 +02:00
Axel Beckert
fbc903877a Declare POD encoding to be UTF-8 in bin/*
Fixes FTBFS with Perl 5.18.

Closes: #720519
2013-08-23 09:08:43 +02:00
Axel Beckert
fb8b494b41 Preliminary support for Ubuntu Saucy
Does not yet work due to missing support for Saucy in debootstrap.

Also move default mirror for Ubuntu Hardy from archive to old-releases
as Hardy is now EoL.
2013-07-11 01:49:46 +02:00
Axel Beckert
516a7a1625 Update descriptions of distributions 2013-07-11 01:30:41 +02:00
Axel Beckert
d0c4439a10 README: Update list of required Perl modules 2013-07-11 01:13:45 +02:00
Axel Beckert
87fc2a76a0 Remove some redundancy in the README 2013-07-11 00:59:33 +02:00
Axel Beckert
34838811f9 Reorder list of Perl modules in README alphabetically 2013-07-11 00:57:59 +02:00
Axel Beckert
ad68cdb46b Change CPAN links from search.cpan.org to metacpan.org 2013-07-11 00:55:51 +02:00
Axel Beckert
e5abe64ae0 Fix broken quoting in list of required binaries 2013-07-11 00:44:25 +02:00
Axel Beckert
9c47e5da4f Use File::Which instead of findBinary or which 2013-07-11 00:39:05 +02:00
Axel Beckert
b271bf6a63 TODO: Still to many backticks in use
Also merge the two findBinary TODOs
2013-07-11 00:26:12 +02:00
Axel Beckert
a72fbb5f79 TODO: The mess after hitting Ctrl-C has been fixed, too 2013-07-11 00:16:09 +02:00
Axel Beckert
149ad47c5f TODO: Remove #623443-related stuff. Fixed in 74f35d65 2013-07-11 00:13:28 +02:00
Axel Beckert
4442c1a17f TODO: Move remaining code deduplication to Break-Backwards-Compatibility list 2013-07-11 00:11:54 +02:00
Axel Beckert
be55a4a6f2 Remove reference to removed t/xen-tools.t from KNOWN_BUGS 2013-07-11 00:07:37 +02:00
Axel Beckert
5883b7a15c TODO: Generate ECDSA host keys where possible 2013-07-10 23:54:46 +02:00
Axel Beckert
9e05298832 Add dependency on ${perl:Depends} to fix dpkg-gencontrol warning 2013-07-10 22:55:20 +02:00
Axel Beckert
be05397249 Bump debhelper compatibility to 9
Update versioned debhelper build-dependency
2013-07-10 22:53:14 +02:00
Axel Beckert
3b72f2ee4b Mention that #715340 is fixed by 1de424a6 2013-07-10 22:45:05 +02:00
Axel Beckert
699025f33e Use Data::Validate::{Domain,IP} for IP addresses and hostname checks
Add corresponding dependencies on libdata-validate-{domain,ip}-perl.
2013-07-10 22:38:29 +02:00
Axel Beckert
74f35d6550 Better document and check requirements for --apt_proxy
See http://bugs.debian.org/623443 for the corresponding apt issue.

Also add a dependency on libdata-validate-uri-perl which is used to do
the syntax check.
2013-07-10 21:50:09 +02:00
Axel Beckert
72a2a637be Mention issue about #623443 in TODO 2013-07-09 22:38:42 +02:00
Philipp Erbelding
70a30bb146 prevent matching lines like "shadow_memory = 16" 2012-11-08 12:38:48 +01:00
30 changed files with 284 additions and 149 deletions

View File

@@ -32,12 +32,3 @@ Bugs to fix rather soon
Current (unreleased) fix is to sort by mountpoint length. Current (unreleased) fix is to sort by mountpoint length.
Fix would be to reproduce what mount does with mount `-a`. Fix would be to reproduce what mount does with mount `-a`.
Bugs to fix later
-----------------
`t/xen-tools.t` can't really test Xen::Tools as the latter requires a
local Xen installation. For proper testing, a dummy set of Xen
configuration files and configurable paths to them in `Xen::Tools`
would be necessary.

View File

@@ -14,7 +14,7 @@
# #
TMP ?= /tmp TMP ?= /tmp
DIST_PREFIX = ${TMP} DIST_PREFIX = ${TMP}
VERSION = 4.4~dev VERSION = 4.4rc1
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/') DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
BASE = xen-tools BASE = xen-tools
VCS = git VCS = git
@@ -201,6 +201,8 @@ install-hooks:
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d precise.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d precise.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d quantal.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d quantal.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d raring.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d raring.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d saucy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d trusty.d
cp hooks/common.sh ${prefix}/usr/share/xen-tools cp hooks/common.sh ${prefix}/usr/share/xen-tools
cp -r hooks/common ${prefix}/usr/share/xen-tools cp -r hooks/common ${prefix}/usr/share/xen-tools

View File

@@ -32,9 +32,9 @@ known to work reliably, i.e.:
* Etch 4.0 (Dom0 no more tested) * Etch 4.0 (Dom0 no more tested)
* Lenny 5.0 * Lenny 5.0
* Squeeze 6.0 * Squeeze 6.0
* Wheezy 7.0 * Wheezy 7
* Jessie 8.0 (preliminary support as it's not yet available) * Jessie 8 (under developement)
* Sid (works at least at the moment of writing :-) * Sid (always under developement; works at least at the moment of writing :-)
### Ubuntu ### Ubuntu
@@ -54,7 +54,8 @@ known to work reliably, i.e.:
* Oneiric Ocelot 11.10 * Oneiric Ocelot 11.10
* Precise Pangolin 12.04 * Precise Pangolin 12.04
* Quantal Quetzal 12.10 * Quantal Quetzal 12.10
* Raring Ringtail 13.04 (preliminary support as it's not yet available) * Raring Ringtail 13.04
* Saucy Salamander 13.10 (under developement)
[1]: http://bugs.debian.org/659360 [1]: http://bugs.debian.org/659360
"debootstrap in Wheezy can no more build Ubuntu Edgy or earlier" "debootstrap in Wheezy can no more build Ubuntu Edgy or earlier"
@@ -83,11 +84,22 @@ Requirements
To use these tools you'll need the following software: To use these tools you'll need the following software:
* [debootstrap](http://packages.debian.org/debootstrap) * [debootstrap](http://packages.debian.org/debootstrap)
* Perl * Perl and the following Perl modules
* The Perl module [Text::Template](http://search.cpan.org/dist/Text-Template/) * [Config::IniFiles](http://metacpan.org/release/Config-IniFiles)
([Debian Package libtext-template-perl](http://packages.debian.org/libtext-template-perl))
* The Perl module [Config::IniFiles](http://search.cpan.org/dist/Config-IniFiles/)
([Debian Package libconfig-inifiles-perl](http://packages.debian.org/libconfig-inifiles-perl)) ([Debian Package libconfig-inifiles-perl](http://packages.debian.org/libconfig-inifiles-perl))
* [Text::Template](http://metacpan.org/release/Text-Template)
([Debian Package libtext-template-perl](http://packages.debian.org/libtext-template-perl))
* [Data::Validate::Domain](http://metacpan.org/release/Data-Validate-Domain)
([Debian Package libdata-validate-domain-perl](http://packages.debian.org/libdata-validate-domain-perl))
* [Data::Validate::IP](http://metacpan.org/release/Data-Validate-IP)
([Debian Package libdata-validate-ip-perl](http://packages.debian.org/libdata-validate-ip-perl))
* [Data::Validate::URI](http://metacpan.org/release/Data-Validate-URI)
([Debian Package libdata-validate-uri-perl](http://packages.debian.org/libdata-validate-uri-perl))
* [File::Slurp](http://metacpan.org/release/File-Slurp)
([Debian Package libfile-slurp-perl](http://packages.debian.org/libfile-slurp-perl))
* [File::Which](http://metacpan.org/release/File-Which)
([Debian Package libfile-which-perl](http://packages.debian.org/libfile-which-perl))
* and some more modules which are part of the Perl core and hence do not need to be installed separately.
* Make, if you are not installing through a package manager * Make, if you are not installing through a package manager
You can try to install RPM-based distributions such as CentOS, or You can try to install RPM-based distributions such as CentOS, or

View File

@@ -73,12 +73,6 @@ Bugs to fix and features to add for 5.0
* LVM snapshot support as an install source. * LVM snapshot support as an install source.
* Clean up mounts on `Ctrl-C`, causes error while installing otherwise:
Removing /dev/vg0/acromantula-domu1-disk - since we're forcing the
install Can't remove open logical volume "acromantula-domu1-disk"
this should be a matter of unmounting the mounted volume from /tmp.
* Generic grub support * Generic grub support
This will generate a much nicer `menu.lst` as a side effect, as its This will generate a much nicer `menu.lst` as a side effect, as its
@@ -128,6 +122,9 @@ Bugs to fix and features to add for 5.0
`authorized_keys` (e.g. a users public key) or to just add the Dom0's `authorized_keys` (e.g. a users public key) or to just add the Dom0's
`/root/.ssh/authorized_keys` as the DomU's one. `/root/.ssh/authorized_keys` as the DomU's one.
* Generate ECDSA host keys where possible. (Likely depends on the
to-be-installed SSH version.)
* More generic roles * More generic roles
Deploy a web server or setup ssmtp directly via flag when setting up Deploy a web server or setup ssmtp directly via flag when setting up
@@ -165,11 +162,6 @@ Bugs to fix and features to add for 5.0
* Make used Xen toolstack configurable, i.e. via --xen-toolstack=xl * Make used Xen toolstack configurable, i.e. via --xen-toolstack=xl
* Code Deduplication / Refactor the code for less code duplication
`bin/x*` currently contain the same or similar code like e.g. in the
function readConfigurationFile. This needs to be cleaned up.
* Unify --debug and --dumpconfig. Likely make --debug exit * Unify --debug and --dumpconfig. Likely make --debug exit
gracefully. Document --debug if --dumpconfig is removed. gracefully. Document --debug if --dumpconfig is removed.
@@ -182,8 +174,6 @@ Bugs to fix and features to add for 5.0
distributions the same. Currently Debian is a special case and distributions the same. Currently Debian is a special case and
Ubuntu half a special case. Ubuntu half a special case.
* Replace findBinary() with File::Which
* Remove from the (unused) Xen::Tools what's already in the used * Remove from the (unused) Xen::Tools what's already in the used
Xen::Tools::Common. Xen::Tools::Common.
@@ -194,6 +184,10 @@ Bugs to fix and features to add for 5.0
`xen-create-image` first. Which probably both would be a good `xen-create-image` first. Which probably both would be a good
idea. idea.
* Replace several occurences of backticks with runCommand. (Mostly
mount commands in `xen-update-image`. The calls to uname or
lsb_release should be fine.)
Stuff from Steve's TODO list / Generic TODOs Stuff from Steve's TODO list / Generic TODOs
-------------------------------------------- --------------------------------------------
@@ -238,10 +232,14 @@ Axel's Break-Backwards-Compatibility Wishlist
Maybe add some `--autostart` or such. Maybe add some `--autostart` or such.
* Maybe replace findBinary with File::Which
* MAC addresses should no more depend on the distribution. * MAC addresses should no more depend on the distribution.
* Let the admin switch between MAC addresses based on XenSource's OUI, * Let the admin switch between MAC addresses based on XenSource's OUI,
its organisation's own OUI or locally administrated MAC addresses. its organisation's own OUI or locally administrated MAC addresses.
See also http://wiki.xen.org/wiki/Xen_Networking#MAC_addresses See also http://wiki.xen.org/wiki/Xen_Networking#MAC_addresses
* More radical Code Deduplication
`bin/x*` currently still contain similar code like e.g. in the
function parseCommandLineArguments. This should be cleaned up, too,
but may need a bigger redesign.

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xen-create-image - Easily create new Xen instances with networking and OpenSSH. xen-create-image - Easily create new Xen instances with networking and OpenSSH.
@@ -132,6 +134,13 @@ and EVMS EXAMPLE.
"MB", "G" and "GB" (case does not matter). If there's "MB", "G" and "GB" (case does not matter). If there's
no unit given, megabytes are assumed. no unit given, megabytes are assumed.
--maxmem=size
Setup the maximum amount of memory that can be allocated
to the new instance. As suffix recognized size units are "M",
"MB", "G" and "GB" (case does not matter). If there's
no unit given, megabytes are assumed.
Required for dynamic memory ballooning.
--modules=/path/to/modules --modules=/path/to/modules
Set the path to the kernel modules to use for domU. Set the path to the kernel modules to use for domU.
If modules are specified they must exist. If modules are specified they must exist.
@@ -243,9 +252,10 @@ and EVMS EXAMPLE.
Debian mirror. See http://http.debian.net/ for Debian mirror. See http://http.debian.net/ for
details. details.
--apt_proxy=url --apt_proxy=protocol://hostname:port/
Specify a proxy to be used by debootstrap, and within Specify a proxy to be used by debootstrap, and within
the guest. the guest. Needs the same syntax as APT's
Acquire::http::Proxy. See apt.conf(5).
--template=tmpl --template=tmpl
Specify which template file to use when creating the Specify which template file to use when creating the
@@ -415,6 +425,7 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
size = 2Gb # Disk image size. size = 2Gb # Disk image size.
image = full # Allocate the full disk size immediately. image = full # Allocate the full disk size immediately.
memory = 128Mb # Memory size memory = 128Mb # Memory size
maxmem = 512Mb # Memory size
swap = 128Mb # Swap size swap = 128Mb # Swap size
fs = ext3 # use EXT3 filesystems fs = ext3 # use EXT3 filesystems
dist = stable # Default distribution to install. dist = stable # Default distribution to install.
@@ -792,6 +803,11 @@ use File::Which;
use Getopt::Long; use Getopt::Long;
use Pod::Usage; use Pod::Usage;
use Data::Dumper; use Data::Dumper;
use Data::Validate::URI qw/ is_uri /;
use Data::Validate::IP qw/ is_ipv4 /;
use Data::Validate::Domain qw/ is_hostname /;
use Term::UI;
use Term::ReadLine;
use Xen::Tools::Common; use Xen::Tools::Common;
@@ -825,7 +841,7 @@ my $MOUNT_POINT = undef;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
# #
@@ -1143,11 +1159,11 @@ E_O_ERROR
# Check that all the binaries have been installed properly # Check that all the binaries have been installed properly
# #
my @required = my @required =
qw ( / xt-customize-image xt-install-image xt-create-xen-config / ); qw(xt-customize-image xt-install-image xt-create-xen-config);
foreach my $bin (@required) foreach my $bin (@required)
{ {
if ( !defined( findBinary($bin) ) ) if ( !defined( which($bin) ) )
{ {
logprint( "The script '$bin' was not found.\nAborting\n\n" ); logprint( "The script '$bin' was not found.\nAborting\n\n" );
$CONFIG{'FAIL'} = 1; $CONFIG{'FAIL'} = 1;
@@ -1328,10 +1344,10 @@ sub setupDefaultOptions
$CONFIG{ 'mirror_'.$debdist } = 'http://http.debian.net/debian-archive/debian'; $CONFIG{ 'mirror_'.$debdist } = 'http://http.debian.net/debian-archive/debian';
} }
# Initialize per distribution mirror defaults: Ubuntu # Initialize per distribution mirror defaults: Ubuntu
foreach my $ubuntudist (qw(hardy lucid oneiric precise quantal raring)) { foreach my $ubuntudist (qw(lucid precise quantal raring saucy trusty)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu'; $CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
} }
foreach my $ubuntudist (qw(dapper edgy feisty gutsy intrepid jaunty karmic maverick natty)) { foreach my $ubuntudist (qw(dapper edgy feisty gutsy hardy intrepid jaunty karmic maverick natty oneiric)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu'; $CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
} }
$CONFIG{ 'apt_proxy' } = ''; $CONFIG{ 'apt_proxy' } = '';
@@ -1421,8 +1437,8 @@ sub checkOption
# Define argument types # Define argument types
my %types = ( my %types = (
integerWithSuffix => { integerWithSuffix => {
check => qr/^[0-9.]+[GMk]B?$/i, check => qr/^[0-9.]+[GM]B?$/i,
message => "takes a suffixed (mb, MB, G, k, etc.) integer.\n", message => "takes a suffixed (mb, MB, G, etc.) integer.\n",
}, },
distribution => { distribution => {
check => sub { -d "/usr/share/xen-tools/$_[0].d" }, check => sub { -d "/usr/share/xen-tools/$_[0].d" },
@@ -1450,15 +1466,15 @@ sub checkOption
message => "must be a disk device (xvd[a-z]+, sd[a-z]+).\n", message => "must be a disk device (xvd[a-z]+, sd[a-z]+).\n",
}, },
ipv4 => { ipv4 => {
check => qr/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/, check => sub { is_ipv4($_[0]) },
message => "must be valid IPv4.\n", message => "must be valid IPv4.\n",
}, },
ipv4_or_auto => { ipv4_or_auto => {
check => qr/^(?:auto|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$/, check => sub { is_ipv4($_[0]) or $_[0] eq 'auto' },
message => "must be valid IPv4 or the keyword 'auto'.\n", message => "must be valid IPv4 or the keyword 'auto'.\n",
}, },
hostname => { hostname => {
check => qr/^[a-z0-9][a-z0-9.-]{0,254}$/i, check => sub { is_hostname($_[0]) },
message => "must be a valid hostname.\n", message => "must be a valid hostname.\n",
}, },
supportedFs => { supportedFs => {
@@ -1489,6 +1505,10 @@ sub checkOption
check => qr/^md5|sha256|sha512$/i, check => qr/^md5|sha256|sha512$/i,
message => "must be md5, sha256 or sha512.\n", message => "must be md5, sha256 or sha512.\n",
}, },
uri => {
check => sub { is_uri($_[0]) },
message => "must be an URI including the protocol\n",
},
); );
# Define what argument each option accepts. # Define what argument each option accepts.
@@ -1499,6 +1519,7 @@ sub checkOption
swap => 'integerWithSuffix', swap => 'integerWithSuffix',
image => 'imageType', image => 'imageType',
memory => 'integerWithSuffix', memory => 'integerWithSuffix',
maxmem => 'integerWithSuffix',
kernel => 'existingFile', kernel => 'existingFile',
initrd => 'existingFile', initrd => 'existingFile',
modules => 'existingDir', modules => 'existingDir',
@@ -1523,6 +1544,7 @@ sub checkOption
mac => 'mac', mac => 'mac',
ip => 'ipv4_or_auto', ip => 'ipv4_or_auto',
hash_method => 'hashMethod', hash_method => 'hashMethod',
apt_proxy => 'uri',
); );
# If given option does not exists in optionsTypes, # If given option does not exists in optionsTypes,
@@ -1596,6 +1618,7 @@ sub parseCommandLineArguments
"noswap", \&checkOption, "noswap", \&checkOption,
"image=s", \&checkOption, "image=s", \&checkOption,
"memory=s", \&checkOption, "memory=s", \&checkOption,
"maxmem=s", \&checkOption,
"vcpus=i", \&checkOption, "vcpus=i", \&checkOption,
# Locations # Locations
@@ -1817,7 +1840,7 @@ sub checkArguments
# #
# Lucid and probably all later Ubuntus, too, don't work without pygrub # Lucid and probably all later Ubuntus, too, don't work without pygrub
# #
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty|oneiric|precise|quantal|raring/ ) if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty|oneiric|precise|quantal|raring|saucy/ )
{ {
$CONFIG{ 'pygrub' } = 1; $CONFIG{ 'pygrub' } = 1;
} }
@@ -2265,7 +2288,7 @@ sub checkBinariesPresent
foreach my $file (@required) foreach my $file (@required)
{ {
if ( !defined( findBinary($file) ) ) if ( !defined( which($file) ) )
{ {
logprint("The following binary is required to run this tool\n"); logprint("The following binary is required to run this tool\n");
logprint("\t$file\n"); logprint("\t$file\n");
@@ -2281,7 +2304,7 @@ sub checkBinariesPresent
{ {
# loopback image # loopback image
if ( !defined( findBinary("dd") ) ) if ( !defined( which("dd") ) )
{ {
logprint("The following binary is required to run this tool\n"); logprint("The following binary is required to run this tool\n");
logprint("\tdd\n"); logprint("\tdd\n");
@@ -2302,7 +2325,7 @@ sub checkBinariesPresent
foreach my $file (@evms) foreach my $file (@evms)
{ {
if ( !defined( findBinary($file) ) ) if ( !defined( which($file) ) )
{ {
logprint("The following binary is required to run this tool\n"); logprint("The following binary is required to run this tool\n");
logprint("\t$file\n"); logprint("\t$file\n");
@@ -2322,7 +2345,7 @@ sub checkBinariesPresent
foreach my $file (@lvm) foreach my $file (@lvm)
{ {
if ( !defined( findBinary($file) ) ) if ( !defined( which($file) ) )
{ {
logprint("The following binary is required to run this tool\n"); logprint("The following binary is required to run this tool\n");
logprint("\t$file\n"); logprint("\t$file\n");
@@ -2628,6 +2651,11 @@ sub showSummary
logprint("Image type : $CONFIG{'image'}\n"); logprint("Image type : $CONFIG{'image'}\n");
logprint("Memory size : $CONFIG{'memory'}\n"); logprint("Memory size : $CONFIG{'memory'}\n");
if ( defined( $CONFIG{ 'maxmem' } ) )
{
logprint("Max mem size : $CONFIG{'maxmem'}\n");
}
if ( defined( $CONFIG{ 'kernel' } ) && length( $CONFIG{ 'kernel' } ) ) if ( defined( $CONFIG{ 'kernel' } ) && length( $CONFIG{ 'kernel' } ) )
{ {
logprint("Kernel path : $CONFIG{'kernel'}\n"); logprint("Kernel path : $CONFIG{'kernel'}\n");
@@ -3296,7 +3324,7 @@ sub createFilesystem
# #
my ($binary, $args) = split(/ /, $command, 2); my ($binary, $args) = split(/ /, $command, 2);
if ( !defined( findBinary($binary) ) ) if ( !defined( which($binary) ) )
{ {
logprint( logprint(
"The binary '$binary' required to create the filesystem $fs is missing\n" "The binary '$binary' required to create the filesystem $fs is missing\n"
@@ -3916,7 +3944,19 @@ sub setupRootPassword
{ {
if ( -x $MOUNT_POINT . "/usr/bin/passwd" ) if ( -x $MOUNT_POINT . "/usr/bin/passwd" )
{ {
runCommand("chroot $MOUNT_POINT /usr/bin/passwd", \%CONFIG); my $tryagain = 1;
my $term = Term::ReadLine->new('Password change failed');
while ($tryagain) {
my $rc = system("chroot $MOUNT_POINT /usr/bin/passwd");
if ($rc >> 8) {
$tryagain = $term->ask_yn(
prompt => 'Do you want to try to change the password again??',
default => 'y',
);
} else {
$tryagain=0;
}
}
} }
else else
{ {
@@ -4222,7 +4262,8 @@ END
logprint("---------------------\n"); logprint("---------------------\n");
logprint("Hostname : $CONFIG{'hostname'}\n"); logprint("Hostname : $CONFIG{'hostname'}\n");
logprint("Distribution : $CONFIG{'dist'}\n"); logprint("Distribution : $CONFIG{'dist'}\n");
logprint("IP-Address(es) : "); logprint("MAC Address : $CONFIG{'mac'}\n");
logprint("IP Address(es) : ");
if ( $CONFIG{ 'dhcp' } ) { if ( $CONFIG{ 'dhcp' } ) {
logprint("dynamic"); logprint("dynamic");
} elsif( $CONFIG{ 'ip' } ) { } elsif( $CONFIG{ 'ip' } ) {

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xen-create-nfs - Create a Xen configuration file for an NFS-root guest. xen-create-nfs - Create a Xen configuration file for an NFS-root guest.
@@ -119,7 +121,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
# store version number away. # store version number away.

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xen-delete-image - Delete previously created Xen instances. xen-delete-image - Delete previously created Xen instances.
@@ -54,7 +56,8 @@ Specify the LVM volume group where images were previously saved.
Read the manual for this script. Read the manual for this script.
=item B<--test> =item B<--test>
Do not complain, or exit, if the script is not executed by the root user. Do not complain, or exit, if the script is not executed by the root
user. (Only works in conjunction with --dir.)
=item B<--version> =item B<--version>
Show the version number and exit. Show the version number and exit.
@@ -161,7 +164,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
# #
@@ -307,10 +310,10 @@ sub checkArguments
# #
# When testing we only care about loopback images, not disk images. # When testing we only care about loopback images, not disk images.
# #
if ( $CONFIG{ 'test' } ) if ( $CONFIG{ 'test' } and ( $CONFIG{ 'lvm' } or $CONFIG{ 'evms' } ))
{ {
$CONFIG{ 'lvm' } = undef; print "Error: --test only works with --dir.\n";
$CONFIG{ 'evms' } = undef; exit 1;
} }
# #
@@ -332,7 +335,7 @@ sub checkArguments
print " --dir\n"; print " --dir\n";
print " --evms\n"; print " --evms\n";
print " --lvm\n"; print " --lvm\n";
exit; exit 2;
} }
} }

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xen-list-images - List all the created and configured Xen images. xen-list-images - List all the created and configured Xen images.
@@ -104,7 +106,7 @@ $CONFIG{ 'extension' } = '.cfg';
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
@@ -247,7 +249,7 @@ sub displayInstance
{ {
$name = $1; $name = $1;
} }
if ( $line =~ /.*memory[^0-9]*([0-9]+)/i ) if ( $line =~ /^\s*memory[^0-9]*([0-9]+)/i )
{ {
$mem = $1; $mem = $1;
} }
@@ -262,7 +264,7 @@ sub displayInstance
} }
print "Name: $name\n"; print "Name: $name\n";
print "Memory: $mem\n"; print "Memory: $mem MB\n";
print "IP: " . $ip . $mac . "\n" if length($ip); print "IP: " . $ip . $mac . "\n" if length($ip);
print "DHCP" . $mac . "\n" if $dhcp; print "DHCP" . $mac . "\n" if $dhcp;
print "Config: $file\n"; print "Config: $file\n";

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xen-resize-guest - Resize a loopback or LVM based xen guest. xen-resize-guest - Resize a loopback or LVM based xen guest.
@@ -109,7 +111,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
# #

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xen-update-image - Update the software installed upon offline Xen images. xen-update-image - Update the software installed upon offline Xen images.
@@ -111,7 +113,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
# #

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xt-create-config - Create a Xen configuration file for a new guest xt-create-config - Create a Xen configuration file for a new guest
@@ -146,7 +148,7 @@ $CONFIG{ 'extension' } = '.cfg';
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
@@ -367,11 +369,23 @@ sub createXenConfig
# #
# Remove any trailing Mb. # Remove any trailing Mb.
# #
if ( $ENV{ 'memory' } =~ /^(\d+)Mb?.*$/i ) $ENV{ 'memory' } =~ s/^(\d+)Mb?.*$/$1/i;
{
$ENV{ 'memory' } = $1;
}
#
# The maxmem size: Convert Gb -> Mb.
#
if ( exists($ENV{ 'maxmem' }) and defined($ENV{ 'maxmem' })) {
if ($ENV{ 'maxmem' } =~ /^(\d+)Gb?.*$/i )
{
$ENV{ 'maxmem' } = $1 * 1024;
}
#
# Remove any trailing Mb.
#
$ENV{ 'maxmem' } =~ s/^(\d+)Mb?.*$/$1/i;
}
# #
# Images as presented to Xen - either loopback images, or LVM partitions. # Images as presented to Xen - either loopback images, or LVM partitions.

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xt-customize-image - Customize a freshly installed copy of GNU/Linux xt-customize-image - Customize a freshly installed copy of GNU/Linux
@@ -89,7 +91,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xt-guess-suite-and-mirror - Tries to guess the most suitable suite and xt-guess-suite-and-mirror - Tries to guess the most suitable suite and
@@ -69,6 +71,7 @@ my @sources_list_files = ( '/etc/apt/sources.list',
use File::Slurp; use File::Slurp;
use Getopt::Long; use Getopt::Long;
use Pod::Usage; use Pod::Usage;
use File::Which;
use strict; use strict;
@@ -76,7 +79,7 @@ use strict;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
# Init # Init
my $mirror = ''; my $mirror = '';
@@ -148,10 +151,8 @@ all_sources_list_files: foreach my $sources_list_file (@sources_list_files) {
die "Couldn't find a useful entry in the sources.list files of the Dom0. Tried:\n ". die "Couldn't find a useful entry in the sources.list files of the Dom0. Tried:\n ".
join("\n ", @sources_list_files)."\n" unless $found; join("\n ", @sources_list_files)."\n" unless $found;
my $lsb_release = `which lsb_release`; my $lsb_release = which('lsb_release');
chomp($lsb_release); if (!$found and defined($lsb_release) and -x $lsb_release) {
if (!$found and $lsb_release and -x $lsb_release) {
my $vendor = `$lsb_release -s -i`; my $vendor = `$lsb_release -s -i`;
if ($vendor eq 'Debian' or $vendor eq 'Ubuntu') { if ($vendor eq 'Debian' or $vendor eq 'Ubuntu') {

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
=encoding utf8
=head1 NAME =head1 NAME
xt-install-image - Install a fresh copy of GNU/Linux into a directory xt-install-image - Install a fresh copy of GNU/Linux into a directory
@@ -110,7 +112,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.4~dev'; my $RELEASE = '4.4rc1';
# #

4
debian/NEWS vendored
View File

@@ -1,4 +1,4 @@
xen-tools (4.4~dev-1) UNRELEASED; urgency=low xen-tools (4.4~beta1-1) unstable; urgency=low
* Exported environment variables no more contain dashes ("-"). Dashes in * Exported environment variables no more contain dashes ("-"). Dashes in
environment variable names are from now on converted to underscores environment variable names are from now on converted to underscores
@@ -11,7 +11,7 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
which all should be empty at that point, i.e. "rmdir -p which all should be empty at that point, i.e. "rmdir -p
/usr/lib/xen-tools/*" should do the trick. /usr/lib/xen-tools/*" should do the trick.
-- Axel Beckert <abe@debian.org> Fri, 05 Apr 2013 20:19:02 +0200 -- Axel Beckert <abe@debian.org> Fri, 23 Aug 2013 19:01:16 +0200
xen-tools (4.2~rc1-1) unstable; urgency=low xen-tools (4.2~rc1-1) unstable; urgency=low

67
debian/changelog vendored
View File

@@ -1,6 +1,45 @@
xen-tools (4.4~dev-1) UNRELEASED; urgency=low xen-tools (4.4~rc1-1) unstable; urgency=low
* New upstream release * New upstream release candidate
- Also switch from cdn.debian.net to http.debian.net in xen-tools.conf
- Do not run "passwd" via runCommand as that one captures STDOUT for
logging. Makes --passwd usable again. Thanks to Christian Herzog for
the bug report.
- Loop around calling "passwd" to get a second chance to change the
password. (Closes: #703159) Thanks to Joan <aseques@gmail.com> for a
bug fix in this new code.
+ Add dependency on "libterm-ui-perl | perl (<< 5.17.0)"
- Declares one more POD encoding and recode Xen::Tools::Common to
UTF-8. Fixes FTBFS with Perl 5.18. (Finally closes: #720519)
- Apply patch by Philipp Erbelding to fix overzealous line matching in
xen-list-images. (Gitorious merge request #5)
- xen-list-images now displays a unit after the memory size
- Drop support for memory size in kilobytes in xen-create-image,
neither xt-create-xen-config nor xm support it.
- Refactoring: Replace all occurrences of "! -z" by "-n" in hooks and
bash completion.
- Handle potentially empty gateway setting properly in
hooks/common/40-setup-networking-deb. Thanks Simone Caruso!
- Reformat hooks/common/40-setup-networking-deb so that the result
neither has trailing whitespace nor broken indentation.
- Also display MAC address after the DomU has been created.
- Preliminary support for Ubuntu 14.04 Trusty Tahr.
- Added --maxmem flag to set a maximum value for dynamic memory
ballooning. Thanks to Joan <aseques@gmail.com> for the patch!
- Added fix by Patryk Ściborek againsat disableStartStopDaemon()
aborting under some circumstances. (Closes: #725192)
- Abort early and with proper error message if "xen-delete-image
--test" is not used with "--dir". (Closes: #704878)
- xen-delete-image: Exit with return code != 0 in all error cases.
- Refactoring: xt-create-xen-config: Use s/// to strip trailing MB
size suffixes.
* Bump Standards-Version to 3.9.5 (no changes).
-- Axel Beckert <abe@debian.org> Mon, 28 Oct 2013 22:31:03 +0100
xen-tools (4.4~beta1-1) unstable; urgency=low
* New upstream beta release
- Code deduplication to unify the xen-*-image scripts - Code deduplication to unify the xen-*-image scripts
- Moves /usr/lib/xen-tools/ to /usr/share/xen-tools/ - Moves /usr/lib/xen-tools/ to /usr/share/xen-tools/
- Use http.debian.net as default Debian mirror if no mirror is given - Use http.debian.net as default Debian mirror if no mirror is given
@@ -20,14 +59,17 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
- Fixes "--extension=" with empty parameter. - Fixes "--extension=" with empty parameter.
- Sarge amd64 case handle properly - Sarge amd64 case handle properly
- Remove CVS revisions from --version output - Remove CVS revisions from --version output
- Preliminary support for Debian Jessie and Ubuntu Raring - Support for Debian Jessie, Ubuntu Raring and preliminary support for
Ubuntu Saucy (debootstrap doesn't have support for Saucy at the time
of writing)
- Preliminary support for xl toolstack - Preliminary support for xl toolstack
- xen-create-image: Consistently use runCommand() instead of system() - xen-create-image: Consistently use runCommand() instead of system()
- xt-install-image: Don't bail out if only cdebootstrap is installed - xt-install-image: Don't bail out if only cdebootstrap is installed
but not debootstrap (Thanks Elmar Heeb!) but not debootstrap (Thanks Elmar Heeb!)
- Makefile accepts DESTDIR=… - Makefile accepts DESTDIR=…
- Move examples from debian/examples to examples. - Move examples from debian/examples to examples.
- Uses File::Which, added (build-) dependency on libfile-which-perl - Uses File::Which exclusively (no more findBinary, no more `which`),
added (build-) dependency on libfile-which-perl
- Knows about module-init-tools → kmod transition in wheezy/raring. - Knows about module-init-tools → kmod transition in wheezy/raring.
- Adds default mount options for ext4, identical to ext2/ext3. - Adds default mount options for ext4, identical to ext2/ext3.
- Ships /etc/initramfs-tools/conf.d/xen-tools for generating Dom0 - Ships /etc/initramfs-tools/conf.d/xen-tools for generating Dom0
@@ -41,7 +83,8 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
Add installCentOS4Package wrapper for backward compatibility. Add installCentOS4Package wrapper for backward compatibility.
- Fix filesystem tools installation in 91-install-fs-tools (which was - Fix filesystem tools installation in 91-install-fs-tools (which was
broken since 4.3~rc1-1) by merging 91-install-fs-tools back into broken since 4.3~rc1-1) by merging 91-install-fs-tools back into
90-make-fstab. Also supports RPM-based distributions now. 90-make-fstab. (Closes: #715340) Also supports RPM-based
distributions now.
- Fixes export of environment variables. Previously they could contain - Fixes export of environment variables. Previously they could contain
dashes and then were only accessible from within Perl, but not from dashes and then were only accessible from within Perl, but not from
within Bash. within Bash.
@@ -51,6 +94,14 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
- Removes unused Perl modules Xen::Tools and Xen::Tools::Log from - Removes unused Perl modules Xen::Tools and Xen::Tools::Log from
source code. Also removes the according tests from the test suite. source code. Also removes the according tests from the test suite.
→ Remove no more needed build-dependency on Moose. → Remove no more needed build-dependency on Moose.
- Better documents and checks requirements for the --apt_proxy
value. (See #623443 for the corresponding apt issue.) Add (build-)
dependency on libdata-validate-uri-perl.
- Use Data::Validate::{Domain,IP} for IP addresses and hostname checks.
Add corresponding (build-) dependencies on
libdata-validate-{domain,ip}-perl.
- Fixes broken quoting in list of required binaries
- Declares POD encoding. Fixes FTBFS with Perl 5.18. (Closes: #720519)
* Add debian/gbp.conf to be able to to build xen-tools with * Add debian/gbp.conf to be able to to build xen-tools with
git-buildpackage. git-buildpackage.
* Clean up debian/rules: * Clean up debian/rules:
@@ -62,10 +113,14 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
dh_auto_* can't help. No more explicitly call "make manpages", it's dh_auto_* can't help. No more explicitly call "make manpages", it's
a depedency of "make install" in the next line anyway. a depedency of "make install" in the next line anyway.
- Finally switch to a minimal dh style debian/rules. - Finally switch to a minimal dh style debian/rules.
* Bump debhelper compatibility to 9
- Update versioned debhelper build-dependency
* Bump Standards-Version to 3.9.4 (no changes)
* Add dependency on ${perl:Depends} to fix dpkg-gencontrol warning.
* Bump copyright years in debian/copyright. * Bump copyright years in debian/copyright.
* Apply wrap-and-sort. * Apply wrap-and-sort.
-- Axel Beckert <abe@debian.org> Thu, 17 Jan 2013 17:09:02 +0100 -- Axel Beckert <abe@debian.org> Fri, 23 Aug 2013 19:00:03 +0200
xen-tools (4.3.1-1) unstable; urgency=low xen-tools (4.3.1-1) unstable; urgency=low

2
debian/compat vendored
View File

@@ -1 +1 @@
7 9

20
debian/control vendored
View File

@@ -2,16 +2,19 @@ Source: xen-tools
Section: utils Section: utils
Priority: extra Priority: extra
Maintainer: Axel Beckert <abe@debian.org> Maintainer: Axel Beckert <abe@debian.org>
Build-Depends: debhelper (>= 7.0.0), Build-Depends: debhelper (>= 9~),
devscripts, devscripts,
git, git,
libdata-validate-domain-perl,
libdata-validate-ip-perl,
libdata-validate-uri-perl,
libfile-slurp-perl, libfile-slurp-perl,
libfile-which-perl, libfile-which-perl,
libtest-notabs-perl, libtest-notabs-perl,
libtest-pod-coverage-perl, libtest-pod-coverage-perl,
libtest-pod-perl, libtest-pod-perl,
libtext-template-perl libtext-template-perl
Standards-Version: 3.9.3 Standards-Version: 3.9.5
Homepage: http://xen-tools.org/software/xen-tools Homepage: http://xen-tools.org/software/xen-tools
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git
@@ -20,12 +23,17 @@ Package: xen-tools
Architecture: all Architecture: all
Depends: debootstrap | cdebootstrap, Depends: debootstrap | cdebootstrap,
libconfig-inifiles-perl, libconfig-inifiles-perl,
libdata-validate-domain-perl,
libdata-validate-ip-perl,
libdata-validate-uri-perl,
libfile-slurp-perl, libfile-slurp-perl,
libfile-which-perl, libfile-which-perl,
libterm-ui-perl | perl (<< 5.17.0),
libtext-template-perl, libtext-template-perl,
openssh-client, openssh-client,
perl-modules, perl-modules,
${misc:Depends} ${misc:Depends},
${perl:Depends}
Recommends: libexpect-perl, Recommends: libexpect-perl,
rinse (>= 1.9.1-1), rinse (>= 1.9.1-1),
xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae, xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae,
@@ -46,7 +54,8 @@ Description: Tools to manage Xen virtual servers
* Debian 4.0 Etch * Debian 4.0 Etch
* Debian 5.0 Lenny * Debian 5.0 Lenny
* Debian 6.0 Squeeze * Debian 6.0 Squeeze
* Debian 7.0 Wheezy * Debian 7 Wheezy
* Debian 8 Jessie (under development)
* Debian Sid (Unstable) * Debian Sid (Unstable)
* Ubuntu 6.06 Dapper Drake (LTS) * Ubuntu 6.06 Dapper Drake (LTS)
* Ubuntu 6.10 Edgy Eft * Ubuntu 6.10 Edgy Eft
@@ -61,5 +70,8 @@ Description: Tools to manage Xen virtual servers
* Ubuntu 11.04 Natty Narwhal * Ubuntu 11.04 Natty Narwhal
* Ubuntu 11.10 Oneiric Ocelot * Ubuntu 11.10 Oneiric Ocelot
* Ubuntu 12.04 Precise Pangolin (LTS) * Ubuntu 12.04 Precise Pangolin (LTS)
* Ubuntu 12.10 Quantal Quetzal
* Ubuntu 13.04 Raring Ringtail
* Ubuntu 13.10 Saucy Salamander (under development)
* CentOS 5 * CentOS 5
* CentOS 6 * CentOS 6

View File

@@ -127,6 +127,7 @@ install-method = debootstrap
# #
size = 4G # Root disk, suffix (G, M, k) required size = 4G # Root disk, suffix (G, M, k) required
memory = 128M # Suffix (G, M, k) required memory = 128M # Suffix (G, M, k) required
#maxmem = 256M # Suffix (G, M, k) optional
swap = 128M # Suffix (G, M, k) required swap = 128M # Suffix (G, M, k) required
# noswap = 1 # Don't use swap at all for new systems. # noswap = 1 # Don't use swap at all for new systems.
fs = ext3 # Default file system for any disk fs = ext3 # Default file system for any disk
@@ -272,15 +273,15 @@ mirror = `xt-guess-suite-and-mirror --mirror`
# mirror_sarge = http://archive.debian.org/debian # mirror_sarge = http://archive.debian.org/debian
# mirror_etch = http://archive.debian.org/debian # mirror_etch = http://archive.debian.org/debian
# mirror_lenny = http://archive.debian.org/debian # mirror_lenny = http://archive.debian.org/debian
# mirror_squeeze = http://cdn.debian.net/debian # mirror_squeeze = http://http.debian.net/debian
# mirror_wheezy = http://cdn.debian.net/debian # mirror_wheezy = http://http.debian.net/debian
# mirror_jessie = http://cdn.debian.net/debian # mirror_jessie = http://http.debian.net/debian
# mirror_sid = http://cdn.debian.net/debian # mirror_sid = http://http.debian.net/debian
# mirror_dapper = http://old-releases.ubuntu.com/ubuntu # mirror_dapper = http://old-releases.ubuntu.com/ubuntu
# mirror_edgy = http://old-releases.ubuntu.com/ubuntu # mirror_edgy = http://old-releases.ubuntu.com/ubuntu
# mirror_feisty = http://old-releases.ubuntu.com/ubuntu # mirror_feisty = http://old-releases.ubuntu.com/ubuntu
# mirror_gutsy = http://old-releases.ubuntu.com/ubuntu # mirror_gutsy = http://old-releases.ubuntu.com/ubuntu
# mirror_hardy = http://archive.ubuntu.com/ubuntu # mirror_hardy = http://old-releases.ubuntu.com/ubuntu
# mirror_intrepid = http://old-releases.ubuntu.com/ubuntu # mirror_intrepid = http://old-releases.ubuntu.com/ubuntu
# mirror_jaunty = http://old-releases.ubuntu.com/ubuntu # mirror_jaunty = http://old-releases.ubuntu.com/ubuntu
# mirror_karmic = http://old-releases.ubuntu.com/ubuntu # mirror_karmic = http://old-releases.ubuntu.com/ubuntu
@@ -291,6 +292,8 @@ mirror = `xt-guess-suite-and-mirror --mirror`
# mirror_precise = http://archive.ubuntu.com/ubuntu # mirror_precise = http://archive.ubuntu.com/ubuntu
# mirror_quantal = http://archive.ubuntu.com/ubuntu # mirror_quantal = http://archive.ubuntu.com/ubuntu
# mirror_raring = http://archive.ubuntu.com/ubuntu # mirror_raring = http://archive.ubuntu.com/ubuntu
# mirror_saucy = http://archive.ubuntu.com/ubuntu
# mirror_trusty = http://archive.ubuntu.com/ubuntu
# If this is defined it will be used by debootstrap, and configured as the # If this is defined it will be used by debootstrap, and configured as the
# proxy for the guest # proxy for the guest

View File

@@ -17,6 +17,11 @@
} }
} }
memory = '{$memory}' memory = '{$memory}'
{ if ( $maxmem )
{
$OUT .= "maxmem = '$maxmem'\n";
}
}
# Name # Name

View File

@@ -37,6 +37,11 @@
} }
vcpus = '{$vcpus}' vcpus = '{$vcpus}'
memory = '{$memory}' memory = '{$memory}'
{ if ( $maxmem )
{
$OUT .= "maxmem = '$maxmem'\n";
}
}
# #
# Disk device(s). # Disk device(s).

View File

@@ -41,7 +41,7 @@ EOF
for i in `seq 1 $NUMPARTITIONS`; do for i in `seq 1 $NUMPARTITIONS`; do
echo -n "/dev/xvde$i " >> ${prefix}/etc/fstab echo -n "/dev/xvde$i " >> ${prefix}/etc/fstab
eval part=\$PARTITION$i eval part=\$PARTITION$i
if [ ! -z "`echo $part | grep swap`" ]; then if [ -n "`echo $part | grep swap`" ]; then
echo "none swap ws 0 0" >> ${prefix}/etc/fstab echo "none swap ws 0 0" >> ${prefix}/etc/fstab
else else
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab

View File

@@ -41,7 +41,7 @@ EOF
for i in `seq 1 $NUMPARTITIONS`; do for i in `seq 1 $NUMPARTITIONS`; do
echo -n "/dev/sda$i " >> ${prefix}/etc/fstab echo -n "/dev/sda$i " >> ${prefix}/etc/fstab
eval part=\$PARTITION$i eval part=\$PARTITION$i
if [ ! -z "`echo $part | grep swap`" ]; then if [ -n "`echo $part | grep swap`" ]; then
echo "none swap ws 0 0" >> ${prefix}/etc/fstab echo "none swap ws 0 0" >> ${prefix}/etc/fstab
else else
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab

View File

@@ -24,7 +24,7 @@ logMessage ()
{ {
message="$*" message="$*"
if [ ! -z "${verbose}" ]; then if [ -n "${verbose}" ]; then
echo $message echo $message
fi fi
} }
@@ -261,12 +261,14 @@ disableStartStopDaemon ()
for starter in start-stop-daemon initctl; do for starter in start-stop-daemon initctl; do
local daemonfile="${prefix}/sbin/${starter}" local daemonfile="${prefix}/sbin/${starter}"
mv "${daemonfile}" "${daemonfile}.REAL" if [ -e "${daemonfile}" ]; then
echo '#!/bin/sh' > "${daemonfile}" mv "${daemonfile}" "${daemonfile}.REAL"
echo "echo \"Warning: Fake ${starter} called, doing nothing\"" >> "${daemonfile}" echo '#!/bin/sh' > "${daemonfile}"
echo "echo \"Warning: Fake ${starter} called, doing nothing\"" >> "${daemonfile}"
chmod 755 "${daemonfile}" chmod 755 "${daemonfile}"
logMessage "${starter} disabled / made a stub." logMessage "${starter} disabled / made a stub."
fi
done done
} }

View File

@@ -49,7 +49,7 @@ rm -f ${prefix}/etc/event.d/tty[!1]
# #
# Are we using an alternative serial device? # Are we using an alternative serial device?
# #
if [ ! -z "${serial_device}" ]; then if [ -n "${serial_device}" ]; then
serial_device=`basename ${serial_device}` serial_device=`basename ${serial_device}`

View File

@@ -71,8 +71,8 @@ setupStaticNetworking ()
# if $p2p is set then add a "pointopoint" setting. # if $p2p is set then add a "pointopoint" setting.
# #
point=''; point='';
if [ ! -z "${p2p}" ]; then if [ -n "${p2p}" ]; then
point="pointopoint ${p2p}" point=" pointopoint ${p2p}"
else else
point='' point=''
fi fi
@@ -81,10 +81,18 @@ setupStaticNetworking ()
# broadcast address? # broadcast address?
# #
bcast=''; bcast='';
if [ ! -z "${broadcast}" ]; then if [ -n "${broadcast}" ]; then
bcast=" broadcast ${broadcast}" bcast=" broadcast ${broadcast}"
fi fi
#
# gateway address?
#
gateway='';
if [ -n "${gateway}" ]; then
gateway=" gateway ${gateway}"
fi
# #
# We have a static IP address # We have a static IP address
# #
@@ -100,10 +108,10 @@ iface lo inet loopback
auto eth0 auto eth0
iface eth0 inet static iface eth0 inet static
address ${ip1} address ${ip1}
gateway ${gateway} ${gateway}
netmask ${netmask} netmask ${netmask}
${bcast} ${bcast}
${point} ${point}
# post-up ethtool -K eth0 tx off # post-up ethtool -K eth0 tx off
# #

View File

@@ -48,7 +48,7 @@ if [ "${ide}" ]; then
elif [ "${scsi}" ]; then elif [ "${scsi}" ]; then
device=sda device=sda
else else
if [ ! -z "${disk_device}" ]; then if [ -n "${disk_device}" ]; then
device=`basename $disk_device` device=`basename $disk_device`
fi fi
fi fi

View File

@@ -61,7 +61,7 @@ setupStaticNetworking ()
# if $p2p is set then add a "pointopoint" setting. # if $p2p is set then add a "pointopoint" setting.
# #
point=''; point='';
if [ ! -z "${p2p}" ]; then if [ -n "${p2p}" ]; then
point="pointopoint ${p2p}" point="pointopoint ${p2p}"
else else
point='' point=''

View File

@@ -2,6 +2,8 @@
package Xen::Tools::Common; package Xen::Tools::Common;
=encoding utf8
=head1 NAME =head1 NAME
Xen::Tools::Common - Common funtions used in xen-tools' Perl scripts Xen::Tools::Common - Common funtions used in xen-tools' Perl scripts
@@ -20,9 +22,10 @@ use Exporter 'import';
use vars qw(@EXPORT_OK @EXPORT); use vars qw(@EXPORT_OK @EXPORT);
use English; use English;
use File::Which;
@EXPORT = qw(readConfigurationFile xenRunning runCommand setupAdminUsers @EXPORT = qw(readConfigurationFile xenRunning runCommand setupAdminUsers
findXenToolstack findBinary findXenToolstack
logprint_with_config logonly_with_config fail_with_config); logprint_with_config logonly_with_config fail_with_config);
=head1 FUNCTIONS =head1 FUNCTIONS
@@ -139,38 +142,6 @@ sub xenRunning ($$)
return ($running); return ($running);
} }
=head2 findBinary
=begin doc
Find the location of the specified binary on the curent user's PATH.
Return undef if the named binary isn't found.
=end doc
=cut
sub findBinary
{
my ($bin) = (@_);
# strip any path which might be present.
$bin = $2 if ( $bin =~ /(.*)[\/\\](.*)/ );
foreach my $entry ( split( /:/, $ENV{ 'PATH' } ) )
{
# guess of location.
my $guess = $entry . "/" . $bin;
# return it if it exists and is executable
return $guess if ( -e $guess && -x $guess );
}
return undef;
}
=head2 findXenToolstack =head2 findXenToolstack
=begin doc =begin doc
@@ -192,12 +163,12 @@ sub findXenToolstack
return $toolstack if $toolstack; return $toolstack if $toolstack;
} }
my $xm = findBinary('xm'); my $xm = which('xm');
if ($xm and system("$xm list >/dev/null 2>/dev/null") == 0) { if ($xm and system("$xm list >/dev/null 2>/dev/null") == 0) {
return $xm; return $xm;
} }
my $xl = findBinary('xl'); my $xl = which('xl');
if ($xl and system("$xl list >/dev/null 2>/dev/null") == 0) { if ($xl and system("$xl list >/dev/null 2>/dev/null") == 0) {
return $xl; return $xl;
} }
@@ -433,7 +404,7 @@ sub logprint_with_config ($$)
Steve Kemp, http://www.steve.org.uk/ Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/ Axel Beckert, http://noone.org/abe/
Dmitry Nedospasov, http://nedos.net/ Dmitry Nedospasov, http://nedos.net/
Stéphane Jourdois Stéphane Jourdois
Merged from several scripts by Axel Beckert. Merged from several scripts by Axel Beckert.

View File

@@ -31,7 +31,7 @@ function _find_xen_images
for i in /etc/xen/*.cfg ; do for i in /etc/xen/*.cfg ; do
name=`grep ^name $i 2>/dev/null | awk -F\' '{print $2}'` name=`grep ^name $i 2>/dev/null | awk -F\' '{print $2}'`
if [ ! -z "${name}" ] ; then if [ -n "${name}" ] ; then
names="${names} ${name}" names="${names} ${name}"
fi fi
done done