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';