From: Thierry Parmentelat Date: Fri, 29 Apr 2011 08:19:03 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.onelab.eu/git/plewww X-Git-Tag: plewww-4.3-64~9 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=b89cea9e2eb4db6f01d484e035471142f916f454;hp=029eefb7067420fe3e6d7af0521e59bc3909350e;p=plewww.git Merge branch 'master' of ssh://git.onelab.eu/git/plewww --- diff --git a/planetlab/common/actions.php b/planetlab/common/actions.php index c4290af..7f751b0 100644 --- a/planetlab/common/actions.php +++ b/planetlab/common/actions.php @@ -393,8 +393,10 @@ switch ($action) { case 'reboot-node-with-pcu': { $node_id=intval($_POST['node_id']); $hostname= $_POST['hostname']; + $test = $_POST['test']; + settype($test, "boolean"); - $ret = $api->RebootNodeWithPCU( $node_id ); + $ret = $api->RebootNodeWithPCU( $node_id, $test ); $error= $api->error(); if( empty( $error ) ) { diff --git a/planetlab/includes/plc_functions.php b/planetlab/includes/plc_functions.php index a51bf59..a05fdd9 100644 --- a/planetlab/includes/plc_functions.php +++ b/planetlab/includes/plc_functions.php @@ -75,6 +75,7 @@ function l_actions_download () { return "/db/nodes/node_downloads.php"; } function l_register_node () { return "/registerwizard/index.php"; } function l_pcu_add () { return "/registerwizard/index.php/register/stage1_addpcu"; } function l_pcu ($pcu_id) { return "/db/sites/pcu.php?id=$pcu_id"; } +function l_pcu_href ($pcu_id, $text) { return href(l_pcu($pcu_id), $text); } function l_nodes () { return "/db/nodes/index.php"; } function l_nodes_peer ($peer_id) { return "/db/nodes/index.php?peerscope=$peer_id"; } diff --git a/planetlab/nodes/node.php b/planetlab/nodes/node.php index cfce37e..f976f50 100644 --- a/planetlab/nodes/node.php +++ b/planetlab/nodes/node.php @@ -261,9 +261,19 @@ I've experienced a problem rebooting $hostname with the pcu_id $pcu_id; $url=rawurlencode($body); $email = ">Report a problem"; - $details->form_start(l_actions(),array("action"=>"reboot-node-with-pcu", "node_id"=>$node_id, "hostname"=>$hostname)); - print $details->tr_html($email . $details->form->submit_html("submit","Reboot Node"), "right"); - $details->form_end(); + // NOTE: not sure how to make the buttons display side-by-side... + $reboot = $details->form_start_html(l_actions(),array("action"=>"reboot-node-with-pcu", + "node_id"=>$node_id, "hostname"=>$hostname, "test"=>FALSE)); + $reboot .= $email . $details->form->submit_html("submit","Reboot Node"); + $reboot .= $details->form_end_html(); + + $reboot .= $details->form_start_html(l_actions(),array("action"=>"reboot-node-with-pcu", + "node_id"=>$node_id, "hostname"=>$hostname, "test"=>TRUE)); + $reboot .= $details->form->submit_html("submit","Test PCU"); + $reboot .= $details->form_end_html(); + + $details->tr($reboot, "right"); + } $details->space(); diff --git a/planetlab/sites/pcu.php b/planetlab/sites/pcu.php index a0fffcd..1ec3089 100644 --- a/planetlab/sites/pcu.php +++ b/planetlab/sites/pcu.php @@ -87,6 +87,12 @@ if( !$_GET['id'] ) { } + if( in_array( 10, $_roles) ) { + $is_admin= true; + } else { + $is_admin = false; + } + if( in_array( 10, $_roles ) || ( in_array( 20, $_roles ) && in_array( $pcu_info[0]['site_id'], $_person['site_ids'] ) ) || ( in_array( 40, $_roles ) && in_array( $pcu_info[0]['site_id'], $_person['site_ids'] ) ) ) $pcu_controller= true; @@ -128,12 +134,13 @@ if( !$_GET['id'] ) { echo "\n Model: "; - if( $pcu_controller ) + // NOTE: in general, this value should not be edited, so only allow admins. + if( $pcu_controller && $is_admin ) echo ""; echo "\n diff --git a/planetlab/sites/site.php b/planetlab/sites/site.php index d80dc5f..760cb0e 100644 --- a/planetlab/sites/site.php +++ b/planetlab/sites/site.php @@ -264,7 +264,7 @@ if ( $local_peer ) { if (empty($ports)) return plc_error_html('???'); $port=$ports[0]; $pcu=$pcu_hash[$pcu_id]; - $display= $pcu['hostname'] . ' : ' . $port; + $display= l_pcu_href($pcu_id, $pcu['hostname'] . ' : ' . $port); $pcu_hash[$pcu_id]['displayed']=true; return $display; }