blob: 80128b5c65f925461eb7c3fb18fbd061c7bebd86 [file] [log] [blame]
<!--
Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<!initPage
setResourceBundle(key="i18nc" bundle="org.glassfish.common.admingui.Strings")
setResourceBundle(key="i18ncs" bundle="org.glassfish.cluster.admingui.Strings")
setResourceBundle(key="help_cluster" bundle="org.glassfish.cluster.admingui.Helplinks");
/>
<!composition template="/templates/default.layout"
guiTitle="$resource{i18ncs.nodes.PageTitle}"
guiTemplateOnLoad="admingui.nav.refreshTree('treeForm:tree:nodeTreeNode');">
<!define name="listTableDeleteButton">
<sun:button id="button1" text="$resource{i18n.button.Delete}" disabled="#{true}" primary="#{false}"
onClick="if ( getConfirm(this,'$pageSession{confirmDeleteMsg}') )
{ return submitAndDisable(this, '$resource{i18n.button.Processing}');} else {return false;} " >
<!command
getUIComponent(clientId="$pageSession{tableRowGroupId}", component="#{requestScope.tableRowGroup}");
getSelectedSingleMapRows(TableRowGroup="${tableRowGroup}" selectedRows="#{requestScope.selectedRows}");
gf.nodeAction(rows="#{requestScope.selectedRows}", action="delete-node" , nodeInstanceMap="#{pageSession.nodeInstanceMap}");
gf.redirect(page="/cluster/node/nodes.jsf?alertType=${alertType}&alertSummary=${alertSummary}&alertDetail=${alertDetail}");
/>
</sun:button>
</define>
<!define name="extraButton2">
<sun:button id="button2" text="$resource{i18ncs.button.DeleteAndUninstall}" disabled="#{true}" primary="#{false}"
onClick="if ( getConfirm(this,'$resource{i18ncs.msg.JS.confirmUninstallNodes}') )
{ return submitAndDisable(this, '$resource{i18n.button.Processing}');} else {return false;} " >
<!command
getUIComponent(clientId="$pageSession{tableRowGroupId}", component="#{requestScope.tableRowGroup}");
getSelectedSingleMapRows(TableRowGroup="${tableRowGroup}" selectedRows="#{requestScope.selectedRows}");
gf.nodeAction(rows="#{requestScope.selectedRows}", action="delete-node-uninstall" , nodeInstanceMap="#{pageSession.nodeInstanceMap}");
gf.redirect(page="/cluster/node/nodes.jsf?alertType=${alertType}&alertSummary=${alertSummary}&alertDetail=${alertDetail}");
/>
</sun:button>
</define>
<!define name="content">
<event>
<!beforeCreate
setPageSessionAttribute(key="parentUrl" value="#{sessionScope.REST_URL}/nodes");
setPageSessionAttribute(key="childType" value="node");
gf.getChildList(parentEndpoint="#{pageSession.parentUrl}", childType="#{pageSession.childType}", result="#{requestScope.listOfRows}");
foreach(var="oneNode" list="#{requestScope.listOfRows}"){
mapPut(map="#{oneNode}" key="hasPing" value="#{false}");
mapPut(map="#{oneNode}" key="cmd" value="");
if ("#{oneNode.type}=SSH"){
mapPut(map="#{oneNode}" key="hasPing" value="#{true}");
mapPut(map="#{oneNode}" key="cmd" value="ping-node-ssh");
}
}
setPageSessionAttribute(key="confirmDeleteMsg" value="$resource{i18ncs.msg.JS.confirmDeleteNodes}");
setPageSessionAttribute(key="createLink" value="#{request.contextPath}/cluster/node/nodeNew.jsf");
setPageSessionAttribute(key="listLink" value="#{request.contextPath}/cluster/node/nodes.jsf");
setPageSessionAttribute(key="editLink" value="#{request.contextPath}/cluster/node/nodeEdit.jsf");
setPageSessionAttribute(key="tableTitle" value="$resource{i18ncs.nodes.TableTitle}");
createMap(result="#{pageSession.nodeInstanceMap}");
gf.listInstances(optionKeys={"standaloneonly" } optionValues={"true"}, instances="#{pageSession.standaloneList}");
/>
</event>
" <script type="text/javascript">admingui.nav.selectTreeNodeById(admingui.nav.TREE_ID + ":nodeTreeNode");</script>
<sun:form id="propertyForm">
#include "/common/shared/alertMsg.inc"
<sun:title id="propertyContentPage" title="$resource{i18ncs.nodes.PageTitle}" helpText="$resource{i18ncs.nodes.PageTitleHelp}" />
"<br /> <br />
<sun:table id="nodesTable" title="#{tableTitle}"
deselectMultipleButton="$boolean{true}"
deselectMultipleButtonOnClick="setTimeout('admingui.table.changeThreeTableButtons(\\\\\'#{pageSession.topActionGroup}\\\\\', \\\\\'#{pageSession.tableId}\\\\\');', 0)"
selectMultipleButton="$boolean{true}"
selectMultipleButtonOnClick="setTimeout('admingui.table.changeThreeTableButtons(\\\\\'#{pageSession.topActionGroup}\\\\\', \\\\\'#{pageSession.tableId}\\\\\');', 0)" >
<!afterCreate
getClientId(component="$this{component}" clientId=>$page{tableId});
/>
#include "/common/shared/listTableButtons.inc"
<sun:tableRowGroup id="rowGroup1" selected="#{td.value.selected}" data={"$attribute{listOfRows}"} sourceVar="td">
<!afterCreate
getClientId(component="$this{component}" clientId=>$page{tableRowGroupId});
/>
<sun:tableColumn headerText="$resource{i18n.common.SelectHeader}" selectId="select" rowHeader="$boolean{false}" id="col0">
<sun:checkbox id="select"
toolTip="$resource{i18n.common.select}"
selected="#{td.value.selected}"
selectedValue="$boolean{true}"
onClick="setTimeout('admingui.table.changeThreeTableButtons(\\\\\'#{pageSession.topActionGroup}\\\\\', \\\\\'#{pageSession.tableId}\\\\\'); admingui.table.initAllRows(\\\\\'#{pageSession.tableId}\\\\\');', 0);"
/>
</sun:tableColumn>
<sun:tableColumn headerText="$resource{i18n.common.name.header}" sort="name" rowHeader="$boolean{true}" valign="top" id="col1">
<event>
<!beforeEncode
setPageSessionAttribute(key="nodeName" value="#{td.value.name}");
/>
</event>
<sun:hyperlink id="link" text="#{td.value.name}" url="#{pageSession.editLink}?nodeName=#{td.value.name}" />
</sun:tableColumn>
<sun:tableColumn headerText="$resource{i18ncs.node.nodeHostCol}" sort="nodeHost" rowHeader="$boolean{false}" valign="top" id="col2">
<sun:staticText escape="true" id="nodeHostCol" value="#{td.value.nodeHost}" />
</sun:tableColumn>
<sun:tableColumn headerText="$resource{i18ncs.node.nodeTypeCol}" sort="type" rowHeader="$boolean{false}" valign="top" id="colType">
<sun:staticText escape="true" id="typeCol" value="#{td.value.type}" />
</sun:tableColumn>
<sun:tableColumn headerText="$resource{i18ncs.clusters.instanceCol}" rowHeader="$boolean{false}" id="col3">
<event>
<!beforeEncode
gf.listInstances(optionKeys={"id"} optionValues={"$pageSession{nodeName}"}, instances="#{requestScope.instanceList}" statusMap="#{requestScope.statusMap}");
mapPut(map="#{pageSession.nodeInstanceMap}" key="#{pageSession.nodeName}" value="#{requestScope.instanceList}");
/>
</event>
<if condition="#{requestScope.instanceList}">
<foreach key="instance" list="#{requestScope.instanceList}">
<event>
<!beforeEncode
setAttribute(key="status" value="#{requestScope.statusMap[ '${instance}']}");
gf.containedIn(list="#{pageSession.standaloneList}" testStr="#{requestScope.instance}" contain="#{requestScope.isStandalone}" );
urlencode(value="#{requestScope.instance}" encoding="UTF-8" result="#{pageSession.encodedInstanceName}");
if (#{requestScope.isStandalone}){
setAttribute(key="iurl" value="#{request.contextPath}/cluster/standalone/standaloneInstanceGeneral.jsf?instanceName=#{pageSession.encodedInstanceName}");
}
if ( !#{requestScope.isStandalone}){
gf.getClusterNameForInstance(instanceName="#{requestScope.instance}" clusterName="#{requestScope.clusterName}");
urlencode(value="#{requestScope.clusterName}" encoding="UTF-8" result="#{requestScope.encodedClusterName}");
setAttribute(key="iurl" value="#{request.contextPath}/cluster/cluster/clusterInstanceEdit.jsf?clusterName=#{requestScope.encodedClusterName}&instanceName=#{pageSession.encodedInstanceName}" );
}
setAttribute(key="statusString" value="$resource{i18nc.status.$attribute{status}} &nbsp; $resource{i18nc.status.image.$attribute{status}}");
/>
</event>
<sun:hyperlink url="#{requestScope.iurl}" text="#{requestScope.instance}" />
"&nbsp;&nbsp;&nbsp;
<staticText id="colStopped" value="#{requestScope.statusString}" />
"<br />
</foreach>
</if>
</sun:tableColumn>
<sun:tableColumn headerText="$resource{i18n.common.Action}" embeddedActions="#{false}" rowHeader="$boolean{true}" id="col4">
<sun:hyperlink id="pingLink" text="$resource{i18n.button.Ping}" rendered="#{td.value.hasPing}" >
<!command
gf.restRequest(endpoint="#{sessionScope.REST_URL}/nodes/node/#{td.value.name}/#{td.value.cmd}.json"
attrs="#{requestScope.attrMap}"
method="GET"
result="#{requestScope.result}");
if ("#{requestScope.result.data['exit_code']} = SUCCESS") {
prepareAlertMsg(type="success", summary="#{requestScope.result.data.message}");
}
if ("!#{requestScope.result.data['exit_code']} = SUCCESS") {
gf.handleError(detail="#{requestScope.result.data.message}");
}
/>
</sun:hyperlink>
</sun:tableColumn>
</sun:tableRowGroup>
</sun:table>
<sun:hidden id="helpKey" value="$resource{help_cluster.nodes}" />
</sun:form>
#include "/common/shared/changeButtonsJS.inc"
</define>
</composition>