003323728d
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2253 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<?php
|
|
session_start();
|
|
include "functions.php";
|
|
if (isset($_GET['id'])) {
|
|
$id = $_GET['id'];
|
|
}
|
|
if ($id == "0") {
|
|
$id = '/.*';
|
|
} else {
|
|
$id=preg_replace('/^,/','',$id);
|
|
}
|
|
$rvals=docmd('extnoderange',$id,'subgroups');
|
|
$parents=array();
|
|
$root=1;
|
|
if ($id == '/.*') {
|
|
$id=',';
|
|
} else {
|
|
$parents=split("@",$id);
|
|
$id=",$id@";
|
|
$root=0;
|
|
}
|
|
unset($rvals->xcatresponse->serverdone[0]);
|
|
$numsubgroups=count($rvals->xcatresponse->intersectinggroups);
|
|
$numnodes=count($rvals->xcatresponse->node);
|
|
$jdata=array();
|
|
if ($numnodes >= $numsubgroups) { #If there are few enough subgroups to be helpful filters, add them in
|
|
foreach ($rvals->xcatresponse->intersectinggroups as $group) {
|
|
if (! in_array("$group",$parents)) {
|
|
$jdata[]= array("data"=>"$group",
|
|
"attributes"=>array("id"=>"$id$group",
|
|
"rel"=>'group'),
|
|
"state"=>'closed');
|
|
}
|
|
|
|
}
|
|
} #If there were more groups than nodes, leave the signal to noise ratio down
|
|
if ($root==0) {
|
|
foreach ($rvals->xcatresponse->node as $node) {
|
|
$jdata[] = array("data"=>"$node",
|
|
"attributes"=>array("id"=>",$node",
|
|
"rel"=>'node'));
|
|
}
|
|
}
|
|
# header('Content-type: text/html');
|
|
echo json_encode($jdata);
|
|
?>
|
|
|