private boolean moveServerToUpMode(ServerMap serverMap) { String serverStatus = GuiTables.getServer(storageSahiTasks, serverMap.getServerName()).get(GuiTables.STATUS); if (!serverStatus.equalsIgnoreCase(GuiTables.Status.UP.get())) { storageSahiTasks.div("Activate").click(); } HashMap<String, String> row = null; row = GuiTables.waitAndGetExpectedResult( storageSahiTasks, GuiTables.TableType.SERVERS, serverMap.getServerName(), GuiTables.STATUS, GuiTables.Status.UP.get(), 1000 * 5, 10); if (!row.get(GuiTables.STATUS).equalsIgnoreCase(GuiTables.Status.UP.get())) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + serverMap.getServerName() + "(" + serverMap.getServerHostIP() + ")] is not in " + GuiTables.Status.UP.get() + " mode!"); return false; } return true; }
public HashMap<String, String> moveServerToMaintenanceMode(ServerMap serverMap) { Assert.assertTrue( new ServerTab(storageSahiTasks).getTable().waitUntilVisible(), "server table failed to display"); String serverStatus = GuiTables.getServer(storageSahiTasks, serverMap.getServerName()).get(GuiTables.STATUS); if (!serverStatus.equalsIgnoreCase(GuiTables.Status.MAINTENANCE.get())) { storageSahiTasks .div(serverMap.getServerHostIP()) .in(new MainTabPanel(storageSahiTasks).getElementStub()) .click(); storageSahiTasks .div("MainTabHostView_table_Maintenance") .in(new MainTabPanel(storageSahiTasks).getElementStub()) .click(); storageSahiTasks.div("DefaultConfirmationPopupView_OnMaintenance").click(); } HashMap<String, String> row = null; row = GuiTables.waitAndGetExpectedResult( storageSahiTasks, GuiTables.TableType.SERVERS, serverMap.getServerName(), GuiTables.STATUS, GuiTables.Status.MAINTENANCE.get(), 1000 * 5, 10); if (!row.get(GuiTables.STATUS).equalsIgnoreCase(GuiTables.Status.MAINTENANCE.get())) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + serverMap.getServerName() + "(" + serverMap.getServerHostIP() + ")] is not in " + GuiTables.Status.MAINTENANCE.get() + " mode!"); return null; } return row; }
private void editServer(ServerMap server, String expectedServerName, String expectedClusterName) { storageSahiTasks.div(server.getServerHostIP()).click(); // Click on Server storageSahiTasks.div("MainTabHostView_table_Edit").click(); storageSahiTasks.textbox("HostPopupView_name").setValue(expectedServerName); if (expectedClusterName != null) { storageSahiTasks.select("HostPopupView_cluster").choose(expectedClusterName); } for (int i = 0; i < 5; i++) { if (storageSahiTasks.div("OK").exists()) { storageSahiTasks._logger.log( Level.INFO, "Server [" + server.getServerName() + "] click OK."); storageSahiTasks.div("OK").click(); } else { break; } } }
public void untagServer(ServerMap server, Tag tag) { storageSahiTasks.selectPage(server.getResourceLocation()); AssignTagDialog dialog = openAssignTagDialog(server); dialog.getTagList().openAllTags(); dialog.uncheckItemInTagList(tag); dialog.getOkButton().getElementStub().click(); Assert.assertTrue(dialog.waitUntilNotVisible(), "assign tag dialog did close"); }
/** * @param server * @return * @throws ExecutionException */ private AssignTagDialog openAssignTagDialog(ServerMap server) throws ExecutionException { storageSahiTasks.div(server.getServerHostIP()).click(); // Click on Server storageSahiTasks.div(server.getServerHostIP()).rightClick(); // Click on Server new ContextMenu(storageSahiTasks) .getItem("Assign Tags") .toElementStub(storageSahiTasks) .click(); AssignTagDialog dialog = new AssignTagDialog(storageSahiTasks); dialog.waitUntilVisible(); return dialog; }
public boolean renameServerInUpState(ServerMap server, String newServerName) { boolean foundServer = false; if (!storageSahiTasks.selectPage(server.getResourceLocation())) { return false; } storageSahiTasks.clickRefresh("Host"); String serverStatus = GuiTables.getServer(storageSahiTasks, server.getServerName()).get(GuiTables.STATUS); if (!serverStatus.equalsIgnoreCase(GuiTables.Status.UP.get())) { storageSahiTasks._logger.log( Level.WARNING, "Server [" + server.getServerName() + "] not " + GuiTables.Status.UP.get() + "!"); return false; } editServer(server, newServerName, null); LinkedList<HashMap<String, String>> serversTable = GuiTables.getServersTable(storageSahiTasks); for (HashMap<String, String> row : serversTable) { // Find the desired row by server's IP if (row.get(GuiTables.HOST_IP).equals(server.getServerHostIP())) { if (!row.get(GuiTables.NAME).equals(newServerName)) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + row.get(GuiTables.NAME) + "] does not contain expected new server name [" + newServerName + "]!"); editServer(server, server.getServerName(), null); return false; } foundServer = true; } } if (!foundServer) { storageSahiTasks._logger.log( Level.WARNING, "Server[expectedServerName] not found in server table!"); editServer(server, server.getServerName(), null); return false; } // Return back to original name, as not to impact any subsequent tests that depend on original // name. editServer(server, server.getServerName(), null); return true; }
public boolean removeServerNotInMaintenace(ServerMap serverMap) { if (!storageSahiTasks.selectPage(serverMap.getResourceLocation())) { return false; } waitForServerTableToLoad(); storageSahiTasks.div(serverMap.getServerHostIP()).click(); // Click on Server String serverStatus = GuiTables.getServer(storageSahiTasks, serverMap.getServerName()).get(GuiTables.STATUS); if (serverStatus.equalsIgnoreCase(GuiTables.Status.MAINTENANCE.get())) { storageSahiTasks._logger.log( Level.WARNING, "Server [" + serverMap.getServerName() + "] is already in " + GuiTables.Status.MAINTENANCE.get() + "!"); return false; } storageSahiTasks.div("MainTabHostView_table_Remove").click(); // Click Remove button if (storageSahiTasks .div("/" + "Are you sure you want to remove the following Server(s)?" + "/") .exists()) { storageSahiTasks._logger.log( Level.WARNING, "Server [" + serverMap.getServerName() + "] Remove Server pop-up unexpectedly appeared!"); storageSahiTasks.div("RemoveConfirmationPopupView_Cancel").click(); return false; } else { storageSahiTasks._logger.log( Level.FINE, "Server [" + serverMap.getServerName() + "] Remove Server pop-up did not appear!"); } return true; }
public boolean waitForServerUpStatus(ServerMap serverMap) { HashMap<String, String> row = null; row = GuiTables.waitAndGetExpectedResult( storageSahiTasks, GuiTables.TableType.SERVERS, serverMap.getServerName(), GuiTables.STATUS, GuiTables.Status.UP.get(), 1000, 30); Assert.assertTrue(row != null, "server row exists in server table"); if (!row.get(GuiTables.STATUS).equalsIgnoreCase(GuiTables.Status.UP.get())) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + serverMap.getServerName() + "(" + serverMap.getServerHostIP() + ")] is not " + GuiTables.Status.UP.get() + "!"); return false; } if (!storageSahiTasks.div(serverMap.getServerHostIP()).exists()) { storageSahiTasks._logger.log( Level.WARNING, "Server [" + serverMap.getServerName() + "(" + serverMap.getServerHostIP() + ")] is not available on the list!"); return false; } return true; }
/* * Adds Server on the specified Cluster */ public boolean addServer(ServerMap serverMap) { storageSahiTasks.selectPage(serverMap.getResourceLocation()); storageSahiTasks.clickRefresh("Host"); if (serverMap.isPositive()) { if (storageSahiTasks.div(serverMap.getServerName()).exists()) { failTest("Server [" + serverMap.getServerName() + "] is already on the list!"); return false; } } else { if (serverMap.getServerAlreadyOnList()) { if (!storageSahiTasks.div(serverMap.getServerName()).exists()) { failTest( "Pre-Requirement not met: Server [" + serverMap.getServerName() + "] not available on the list!"); return false; } } else { if (storageSahiTasks.div(serverMap.getServerName()).exists()) { failTest( "Pre-Requirement not met: Server [" + serverMap.getServerName() + "] already on the list!"); return false; } } } storageSahiTasks.div("MainTabHostView_table_New").click(); storageSahiTasks.select("HostPopupView_cluster").choose(serverMap.getClusterName()); storageSahiTasks.textbox("HostPopupView_name").setValue(serverMap.getServerName()); storageSahiTasks.textbox("HostPopupView_host").setValue(serverMap.getServerHostIP()); storageSahiTasks.password("HostPopupView_userPassword").setValue(serverMap.getServerPassword()); // storageSahiTasks.div("HostPopupView_OnSaveFalse").click(); // storageSahiTasks.clickRefresh("Host"); for (int i = 0; i < 10; i++) { if (storageSahiTasks.div("OK").exists()) { storageSahiTasks.div("OK").click(); } } if (serverMap.isPositive()) { if (!waitForServerUpStatus(serverMap)) { failTest("timed out waiting for sever status to be in Up status"); return false; } } else { if (storageSahiTasks.div("/" + serverMap.getErrorMsg() + "/i").exists()) { storageSahiTasks._logger.log( Level.FINE, "Volume [" + serverMap.getServerName() + "] server error pop-up appeared!"); storageSahiTasks.closePopup("Close"); storageSahiTasks.div("HostPopupView_Cancel").click(); return true; } else { closeErrorDialogIfExists(); cancelServerCreateDialogIfExists(); failTest("Volume [" + serverMap.getServerName() + "] server error pop-up did not appear!"); return false; } } return true; }
public void tagServer(ServerMap server, Tag tag) { storageSahiTasks.selectPage(server.getResourceLocation()); AssignTagDialog dialog = openAssignTagDialog(server); dialog.assignTags(tag); }
public boolean editServerInMaintenanceStateThatHasVolumes(ServerMap server) { String expectedClusterName = "Default"; String expectedServerName = server.getServerName() + System.currentTimeMillis(); Assert.assertTrue( volumeTasks.doesServerHaveVolumes(server), "Server [" + server.getServerName() + "] has no volumes!"); if (!storageSahiTasks.selectPage(server.getResourceLocation())) { return false; } storageSahiTasks.clickRefresh("Host"); if (moveServerToMaintenanceMode(server) == null) { return false; } for (int i = 0; i < 3; i++) { storageSahiTasks.clickRefresh("Host"); } String serverStatus = GuiTables.getServer(storageSahiTasks, server.getServerName()).get(GuiTables.STATUS); if (!serverStatus.equalsIgnoreCase(GuiTables.Status.MAINTENANCE.get())) { storageSahiTasks._logger.log( Level.WARNING, "Server [" + server.getServerName() + "] not in " + GuiTables.Status.MAINTENANCE.get() + "!"); return false; } // Validate that Server name is editable editServer(server, expectedServerName, server.getClusterName()); if (!storageSahiTasks.div("/" + expectedServerName + "/").exists()) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + server.getServerName() + "] name not changed!"); return false; } else { // Return to original name editServer(server, server.getServerName(), server.getClusterName()); } // Validate that Cluster is not editable editServer(server, server.getServerName(), expectedClusterName); if (!storageSahiTasks.div("/" + CANNOT_EDIT_HOST_THAT_HAS_VOLUMES + "/").exists()) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + server.getServerName() + "] does not contain expected error message!"); if (storageSahiTasks.div("Close").exists()) { storageSahiTasks.div("Close").click(); } clickCancelButton(); return false; } storageSahiTasks.div("Close").click(); clickCancelButton(); // Return server to Up state moveServerToUpMode(server); return true; }
public boolean editServerInMaintenanceState(ServerMap server) { String expectedServerName = server.getServerName() + System.currentTimeMillis(); String expectedClusterName = "Default"; boolean foundServer = false; if (!storageSahiTasks.selectPage(server.getResourceLocation())) { return false; } storageSahiTasks.clickRefresh("Host"); if (moveServerToMaintenanceMode(server) == null) { return false; } String serverStatus = GuiTables.getServer(storageSahiTasks, server.getServerName()).get(GuiTables.STATUS); if (!serverStatus.equalsIgnoreCase(GuiTables.Status.MAINTENANCE.get())) { storageSahiTasks._logger.log( Level.WARNING, "Server [" + server.getServerName() + "] not in " + GuiTables.Status.MAINTENANCE.get() + "!"); return false; } editServer(server, expectedServerName, expectedClusterName); LinkedList<HashMap<String, String>> serversTable = GuiTables.getServersTable(storageSahiTasks); for (HashMap<String, String> row : serversTable) { // Find the desired row by server's IP if (row.get(GuiTables.HOST_IP).equals(server.getServerHostIP())) { if (!row.get(GuiTables.NAME).equals(expectedServerName)) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + row.get(GuiTables.NAME) + "] does not contain expected new server name [" + expectedServerName + "]!"); editServer(server, server.getServerName(), null); return false; } if (!row.get(GuiTables.CLUSTER).equals(expectedClusterName)) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + row.get(GuiTables.NAME) + "] does not contain expected new cluster name [" + expectedClusterName + "]!"); editServer(server, server.getServerName(), null); return false; } foundServer = true; } } if (!foundServer) { storageSahiTasks._logger.log( Level.WARNING, "Server[expectedServerName] not found in server table!"); editServer(server, server.getServerName(), null); return false; } // Return back to original name, as not to impact any subsequent tests that depend on original // name. editServer(server, server.getServerName(), server.getClusterName()); return true; }
/* * Removes the specified server */ public boolean removeServer(ServerMap serverMap) { int wait = 1000; int retryCount = 35; if (!storageSahiTasks.selectPage(serverMap.getResourceLocation())) { return false; } storageSahiTasks.clickRefresh("Host"); HashMap<String, String> row = moveServerToMaintenanceMode(serverMap); if (row == null) { return false; } for (int y = 0; y < 3; y++) { storageSahiTasks.div(serverMap.getServerHostIP()).click(); storageSahiTasks.div("MainTabHostView_table_Remove").click(); storageSahiTasks.div("RemoveConfirmationPopupView_OnRemove").click(); storageSahiTasks.waitFor(5000); if (storageSahiTasks .div("Cannot remove Host. Related operation is currently in progress") .exists()) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + serverMap.getServerName() + "(" + serverMap.getServerHostIP() + ")] Error: operation in progress!"); storageSahiTasks.closePopup("Close"); } else { break; } } if (serverMap.getErrorMsg() != null) { // Server having bricks should not be removed. if (storageSahiTasks.div(serverMap.getErrorMsg()).exists()) { storageSahiTasks.closePopup("Close"); // this.div(serverMap.getServerName()).click(); storageSahiTasks.div(row.get(GuiTables.NAME)).click(); storageSahiTasks.div("Activate").click(); return true; } } storageSahiTasks.clickRefresh("Host"); for (int x = 0; x < retryCount; x++) { if (!storageSahiTasks.div(serverMap.getServerHostIP()).exists()) { break; } else { storageSahiTasks.wait(wait, retryCount, x); } } if (storageSahiTasks.div(serverMap.getServerHostIP()).exists()) { storageSahiTasks._logger.log( Level.WARNING, "Server[" + serverMap.getServerName() + "(" + serverMap.getServerHostIP() + ")] is available on the list!"); return false; } return true; }