'add node' dialog can create reservable nodes
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 4 Oct 2011 10:28:16 +0000 (12:28 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 4 Oct 2011 10:28:16 +0000 (12:28 +0200)
planetlab/includes/plc_functions.php
planetlab/nodes/node_add.php

index a05fdd9..8de54c5 100644 (file)
@@ -510,6 +510,18 @@ function plc_redirect ($url) {
   exit ();
 }
 
   exit ();
 }
 
+//////////////////// 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) {
+    $selector=array('display'=>$display, 'value'=>$value);
+    if ($value == $nodetype) $selector['selected']=true;
+    $selectors []= $selector;
+  }
+  return $selectors;
+}
+
 //////////////////// the options for an interface - suitable for plekit/form
 //>>> GetNetworkMethods()
 //[u'static', u'dhcp', u'proxy', u'tap', u'ipmi', u'unknown']
 //////////////////// the options for an interface - suitable for plekit/form
 //>>> GetNetworkMethods()
 //[u'static', u'dhcp', u'proxy', u'tap', u'ipmi', u'unknown']
index 115f177..8a17774 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 
 <?php
 
-// $Id$ 
-
 // Require login
 require_once 'plc_login.php';
 
 // Require login
 require_once 'plc_login.php';
 
@@ -41,8 +39,9 @@ if ( $_POST['add-node'] )  {
   $site_id = trim($_POST['site_id']);
   $hostname = trim($_POST['hostname']);
   $model= trim($_POST['model']);
   $site_id = trim($_POST['site_id']);
   $hostname = trim($_POST['hostname']);
   $model= trim($_POST['model']);
-  $ip = trim($_POST['ip']);
+  $node_type = trim ($_POST['node_type']);
   $method = trim($_POST['method']);
   $method = trim($_POST['method']);
+  $ip = trim($_POST['ip']);
   $netmask = trim($_POST['netmask']);
   $network = trim($_POST['network']);
   $broadcast = trim($_POST['broadcast']);
   $netmask = trim($_POST['netmask']);
   $network = trim($_POST['network']);
   $broadcast = trim($_POST['broadcast']);
@@ -86,7 +85,7 @@ if ( $_POST['add-node'] )  {
     drupal_set_error(plc_itemize($errors));
   } else {
     // add new node and its interface
     drupal_set_error(plc_itemize($errors));
   } else {
     // add new node and its interface
-    $node_fields= array( "hostname"=>$hostname, "model"=>$model );
+    $node_fields= array( "hostname"=>$hostname, "model"=>$model , "node_type" => $node_type);
     $node_id= $api->AddNode( intval( $site_id ), $node_fields );
 
     if ( empty($node_id) || ($node_id < 0) ) {
     $node_id= $api->AddNode( intval( $site_id ), $node_fields );
 
     if ( empty($node_id) || ($node_id < 0) ) {
@@ -145,12 +144,15 @@ drupal_set_html_head ('
 drupal_set_title('Add a new node to site');
 
 // defaults
 drupal_set_title('Add a new node to site');
 
 // defaults
-$method = $_POST['method'];
-if( ! $method ) $method= "static";
-
 $model = $_POST['model'];
 if( ! $model ) $model= "Custom";
 
 $model = $_POST['model'];
 if( ! $model ) $model= "Custom";
 
+$node_type = $_POST['node_type'];
+if ( ! $node_type ) $node_type= "regular";
+
+$method = $_POST['method'];
+if( ! $method ) $method= "static";
+
 print <<< EOF
 <p class='node_add'>
 This page lets you declare a new machine to a site.
 print <<< EOF
 <p class='node_add'>
 This page lets you declare a new machine to a site.
@@ -191,6 +193,11 @@ $details->th_td("Site",
 
 $details->th_td("Hostname",$hostname,"hostname");
 $details->th_td("Model",$model,"model");
 
 $details->th_td("Hostname",$hostname,"hostname");
 $details->th_td("Model",$model,"model");
+$node_type_select = $form->select_html ("node_type",
+                                      node_type_selectors($api,$node_type),
+                                      array('id'=>'node_type'));
+$details->th_td("Reservation",$node_type_select,"node_type",
+               array('input_type'=>'select','value'=>$node_type));
 $method_select = $form->select_html ("method",
                                     interface_method_selectors($api,$method,true),
                                     array('id'=>'method',
 $method_select = $form->select_html ("method",
                                     interface_method_selectors($api,$method,true),
                                     array('id'=>'method',