extensions/net.sf.basedb.reggie/trunk/resources/admin/remote/list-hosts.js

Code
Comments
Other
Rev Date Author Line
2861 27 Oct 14 nicklas 1 var Remote = function()
2295 17 Mar 14 nicklas 2 {
2861 27 Oct 14 nicklas 3   var remote = {};
4331 01 Feb 17 nicklas 4   var debug = 0;
2295 17 Mar 14 nicklas 5   
2861 27 Oct 14 nicklas 6   remote.initPage = function()
2295 17 Mar 14 nicklas 7   {
2861 27 Oct 14 nicklas 8     remote.getHostInfo(false);
2861 27 Oct 14 nicklas 9     Buttons.addClickHandler('btnReload', remote.reloadConfiguration);
2297 18 Mar 14 nicklas 10   }
2297 18 Mar 14 nicklas 11   
2861 27 Oct 14 nicklas 12   remote.reloadConfiguration = function()
2297 18 Mar 14 nicklas 13   {
2861 27 Oct 14 nicklas 14     remote.getHostInfo(true);
2297 18 Mar 14 nicklas 15   }
2297 18 Mar 14 nicklas 16   
2861 27 Oct 14 nicklas 17   remote.getHostInfo = function(reload)
2297 18 Mar 14 nicklas 18   {
2297 18 Mar 14 nicklas 19     var rows = Doc.element('all-rows');
2297 18 Mar 14 nicklas 20     while (rows.lastChild)
2297 18 Mar 14 nicklas 21     {
2297 18 Mar 14 nicklas 22       rows.removeChild(rows.lastChild);
2297 18 Mar 14 nicklas 23     }
2297 18 Mar 14 nicklas 24     var template = Doc.element('row-template');
2297 18 Mar 14 nicklas 25     var cols = template.getElementsByTagName('th');
2297 18 Mar 14 nicklas 26     
2297 18 Mar 14 nicklas 27     var wait = document.createElement('tr');
2861 27 Oct 14 nicklas 28     wait.innerHTML = '<td colspan="'+cols.length+'"><div class="messagecontainer note">Loading remote host information. Please wait...</div></td>';
2297 18 Mar 14 nicklas 29     rows.appendChild(wait);
2297 18 Mar 14 nicklas 30
4306 17 Jan 17 nicklas 31     var url = '../../OpenGrid.servlet?ID='+App.getSessionId();
6632 08 Mar 22 nicklas 32     url += '&cmd=GetHostInfo&includeUnconfigured=1&includeNotConnected=1';
2297 18 Mar 14 nicklas 33     if (reload) url += '&reload=1';
2295 17 Mar 14 nicklas 34     var request = Ajax.getXmlHttpRequest();
2297 18 Mar 14 nicklas 35     request.open("GET", url, true);
2861 27 Oct 14 nicklas 36     Ajax.setReadyStateHandler(request, remote.onHostInfoLoaded, remote.onHostInfoLoaded);
2295 17 Mar 14 nicklas 37     request.send(null);
2295 17 Mar 14 nicklas 38   }
2295 17 Mar 14 nicklas 39   
2861 27 Oct 14 nicklas 40   remote.onHostInfoLoaded = function(request)
2295 17 Mar 14 nicklas 41   {
2295 17 Mar 14 nicklas 42     if (debug) App.debug(Strings.encodeTags(request.responseText));
2295 17 Mar 14 nicklas 43     var response;
2295 17 Mar 14 nicklas 44     var error = false;
2295 17 Mar 14 nicklas 45     try
2295 17 Mar 14 nicklas 46     {
2295 17 Mar 14 nicklas 47       response = JSON.parse(request.responseText);
2295 17 Mar 14 nicklas 48       if (response.status != 'ok')
2295 17 Mar 14 nicklas 49       {
2295 17 Mar 14 nicklas 50         error = response.message || response.stacktrace || 'Unexpected error';
2295 17 Mar 14 nicklas 51       }
2295 17 Mar 14 nicklas 52     }
2295 17 Mar 14 nicklas 53     catch (ex)
2295 17 Mar 14 nicklas 54     {
2295 17 Mar 14 nicklas 55       error = ex;
2295 17 Mar 14 nicklas 56     }
2295 17 Mar 14 nicklas 57     
2295 17 Mar 14 nicklas 58     var template = Doc.element('row-template');
2295 17 Mar 14 nicklas 59     var cols = template.getElementsByTagName('th');
2295 17 Mar 14 nicklas 60     
2295 17 Mar 14 nicklas 61     var rows = Doc.element('all-rows');
2297 18 Mar 14 nicklas 62     while (rows.lastChild)
2297 18 Mar 14 nicklas 63     {
2297 18 Mar 14 nicklas 64       rows.removeChild(rows.lastChild);
2297 18 Mar 14 nicklas 65     }
2892 04 Nov 14 nicklas 66
2892 04 Nov 14 nicklas 67     if (error)
2892 04 Nov 14 nicklas 68     {
2892 04 Nov 14 nicklas 69       var wait = document.createElement('tr');
2892 04 Nov 14 nicklas 70       wait.innerHTML = '<td colspan="'+cols.length+'"><div class="messagecontainer error">'+Strings.encodeTags(error)+'</div></td>';
2892 04 Nov 14 nicklas 71       rows.appendChild(wait);
2892 04 Nov 14 nicklas 72       return;
2892 04 Nov 14 nicklas 73     }
2295 17 Mar 14 nicklas 74     
2861 27 Oct 14 nicklas 75     var hosts = response.hosts;
2861 27 Oct 14 nicklas 76     for (var hostNo = 0; hostNo < hosts.length; hostNo++)
2295 17 Mar 14 nicklas 77     {
2861 27 Oct 14 nicklas 78       var host = hosts[hostNo];
4306 17 Jan 17 nicklas 79       var connectionInfo = host.connection;
4306 17 Jan 17 nicklas 80       var hostInfo = host.clusterInfo.hostInfo;
4306 17 Jan 17 nicklas 81       var openGridInfo = host.clusterInfo.openGridInfo;
2295 17 Mar 14 nicklas 82       
2295 17 Mar 14 nicklas 83       var row = document.createElement('tr');
2861 27 Oct 14 nicklas 84       row.className = hostNo % 2 == 0 ? 'evenrow highlight' : 'oddrow highlight';
2295 17 Mar 14 nicklas 85       
2295 17 Mar 14 nicklas 86       for (var colNo = 0; colNo < cols.length; colNo++)
2295 17 Mar 14 nicklas 87       {
2295 17 Mar 14 nicklas 88         var cell = document.createElement('td');
2295 17 Mar 14 nicklas 89         cell.className = 'cell';
2295 17 Mar 14 nicklas 90         var colId = cols[colNo].id;
2861 27 Oct 14 nicklas 91         if (colId == 'hosts.name')
2295 17 Mar 14 nicklas 92         {
4306 17 Jan 17 nicklas 93           cell.innerHTML = '<span class="link">'+Strings.encodeTags(connectionInfo.name)+'<span>';
2861 27 Oct 14 nicklas 94           Data.set(cell, 'host-id', host.id)
2861 27 Oct 14 nicklas 95           Events.addEventHandler(cell, 'click', remote.hostOnClick);
2295 17 Mar 14 nicklas 96         }
4306 17 Jan 17 nicklas 97         else if (colId == 'hosts.server')
2295 17 Mar 14 nicklas 98         {
4306 17 Jan 17 nicklas 99           cell.innerHTML = Strings.encodeTags(connectionInfo.user + '@' + connectionInfo.address + ':' + connectionInfo.port);
2295 17 Mar 14 nicklas 100         }
4306 17 Jan 17 nicklas 101         else if (colId == 'hosts.timeDiff')
2361 14 Apr 14 nicklas 102         {
4306 17 Jan 17 nicklas 103           cell.innerHTML = host.clusterInfo.timeAdjustment + ' seconds';
2361 14 Apr 14 nicklas 104         }
4306 17 Jan 17 nicklas 105         else if (colId == 'hosts.ogs')
2295 17 Mar 14 nicklas 106         {
4306 17 Jan 17 nicklas 107           var html;
4306 17 Jan 17 nicklas 108           if (openGridInfo.exitStatus == 0)
4306 17 Jan 17 nicklas 109           {
4306 17 Jan 17 nicklas 110             html = Strings.encodeTags(openGridInfo.stdout);
4306 17 Jan 17 nicklas 111           }
4306 17 Jan 17 nicklas 112           else
4306 17 Jan 17 nicklas 113           {
4306 17 Jan 17 nicklas 114             html = '<div class="messagecontainer error">['+openGridInfo.exitStatus+'] '+Strings.encodeTags(openGridInfo.stderr)+'</div>';
4306 17 Jan 17 nicklas 115           }
4306 17 Jan 17 nicklas 116           cell.innerHTML = html;
2861 27 Oct 14 nicklas 117         }
2861 27 Oct 14 nicklas 118         else if (colId == 'hosts.info')
2861 27 Oct 14 nicklas 119         {
2295 17 Mar 14 nicklas 120           var html;
4306 17 Jan 17 nicklas 121           if (hostInfo.exitStatus == 0)
2295 17 Mar 14 nicklas 122           {
4306 17 Jan 17 nicklas 123             html = Strings.encodeTags(hostInfo.stdout);
2295 17 Mar 14 nicklas 124           }
2295 17 Mar 14 nicklas 125           else
2295 17 Mar 14 nicklas 126           {
4306 17 Jan 17 nicklas 127             html = '<div class="messagecontainer error">['+hostInfo.exitStatus+'] '+Strings.encodeTags(hostInfo.stderr)+'</div>';
2295 17 Mar 14 nicklas 128           }
2295 17 Mar 14 nicklas 129           cell.innerHTML = html;
2295 17 Mar 14 nicklas 130         }
2861 27 Oct 14 nicklas 131         else if (colId == 'hosts.status')
2295 17 Mar 14 nicklas 132         {
4306 17 Jan 17 nicklas 133           var img = 'ok.png';
4306 17 Jan 17 nicklas 134           if (host.clusterInfo.error) 
4306 17 Jan 17 nicklas 135           {
4306 17 Jan 17 nicklas 136             img = 'error.png';
4306 17 Jan 17 nicklas 137           }
4306 17 Jan 17 nicklas 138           else if (!host.reggeConfigExists)
4306 17 Jan 17 nicklas 139           {
4306 17 Jan 17 nicklas 140             img = 'warning.png';
4306 17 Jan 17 nicklas 141           }
2861 27 Oct 14 nicklas 142           cell.className = 'host-status';
2298 18 Mar 14 nicklas 143           cell.innerHTML = '<img src="../../images/'+img + '">';
2295 17 Mar 14 nicklas 144         }
4306 17 Jan 17 nicklas 145         else if (colId == 'hosts.configured')
4306 17 Jan 17 nicklas 146         {
4316 23 Jan 17 nicklas 147           cell.innerHTML = host.reggeConfigExists ? 'Yes' : 'No';
4306 17 Jan 17 nicklas 148         }
2295 17 Mar 14 nicklas 149         row.appendChild(cell);
2295 17 Mar 14 nicklas 150       }
2295 17 Mar 14 nicklas 151       
2295 17 Mar 14 nicklas 152       rows.appendChild(row);
2295 17 Mar 14 nicklas 153     }
2295 17 Mar 14 nicklas 154     
2295 17 Mar 14 nicklas 155   }
2295 17 Mar 14 nicklas 156   
2861 27 Oct 14 nicklas 157   remote.hostOnClick = function(event)
2297 18 Mar 14 nicklas 158   {
2861 27 Oct 14 nicklas 159     var hostId = Data.get(event.currentTarget, 'host-id');
4316 23 Jan 17 nicklas 160     var url = '../../../opengrid.jar/view-host.jsp?ID='+App.getSessionId();
2861 27 Oct 14 nicklas 161     url += '&hostId='+encodeURIComponent(hostId);
2297 18 Mar 14 nicklas 162     location.href = url;
2297 18 Mar 14 nicklas 163   }
2297 18 Mar 14 nicklas 164   
2861 27 Oct 14 nicklas 165   return remote;
2295 17 Mar 14 nicklas 166 }();
2295 17 Mar 14 nicklas 167
2861 27 Oct 14 nicklas 168 Doc.onLoad(Remote.initPage);