All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

Commit b825c9bb authored by Leigh B Stoller's avatar Leigh B Stoller

Install phase to get all of the openvz bits into place.

parent 417ca840
#
# Install openvz support.
#
use strict;
use libinstall;
use installvars;
use NodeType;
use OSinfo;
use Image;
use EmulabConstants;
my $UTAHURL = "http://www.emulab.net/downloads";
my $DESCRIPTORS = "$TOP_SRCDIR/install/descriptors-sh.xml";
my $OPENVZIMAGE = "FEDORA15-OPENVZ-STD";
my $STDIMAGESURL = "$UTAHURL/images-STD";
sub Install($$$)
{
my ($server, $isupdate, $impotent) = @_;
# Replace if this script does an update for ip/domain.
return 0
if ($isupdate);
Phase "openvz", "Adding OPENVZ Support", sub {
#
# Load up the initial descriptors.
# Load up the images from boss.
#
Phase "descriptors", "Loading the Image and OS IDS", sub {
ExecQuietFatal("cd $TOP_OBJDIR/install; ".
" $SUDO -u $PROTOUSER $WAP ".
" perl load-descriptors -a $DESCRIPTORS");
};
foreach my $imagename ($OPENVZIMAGE) {
my $localfile = "$PREFIX/images/${imagename}.ndz";
my $url = "$STDIMAGESURL/${imagename}.ndz";
Phase "$imagename", "Fetching $imagename. Patience!", sub {
DoneIfExists($localfile);
FetchFileFatal($url, $localfile);
};
}
#
# Now that OPENVZ-STD is loaded, need to find the nodetype for
# PCVM and link them via the default_osid. We could avoid this by
# creating an xml file for the pcvm nodetype and loading it that
# way instead of as sql in database-fill-supplement.
#
my $pcvm = NodeType->Lookup("pcvm");
PhaseFail("Could not look up PCVM node type")
if (!defined($pcvm));
my $osinfo = OSinfo->LookupByName("OPENVZ-STD");
PhaseFail("Could not look up OPENVZ-STD osid")
if (!defined($osinfo));
my $nextosinfo = OSinfo->LookupByName($OPENVZIMAGE);
PhaseFail("Could not look up $OPENVZIMAGE osid")
if (!defined($nextosinfo));
Phase "pcvm", "Updating the PCVM node type", sub {
$pcvm->SetAttribute("default_osid", $osinfo->osid()) == 0
or PhaseFail("Could not update the pcvm node type");
};
Phase "openvz", "Updating the OPENVZ-STD osid", sub {
$osinfo->SetNextOS($nextosinfo) == 0
or PhaseFail("Could not set the nextosid for OPENVZ-STD");
};
PhaseSucceed("done")
};
return 0;
}
# Local Variables:
# mode:perl
# End:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment