$known_actions []= "delete-node";
// expects: node_id
$known_actions []= "update-node";
-// expects: node_id, hostname, model
+// expects: node_id, hostname, model, node_type
$known_actions []= "attach-pcu";
// expects: node_id, pcu_id, port (pcu_id <0 means detach)
$known_actions []= "reboot-node-with-pcu";
$node_id=intval($_POST['node_id']);
$hostname= $_POST['hostname'];
$model= $_POST['model'];
+ $node_type= $_POST['node_type'];
- $fields= array( "hostname"=>$hostname, "model"=>$model );
+ $fields= array( "hostname"=>$hostname, "model"=>$model, "node_type"=>$node_type );
$api->UpdateNode( $node_id, $fields );
$error= $api->error();
}
//////////////////// the options for an nodetype - suitable for plekit/form
-function node_type_selectors ($api,$nodetype) {
- $builtin_types = array ( "regular" => "Regular/Shared",
- "reservable" => "Reservable (requires to get leases)");
- foreach ($builtin_types as $value=>$display) {
+global $builtin_node_types;
+$builtin_node_types = array ( "regular" => "Regular/Shared",
+ "reservable" => "Reservable (requires to get leases)");
+function node_type_display ($api, $node_type) {
+ global $builtin_node_types;
+ $val=$builtin_node_types[$node_type];
+ if ( ! $val) $val="??undefined??";
+ return $val;
+}
+
+function node_type_selectors ($api,$node_type) {
+ global $builtin_node_types;
+ foreach ($builtin_node_types as $value=>$display) {
$selector=array('display'=>$display, 'value'=>$value);
- if ($value == $nodetype) $selector['selected']=true;
+ if ($value == $node_type) $selector['selected']=true;
$selectors []= $selector;
}
return $selectors;
$run_level = $node['run_level'];
$site_id= $node['site_id'];
$model= $node['model'];
+$node_type= $node['node_type'];
$version= $node['version'];
-$node_type = $node['node_type'];
// arrays of ids of node info
$slice_ids= $node['slice_ids'];
// extra privileges to admins, and (pi||tech) on this site
-$privileges = (plc_is_admin () && $local_peer) || ( plc_in_site($site_id) && ( plc_is_pi() || plc_is_tech()));
+$admin_privileges=(plc_is_admin () && $local_peer);
+$privileges = $admin_privileges || ( plc_in_site($site_id) && ( plc_is_pi() || plc_is_tech()));
$tabs=array();
// available actions
//$details->th_td("Hostname",$hostname,"hostname");
$details->th_td("Hostname",$hostname);
$details->th_td("Model",$model,"model");
+// reservation ?
+if ( $admin_privileges) {
+ $reservation_value = $details->form->select_html("node_type",
+ node_type_selectors ($api, $node_type));
+} else {
+ $reservation_value = node_type_display ($api,$node_type);
+}
+$details->th_td("Reservation",$reservation_value);
+
$details->tr_submit("submit","Update Node");
$details->form_end();
if ($privileges) $details->space();
$details->space();
//////////////////// type & version
-$details->th_td("Type",$node_type);
$details->th_td("Version",$version);
// let's use plc_objects
$Node = new Node($node);