/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can
* obtain a copy of the License at
* https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
* or packager/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at packager/legal/LICENSE.txt.
*
* GPL Classpath Exception:
* Oracle designates this particular file as subject to the "Classpath"
* exception as provided by Oracle in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package org.glassfish.admingui.devtests;
import java.util.List;
import org.junit.Assert;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
*
* @author anilam
*/
public class ClusterTest extends BaseSeleniumTestClass {
public static final String ID_CLUSTERS_TABLE = "propertyForm:clustersTable";
public static final String ID_CLUSTERS_TABLE_DELETE_BUTTON = "propertyForm:clustersTable:topActionsGroup1:button1";
public static final String ID_CLUSTERS_TABLE_SELECT_ALL_BUTTON = "propertyForm:clustersTable:_tableActionsTop:_selectMultipleButton";
public static final String ID_CLUSTERS_TABLE_STOP_BUTTON = "propertyForm:clustersTable:topActionsGroup1:button3";
public static final String TRIGGER_CLUSTER_NO_RUNNING_INSTANCES = "i18ncs.cluster.migrateEjbTimersNoRunningInstance";
public static final String TRIGGER_CONFIGURATION_TEXT = "i18n.configuration.pageTitleHelp";
public static final String TRIGGER_MIGRATE_EJB_TIMERS = "i18ncs.cluster.migrateEjbTimersHelp";
public static final String TRIGGER_CLUSTER_PAGE = "i18ncs.clusters.PageTitleHelp";
public static final String TRIGGER_NEW_CLUSTER_PAGE = "i18ncs.clusterNew.PageTitleHelp";
public static final String TRIGGER_CLUSTER_GENERAL_PAGE = "i18ncs.cluster.GeneralTitleHelp";
public static final String TRIGGER_CLUSTER_INSTANCE_NEW_PAGE = "i18ncs.clusterInstanceNew.PageTitleHelp";
public static final String TRIGGER_CLUSTER_INSTANCES_PAGE = "i18ncs.cluster.InstancesTitleHelp";
public static final String TRIGGER_CLUSTER_RESOURCES_PAGE = "i18ncs.cluster.ResourcesTitleHelp";
public static final String TRIGGER_CLUSTER_SYSTEM_PROPERTIES = "i18ncs.cluster.ClusterSystemProperties";
@Test
public void testStartAndStopClusterWithOneInstance() {
String clusterName = "clusterName" + generateRandomString();
String instanceName1 = "instanceName" + generateRandomString();
createCluster(clusterName, instanceName1);
// Verify cluster information in table
String prefix = getTableRowByValue(ID_CLUSTERS_TABLE, clusterName, "col1");
assertEquals(clusterName, getText(prefix + "col1:link"));
assertEquals(clusterName + "-config", getText(prefix + "col2:configlink"));
assertEquals(instanceName1, getText(prefix + "col3:iLink"));
// Start the cluster and verify
rowActionWithConfirm("propertyForm:clustersTable:topActionsGroup1:button2", ID_CLUSTERS_TABLE, clusterName);
waitForButtonDisabled("propertyForm:clustersTable:topActionsGroup1:button2");
prefix = getTableRowByValue(ID_CLUSTERS_TABLE, clusterName, "col1");
assertTrue((getText(prefix + "col3").indexOf("Running") != -1));
// Stop the cluster and verify
rowActionWithConfirm("propertyForm:clustersTable:topActionsGroup1:button3", ID_CLUSTERS_TABLE, clusterName);
waitForButtonDisabled("propertyForm:clustersTable:topActionsGroup1:button3");
assertTrue((getText(prefix + "col3").indexOf("Stopped") != -1));
deleteCluster(clusterName);
}
@Test
public void testMigrateEjbTimers() {
String clusterName = "clusterName" + generateRandomString();
String instanceName1 = "instanceName" + generateRandomString();
String instanceName2 = "instanceName" + generateRandomString();
createCluster(clusterName, instanceName1, instanceName2);
clickAndWait(getLinkIdByLinkText(ID_CLUSTERS_TABLE, clusterName), TRIGGER_CLUSTER_GENERAL_PAGE);
clickAndWait("propertyForm:clusterTabs:clusterInst", TRIGGER_CLUSTER_INSTANCES_PAGE);
startClusterInstance(instanceName1);
clickAndWait("propertyForm:clusterTabs:general", TRIGGER_CLUSTER_GENERAL_PAGE);
clickAndWait("propertyForm:migrateTimesButton", TRIGGER_MIGRATE_EJB_TIMERS);
Assert.assertFalse(isTextPresent(TRIGGER_CLUSTER_NO_RUNNING_INSTANCES));
selectDropdownOption("propertyForm:propertySheet:propertSectionTextField:clusterSourceProp:source", instanceName2);
selectDropdownOption("propertyForm:propertySheet:propertSectionTextField:clusterDestProp:dest", instanceName1);
clickAndWait("propertyForm:propertyContentPage:topButtons:saveButton", "Migrated 0 timers");
clickAndWait("propertyForm:clusterTabs:clusterInst", TRIGGER_CLUSTER_INSTANCES_PAGE);
// stopClusterInstance(instanceName1);
deleteCluster(clusterName);
}
@Test
public void verifyClusterGeneralInformationPage() {
String clusterName = "clusterName" + generateRandomString();
String instanceName1 = "instanceName" + generateRandomString();
String instanceName2 = "instanceName" + generateRandomString();
createCluster(clusterName, instanceName1, instanceName2);
clickAndWait(getLinkIdByLinkText(ID_CLUSTERS_TABLE, clusterName), TRIGGER_CLUSTER_GENERAL_PAGE);
assertEquals(clusterName, getText("propertyForm:propertySheet:propertSectionTextField:clusterNameProp:clusterName"));
//ensure config link is fine.
//TODO: how to ensure thats the correct configuration page ?
assertEquals(clusterName + "-config", getText("propertyForm:propertySheet:propertSectionTextField:configNameProp:configlink"));
clickAndWait("propertyForm:propertySheet:propertSectionTextField:configNameProp:configlink", TRIGGER_CONFIGURATION_TEXT);
//Back to the Clusters page, ensure default value is there.
clickAndWait("treeForm:tree:clusterTreeNode:clusterTreeNode_link", TRIGGER_CLUSTER_PAGE);
clickAndWait(getLinkIdByLinkText(ID_CLUSTERS_TABLE, clusterName), TRIGGER_CLUSTER_GENERAL_PAGE);
//TODO: should try to use the String key
assertEquals("2 instances are stopped", getText("propertyForm:propertySheet:propertSectionTextField:instanceStatusProp:instanceStatusStopped"));
//change value
setFieldValue("propertyForm:propertySheet:propertSectionTextField:gmsMulticastPort:gmsMulticastPort", "12345");
setFieldValue("propertyForm:propertySheet:propertSectionTextField:gmsMulticastAddress:gmsMulticastAddress", "123.234.456.88");
setFieldValue("propertyForm:propertySheet:propertSectionTextField:GmsBindInterfaceAddress:GmsBindInterfaceAddress", "${ABCDE}");
clearCheckbox("propertyForm:propertySheet:propertSectionTextField:gmsEnabledProp:gmscb");
clickAndWait("propertyForm:propertyContentPage:topButtons:saveButton", TRIGGER_NEW_VALUES_SAVED);
//ensure value is saved correctly
assertEquals("12345", getFieldValue("propertyForm:propertySheet:propertSectionTextField:gmsMulticastPort:gmsMulticastPort"));
assertEquals("123.234.456.88", getFieldValue("propertyForm:propertySheet:propertSectionTextField:gmsMulticastAddress:gmsMulticastAddress"));
assertEquals("${ABCDE}", getFieldValue("propertyForm:propertySheet:propertSectionTextField:GmsBindInterfaceAddress:GmsBindInterfaceAddress"));
assertEquals(false, isChecked("propertyForm:propertySheet:propertSectionTextField:gmsEnabledProp:gmscb"));
deleteCluster(clusterName);
}
@Test
public void testClusterInstancesTab() {
String clusterName = "clusterName" + generateRandomString();
String instanceName1 = "instanceName" + generateRandomString();
String instanceName2 = "instanceName" + generateRandomString();
createCluster(clusterName, instanceName1);
gotoClusterInstancesPage(clusterName);
assertTrue(isTextPresent(instanceName1));
clickAndWait("propertyForm:instancesTable:topActionsGroup1:newButton", TRIGGER_CLUSTER_INSTANCE_NEW_PAGE);
setFieldValue("propertyForm:propertySheet:propertSectionTextField:NameTextProp:NameText", instanceName2);
clickAndWait("propertyForm:propertyContentPage:topButtons:newButton", TRIGGER_CLUSTER_INSTANCES_PAGE);
assertTrue(isTextPresent(instanceName2));
deleteCluster(clusterName);
}
@Test
public void testProperties() {
String clusterName = "clusterName" + generateRandomString();
String instanceName1 = "instanceName" + generateRandomString();
createCluster(clusterName, instanceName1);
clickAndWait(getLinkIdByLinkText(ID_CLUSTERS_TABLE, clusterName), TRIGGER_CLUSTER_GENERAL_PAGE);
assertEquals(clusterName, getText("propertyForm:propertySheet:propertSectionTextField:clusterNameProp:clusterName"));
// Go to properties tab
clickAndWait("propertyForm:clusterTabs:clusterProps", TRIGGER_CLUSTER_SYSTEM_PROPERTIES);
int sysPropCount = addTableRow("propertyForm:sysPropsTable", "propertyForm:sysPropsTable:topActionsGroup1:addSharedTableButton");
setFieldValue("propertyForm:sysPropsTable:rowGroup1:0:col2:col1St", "property" + generateRandomString());
setFieldValue("propertyForm:sysPropsTable:rowGroup1:0:overrideValCol:overrideVal", "value");
clickAndWait("propertyForm:clusterSysPropsPage:topButtons:topButtons:saveButton", TRIGGER_NEW_VALUES_SAVED);
// Go to cluster props page
pressButton("propertyForm:clusterTabs:clusterProps:clusterInstanceProps");
waitForPageLoad(TRIGGER_CLUSTER_SYSTEM_PROPERTIES, TIMEOUT, true);
int clusterPropCount = addTableRow("propertyForm:basicTable", "propertyForm:basicTable:topActionsGroup1:addSharedTableButton");
setFieldValue("propertyForm:basicTable:rowGroup1:0:col2:col1St", "property" + generateRandomString());
setFieldValue("propertyForm:basicTable:rowGroup1:0:col3:col1St", "value");
clickAndWait("propertyForm:propertyContentPage:topButtons:saveButton", TRIGGER_NEW_VALUES_SAVED);
// Verify that properties were persisted
clickAndWait("propertyForm:clusterTabs:clusterProps:clusterSystemProps", TRIGGER_CLUSTER_SYSTEM_PROPERTIES);
assertTableRowCount("propertyForm:sysPropsTable", sysPropCount);
pressButton("propertyForm:clusterTabs:clusterProps:clusterInstanceProps");
waitForPageLoad(TRIGGER_CLUSTER_SYSTEM_PROPERTIES, TIMEOUT, true);
assertTableRowCount("propertyForm:basicTable", clusterPropCount);
deleteCluster(clusterName);
}
@Test
public void testMultiDeleteClusters() {
String clusterName1 = "cluster" + generateRandomString();
String clusterName2 = "cluster" + generateRandomString();
createCluster(clusterName1);
createCluster(clusterName2);
deleteAllClusters();
assertEquals(0, getTableRowsByValue(ID_CLUSTERS_TABLE, clusterName1, "col1").size());
assertEquals(0, getTableRowsByValue(ID_CLUSTERS_TABLE, clusterName2, "col1").size());
}
@Test
public void testClusterWithJmsOptions() {
String clusterName = "cluster" + generateRandomString();
try {
gotoClusterPage();
clickAndWait("propertyForm:clustersTable:topActionsGroup1:newButton", TRIGGER_NEW_CLUSTER_PAGE);
setFieldValue("propertyForm:propertySheet:propertySectionTextField:NameTextProp:NameText", clusterName);
markCheckbox("propertyForm:propertySheet:propertySectionTextField:jmsConfigTypeProp:optCustom:optCustom_label");
waitForPageLoad("i18ncs.cluster.jms.ClusterTypeName", TIMEOUT);
clickAndWait("propertyForm:jmsTypePropertySheet:jmsTypeSection:jmsTypeProp:optLocal", "i18ncs.cluster.jms.mqClusterTypeEnhanced");
selenium.check("propertyForm:jmsPropertySheet:configureJmsClusterSection:ClusterTypeProp:optConventional");
// selectDropdownOption("propertyForm:jmsPropertySheet:configureJmsClusterSection:ClusterTypeProp:clusterType", "Conventional");
selectDropdownOption("propertyForm:jmsPropertySheet:configureJmsClusterSection:ConfigStoreTypeProp:configStoreType", "Master Broker");
selectDropdownOption("propertyForm:jmsPropertySheet:configureJmsClusterSection:MessageStoreTypeProp:messageStoreType", "File");
setFieldValue("propertyForm:jmsPropertySheet:configureJmsClusterSection:PropertiesProp:properties", "prop1=value1:prop2=value2\\:with\\:colons:prop3=value3");
addTableRow("propertyForm:basicTable", "propertyForm:basicTable:topActionsGroup1:addSharedTableButton",
"Server Instances to Be Created");
setFieldValue("propertyForm:basicTable:rowGroup1:0:col2:name", clusterName + "in1");
addTableRow("propertyForm:basicTable", "propertyForm:basicTable:topActionsGroup1:addSharedTableButton",
"Server Instances to Be Created");
setFieldValue("propertyForm:basicTable:rowGroup1:0:col2:name", clusterName + "in2");
clickAndWait("propertyForm:propertyContentPage:topButtons:newButton", TRIGGER_CLUSTER_PAGE);
assertTrue(isTextPresent(clusterName));
} finally {
deleteCluster(clusterName);
}
}
@Test
public void testClusterWithEnhancedJmsOptions() {
String clusterName = "cluster" + generateRandomString();
try {
gotoClusterPage();
clickAndWait("propertyForm:clustersTable:topActionsGroup1:newButton", TRIGGER_NEW_CLUSTER_PAGE);
setFieldValue("propertyForm:propertySheet:propertySectionTextField:NameTextProp:NameText", clusterName);
markCheckbox("propertyForm:propertySheet:propertySectionTextField:jmsConfigTypeProp:optCustom:optCustom_label");
waitForPageLoad("i18ncs.cluster.jms.ClusterTypeName", TIMEOUT);
clickAndWait("propertyForm:jmsTypePropertySheet:jmsTypeSection:jmsTypeProp:optLocal", "i18ncs.cluster.jms.mqClusterTypeEnhanced");
selenium.check("propertyForm:jmsPropertySheet:configureJmsClusterSection:ClusterTypeProp:optEnhanced");
setFieldValue("propertyForm:jmsPropertySheet:configureJmsClusterSection:DbVendorProp:dbVendor", "mysql");
setFieldValue("propertyForm:jmsPropertySheet:configureJmsClusterSection:DbUserProp:dbUser", "root");
setFieldValue("propertyForm:jmsPropertySheet:configureJmsClusterSection:DbUrlProp:dbUrl", "jdbc:mysql://hostname:portno/dbname?password=xxx");
addTableRow("propertyForm:basicTable", "propertyForm:basicTable:topActionsGroup1:addSharedTableButton",
"Server Instances to Be Created");
setFieldValue("propertyForm:basicTable:rowGroup1:0:col2:name", clusterName + "in1");
addTableRow("propertyForm:basicTable", "propertyForm:basicTable:topActionsGroup1:addSharedTableButton",
"Server Instances to Be Created");
setFieldValue("propertyForm:basicTable:rowGroup1:0:col2:name", clusterName + "in2");
clickAndWait("propertyForm:propertyContentPage:topButtons:newButton", TRIGGER_CLUSTER_PAGE);
assertTrue(isTextPresent(clusterName));
} finally {
deleteCluster(clusterName);
}
}
@Test
public void testClusterWithBadJmsOptions() {
String clusterName = "cluster" + generateRandomString();
gotoClusterPage();
clickAndWait("propertyForm:clustersTable:topActionsGroup1:newButton", TRIGGER_NEW_CLUSTER_PAGE);
setFieldValue("propertyForm:propertySheet:propertySectionTextField:NameTextProp:NameText", clusterName);
markCheckbox("propertyForm:propertySheet:propertySectionTextField:jmsConfigTypeProp:optCustom:optCustom_label");
waitForPageLoad("i18ncs.cluster.jms.ClusterTypeName", TIMEOUT);
clickAndWait("propertyForm:jmsTypePropertySheet:jmsTypeSection:jmsTypeProp:optLocal", "i18ncs.cluster.jms.mqClusterTypeEnhanced");
selenium.check("propertyForm:jmsPropertySheet:configureJmsClusterSection:ClusterTypeProp:optConventional");
// selectDropdownOption("propertyForm:jmsPropertySheet:configureJmsClusterSection:ClusterTypeProp:clusterType", "Conventional");
selectDropdownOption("propertyForm:jmsPropertySheet:configureJmsClusterSection:ConfigStoreTypeProp:configStoreType", "Master Broker");
selectDropdownOption("propertyForm:jmsPropertySheet:configureJmsClusterSection:MessageStoreTypeProp:messageStoreType", "JDBC");
addTableRow("propertyForm:basicTable", "propertyForm:basicTable:topActionsGroup1:addSharedTableButton",
"Server Instances to Be Created");
setFieldValue("propertyForm:basicTable:rowGroup1:0:col2:name", clusterName + "in1");
addTableRow("propertyForm:basicTable", "propertyForm:basicTable:topActionsGroup1:addSharedTableButton",
"Server Instances to Be Created");
setFieldValue("propertyForm:basicTable:rowGroup1:0:col2:name", clusterName + "in2");
clickAndWait("propertyForm:propertyContentPage:topButtons:newButton", "An error occurred");
gotoClusterPage();
assertFalse(isTextPresent(clusterName));
}
public void gotoClusterPage() {
reset();
clickAndWait("treeForm:tree:clusterTreeNode:clusterTreeNode_link", TRIGGER_CLUSTER_PAGE);
}
public void gotoClusterInstancesPage(String clusterName) {
gotoClusterPage();
clickAndWait(getLinkIdByLinkText(ID_CLUSTERS_TABLE, clusterName), TRIGGER_CLUSTER_GENERAL_PAGE);
clickAndWait("propertyForm:clusterTabs:clusterInst", TRIGGER_CLUSTER_INSTANCES_PAGE);
}
@Test
public void testClusterResourcesPage() {
final String jndiName = "jdbcResource" + generateRandomString();
String target = "cluster" + generateRandomString();
final String description = "devtest test for cluster->resources page- " + jndiName;
final String tableID = "propertyForm:resourcesTable";
JdbcTest jdbcTest = new JdbcTest();
jdbcTest.createJDBCResource(jndiName, description, target, MonitoringTest.TARGET_CLUSTER_TYPE);
clickAndWait("treeForm:tree:clusterTreeNode:clusterTreeNode_link", TRIGGER_CLUSTER_PAGE);
clickAndWait(getLinkIdByLinkText(ID_CLUSTERS_TABLE, target), TRIGGER_CLUSTER_GENERAL_PAGE);
clickAndWait("propertyForm:clusterTabs:clusterResources", TRIGGER_CLUSTER_RESOURCES_PAGE);
assertTrue(isTextPresent(jndiName));
int jdbcCount = getTableRowCountByValue(tableID, "JDBC Resources", "col3:type");
int customCount = getTableRowCountByValue(tableID, "Custom Resources", "col3:type");
EnterpriseServerTest adminServerTest = new EnterpriseServerTest();
selectDropdownOption("propertyForm:resourcesTable:topActionsGroup1:filter_list", "Custom Resources");
adminServerTest.waitForTableRowCount(tableID, customCount);
selectDropdownOption("propertyForm:resourcesTable:topActionsGroup1:filter_list", "JDBC Resources");
adminServerTest.waitForTableRowCount(tableID, jdbcCount);
selectTableRowByValue("propertyForm:resourcesTable", jndiName);
waitForButtonEnabled("propertyForm:resourcesTable:topActionsGroup1:button1");
pressButton("propertyForm:resourcesTable:topActionsGroup1:button1");
waitForButtonDisabled("propertyForm:resourcesTable:topActionsGroup1:button1");
jdbcTest.deleteJDBCResource(jndiName, target, MonitoringTest.TARGET_CLUSTER_TYPE);
}
public void createCluster(String clusterName, String... instanceNames) {
gotoClusterPage();
clickAndWait("propertyForm:clustersTable:topActionsGroup1:newButton", TRIGGER_NEW_CLUSTER_PAGE);
setFieldValue("propertyForm:propertySheet:propertySectionTextField:NameTextProp:NameText", clusterName);
if (instanceNames != null) {
for (String instanceName : instanceNames) {
if (instanceName != null && !instanceName.equals("")) {
addTableRow("propertyForm:basicTable", "propertyForm:basicTable:topActionsGroup1:addSharedTableButton",
"Server Instances to Be Created");
setFieldValue("propertyForm:basicTable:rowGroup1:0:col2:name", instanceName);
// createClusterInstance(clusterName, instanceName);
}
}
}
clickAndWait("propertyForm:propertyContentPage:topButtons:newButton", TRIGGER_CLUSTER_PAGE);
}
public void createClusterInstance(String clusterName, String instanceName) {
gotoClusterInstancesPage(clusterName);
clickAndWait("propertyForm:instancesTable:topActionsGroup1:newButton", "Name of the node machine on which the server instance will reside");
setFieldValue("propertyForm:propertySheet:propertSectionTextField:NameTextProp:NameText", instanceName);
clickAndWait("propertyForm:propertyContentPage:topButtons:newButton", TRIGGER_CLUSTER_INSTANCES_PAGE);
Assert.assertNotNull(this.getTableRowByValue("propertyForm:instancesTable", instanceName, "col1"));
}
public void deleteCluster(String clusterName) {
gotoClusterPage();
rowActionWithConfirm(ID_CLUSTERS_TABLE_STOP_BUTTON, ID_CLUSTERS_TABLE, clusterName);
deleteRow(ID_CLUSTERS_TABLE_DELETE_BUTTON, ID_CLUSTERS_TABLE, clusterName);
}
public void deleteAllClusters() {
gotoClusterPage();
if (getTableRowCount(ID_CLUSTERS_TABLE) == 0) {
return;
}
List<String> rows = getTableRowsByValue(ID_CLUSTERS_TABLE, "Running", "col3");
if (!rows.isEmpty()) {
// Stop all instances
for (String row : rows) {
String clusterName = getText(row + ":col1");
this.selectTableRowByValue(ID_CLUSTERS_TABLE, clusterName);
//rowActionWithConfirm(ID_CLUSTERS_TABLE_STOP_BUTTON, ID_CLUSTERS_TABLE, clusterName);
// selenium.click(ID_CLUSTERS_TABLE_SELECT_ALL_BUTTON);
// waitForButtonEnabled(ID_CLUSTERS_TABLE_STOP_BUTTON);
// selenium.chooseOkOnNextConfirmation();
// selenium.click(ID_CLUSTERS_TABLE_STOP_BUTTON);
// if (selenium.isConfirmationPresent()) {
// selenium.getConfirmation();
// }
// waitForButtonDisabled(ID_CLUSTERS_TABLE_STOP_BUTTON);
}
waitForButtonEnabled(ID_CLUSTERS_TABLE_STOP_BUTTON);
chooseOkOnNextConfirmation();
pressButton(ID_CLUSTERS_TABLE_STOP_BUTTON);
if (isConfirmationPresent()) {
getConfirmation();
}
waitForButtonDisabled(ID_CLUSTERS_TABLE_STOP_BUTTON);
}
deleteAllTableRows(ID_CLUSTERS_TABLE);
// Delete all clusters
// FIXME: We're iterating through these one at a time, because we are occasionally getting a
// "false" failure, where a cluster was deleted, but the server was unable to delete
// some files, so it returns an error, which causes the loop in deleteAllTableRows()
// to exit early
// List<String> clusters = getTableColumnValues(ID_CLUSTERS_TABLE, "col1");
// for (String clusterName : clusters) {
//// gotoClusterPage();
// rowActionWithConfirm(ID_CLUSTERS_TABLE_DELETE_BUTTON, ID_CLUSTERS_TABLE, clusterName);
// }
assertTableRowCount(ID_CLUSTERS_TABLE, 0);
}
public void startClusterInstance(String instanceName) {
rowActionWithConfirm("propertyForm:instancesTable:topActionsGroup1:button2", "propertyForm:instancesTable", instanceName);
waitForCondition("document.getElementById('propertyForm:instancesTable:topActionsGroup1:button2').value != 'Processing...'", 300000);
}
public void stopClusterInstance(String instanceName) {
rowActionWithConfirm("propertyForm:instancesTable:topActionsGroup1:button3", "propertyForm:instancesTable", instanceName);
waitForCondition("document.getElementById('propertyForm:instancesTable:topActionsGroup1:button3').value != 'Processing...'", 300000);
}
public void stopAllClusterInstances(String clusterName) {
gotoClusterInstancesPage(clusterName);
if (isTextPresent("Server Instances (0)")) {
return;
}
if (selectTableRowsByValue("propertyForm:instancesTable", "Running", "col0", "col6") > 0) {
waitForButtonEnabled("propertyForm:instancesTable:topActionsGroup1:button3");
chooseOkOnNextConfirmation();
pressButton("propertyForm:instancesTable:topActionsGroup1:button3");
if (isConfirmationPresent()) {
getConfirmation();
}
this.waitForButtonDisabled("propertyForm:instancesTable:topActionsGroup1:button3");
}
}
}