js updated for accessing nitos nodes
[myslice.git] / portal / static / js / experiment.js
1 function render_node(platform, node){
2     //console.log(platform,node);
3     nitos = false;
4     if('@component_manager_id' in node){
5         // urn:publicid:IDN+ple+authority+cm
6         t_urn = node['@component_manager_id'].split('+');
7         //if(t_urn[1].indexOf(":") > -1)
8         testbed = t_urn[1];
9         t_testbed = testbed.split(':');
10         if(t_testbed.length > 1){
11             testbed = t_testbed[1];
12             if(t_testbed[0] == 'omf' || t_testbed[1].includes('nitos')){
13                 nitos = true;
14             }
15         }
16         if(!document.getElementById(testbed)){
17         //if(!$('#'+testbed).length){
18             testbed = 'default';
19         }
20     }else{
21         testbed = 'default';
22     }
23     elm = document.getElementById(testbed);
24     newElement = document.createElement('p');
25     if('services' in node && 'login' in node['services']){
26         //console.log(node['services']['login']);
27         login = node['services']['login'];
28         // TODO: Check if this login info has already been printed or not
29         // Ex: IoT-Lab 1 ssh gateway per site, but info is per node in the RSpec
30         if(!document.getElementById(login['@username']+'_'+login['@hostname'])){
31             if('@port' in login && login['@port']!='22'){
32                 newElement.innerHTML = "<p class='command' id='"+login['@username']+"_"+login['@hostname']+"'>$ ssh "+login['@username']+"@"+login['@hostname']+" -p "+login['@port']+"</p>";
33             }else{
34                 newElement.innerHTML = "<p class='command' id='"+login['@username']+"_"+login['@hostname']+"'>$ ssh "+login['@username']+"@"+login['@hostname']+"</p>";
35             }
36             elm.appendChild(newElement); 
37         }
38     }else if('@component_name' in node){
39         console.log(node['@component_name']);
40     }else{
41         console.log(node);
42     }
43     if(nitos){
44         newElement = document.createElement('p');
45         var commands = "$ omf stat -t "+node['@component_name']+" # check the status of the node <br>"; 
46         commands += "$ omf tell -a on -t "+node['@component_name']+" # turn on the node <br>";
47         commands += "$ omf load -i baseline.ndz -t "+node['@component_name']+" # loading OMF image on the node <br>";
48         commands += "$ ssh root@"+node['@component_name']+" # ssh to the node";
49
50         newElement.innerHTML = "<p class='command'>"+commands+"</p>";
51         elm.appendChild(newElement); 
52     }
53     $("#loading").hide();
54     elm.style.display = "block";
55     //$('#'+testbed).show();
56     if(document.getElementById(testbed + '_header')){
57         document.getElementById(testbed + '_header').style.display = "block";
58     }
59     if(document.getElementById(testbed + '_footer')){
60         document.getElementById(testbed + '_footer').style.display = "block";
61     }
62     /*
63     if($('#'+testbed+'_header').length){
64         $('#'+testbed+'_header').show();
65     }
66     if($('#'+testbed+'_footer').length){
67         $('#'+testbed+'_footer').show();
68     }
69     */
70 }
71