2bb6946b0ec4d9544810485dcc718110e11dc43e
[raven.git] / apps / gacksadmin / wizard.php
1 <?php
2
3 // this must occur before linetabs.php, or linetabs won't work. I have no idea why.
4 drupal_add_js("misc/popup.js");
5
6 // Require login
7 require_once 'plc_login.php';
8
9 // Get session and API handles
10 require_once 'plc_session.php';
11 global $plc, $api, $adm;
12
13 // Common functions
14 require_once 'plc_functions.php';
15 require_once 'plc_peers.php';
16 require_once 'gacks_functions.php';
17 require_once 'gacksclient.php';
18 require_once 'linetabs.php';
19 require_once 'table.php';
20 require_once 'details.php';
21 require_once 'toggle.php';
22 require_once 'form.php';
23 require_once 'nifty.php';
24
25 // find person roles
26 $_person= $plc->person;
27 $_person_id = $plc->person['person_id'];
28 $_roles= $_person['role_ids'];
29
30 // Print header
31 require_once 'plc_drupal.php';
32 drupal_set_title('Manage Nodes: Add Nodes');
33 include 'plc_header.php';
34
35 $tabs['Show Nodes'] = array('method'=>'GET',
36                            'url'=>l_gacks_nodelist(),
37                            'bubble'=>"Show nodes in your slice");
38
39 $tabs['Add Nodes'] = array('method'=>'GET',
40                            'url'=>l_gacks_wizard(),
41                            'bubble'=>"Add nodes to your slice");
42
43 $tabs['Select Image'] = array('method'=>'GET',
44                            'url'=>l_gacks_image(),
45                            'bubble'=>"Select image to use in this slice");
46
47 $_GET['active_line_tab'] = "Add Nodes";
48 plekit_linetabs($tabs);
49
50 $nifty=new PlekitNifty ('nodewizard','objects-list','big');
51 $nifty->start();
52 print '<div style="width: 640px; margin-left: auto; margin-right: auto;">';
53
54 //print "<br>";
55 $account_name = get_account_name($api, $_person_id);
56
57 if ($account_name != NULL) {
58     $gacksapi = new GACKSAPI();
59
60     // get the subgroup names to populate the combobox
61     $resources = $gacksapi->get_resources(NULL, "json");
62     $resources = json_decode($resources[2], true);
63     $subgroup_selectors = array();
64     foreach ($resources["resources"]["plc.vicci.cores"]["subgroups"] as $subgroup) {
65         $subgroup_selectors[]= array("display"=>$subgroup[0], "value"=>$subgroup[0]);
66     }
67
68     $form = new PlekitForm(l_gacks_actions(), array("action"=>"node-wizard",
69                                                     "account_name"=> $account_name,
70                                                     "resource_name"=>"plc.vicci.cores"));
71
72     $image_selectors = array();
73     $image_selectors []= array("display"=>"No Change", "value"=>"");
74     $image_selectors []= array("display"=>"Default PlanetLab image", "value"=>"default");
75     $image_selectors []= array("display"=>"Hadoop", "value"=>"hadoop");
76     $image_selectors []= array("display"=>"MPI", "value"=>"mpi");
77
78     $image = get_slice_image($api, $account_name);
79     $headNode = get_slice_headnode($api, $account_name);
80
81     $form->start();
82     print <<< EOF
83 <br><br>
84 The node selection wizard may be used to automatically add a set of nodes (VMs)
85 to your slice.
86 <br><br>
87 EOF;
88
89     if ($image != NULL) {
90         print "This slice is currently using the image '" . $image . "'. ";
91     }
92     if ($headNode != NULL) {
93         print "The head node when using the MPI or Hadoop images is '" . $headNode . "'. ";
94     }
95     if (($image != NULL) or ($headNode !=NULL)) {
96         print "<br><br>";
97     }
98
99     print "Select which cluster you would like to allocate slivers from: <br>";
100     print $form->select_html("resource_group", $subgroup_selectors);
101     print "<br><br>Enter the number of slivers you would like to allocate: <br>";
102     print $form->input_html("int", "amount", "0");
103     print "<br><br>Choose what to do with your existing slivers: <br>";
104     print " " . $form->radio_html("expand", "0") . " replace current slivers<br>";
105     print " " . $form->radio_html("expand", "1", array("checked" => TRUE)) . " keep current slivers and add these slivers<br>";
106     print "<br><br>";
107     print $form->submit_html("submit", "submit");
108     print "<br><br>";
109     print <<< EOF
110 A 'sliver' is an instance of a virtual machine on a Vicci node.
111 The term 'sliver' is synonymous with 'VM' in OpenStack, or 'instance' in EC2.
112 Currently, each sliver is instantiated on a distinct node, and therefore,
113 the total number of VMs is bounded by either the number of nodes
114 as a given site (currently 70) or overall (currently 350).
115 EOF;
116     $form->end();
117 }
118
119 print "</div>";
120 $nifty->end();
121
122 include 'plc_footer.php';
123
124 ?>
125
126