2861 |
27 Oct 14 |
nicklas |
var Remote = function() |
2295 |
17 Mar 14 |
nicklas |
2 |
{ |
2861 |
27 Oct 14 |
nicklas |
var remote = {}; |
4331 |
01 Feb 17 |
nicklas |
var debug = 0; |
2295 |
17 Mar 14 |
nicklas |
5 |
|
2861 |
27 Oct 14 |
nicklas |
remote.initPage = function() |
2295 |
17 Mar 14 |
nicklas |
7 |
{ |
2861 |
27 Oct 14 |
nicklas |
remote.getHostInfo(false); |
2861 |
27 Oct 14 |
nicklas |
Buttons.addClickHandler('btnReload', remote.reloadConfiguration); |
2297 |
18 Mar 14 |
nicklas |
10 |
} |
2297 |
18 Mar 14 |
nicklas |
11 |
|
2861 |
27 Oct 14 |
nicklas |
remote.reloadConfiguration = function() |
2297 |
18 Mar 14 |
nicklas |
13 |
{ |
2861 |
27 Oct 14 |
nicklas |
remote.getHostInfo(true); |
2297 |
18 Mar 14 |
nicklas |
15 |
} |
2297 |
18 Mar 14 |
nicklas |
16 |
|
2861 |
27 Oct 14 |
nicklas |
remote.getHostInfo = function(reload) |
2297 |
18 Mar 14 |
nicklas |
18 |
{ |
2297 |
18 Mar 14 |
nicklas |
var rows = Doc.element('all-rows'); |
2297 |
18 Mar 14 |
nicklas |
while (rows.lastChild) |
2297 |
18 Mar 14 |
nicklas |
21 |
{ |
2297 |
18 Mar 14 |
nicklas |
rows.removeChild(rows.lastChild); |
2297 |
18 Mar 14 |
nicklas |
23 |
} |
2297 |
18 Mar 14 |
nicklas |
var template = Doc.element('row-template'); |
2297 |
18 Mar 14 |
nicklas |
var cols = template.getElementsByTagName('th'); |
2297 |
18 Mar 14 |
nicklas |
26 |
|
2297 |
18 Mar 14 |
nicklas |
var wait = document.createElement('tr'); |
2861 |
27 Oct 14 |
nicklas |
wait.innerHTML = '<td colspan="'+cols.length+'"><div class="messagecontainer note">Loading remote host information. Please wait...</div></td>'; |
2297 |
18 Mar 14 |
nicklas |
rows.appendChild(wait); |
2297 |
18 Mar 14 |
nicklas |
30 |
|
4306 |
17 Jan 17 |
nicklas |
var url = '../../OpenGrid.servlet?ID='+App.getSessionId(); |
6632 |
08 Mar 22 |
nicklas |
url += '&cmd=GetHostInfo&includeUnconfigured=1&includeNotConnected=1'; |
2297 |
18 Mar 14 |
nicklas |
if (reload) url += '&reload=1'; |
2295 |
17 Mar 14 |
nicklas |
var request = Ajax.getXmlHttpRequest(); |
2297 |
18 Mar 14 |
nicklas |
request.open("GET", url, true); |
2861 |
27 Oct 14 |
nicklas |
Ajax.setReadyStateHandler(request, remote.onHostInfoLoaded, remote.onHostInfoLoaded); |
2295 |
17 Mar 14 |
nicklas |
request.send(null); |
2295 |
17 Mar 14 |
nicklas |
38 |
} |
2295 |
17 Mar 14 |
nicklas |
39 |
|
2861 |
27 Oct 14 |
nicklas |
remote.onHostInfoLoaded = function(request) |
2295 |
17 Mar 14 |
nicklas |
41 |
{ |
2295 |
17 Mar 14 |
nicklas |
if (debug) App.debug(Strings.encodeTags(request.responseText)); |
2295 |
17 Mar 14 |
nicklas |
var response; |
2295 |
17 Mar 14 |
nicklas |
var error = false; |
2295 |
17 Mar 14 |
nicklas |
try |
2295 |
17 Mar 14 |
nicklas |
46 |
{ |
2295 |
17 Mar 14 |
nicklas |
response = JSON.parse(request.responseText); |
2295 |
17 Mar 14 |
nicklas |
if (response.status != 'ok') |
2295 |
17 Mar 14 |
nicklas |
49 |
{ |
2295 |
17 Mar 14 |
nicklas |
error = response.message || response.stacktrace || 'Unexpected error'; |
2295 |
17 Mar 14 |
nicklas |
51 |
} |
2295 |
17 Mar 14 |
nicklas |
52 |
} |
2295 |
17 Mar 14 |
nicklas |
catch (ex) |
2295 |
17 Mar 14 |
nicklas |
54 |
{ |
2295 |
17 Mar 14 |
nicklas |
error = ex; |
2295 |
17 Mar 14 |
nicklas |
56 |
} |
2295 |
17 Mar 14 |
nicklas |
57 |
|
2295 |
17 Mar 14 |
nicklas |
var template = Doc.element('row-template'); |
2295 |
17 Mar 14 |
nicklas |
var cols = template.getElementsByTagName('th'); |
2295 |
17 Mar 14 |
nicklas |
60 |
|
2295 |
17 Mar 14 |
nicklas |
var rows = Doc.element('all-rows'); |
2297 |
18 Mar 14 |
nicklas |
while (rows.lastChild) |
2297 |
18 Mar 14 |
nicklas |
63 |
{ |
2297 |
18 Mar 14 |
nicklas |
rows.removeChild(rows.lastChild); |
2297 |
18 Mar 14 |
nicklas |
65 |
} |
2892 |
04 Nov 14 |
nicklas |
66 |
|
2892 |
04 Nov 14 |
nicklas |
if (error) |
2892 |
04 Nov 14 |
nicklas |
68 |
{ |
2892 |
04 Nov 14 |
nicklas |
var wait = document.createElement('tr'); |
2892 |
04 Nov 14 |
nicklas |
wait.innerHTML = '<td colspan="'+cols.length+'"><div class="messagecontainer error">'+Strings.encodeTags(error)+'</div></td>'; |
2892 |
04 Nov 14 |
nicklas |
rows.appendChild(wait); |
2892 |
04 Nov 14 |
nicklas |
return; |
2892 |
04 Nov 14 |
nicklas |
73 |
} |
2295 |
17 Mar 14 |
nicklas |
74 |
|
2861 |
27 Oct 14 |
nicklas |
var hosts = response.hosts; |
2861 |
27 Oct 14 |
nicklas |
for (var hostNo = 0; hostNo < hosts.length; hostNo++) |
2295 |
17 Mar 14 |
nicklas |
77 |
{ |
2861 |
27 Oct 14 |
nicklas |
var host = hosts[hostNo]; |
4306 |
17 Jan 17 |
nicklas |
var connectionInfo = host.connection; |
4306 |
17 Jan 17 |
nicklas |
var hostInfo = host.clusterInfo.hostInfo; |
4306 |
17 Jan 17 |
nicklas |
var openGridInfo = host.clusterInfo.openGridInfo; |
2295 |
17 Mar 14 |
nicklas |
82 |
|
2295 |
17 Mar 14 |
nicklas |
var row = document.createElement('tr'); |
2861 |
27 Oct 14 |
nicklas |
row.className = hostNo % 2 == 0 ? 'evenrow highlight' : 'oddrow highlight'; |
2295 |
17 Mar 14 |
nicklas |
85 |
|
2295 |
17 Mar 14 |
nicklas |
for (var colNo = 0; colNo < cols.length; colNo++) |
2295 |
17 Mar 14 |
nicklas |
87 |
{ |
2295 |
17 Mar 14 |
nicklas |
var cell = document.createElement('td'); |
2295 |
17 Mar 14 |
nicklas |
cell.className = 'cell'; |
2295 |
17 Mar 14 |
nicklas |
var colId = cols[colNo].id; |
2861 |
27 Oct 14 |
nicklas |
if (colId == 'hosts.name') |
2295 |
17 Mar 14 |
nicklas |
92 |
{ |
4306 |
17 Jan 17 |
nicklas |
cell.innerHTML = '<span class="link">'+Strings.encodeTags(connectionInfo.name)+'<span>'; |
2861 |
27 Oct 14 |
nicklas |
Data.set(cell, 'host-id', host.id) |
2861 |
27 Oct 14 |
nicklas |
Events.addEventHandler(cell, 'click', remote.hostOnClick); |
2295 |
17 Mar 14 |
nicklas |
96 |
} |
4306 |
17 Jan 17 |
nicklas |
else if (colId == 'hosts.server') |
2295 |
17 Mar 14 |
nicklas |
98 |
{ |
4306 |
17 Jan 17 |
nicklas |
cell.innerHTML = Strings.encodeTags(connectionInfo.user + '@' + connectionInfo.address + ':' + connectionInfo.port); |
2295 |
17 Mar 14 |
nicklas |
100 |
} |
4306 |
17 Jan 17 |
nicklas |
else if (colId == 'hosts.timeDiff') |
2361 |
14 Apr 14 |
nicklas |
102 |
{ |
4306 |
17 Jan 17 |
nicklas |
cell.innerHTML = host.clusterInfo.timeAdjustment + ' seconds'; |
2361 |
14 Apr 14 |
nicklas |
104 |
} |
4306 |
17 Jan 17 |
nicklas |
else if (colId == 'hosts.ogs') |
2295 |
17 Mar 14 |
nicklas |
106 |
{ |
4306 |
17 Jan 17 |
nicklas |
var html; |
4306 |
17 Jan 17 |
nicklas |
if (openGridInfo.exitStatus == 0) |
4306 |
17 Jan 17 |
nicklas |
109 |
{ |
4306 |
17 Jan 17 |
nicklas |
html = Strings.encodeTags(openGridInfo.stdout); |
4306 |
17 Jan 17 |
nicklas |
111 |
} |
4306 |
17 Jan 17 |
nicklas |
else |
4306 |
17 Jan 17 |
nicklas |
113 |
{ |
4306 |
17 Jan 17 |
nicklas |
html = '<div class="messagecontainer error">['+openGridInfo.exitStatus+'] '+Strings.encodeTags(openGridInfo.stderr)+'</div>'; |
4306 |
17 Jan 17 |
nicklas |
115 |
} |
4306 |
17 Jan 17 |
nicklas |
cell.innerHTML = html; |
2861 |
27 Oct 14 |
nicklas |
117 |
} |
2861 |
27 Oct 14 |
nicklas |
else if (colId == 'hosts.info') |
2861 |
27 Oct 14 |
nicklas |
119 |
{ |
2295 |
17 Mar 14 |
nicklas |
var html; |
4306 |
17 Jan 17 |
nicklas |
if (hostInfo.exitStatus == 0) |
2295 |
17 Mar 14 |
nicklas |
122 |
{ |
4306 |
17 Jan 17 |
nicklas |
html = Strings.encodeTags(hostInfo.stdout); |
2295 |
17 Mar 14 |
nicklas |
124 |
} |
2295 |
17 Mar 14 |
nicklas |
else |
2295 |
17 Mar 14 |
nicklas |
126 |
{ |
4306 |
17 Jan 17 |
nicklas |
html = '<div class="messagecontainer error">['+hostInfo.exitStatus+'] '+Strings.encodeTags(hostInfo.stderr)+'</div>'; |
2295 |
17 Mar 14 |
nicklas |
128 |
} |
2295 |
17 Mar 14 |
nicklas |
cell.innerHTML = html; |
2295 |
17 Mar 14 |
nicklas |
130 |
} |
2861 |
27 Oct 14 |
nicklas |
else if (colId == 'hosts.status') |
2295 |
17 Mar 14 |
nicklas |
132 |
{ |
4306 |
17 Jan 17 |
nicklas |
var img = 'ok.png'; |
4306 |
17 Jan 17 |
nicklas |
if (host.clusterInfo.error) |
4306 |
17 Jan 17 |
nicklas |
135 |
{ |
4306 |
17 Jan 17 |
nicklas |
img = 'error.png'; |
4306 |
17 Jan 17 |
nicklas |
137 |
} |
4306 |
17 Jan 17 |
nicklas |
else if (!host.reggeConfigExists) |
4306 |
17 Jan 17 |
nicklas |
139 |
{ |
4306 |
17 Jan 17 |
nicklas |
img = 'warning.png'; |
4306 |
17 Jan 17 |
nicklas |
141 |
} |
2861 |
27 Oct 14 |
nicklas |
cell.className = 'host-status'; |
2298 |
18 Mar 14 |
nicklas |
cell.innerHTML = '<img src="../../images/'+img + '">'; |
2295 |
17 Mar 14 |
nicklas |
144 |
} |
4306 |
17 Jan 17 |
nicklas |
else if (colId == 'hosts.configured') |
4306 |
17 Jan 17 |
nicklas |
146 |
{ |
4316 |
23 Jan 17 |
nicklas |
cell.innerHTML = host.reggeConfigExists ? 'Yes' : 'No'; |
4306 |
17 Jan 17 |
nicklas |
148 |
} |
2295 |
17 Mar 14 |
nicklas |
row.appendChild(cell); |
2295 |
17 Mar 14 |
nicklas |
150 |
} |
2295 |
17 Mar 14 |
nicklas |
151 |
|
2295 |
17 Mar 14 |
nicklas |
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 |
remote.hostOnClick = function(event) |
2297 |
18 Mar 14 |
nicklas |
158 |
{ |
2861 |
27 Oct 14 |
nicklas |
var hostId = Data.get(event.currentTarget, 'host-id'); |
4316 |
23 Jan 17 |
nicklas |
var url = '../../../opengrid.jar/view-host.jsp?ID='+App.getSessionId(); |
2861 |
27 Oct 14 |
nicklas |
url += '&hostId='+encodeURIComponent(hostId); |
2297 |
18 Mar 14 |
nicklas |
location.href = url; |
2297 |
18 Mar 14 |
nicklas |
163 |
} |
2297 |
18 Mar 14 |
nicklas |
164 |
|
2861 |
27 Oct 14 |
nicklas |
return remote; |
2295 |
17 Mar 14 |
nicklas |
166 |
}(); |
2295 |
17 Mar 14 |
nicklas |
167 |
|
2861 |
27 Oct 14 |
nicklas |
Doc.onLoad(Remote.initPage); |