initial import from onelab svn codebase
[plewww.git] / planetlab / peers / index.php
1 <?php
2
3 // Require login
4 require_once 'plc_login.php';
5
6 // Get session and API handles
7 require_once 'plc_session.php';
8 global $plc, $api;
9
10 // Print header
11 require_once 'plc_drupal.php';
12 drupal_set_title('All Peers');
13 include 'plc_header.php';
14
15 // Common functions
16 require_once 'plc_functions.php';
17 require_once 'plc_sorts.php';
18
19 // find person roles
20 $_person= $plc->person;
21 $_roles= $_person['role_ids'];
22
23 // layout : add a comon link
24 function layout_peer ($peer) {
25   $peer['comon'] = plc_comon_button("peer_id",$peer['peer_id']);
26   return $peer;
27 }
28
29
30 // if peer_host is set then set id to that peer's id.
31 if( $_POST['peername'] ) {
32   $peername= $_POST['peername'];
33
34   $peer_info= $api->GetPeers( array( $peername ), array( "peer_id" ) );
35
36   header( "location: index.php?id=". $peer_info[0]['peer_id'] );
37   exit();
38
39 }
40
41 if( !$_GET['id'] ) {
42
43   // GetPeers API call
44   $peers = $api->GetPeers( NULL, array("peer_id","peername","peer_url"));
45     
46   $local_peer_comon = plc_comon_button("peer_id","0");
47   echo "<p> See all local nodes through comon " . $local_peer_comon . " </p>";
48
49   if ( empty($peers)) {
50     echo "No known peer - standalone deployment";
51   } else {
52
53     $peers = array_map(layout_peer,$peers);
54     sort_peers( $peers );
55
56     echo "<div>";
57     // xxx Thierry : mimicking what was done for nodes - not sure that makes sense here
58     if( $peername )
59       echo "<span class='plc-warning'> $peername is not a valid peer.</span>\n";
60
61     echo paginate( $peers, "peer_id", "Peers", 10, "peername" );
62   }
63
64 } else {
65   // get the peer id from the URL
66   $peer_id= intval( $_GET['id'] );
67
68   // make the api call to pull that peers DATA
69   $peer_info= $api->GetPeers( array( $peer_id ) );
70
71   // peer info
72   $peername= $peer_info[0]['peername'];
73   $peer_url= $peer_info[0]['peer_url'];
74   // arrays of ids of peer info
75   $number_nodes= sizeof($peer_info[0]['node_ids']);
76   $number_slices= sizeof($peer_info[0]['slice_ids']);
77   $number_persons= sizeof($peer_info[0]['person_ids']);
78   $number_sites= sizeof($peer_info[0]['site_ids']);
79
80   // get peer id
81   $peer_id= $peer_info[0]['peer_id'];
82
83   drupal_set_title("Details for Peer " . $peername);
84
85   echo "<table><tbody>\n";
86   echo "<tr><th>Peer name </th>";
87   echo "<td> $peername </td></tr>";
88   echo "<tr><th>API url </th>";
89   echo "<td> $peer_url </td></tr>";
90   echo "<tr><th> # nodes </th>";
91   echo "<td> $number_nodes </td></tr>";
92   echo "<tr><th> # slices </th>";
93   echo "<td> $number_slices </td></tr>";
94   echo "<tr><th> # sites </th>";
95   echo "<td> $number_sites </td></tr>";
96   echo "<tr><th> # persons </th>";
97   echo "<td> $number_persons </td></tr>";
98   echo "</tbody></table>\n";
99 }
100
101 echo "<br /><p><a href='index.php'>Back to peer list</a>";
102 echo "</div>";
103
104
105 // Print footer
106 include 'plc_footer.php';
107
108 ?>