private void waitForManagementWebServices( final boolean isSecureConnection, final String username, final String password, final Integer restPort, final Integer webuiPort, final long end, final MachineDetails[] servers) throws MalformedURLException, URISyntaxException, InterruptedException, TimeoutException, CLIException { // Wait for rest to become available // When the rest gateway is up and running, the cloud is ready to go for (final MachineDetails server : servers) { String ipAddress = null; if (cloud.getConfiguration().isBootstrapManagementOnPublicIp()) { ipAddress = server.getPublicAddress(); } else { ipAddress = server.getPrivateAddress(); } final URL restAdminUrl = new URI( ShellUtils.getRestProtocol(isSecureConnection), null, ipAddress, restPort, null, null, null) .toURL(); final URL webUIUrl = new URI( ShellUtils.getRestProtocol(isSecureConnection), null, ipAddress, webuiPort, null, null, null) .toURL(); // We are relying on start-management command to be run on the // new machine, so everything should be up if the rest admin is up waitForConnection( username, password, restAdminUrl, isSecureConnection, CalcUtils.millisUntil(end), TimeUnit.MILLISECONDS); logger.info("Rest service is available at: " + restAdminUrl + '.'); logger.info("Webui service is available at: " + webUIUrl + '.'); } }
/** * ****** . * * @param url . * @param isSecureConnection . * @return . * @throws MalformedURLException . */ public static String getFormattedRestUrl(final String url, final boolean isSecureConnection) throws MalformedURLException { String formattedURL = url; if (!formattedURL.endsWith("/")) { formattedURL = formattedURL + '/'; } final String protocolPrefix = ShellUtils.getRestProtocol(isSecureConnection) + "://"; if (!formattedURL.startsWith("http://") && !formattedURL.startsWith("https://")) { formattedURL = protocolPrefix + formattedURL; } URL urlObj; urlObj = new URL(formattedURL); if (urlObj.getPort() == -1) { final StringBuilder urlSB = new StringBuilder(formattedURL); final int portIndex = formattedURL.indexOf("/", protocolPrefix.length() + 1); urlSB.insert(portIndex, ':' + ShellUtils.getDefaultRestPortAsString(isSecureConnection)); formattedURL = urlSB.toString(); urlObj = new URL(formattedURL); } return formattedURL; }