X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetlab%2Fnodes%2Fnode_add.php;h=cbcb3d097e9bfd4f6485ef438e4c76f022729496;hb=1ce86fd37ce8da9b475847a59394c0241a8dbbff;hp=c19791c38aa4ab01935316ce609ed3eda241532b;hpb=1a945dad628b43d3e7cb63eaec7593e8c2c548fa;p=plewww.git
diff --git a/planetlab/nodes/node_add.php b/planetlab/nodes/node_add.php
index c19791c..cbcb3d0 100644
--- a/planetlab/nodes/node_add.php
+++ b/planetlab/nodes/node_add.php
@@ -1,7 +1,5 @@
$hostname, "model"=>$model );
- $site_id= plc_my_site_id();
+ $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) ) {
@@ -143,31 +141,63 @@ drupal_set_html_head ('
');
-$sites=$api->GetSites(array(plc_my_site_id()));
-$sitename=$sites[0]['name'];
-
-drupal_set_title('Add a new node in site "' . $sitename . '"');
+drupal_set_title('Add a new node to site');
+
+// defaults
+$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
-This page lets you declare a new machine in your site.
-This must be done before the machine is turned on, as it will allow you to download a boot image when complete for this node.
+This page lets you declare a new machine to a site.
+
+This must be done before the machine is turned on,
+as it will allow you to download a boot image when complete for this node.
-You must enter an IP address even if you use DHCP.
+It is now reserved to admins, as regular users are supposed to use the register wizard, that among other things enforces PCU deployment.
+
+An IP address is required even if you use DHCP.
EOF;
+$toggle = new PlekitToggle ('add-node',"Add Node",
+ array('bubble'=>'Add a node - does not enforce PCU - for admins only !',
+ 'visible'=>get_arg('show_details')));
+$toggle->start();
+
$details=new PlekitDetails($has_privileges);
// xxx hardwire network type for now
$form_variables = array('type'=>"ipv4");
//$form=$details->form_start(l_actions(),$form_variables);
-$form=$details->form_start('/db/nodes/node_add.php',$form_variables);
+$form=$details->form_start('/db/nodes/node_add.php',$form_variables,
+ array('onSubmit'=>'return interfaceSubmit()'));
$details->start();
+$site_columns=array( "site_id", "name", "login_base" );
+$local_sites= $api->GetSites( array("peer_id"=>NULL, '-SORT'=>'name'), $site_columns );
+function site_selector($site) { return array('display'=>$site['name'],"value"=>$site['site_id']); }
+$site_selector = array_map ("site_selector",$local_sites);
+$site_select = $form->select_html("site_id", $site_selector, array('id'=>'site_id'));
+$details->th_td("Site",
+ $site_select,
+ "site_id",
+ array('input_type'=>'select','value'=>$interface['site_id']));
+
$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',
@@ -197,12 +227,12 @@ $details->space();
$details->th_td("BW limit (bps)",$bwlimit,"bwlimit",array('width'=>11));
// the buttons
-$add_button = $form->submit_html ("add-node","Add New Node",
- array('onSubmit'=>'interfaceSubmit()'));
+$add_button = $form->submit_html ("add-node","Add New Node");
$details->tr($add_button,"right");
-$details->end();
$form->end();
+$details->end();
+$toggle->end();
// Print footer
include 'plc_footer.php';