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; }
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 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; }