520197fd0d
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@3634 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
67 lines
1.7 KiB
PHP
67 lines
1.7 KiB
PHP
<?php
|
|
# this code is to list out the available profiles that a node
|
|
# can install in. Its passed an install method (netboot or install)
|
|
# and an OS and ARch. It then lists out the profiles available in
|
|
# /opt/xcat/share/xcat/<method>/<os>/
|
|
# a user then selects these and is able to install a node.
|
|
|
|
function displayProfiles($nr, $profiles){
|
|
echo "<h1>Please select an install Template for <i>$nr</i></h1>";
|
|
echo "<select id='prof' onchange='changeProf()'>";
|
|
echo "<option value=''></option>";
|
|
foreach($profiles as $prof){
|
|
echo "<option value='$prof'>$prof</option>";
|
|
}
|
|
echo "</select>";
|
|
}
|
|
|
|
|
|
# m is the method 'netboot' or 'install'
|
|
if(isset($_REQUEST['m'])){
|
|
$method = $_REQUEST['m'];
|
|
}
|
|
# o is the os
|
|
if(isset($_REQUEST['o'])){
|
|
$os = $_REQUEST['o'];
|
|
}
|
|
# a is the architecture
|
|
if(isset($_REQUEST['a'])){
|
|
$arch = $_REQUEST['a'];
|
|
}
|
|
|
|
if(isset($_REQUEST['nr'])){
|
|
$nr = $_REQUEST['nr'];
|
|
}
|
|
# we need to format the path we're looking for:
|
|
$path = "/opt/xcat/share/xcat/$method";
|
|
|
|
# now we need to parse the OS:
|
|
if(preg_match('/rh/',$os)){
|
|
$path .= "/rh";
|
|
}elseif(preg_match('/win2k8/',$os)){
|
|
$path .= "/windows";
|
|
}elseif(preg_match('/sles/',$os)){
|
|
$path .= "/sles";
|
|
}elseif(preg_match('/centos/',$os)){
|
|
$path .= "/centos";
|
|
}else{
|
|
$path .= "/$os";
|
|
}
|
|
|
|
if($h = opendir($path)){
|
|
$results = array();
|
|
while ($file = readdir($h)){
|
|
if(preg_match('/tmpl|pkglist/', $file)){
|
|
$file = preg_replace('/.tmpl|.pkglist/','',$file);
|
|
$results[] = $file;
|
|
}
|
|
}
|
|
closedir($h);
|
|
}
|
|
if(empty($results)){
|
|
echo "There don't appear to be any install templates in $path.<br>";
|
|
echo "Please select a node range and start over.<br>";
|
|
}
|
|
displayProfiles($nr,$results);
|
|
?>
|