1
0
mirror of synced 2026-02-20 13:55:16 +00:00

Compare commits

...

63 Commits

Author SHA1 Message Date
Axel Beckert
fd0a486beb Release as 4.5 2014-10-26 01:43:53 +02:00
Axel Beckert
81ca2fb62d t/perl-syntax.t: Ignore changelog files, too 2014-10-26 01:43:53 +02:00
Axel Beckert
5b2d7d5d75 Makefile: Clean up coverage data in multiple targets 2014-10-26 01:43:52 +02:00
Axel Beckert
83a6d09e3d Flush output after each line in runCommand() 2014-10-26 01:20:44 +02:00
Axel Beckert
8562398af1 Add 15.04 Vivid, use old-releases.ubuntu.com for 13.10 Saucy 2014-10-25 22:43:18 +02:00
Axel Beckert
02730138a6 Add lintian override for debian-news-entry-uses-asterisk
I disagree.
2014-10-23 16:08:44 +02:00
Axel Beckert
1defbd3c02 Raise default password length from 8 to 23 2014-10-08 17:41:24 +02:00
Axel Beckert
19e07799cd Add password length sanity check with fallback to default length 2014-10-08 17:41:24 +02:00
Axel Beckert
5d7e059668 --password overrides --genpass
Closes: #764143

Based on patch by Santiago Vila.
2014-10-08 17:41:24 +02:00
Axel Beckert
0a7ec4f855 Update changelog and mention Santiago as contributor in AUTHORS 2014-10-06 00:57:26 +02:00
Santiago Vila
e1a5e89502 Fix two more typos 2014-10-06 00:56:49 +02:00
Axel Beckert
47a0cfe6f4 Add changelog item for Santiago's second contribution 2014-10-05 19:56:44 +02:00
Santiago Vila
36f318dbbe Fix copy & paste errors in comments in typos in roles/puppet (Closes: #764134) 2014-10-05 19:55:08 +02:00
Axel Beckert
41a30ede83 Add changelog item for Santiago's contribution 2014-10-05 18:16:26 +02:00
Santiago Vila
043b58b5ea Fix unaligned maxmem output of xen-create-image. (Closes: #764126) 2014-10-05 18:16:07 +02:00
Axel Beckert
4d64044f29 Fix corner cases where not the latest kernel would have been checked 2014-09-25 23:20:07 +02:00
Axel Beckert
48097cd07b Fix initial configuration summary in cases where pygrub is used 2014-09-25 23:18:48 +02:00
Axel Beckert
71e5ad4345 Fix missing quoting in shell function "assert" in hooks/common.sh 2014-09-25 23:15:51 +02:00
Axel Beckert
414d67c624 Add changelog entry for patch by Eric Engstrom 2014-09-25 22:09:27 +02:00
Eric Engstrom
58943d3b19 Fix lvcreate awaiting user input when creating swap lv 2014-09-25 22:07:30 +02:00
Axel Beckert
e850ad7ab3 Run some tests twice, once with mocked File::Which, once with original File::Which 2014-09-25 21:57:33 +02:00
Axel Beckert
0546776c17 Fix lintian warning depends-on-perl-modules 2014-09-25 21:37:37 +02:00
Axel Beckert
8de0aedfc3 Travis: Install lsb-release -- should cause some more code to be tested 2014-09-25 21:31:17 +02:00
Axel Beckert
d4265d6ced Mention code coverage in README 2014-09-25 21:24:51 +02:00
Axel Beckert
1e7f45d207 Coveralls.io: Ignore perl scripts under /usr, too 2014-09-25 21:11:20 +02:00
Axel Beckert
ba4d4f6db8 Travis: Add bin to local PATH 2014-09-25 21:05:27 +02:00
Axel Beckert
1b42dc14c7 Coveralls.io: Also pass ignore_re to report-generating cover call 2014-09-25 21:03:46 +02:00
Axel Beckert
4e43b8faf2 Test suite: Rename SAFE_ENV to SAVE_ENV to prevent confusion 2014-09-25 20:55:35 +02:00
Axel Beckert
dc84393d6c Coveralls.io: Separate runs again, as just "cover" checks coverage on .t files 2014-09-25 20:48:30 +02:00
Axel Beckert
2c0639ca21 Enable Coveralls.io 2014-09-25 20:42:56 +02:00
Axel Beckert
47b100cf08 Drop redundant occurrences of "./" from test suite 2014-09-25 20:10:11 +02:00
Axel Beckert
525f3ce24e Add Travis badge to README 2014-09-25 20:08:54 +02:00
Axel Beckert
6079dbab06 Travis: Drop Perl 5.8, doesn't know about =encoding in POD 2014-09-25 20:08:10 +02:00
Axel Beckert
fd0a5d2b10 Don't run t/gitignore.t on Travis, doesn't make sense on a fresh checkout 2014-09-25 19:50:24 +02:00
Axel Beckert
edc7737cb3 Make test suite work with perl in $PATH instead of hardcoded /usr/bin/perl 2014-09-25 19:40:26 +02:00
Axel Beckert
d2617ea85f Travis: Add forgotten build-dependency on Text::Template 2014-09-25 19:34:33 +02:00
Axel Beckert
559eeb14b9 Use Travis CI 2014-09-25 19:26:20 +02:00
Axel Beckert
78077e5aa3 Update debian/changelog to separate upstream and debian changes 2014-09-25 14:57:35 +02:00
Axel Beckert
8b3625426d Bump Standards-Version to 3.9.6 (no changes needed) 2014-09-25 14:55:34 +02:00
Axel Beckert
937e440d24 Mention Semantic versioning 2014-09-25 14:46:14 +02:00
Axel Beckert
c2ead30949 pygrub detection: Prefer /usr/lib/xen-default over /usr/lib/xen-x.y
Otherwise a versioned pygrub path will be used (e.g.
/usr/lib/xen-4.1/bin/pygrub  in the case of Debian Wheezy) and then
all host configurations would need to be updated when dist-upgrading
to Debian Jessie with Xen 4.3.

In case you already ran into this issue, the following command should
fix the issue for you:

fgrep -l xen-4.1/bin/pygrub -r /etc/xen/ | xargs sed -e 's:xen-4.1/bin/pygrub:xen-default/bin/pygrub:g' -i
2014-06-16 19:13:44 +02:00
Axel Beckert
03769b27fe Add changelog entry for previous commit 2014-06-11 09:52:47 +02:00
Joan
079382302b Fix gateway always empty on debian domU 2014-05-30 17:30:23 +02:00
Axel Beckert
0c894eec48 Update list of supported Ubuntu releases
Preliminary support for Ubuntu 14.10 Utopic Unicorn
2014-05-17 12:07:33 +02:00
Axel Beckert
b95c23b86f TODO: Debian bug #703606 2014-03-28 22:33:05 +01:00
Axel Beckert
fcebb14002 Drop all xend related sanity checks
They cause more havoc nowadays than they help.

Thanks Ian Campbell!

Closes: #732456
2014-03-28 22:24:21 +01:00
Axel Beckert
aa54db02c3 Add Thanks/Credits for recent contributions 2014-03-28 21:16:51 +01:00
Lionel FÉLICITÉ
5093c731cf Pass "-y" option ("assume yes") to yum
Closes: #735675
2014-03-28 20:48:18 +01:00
Axel Beckert
8610300206 Use "686-pae" kernels instead of "686" kernels on Debian Wheezy and later
Thanks to Daniel Lintott!

Closes: #742778
2014-03-28 20:06:00 +01:00
Axel Beckert
29bdbdd455 Fix typo in comment 2014-03-28 19:50:48 +01:00
Axel Beckert
e3f5230bcb TODO: Make default source installation work on non-debianesk systems 2014-03-12 00:19:39 +01:00
Axel Beckert
c5a2e2427a Ignore cover_db directory in t/perl-syntax.t 2013-12-15 17:32:32 +01:00
Axel Beckert
5d3f159aad Update d/changelog + d/dirs for Adrian C.'s patch 2013-12-15 17:23:01 +01:00
Adrian C. (anrxc)
4505f7e141 bin: support hook overrides in xt-customize-image
The systems administrator can optionally provide site-specific
revisions of upstream hooks by placing them in the directory
/etc/xen-tools/hooks.d/ as a method for disabling hooks, adding
site-specific extra features that don't get overwritten on upgrades,
or patching bugs early.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
2013-12-15 17:18:28 +01:00
Axel Beckert
f20e312140 Release 4.4 2013-12-11 23:03:55 +01:00
Axel Beckert
3978561a44 Add build-dependency on "liblog-message-perl | perl (<< 5.17.0)"…
… to avoid warnings with Perl 5.18 and future FTBFS
2013-12-11 21:48:38 +01:00
Axel Beckert
0feefc4179 hooks/common.sh: Split up installDebianPackage…
… into installDebianPackage and installDebianPackageAndRecommends
2013-12-10 00:32:07 +01:00
Axel Beckert
8d8423fb06 TODOs from recent discussions and problem reports 2013-11-19 21:02:33 +01:00
Axel Beckert
c8867a0f67 Rework "minimal" role to be less based on personal preferences
No more installs sudo, vim, syslog-ng, etc.

Fixes usage together with pygrub.
2013-11-19 21:02:24 +01:00
Axel Beckert
5dc76d12b2 Fix some typos in the README 2013-10-30 11:07:45 +01:00
Axel Beckert
4c9fd36c28 Mention Ubuntu 14.04 Trusty Tahr in long description and README 2013-10-30 11:05:30 +01:00
Axel Beckert
b39f85303c Also add build-dependency on "libterm-ui-perl | perl (<< 5.17.0)" 2013-10-29 00:10:21 +01:00
Axel Beckert
81511000d8 Run t/gitignore.t only if git is installed and .git present 2013-10-29 00:09:03 +01:00
52 changed files with 429 additions and 217 deletions

1
.gitignore vendored
View File

@@ -6,6 +6,7 @@
# but we _wan't_ those dot-files
!.gitignore
!.mailmap
!.travis.yml
# ChangeLog is generated during make
/ChangeLog

26
.travis.yml Normal file
View File

@@ -0,0 +1,26 @@
language: perl
perl:
- "5.20"
- "5.18"
- "5.16"
- "5.14"
- "5.12"
- "5.10"
before_install:
- sudo apt-get update
- sudo apt-get install devscripts dpkg-dev lsb-release
install:
- yes '' | cpanm --verbose --notest --skip-satisfied Data::Validate::Domain Data::Validate::IP Data::Validate::URI File::Slurp File::Which Log::Message Term::UI Test::NoTabs Test::Pod::Coverage Test::Pod Text::Template Devel::Cover::Report::Coveralls
- export RELEASE_TESTING=1 AUTOMATED_TESTING=1 AUTHOR_TESTING=1 HARNESS_OPTIONS=j10:c HARNESS_TIMER=1 PATH=bin:${PERLBREW_PATH}:${PATH}
script:
- make test
after_success:
- prove --exec 'env PERL5OPT=-MDevel::Cover=-ignore_re,^(t/|/usr) perl' t/*.t
- cover -ignore_re '^(t/|/usr)' -report coveralls
notifications:
irc: "irc.lugs.ch#kivamon"

19
AUTHORS
View File

@@ -34,9 +34,15 @@ Contributions
Vagrant Cascadian <vagrant [at] org.debian>
- Less redundant SSH key generation
Adrian C. (anrxc) <anrxc [at] org.sysphere>
- Hook overrides
Edd Dumbill <edd [at] com.usefulinc>
- Contributed APT sources.list file for Ubuntu's Dapper release.
Lionel FÉLICITÉ <lfelicite [at] com clever-age>
- Bugfix for Centos 6 installation
Kevin Fullerton <kevin.fullerton [at] uk.co.shotgun-suicide>
- Fixup for gentoos revised networking scripts. (dhcp)
@@ -65,6 +71,9 @@ Contributions
- Improved binary detection and good suggestions.
- Better portability for non-bash shells.
Daniel Lintott <daniel [at] uk.co.serverb>
- Bugfix for Jessie and newer installations
Jorge Armando Medina <jmedina [at] com.e-compugraf>
- Fix for backward compatibility with xvc0 serial consoles
@@ -97,6 +106,9 @@ Contributions
- CentOS 6 support
- CentOS 5 fixes
Patryk Ściborek <patryk [at] com.sciborek>
- Ubuntu-related bugfix
Radu Spineanu <radu [at] org.debian>
- Supplied many small tweaks, bugfixes, and suggestions.
- Radu is also one of the former Debian package maintainers.
@@ -116,5 +128,12 @@ Contributions
Ward Vandewege <ward [at] be.pong>
- Made several updates for Ubuntu support.
Santiago Vila <sanvila [at] es.unex>
- Found and fixed a bunch of typos and formatting issues.
Joan <aseques [at] com.gmail>
- Bugfix for password interaction
- maxmem option
xstasi on Launchpad
- Proper upstart handling in the chroot

View File

@@ -14,7 +14,7 @@
#
TMP ?= /tmp
DIST_PREFIX = ${TMP}
VERSION = 4.4rc1
VERSION = 4.5
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
BASE = xen-tools
VCS = git
@@ -67,6 +67,7 @@ clean:
@if [ -e build-stamp ]; then rm -f build-stamp ; fi
@if [ -e configure-stamp ]; then rm -f configure-stamp ; fi
@if [ -d debian/xen-tools ]; then rm -rf ./debian/xen-tools; fi
@if [ -d cover_db ]; then rm -rf ./cover_db; fi
@if [ -e $(BASE)-$(VERSION).tar.gz ]; then rm $(BASE)-$(VERSION).tar.gz ; fi
@if [ -e $(BASE)-$(VERSION).tar.gz.asc ]; then rm $(BASE)-$(VERSION).tar.gz.asc ; fi
cd t; $(MAKE) clean
@@ -203,6 +204,8 @@ install-hooks:
-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
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d utopic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d vivid.d
cp hooks/common.sh ${prefix}/usr/share/xen-tools
cp -r hooks/common ${prefix}/usr/share/xen-tools
@@ -245,6 +248,7 @@ release: tidy fixup-perms update-version update-modules clean changelog
rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz
cp -R . $(DIST_PREFIX)/$(BASE)-$(VERSION)
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/debian
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/cover_db
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.git*
cd $(DIST_PREFIX) && tar -cvf $(DIST_PREFIX)/$(BASE)-$(VERSION).tar $(BASE)-$(VERSION)/
gzip $(DIST_PREFIX)/$(BASE)-$(VERSION).tar

View File

@@ -1,6 +1,8 @@
xen-tools
=========
[![Travis CI Build Status](https://travis-ci.org/xtaran/xen-tools.svg)](https://travis-ci.org/xtaran/xen-tools)
* [Homepage](http://www.xen-tools.org/software/xen-tools)
* Git Repository:
* [at Gitorious](http://gitorious.org/xen-tools)
@@ -33,8 +35,8 @@ known to work reliably, i.e.:
* Lenny 5.0
* Squeeze 6.0
* Wheezy 7
* Jessie 8 (under developement)
* Sid (always under developement; works at least at the moment of writing :-)
* Jessie 8 (under development)
* Sid (always under development; works at least at the moment of writing :-)
### Ubuntu
@@ -55,7 +57,10 @@ known to work reliably, i.e.:
* Precise Pangolin 12.04
* Quantal Quetzal 12.10
* Raring Ringtail 13.04
* Saucy Salamander 13.10 (under developement)
* Saucy Salamander 13.10
* Trusty Tahr 14.04 (LTS)
* Utopic Unicorn 14.10
* Vivid Vervet 15.04 (under development)
[1]: http://bugs.debian.org/659360
"debootstrap in Wheezy can no more build Ubuntu Edgy or earlier"
@@ -186,6 +191,24 @@ image.
* The script should only be used for Xen instances of Debian or a
Debian-derived distribution.
Version Numbering Scheme
------------------------
Since release 4.4, the version numbering scheme of xen-tools tries to
comply with the [Semantic Versioning](http://semver.org/)
specification, with the only exception that trailing zeroes are
omitted.
Between the releases 3.9 and 4.4, the version numbering scheme
followed roughly the same ideas, but less strict.
Test Suite Coverage
-------------------
Despite parts of the test suite are quite old, it only tests a small
fraction of what xen-tools can do. Some of the scripts currently could
only be tested on an actual Xen Dom0. Hence the
[code coverage of xen-tools' test suite is quite bad](https://coveralls.io/r/xtaran/xen-tools).
--
The Xen-Tools Developer Team

View File

@@ -6,12 +6,19 @@ See KNOWN_BUGS.markdown for real bugs.
Bugs to fix and features to add for 5.0
---------------------------------------
* Switch build-system to autotools or something CPANish.
* `xen-create-image` man page overhaul:
* ambiguous option list with regards to parameters
* Set Fail in more situations where the script has clearly failed
i.e.: lvm exists
* Roles overhaul
* Remove udev role. No more makes sense. udev gets pulled in by
kernels where necessary.
* Test and support more file system types.
Actually this should be pretty simple now that the parameters are
@@ -188,6 +195,14 @@ Bugs to fix and features to add for 5.0
mount commands in `xen-update-image`. The calls to uname or
lsb_release should be fine.)
* Make default source installation work on non-debianesk systems, e.g.
either don't use xt-guess-suite-and-mirror in xen-tools.conf or make
it work with e.g. Fedora.
* Error messages triggered by xenRunning should rather say something
about "known to the Xen system" instead of "running". See
https://bugs.debian.org/703606
Stuff from Steve's TODO list / Generic TODOs
--------------------------------------------

View File

@@ -151,9 +151,6 @@ and EVMS EXAMPLE.
used the system will not have a swap entry added to
its /etc/fstab file either.
--no-xen-ok Don't complain if xen seems not installed or xend is
not running. (Needed for the testsuite.)
--output=dir Specify the output directory to create the xen
configuration file within.
@@ -167,6 +164,7 @@ and EVMS EXAMPLE.
--password=passphrase
Set the root password for the new guest.
Note: This overrides --genpass
--(no)passwd (Don't) ask for a root password interactively during
setup. NOTE: This overrides --genpass --password.
@@ -678,7 +676,7 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
=head1 ROLES
Currently there are some roles scripts included which work for
the Debian and Ubuntu distrubtions only. They are included
the Debian and Ubuntu distributions only. They are included
primarily as examples of the kind of things you could accomplish.
The supplied scripts are:
@@ -742,7 +740,7 @@ Install an X11 server, using VNC and XDM
Role scripts are invoked with the directory containing the
installed system as their first argument, and anything passed
as a role-arg will be passed allong as additional arguments.
as a role-arg will be passed along as additional arguments.
NOTE: Role scripts are invoked before the config file generation.
If you need access to the config file from within your role,
@@ -841,7 +839,7 @@ my $MOUNT_POINT = undef;
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';
#
@@ -856,6 +854,11 @@ my $IP_ADDRESSES = '';
my $PASSWORD = '';
#
# Define some fallback password length
#
my $default_genpass_len = 23;
# Minor helpers for reducing code duplication
sub fail ($) { fail_with_config($_[0], \%CONFIG); }
@@ -1196,95 +1199,6 @@ EOF
exit 127;
}
}
#
# Test the system has a valid (network-script) + (vif-script) setup.
#
testXenConfig();
}
=begin doc
Test that the current Xen host has a valid network configuration,
this is designed to help newcomers to Xen.
=end doc
=cut
sub testXenConfig
{
# wierdness.
return if ( !-d "/etc/xen" );
#
# Temporary hash.
#
my %cfg;
#
# Read the configuration file.
#
open( CONFIG, "<", "/etc/xen/xend-config.sxp" ) or
fail("Failed to read /etc/xen/xend-config.sxp: $!");
while (<CONFIG>)
{
next if ( !$_ || !length($_) );
# vif
if ( $_ =~ /^\(vif-script ([^)]+)/ )
{
$cfg{ 'vif-script' } = $1;
}
# network
if ( $_ =~ /^\(network-script ([^)]+)/ )
{
$cfg{ 'network-script' } = $1;
}
}
close(CONFIG);
if ( !defined( $cfg{ 'network-script' } ) ||
!defined( $cfg{ 'vif-script' } ) )
{
print <<EOF;
WARNING
-------
You appear to have a missing vif-script, or network-script, in the
Xen configuration file /etc/xen/xend-config.sxp.
Please fix this and restart Xend, or your guests will not be able
to use any networking!
EOF
}
else
{
if ( ( $cfg{ 'network-script' } =~ /dummy/i ) ||
( $cfg{ 'vif-script' } =~ /dummy/i ) )
{
print <<EOF;
WARNING
-------
You appear to have a "dummy" vif-script, or network-script, setting
in the Xen configuration file /etc/xen/xend-config.sxp.
Please fix this and restart Xend, or your guests will not be able to
use any networking!
EOF
}
}
}
@@ -1344,10 +1258,10 @@ sub setupDefaultOptions
$CONFIG{ 'mirror_'.$debdist } = 'http://http.debian.net/debian-archive/debian';
}
# Initialize per distribution mirror defaults: Ubuntu
foreach my $ubuntudist (qw(lucid precise quantal raring saucy trusty)) {
foreach my $ubuntudist (qw(lucid precise trusty utopic vivid)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
}
foreach my $ubuntudist (qw(dapper edgy feisty gutsy hardy intrepid jaunty karmic maverick natty oneiric)) {
foreach my $ubuntudist (qw(dapper edgy feisty gutsy hardy intrepid jaunty karmic maverick natty oneiric quantal raring saucy)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
}
$CONFIG{ 'apt_proxy' } = '';
@@ -1356,7 +1270,6 @@ sub setupDefaultOptions
chomp($CONFIG{ 'arch' });
$CONFIG{ 'fs' } = 'ext3';
$CONFIG{ 'force' } = 0;
$CONFIG{ 'no_xen_ok' } = 0;
$CONFIG{ 'install' } = 1;
$CONFIG{ 'hooks' } = 1;
$CONFIG{ 'partitions' } = '';
@@ -1379,8 +1292,8 @@ sub setupDefaultOptions
# Default values for passwords
#
$CONFIG{ 'genpass' } = 1;
$CONFIG{ 'genpass_len' } = 8;
$CONFIG{ 'password' } = '';
$CONFIG{ 'genpass_len' } = $default_genpass_len;
$CONFIG{ 'password' } = undef;
$CONFIG{ 'hash_method' } = 'sha256';
#
@@ -1689,7 +1602,7 @@ sub parseCommandLineArguments
"finalrole=s", \&checkOption,
"roledir=s", \&checkOption,
"force!", \$CONFIG{ 'force' },
"no-xen-ok", \$CONFIG{ 'no_xen_ok' },
"no-xen-ok", sub { warn "Option --no-xen-ok is deprecated and ignored."; },
"keep!", \$CONFIG{ 'keep' },
"template=s", \&checkOption,
"output=s", \&checkOption,
@@ -1840,7 +1753,7 @@ sub checkArguments
#
# Lucid and probably all later Ubuntus, too, don't work without pygrub
#
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty|oneiric|precise|quantal|raring|saucy/ )
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty|oneiric|precise|quantal|raring|saucy|trusty|utopic|vivid/ )
{
$CONFIG{ 'pygrub' } = 1;
}
@@ -2653,22 +2566,27 @@ sub showSummary
if ( defined( $CONFIG{ 'maxmem' } ) )
{
logprint("Max mem size : $CONFIG{'maxmem'}\n");
logprint("Max mem size : $CONFIG{'maxmem'}\n");
}
if ( defined( $CONFIG{ 'kernel' } ) && length( $CONFIG{ 'kernel' } ) )
{
logprint("Kernel path : $CONFIG{'kernel'}\n");
}
if ( exists( $CONFIG{ 'pygrub' } ) &&
$CONFIG{ 'pygrub' } ) {
logprint("Bootloader : pygrub\n");
} else {
if ( defined( $CONFIG{ 'kernel' } ) && length( $CONFIG{ 'kernel' } ) )
{
logprint("Kernel path : $CONFIG{'kernel'}\n");
}
if ( defined( $CONFIG{ 'modules' } ) && length( $CONFIG{ 'modules' } ) )
{
logprint("Module path : $CONFIG{'modules'}\n");
}
if ( defined( $CONFIG{ 'modules' } ) && length( $CONFIG{ 'modules' } ) )
{
logprint("Module path : $CONFIG{'modules'}\n");
}
if ( defined( $CONFIG{ 'initrd' } ) && length( $CONFIG{ 'initrd' } ) )
{
logprint("Initrd path : $CONFIG{'initrd'}\n");
if ( defined( $CONFIG{ 'initrd' } ) && length( $CONFIG{ 'initrd' } ) )
{
logprint("Initrd path : $CONFIG{'initrd'}\n");
}
}
logprint("\nNetworking Information\n");
@@ -3085,8 +3003,7 @@ sub createLVMBits
# Delete if forcing
if ( $CONFIG{ 'force' } )
{
if ( $CONFIG{ 'no_xen_ok' } or
!xenRunning($CONFIG{ 'hostname' }, \%CONFIG)) {
unless ( xenRunning($CONFIG{ 'hostname' }, \%CONFIG)) {
logprint(
"Removing $lvm_disk - since we're forcing the install\n");
runCommand("lvremove --force $lvm_disk", \%CONFIG);
@@ -3119,7 +3036,7 @@ sub createLVMBits
# The commands to create the volume.
#
my $disk_cmd =
"lvcreate $CONFIG{'lvm'} -L $partition->{'size'} -n $disk";
"lvcreate $CONFIG{'lvm'} --yes -L $partition->{'size'} -n $disk";
#
# Create the volume
@@ -3975,13 +3892,17 @@ sub setupRootPassword
#
# Generate a password, salt and use that to generating a hash
#
if ( $CONFIG{ 'genpass' } )
if ( defined( $CONFIG{ 'password' } ) )
{
$PASSWORD = $CONFIG { 'password' };
}
elsif ( $CONFIG{ 'genpass' } )
{
$PASSWORD = generatePassword( $CONFIG{ 'genpass_len' } );
}
else
{
$PASSWORD = $CONFIG { 'password' };
fail("oops... neither passwd nor password nor genpass are set, should not happen!");
}
my $salt = generatePassword(8);
@@ -4045,6 +3966,10 @@ sub setupRootPassword
sub generatePassword {
my $length = $_[0];
unless ($length and $length > 0) {
warn "generatePassword: No (sane) password length given. Using $default_genpass_len instead.";
$length = $default_genpass_len;
}
my $possible = 'abcdefghijkmnpqrstuvwxyz23456789ABCDEFGHJKLMNPQRSTUVWXYZ';
my $password = '';
while (length($password) < $length) {

View File

@@ -121,7 +121,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';
# store version number away.

View File

@@ -30,7 +30,6 @@ xen-delete-image - Delete previously created Xen instances.
Testing options:
--test Don't complain if we're not invoked by root.
--no-xen-ok Don't complain if xen seems not installed or xend is not running
=head1 OPTIONS
@@ -164,7 +163,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';
#
@@ -233,7 +232,7 @@ foreach my $name (@ARGV, @hosts)
{
my %PER_HOST_CONFIG = %CONFIG;
$PER_HOST_CONFIG{ 'hostname' } = $name;
if ( $CONFIG{ 'no_xen_ok' } or !xenRunning($name, \%PER_HOST_CONFIG) )
unless ( xenRunning($name, \%PER_HOST_CONFIG) )
{
deleteXenImage($name);
}
@@ -276,7 +275,7 @@ sub parseCommandLineArguments
"hostname=s@", \$CONFIG{ 'hostname' },
"test", \$CONFIG{ 'test' },
"verbose", \$CONFIG{ 'verbose' },
"no-xen-ok", \$CONFIG{ 'no_xen_ok' },
"no-xen-ok", sub { warn "Option --no-xen-ok is deprecated and ignored."; },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION

View File

@@ -106,7 +106,7 @@ $CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';

View File

@@ -111,7 +111,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';
#

View File

@@ -113,7 +113,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';
#

View File

@@ -148,7 +148,7 @@ $CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';

View File

@@ -54,6 +54,15 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
executed from '/usr/share/xen-tools/foo.d'. Each executable will
be loaded and executed in sorted order.
The systems administrator can optionally provide site-specific
revisions of those same hooks by placing them in the directory
'/etc/xen-tools/hooks.d/' in which case a script with the same name
as the one in the 'foo.d' directory above will take precedence. In
this way certain hooks can be prevented from running, expanded with
site-specific features which won't get overwritten on upgrades, or
patched with critical bug-fixes before the upstream OS distribution
provider reacts.
=head1 AUTHORS
@@ -91,7 +100,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';
@@ -251,6 +260,7 @@ sub runDistributionHooks
# Hook directory.
#
my $hooks = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d/";
my $hooks_local = "/etc/xen-tools/hooks.d/";
#
# Installation prefix
@@ -295,10 +305,20 @@ sub runDistributionHooks
$name = $2;
}
#
# Run a local version of the hook instead of the system one,
# if the local one exists and is executable.
#
my $file_local = $hooks_local . $name;
if ( ( -x $file_local ) && ( -f $file_local ) )
{
$file = $file_local
}
#
# Complete command we're going to execute.
#
my $cmd = $hooks . $name . " $CONFIG{'location'}";
my $cmd = $file . " $CONFIG{'location'}";
#
# Run the command. This has different prolog and epilog

View File

@@ -79,7 +79,7 @@ use strict;
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';
# Init
my $mirror = '';

View File

@@ -112,7 +112,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4rc1';
my $RELEASE = '4.5';
#

59
debian/changelog vendored
View File

@@ -1,3 +1,62 @@
xen-tools (4.5-1) unstable; urgency=low
* New upstream release
+ Use "686-pae" kernels instead of "686" kernels on Debian Wheezy and
later. Thanks to Daniel Lintott! (Closes: #742778)
+ Pass "-y" option ("assume yes") to yum (Closes: #735675)
Thanks Lionel FÉLICITÉ!
+ Drop all xend related sanity checks, they cause more havoc nowadays
than they help. Thanks Ian Campbell! (Closes: #732456)
+ Apply patch by Adrian C. (anrxc) to allow to override hooks in
/usr/share/xen-tools/*.d/ with hooks in /etc/xen-tools/hooks.d/.
Thanks! (Also add /etc/xen-tools/hooks.d/ to debian/dirs.)
+ Ignore cover_db directory in t/perl-syntax.t.
+ Update list of supported Ubuntu releases.
- Add support for Ubuntu 14.10 Utopic Unicorn.
- Add preliminary support for Ubuntu 15.04 Vivid Vervet.
- Use old-releases.ubuntu.com for Ubuntu 13.10 Saucy Salamander.
+ Fix always empty gateway on Debian DomUs (Thanks Joan! LP: #1328794)
+ pygrub detection: Prefer /usr/lib/xen-default over /usr/lib/xen-x.y.
+ Fix lvcreate awaiting user input when creating swap lv (Closes: #754517)
Thanks Eric Engstrom!
+ Fix missing quoting in shell function "assert" in hooks/common.sh.
+ Fix initial configuration summary in cases where pygrub is used.
+ Fix corner cases where not the latest kernel would have been checked.
+ --password overrides --genpass. (Closes: #764143) Based on patch by
Santiago Vila.
+ Add password length sanity check with fallback to default length.
+ Raise default password length from 8 to 23.
+ Flush output after each line in runCommand().
+ Makefile: Clean up coverage data in multiple targets.
+ t/perl-syntax.t: Ignore changelog files, too.
[ Santiago Vila ]
+ Fix unaligned maxmem output of xen-create-image. (Closes: #764126)
+ Fix copy & paste errors in comments in typos in roles/puppet
(Closes: #764134)
+ Fix typos in POD of xen-create-image (Closes: #764153)
* Bump Standards-Version to 3.9.6 (no changes needed)
* Fix lintian warning depends-on-perl-modules.
* Add lintian override for debian-news-entry-uses-asterisk; I disagree.
-- Axel Beckert <abe@debian.org> Sat, 25 Oct 2014 23:27:18 +0200
xen-tools (4.4-1) unstable; urgency=low
* New upstream release
- Run t/gitignore.t only if git is installed and .git present.
- Rework "minimal" role to be less based on personal preferences.
+ No more installs sudo, vim, syslog-ng, etc.
+ Fixes usage together with pygrub.
- hooks/common.sh: Split up installDebianPackage into
installDebianPackage and installDebianPackageAndRecommends.
* Also add build-dependency on "libterm-ui-perl | perl (<< 5.17.0)" and
"liblog-message-perl | perl (<< 5.17.0)" to avoid warnings with Perl
5.18 and future FTBFS.
* Mention Ubuntu 14.04 Trusty Tahr in long description.
-- Axel Beckert <abe@debian.org> Wed, 11 Dec 2013 20:59:06 +0100
xen-tools (4.4~rc1-1) unstable; urgency=low
* New upstream release candidate

11
debian/control vendored
View File

@@ -10,11 +10,13 @@ Build-Depends: debhelper (>= 9~),
libdata-validate-uri-perl,
libfile-slurp-perl,
libfile-which-perl,
liblog-message-perl | perl (<< 5.17.0),
libterm-ui-perl | perl (<< 5.17.0),
libtest-notabs-perl,
libtest-pod-coverage-perl,
libtest-pod-perl,
libtext-template-perl
Standards-Version: 3.9.5
Standards-Version: 3.9.6
Homepage: http://xen-tools.org/software/xen-tools
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git
@@ -31,7 +33,7 @@ Depends: debootstrap | cdebootstrap,
libterm-ui-perl | perl (<< 5.17.0),
libtext-template-perl,
openssh-client,
perl-modules,
perl,
${misc:Depends},
${perl:Depends}
Recommends: libexpect-perl,
@@ -72,6 +74,9 @@ Description: Tools to manage Xen virtual servers
* Ubuntu 12.04 Precise Pangolin (LTS)
* Ubuntu 12.10 Quantal Quetzal
* Ubuntu 13.04 Raring Ringtail
* Ubuntu 13.10 Saucy Salamander (under development)
* Ubuntu 13.10 Saucy Salamander
* Ubuntu 14.04 Trusty Tahr (LTS)
* Ubuntu 14.10 Utopic Unicorn
* Ubuntu 15.05 Vivid Vervet (under development)
* CentOS 5
* CentOS 6

3
debian/dirs vendored
View File

@@ -1,4 +1,5 @@
/etc/xen-tools
/etc/xen-tools/role.d
/etc/xen-tools/hooks.d
/etc/xen-tools/skel
/usr/share/xen-tools
/usr/share/xen-tools

2
debian/lintian-overrides vendored Normal file
View File

@@ -0,0 +1,2 @@
# I disagree
xen-tools: debian-news-entry-uses-asterisk

View File

@@ -290,10 +290,12 @@ mirror = `xt-guess-suite-and-mirror --mirror`
# mirror_natty = http://old-releases.ubuntu.com/ubuntu
# mirror_oneiric = http://archive.ubuntu.com/ubuntu
# mirror_precise = http://archive.ubuntu.com/ubuntu
# mirror_quantal = http://archive.ubuntu.com/ubuntu
# mirror_raring = http://archive.ubuntu.com/ubuntu
# mirror_saucy = http://archive.ubuntu.com/ubuntu
# mirror_quantal = http://old-releases.ubuntu.com/ubuntu
# mirror_raring = http://old-releases.ubuntu.com/ubuntu
# mirror_saucy = http://old-releases.ubuntu.com/ubuntu
# mirror_trusty = http://archive.ubuntu.com/ubuntu
# mirror_utopic = http://archive.ubuntu.com/ubuntu
# mirror_vivid = http://archive.ubuntu.com/ubuntu
# If this is defined it will be used by debootstrap, and configured as the
# proxy for the guest

View File

@@ -21,8 +21,8 @@
if ( $pygrub )
{
my $pygrub_bin = '';
foreach my $pygrub_path (reverse glob('/usr/lib/xen-*/bin/pygrub
/usr/lib/xen-default/bin/pygrub
foreach my $pygrub_path (reverse glob('/usr/lib/xen-default/bin/pygrub
/usr/lib/xen-*/bin/pygrub
/usr/*bin/pygrub')) {
if (-x $pygrub_path) {
$pygrub_bin = $pygrub_path;

View File

@@ -47,7 +47,7 @@ assert ()
shift
fi
if [ ! $* ] ; then
if [ ! "$*" ] ; then
echo "assert failed: $0:$lineno [$*]"
exit
fi
@@ -55,14 +55,12 @@ assert ()
#
# Install a number of Debian packages via apt-get.
# Install a number of Debian packages via apt-get including Recommends.
#
# We take special care so that daemons shouldn't start after installation
# which they might otherwise do.
#
# NOTE: Function not renamed with trailing "s" for compatibility reasons.
#
installDebianPackage ()
installDebianPackageAndRecommends ()
{
prefix=$1
shift
@@ -98,7 +96,7 @@ installDebianPackage ()
#
# Install the packages
#
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes --no-install-recommends install "$@"
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes install "$@"
#
# Remove the policy-rc.d script.
@@ -112,6 +110,21 @@ installDebianPackage ()
}
#
# Install a number of Debian packages via apt-get, but without Recommends
#
# We take special care so that daemons shouldn't start after installation
# which they might otherwise do.
#
# NOTE: Function not renamed with trailing "s" for compatibility reasons.
#
installDebianPackage ()
{
prefix=$1
shift
installDebianPackageAndRecommends ${prefix} --no-install-recommends "$@"
}
#
# Generate a Debian-/Ubuntu-compliant menu.lst for legacy GRUB

View File

@@ -33,7 +33,7 @@ if [ ! -d ${prefix}/proc ]; then
mkdir -p ${prefix}/proc
fi
mount -o bind /proc ${prefix}/proc
chroot ${prefix} /usr/bin/yum update
chroot ${prefix} /usr/bin/yum update -y
umount ${prefix}/proc

View File

@@ -88,7 +88,6 @@ setupStaticNetworking ()
#
# gateway address?
#
gateway='';
if [ -n "${gateway}" ]; then
gateway=" gateway ${gateway}"
fi

View File

@@ -29,7 +29,7 @@ if [ "${pygrub}" ]; then
logMessage Script $0 starting
#
# Resolve the correct architecutre
# Resolve the correct architecture
#
if [ "${arch}" = "i386" ]; then
@@ -61,6 +61,17 @@ fi
KERNEL_XEN_PKG="linux-image-xen-$XEN_ARCH"
KERNEL_PKG="linux-image-$XEN_ARCH"
# Add "-pae" suffix for Debian releases after Squeeze. See
# https://bugs.debian.org/742778 for details.
if [ "${dist}" != "sarge" -a \
"${dist}" != "etch" -a \
"${dist}" != "lenny" -a \
"${dist}" != "squeeze" -a \
"$XEN_ARCH" = "686" ]; then
KERNEL_XEN_PKG="$KERNEL_XEN_PKG-pae"
KERNEL_PKG="$KERNEL_PKG-pae"
fi
logMessage Attempting to install the $KERNEL_XEN_PKG kernel image
if chroot ${prefix} /usr/bin/apt-cache show $KERNEL_XEN_PKG > /dev/null 2>&1; then
logMessage Package $KERNEL_XEN_PKG is available - installing
@@ -83,7 +94,10 @@ else
fi
fi
DOMU_KERNEL=$(basename $(ls -1 ${prefix}/boot/vmlinuz* | tail -n 1))
# Check for "ls -v" support
V=''; if ls -1 ${prefix}/boot/vmlinuz* > /dev/null 2>&1; then V=-v; fi
DOMU_KERNEL=$(basename $(ls -1 ${V} ${prefix}/boot/vmlinuz* | tail -n 1))
KERNEL_REV=$(echo $DOMU_KERNEL | sed "s/vmlinuz-//g")
DOMU_RAMDISK="initrd.img-$KERNEL_REV"
DOMU_ISSUE=$(sed -re "s/ *\\\.*//g" -e1q < ${prefix}/etc/issue)

View File

@@ -128,7 +128,10 @@ sub xenRunning ($$)
my $running = 0;
die "Couldn't determine Xen toolstack" unless $CONFIG->{'xm'};
unless ($CONFIG->{'xm'}) {
warn "Couldn't determine Xen toolstack, skipping check for running DomUs.";
return 0;
}
open( CMD, $CONFIG->{'xm'}." list $hostname 2>/dev/null |" ) or
fail_with_config("Failed to run '".$CONFIG->{'xm'}." list $hostname'", $CONFIG);
@@ -192,6 +195,7 @@ sub findXenToolstack
sub runCommand ($$;$)
{
local $| = 1;
my ($cmd, $CONFIG, $fail_ok) = (@_);
#

View File

@@ -1,13 +1,10 @@
#!/bin/sh
#
# Configure the new image to be a minimal image, by removing
# packages I don't care about - and installing new ones I prefer.
# Configure the new image to be a minimal image, by removing packages
# not necessarily needed - and installing less resource-hungry ones
#
# Steve
# --
# http://www.steve.org.uk/
#
# Still far away from perfect. Less personal than in the past, but
# for now still based on gut feeling.
prefix=$1
@@ -26,15 +23,11 @@ fi
#
# Install some new packages - do this first to avoid dependency errors.
# Install some new packages - do this first to avoid dependency errors
#
installDebianPackage ${prefix} syslog-ng
installDebianPackage ${prefix} deborphan
installDebianPackage ${prefix} less
installDebianPackage ${prefix} screen
installDebianPackage ${prefix} sudo
installDebianPackage ${prefix} vim
# Minimalst possible syslog service
installDebianPackage ${prefix} busybox-syslogd
#
# Remove some standard packages.
@@ -47,22 +40,57 @@ removeDebianPackage ${prefix} pppoe
removeDebianPackage ${prefix} ppp
removeDebianPackage ${prefix} libpcap0.7
# Editors
removeDebianPackage ${prefix} nano
removeDebianPackage ${prefix} ed
removeDebianPackage ${prefix} nvi
# Editors, keep only a minimal vi, namely nvi
installDebianPackage ${prefix} nvi
removeDebianPackage ${prefix} ed nano
removeDebianPackage ${prefix} vim-tiny vim-common vim-runtime
# Syslog
removeDebianPackage ${prefix} klogd
removeDebianPackage ${prefix} sysklogd
removeDebianPackage ${prefix} klogd sysklogd
removeDebianPackage ${prefix} rsyslog
removeDebianPackage ${prefix} logrotate
# manpages
removeDebianPackage ${prefix} manpages
removeDebianPackage ${prefix} man-db
# Man pages
removeDebianPackage ${prefix} manpages man-db groff-base
removeDebianPackage ${prefix} info
# misc
removeDebianPackage ${prefix} tasksel tasksel-data
removeDebianPackage ${prefix} pciutils
removeDebianPackage ${prefix} fdutils
removeDebianPackage ${prefix} cpio
removeDebianPackage ${prefix} util-linux-locales locales
removeDebianPackage ${prefix} debconf-i18n
removeDebianPackage ${prefix} netcat-traditional netcat-openbsd
removeDebianPackage ${prefix} whiptail
# Unnecessary stuff only installed by default on Ubuntu
removeDebianPackage ${prefix} sudo
removeDebianPackage ${prefix} resolvconf
removeDebianPackage ${prefix} console-setup keyboard-configuration kbd xkb-data ureadahead
removeDebianPackage ${prefix} python python3 dh-python
# General cleanup
chroot ${prefix} aptitude -y markauto \
'~n -common' \
'~s libs' \
'~s localization' \
'~s misc' \
'~s perl' \
'~s python'
chroot ${prefix} apt-mark auto \
cpio \
crda \
debconf \
install-info \
kmod \
lsb-base \
makedev \
mime-support \
module-init-tools \
plymouth
chroot ${prefix} aptitude -y purge '~c'
removeDebianPackage ${prefix} aptitude aptitude-common
chroot ${prefix} apt-get autoremove --purge
chroot ${prefix} apt-get clean

View File

@@ -24,13 +24,13 @@ logMessage Script $0 starting
#
# Install ssh
# Install puppet
#
installDebianPackage ${prefix} puppet
#
# Make sure sshd isn't running, this will cause our unmounting of the
# Make sure puppet isn't running, this will cause our unmounting of the
# disk image to fail..
#
chroot ${prefix} /etc/init.d/puppet stop

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that the arguments in etc/xen-tools.conf match those used in
# xen-create-image.

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that every perl script accepts and processes each of the options
# documented in its POD.

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that .gitignore is coherent
#
@@ -7,10 +7,20 @@
#
use strict;
use Test::More tests => 3;
use Test::More;
use File::Which;
BEGIN { use_ok( 'Git' ); }
if ( $ENV{TRAVIS} ) {
plan( skip_all => "these tests don't make sense on a fresh checkout" );
}
if (which('git') and -d '.git') {
plan tests => 3;
} else {
plan skip_all => 'gitignore test is only thought for release testing.';
}
use_ok( 'Git' );
# First, check that no tracked files are ignored
my $cmd = Git::command_output_pipe('ls-files', '--ignored', '--exclude-standard');

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that our policy-rc.d file is created and removed as we expect in our hooks.
#
@@ -87,7 +87,7 @@ sub testHook
#
# Call the first hook
#
`./hooks/$dist/01-disable-daemons $dir`;
`hooks/$dist/01-disable-daemons $dir`;
#
# Now /usr/sbin should exist.
@@ -98,7 +98,7 @@ sub testHook
#
# Now call the second hook
#
`./hooks/$dist/99-enable-daemons $dir`;
`hooks/$dist/99-enable-daemons $dir`;
ok( ! -x $dir . "/usr/sbin/policy-rc.d", "The policy-rc.d file was correctly removed" );
}

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that we get an /etc/hosts etc file created when DHCP is used.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that the /etc/inittab file is modified as we expect.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl
#!perl
#
# Test that the tls-disabling hook works.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that all the hook files we install are executable.
#

View File

@@ -0,0 +1,20 @@
package File::Which;
# Mockup package to _not_ find anything
use strict;
use warnings;
use Exporter;
use vars qw{@ISA @EXPORT @EXPORT_OK};
BEGIN {
@ISA = 'Exporter';
@EXPORT = 'which';
}
sub which {
return;
}
'This is a fake!';

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that every perl + shell script we have contains no tabs.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that every perl file we have passes the syntax check. This of
# course needs not only build dependencies but also run-time
@@ -39,6 +39,9 @@ sub checkFile
# Nor about Makefiles
return if ( $file =~ /\/Makefile$/ );
# Nor about Change Logs
return if ( $file =~ /\/changelog$/i );
# Nor about git files
return if ( $file =~ /^\.\/\.git\// );
@@ -51,6 +54,9 @@ sub checkFile
# `tests/hook-tls.t` is too.
return if ( $file =~ /hook-tls.t$/ );
# Ignore cover_db files
return if ( $file =~ /^\.\/cover_db\// );
# See if it is a perl file.
my $isPerl = 0;

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that the plugins each refer to environmental variables,
# not the perl config hash.

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that the POD we include in our scripts is valid, via the external
# podchecker command.

View File

@@ -1,3 +1,5 @@
#!perl
use strict;
use warnings;
use Test::More;

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl
#!perl
#
# Test that the POD we use in our modules is valid.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that we don't use non-portable shell syntax in our hooks.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w -I..
#!perl -w -I..
#
# Test that we have several required programs present.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that every bash script using variables uses " not ' around the
# variable.

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that every shell script we have passes a syntax check.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that every script in ./bin/ has no trailing whitespace.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that the xen-delete-image script will delete an images
# contents correctly.
@@ -75,7 +75,7 @@ close( IMAGE );
# So we need to run the deletion script and verify the images
# are removed correctly.
#
my $log = `perl -I./lib -I../lib ./bin/xen-delete-image --test --verbose --no-xen-ok --dir=$dir $hostname`;
my $log = `perl -Ilib -I../lib bin/xen-delete-image --test --verbose --dir=$dir $hostname`;
ok ( $? == 0, 'Calling xen-delete-image returned exit code 0' );
print $log;

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that the xen-list-images script can process two "fake"
# installations which we construct manually.

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that calling xt-create-xen-config with the appropriate parameters
# results in output we expect.
@@ -20,7 +20,27 @@ use File::Temp;
#
#
runAllTests();
# Fake File::Which to find nothing at all, i.e. no lsb_release.
$ENV{PERL5OPT} = '-It/mockup-lib'.($ENV{PERL5OPT}?" $ENV{PERL5OPT}":'');
runAllTests();
done_testing;
=head2 runAllTests
Runs all the xt-create-xen-config test.
The idea is to be able to run these tests multiple times under
different conditions.
=cut
sub runAllTests {
#
# Look for mention of DHCP when setting up DHCP, this conflicts with
# a static IP address.
@@ -104,12 +124,7 @@ testOutputContains( "/tmp/domains/foo.my.flat",
memory => 128, dhcp => 1, dir => '/tmp' );
noMentionOf( "phy:",
memory => 128, dhcp => 1, dir => '/tmp' );
done_testing();
} # end of runAllTests
=head2 runCreateCommand
@@ -146,7 +161,7 @@ sub runCreateCommand
#
# Save the environment.
#
my %SAFE_ENV = %ENV;
my %SAVE_ENV = %ENV;
#
# Update the environment with our parameters.
@@ -159,12 +174,12 @@ sub runCreateCommand
#
# Run the command
#
system( "./bin/xt-create-xen-config --output=$dir --template=./etc/xm.tmpl" );
system( "perl bin/xt-create-xen-config --output=$dir --template=etc/xm.tmpl" );
#
# Reset the environment
#
%ENV = %SAFE_ENV;
%ENV = %SAVE_ENV;