Search in sources :

Example 26 with Gfsh

use of org.apache.geode.management.internal.cli.shell.Gfsh in project geode by apache.

the class ShellCommands method disconnect.

@CliCommand(value = { CliStrings.DISCONNECT }, help = CliStrings.DISCONNECT__HELP)
@CliMetaData(shellOnly = true, relatedTopic = { CliStrings.TOPIC_GFSH, CliStrings.TOPIC_GEODE_JMX, CliStrings.TOPIC_GEODE_MANAGER })
public Result disconnect() {
    Result result = null;
    if (getGfsh() != null && !getGfsh().isConnectedAndReady()) {
        result = ResultBuilder.createInfoResult("Not connected.");
    } else {
        InfoResultData infoResultData = ResultBuilder.createInfoResultData();
        try {
            Gfsh gfshInstance = getGfsh();
            if (gfshInstance.isConnectedAndReady()) {
                OperationInvoker operationInvoker = gfshInstance.getOperationInvoker();
                Gfsh.println("Disconnecting from: " + operationInvoker);
                operationInvoker.stop();
                infoResultData.addLine(CliStrings.format(CliStrings.DISCONNECT__MSG__DISCONNECTED, operationInvoker.toString()));
                LogWrapper.getInstance().info(CliStrings.format(CliStrings.DISCONNECT__MSG__DISCONNECTED, operationInvoker.toString()));
                gfshInstance.setPromptPath(org.apache.geode.management.internal.cli.converters.RegionPathConverter.DEFAULT_APP_CONTEXT_PATH);
            } else {
                infoResultData.addLine(CliStrings.DISCONNECT__MSG__NOTCONNECTED);
            }
            result = ResultBuilder.buildResult(infoResultData);
        } catch (Exception e) {
            result = ResultBuilder.createConnectionErrorResult(CliStrings.format(CliStrings.DISCONNECT__MSG__ERROR, e.getMessage()));
        }
    }
    return result;
}
Also used : InfoResultData(org.apache.geode.management.internal.cli.result.InfoResultData) RestHttpOperationInvoker(org.apache.geode.management.internal.web.shell.RestHttpOperationInvoker) OperationInvoker(org.apache.geode.management.internal.cli.shell.OperationInvoker) HttpOperationInvoker(org.apache.geode.management.internal.web.shell.HttpOperationInvoker) JmxOperationInvoker(org.apache.geode.management.internal.cli.shell.JmxOperationInvoker) Gfsh(org.apache.geode.management.internal.cli.shell.Gfsh) AuthenticationFailedException(org.apache.geode.security.AuthenticationFailedException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) Result(org.apache.geode.management.cli.Result) ConnectToLocatorResult(org.apache.geode.management.internal.cli.domain.ConnectToLocatorResult) CliCommand(org.springframework.shell.core.annotation.CliCommand) CliMetaData(org.apache.geode.management.cli.CliMetaData)

Example 27 with Gfsh

use of org.apache.geode.management.internal.cli.shell.Gfsh in project geode by apache.

the class ShellCommands method history.

@CliCommand(value = CliStrings.HISTORY, help = CliStrings.HISTORY__HELP)
@CliMetaData(shellOnly = true, relatedTopic = { CliStrings.TOPIC_GFSH })
public Result history(@CliOption(key = { CliStrings.HISTORY__FILE }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.HISTORY__FILE__HELP) String saveHistoryTo, @CliOption(key = { CliStrings.HISTORY__CLEAR }, specifiedDefaultValue = "true", unspecifiedDefaultValue = "false", help = CliStrings.HISTORY__CLEAR__HELP) Boolean clearHistory) {
    // process clear history
    if (clearHistory) {
        return executeClearHistory();
    } else {
        // Process file option
        Gfsh gfsh = Gfsh.getCurrentInstance();
        ErrorResultData errorResultData = null;
        StringBuilder contents = new StringBuilder();
        Writer output = null;
        int historySize = gfsh.getHistorySize();
        String historySizeString = String.valueOf(historySize);
        int historySizeWordLength = historySizeString.length();
        GfshHistory gfshHistory = gfsh.getGfshHistory();
        Iterator<?> it = gfshHistory.entries();
        boolean flagForLineNumbers = !(saveHistoryTo != null && saveHistoryTo.length() > 0);
        long lineNumber = 0;
        while (it.hasNext()) {
            String line = it.next().toString();
            if (line.isEmpty() == false) {
                if (flagForLineNumbers) {
                    lineNumber++;
                    contents.append(String.format("%" + historySizeWordLength + "s  ", lineNumber));
                }
                contents.append(line);
                contents.append(GfshParser.LINE_SEPARATOR);
            }
        }
        try {
            // write to a user file
            if (saveHistoryTo != null && saveHistoryTo.length() > 0) {
                File saveHistoryToFile = new File(saveHistoryTo);
                output = new BufferedWriter(new FileWriter(saveHistoryToFile));
                if (!saveHistoryToFile.exists()) {
                    errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(CliStrings.HISTORY__MSG__FILE_DOES_NOT_EXISTS);
                    return ResultBuilder.buildResult(errorResultData);
                }
                if (!saveHistoryToFile.isFile()) {
                    errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(CliStrings.HISTORY__MSG__FILE_SHOULD_NOT_BE_DIRECTORY);
                    return ResultBuilder.buildResult(errorResultData);
                }
                if (!saveHistoryToFile.canWrite()) {
                    errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(CliStrings.HISTORY__MSG__FILE_CANNOT_BE_WRITTEN);
                    return ResultBuilder.buildResult(errorResultData);
                }
                output.write(contents.toString());
            }
        } catch (IOException ex) {
            return ResultBuilder.createInfoResult("File error " + ex.getMessage() + " for file " + saveHistoryTo);
        } finally {
            try {
                if (output != null) {
                    output.close();
                }
            } catch (IOException e) {
                errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine("exception in closing file");
                return ResultBuilder.buildResult(errorResultData);
            }
        }
        if (saveHistoryTo != null && saveHistoryTo.length() > 0) {
            // since written to file no need to display the content
            return ResultBuilder.createInfoResult("Wrote successfully to file " + saveHistoryTo);
        } else {
            return ResultBuilder.createInfoResult(contents.toString());
        }
    }
}
Also used : GfshHistory(org.apache.geode.management.internal.cli.shell.jline.GfshHistory) FileWriter(java.io.FileWriter) IOException(java.io.IOException) ConnectionEndpoint(org.apache.geode.management.internal.cli.util.ConnectionEndpoint) ConverterHint(org.apache.geode.management.cli.ConverterHint) BufferedWriter(java.io.BufferedWriter) Gfsh(org.apache.geode.management.internal.cli.shell.Gfsh) ErrorResultData(org.apache.geode.management.internal.cli.result.ErrorResultData) File(java.io.File) Writer(java.io.Writer) BufferedWriter(java.io.BufferedWriter) FileWriter(java.io.FileWriter) CliCommand(org.springframework.shell.core.annotation.CliCommand) CliMetaData(org.apache.geode.management.cli.CliMetaData)

Example 28 with Gfsh

use of org.apache.geode.management.internal.cli.shell.Gfsh in project geode by apache.

the class ShellCommands method httpConnect.

private Result httpConnect(Map<String, String> sslConfigProps, boolean useSsl, String url, String userName, String passwordToUse) {
    Gfsh gfsh = getGfsh();
    try {
        Map<String, String> securityProperties = new HashMap<String, String>();
        // at this point, if userName is not empty, password should not be empty either
        if (userName != null && userName.length() > 0) {
            securityProperties.put("security-username", userName);
            securityProperties.put("security-password", passwordToUse);
        }
        if (useSsl) {
            configureHttpsURLConnection(sslConfigProps);
            if (url.startsWith("http:")) {
                url = url.replace("http:", "https:");
            }
        }
        Iterator<String> it = sslConfigProps.keySet().iterator();
        while (it.hasNext()) {
            String secKey = it.next();
            securityProperties.put(secKey, sslConfigProps.get(secKey));
        }
        // This is so that SSL termination results in https URLs being returned
        String query = (url.startsWith("https")) ? "?scheme=https" : "";
        LogWrapper.getInstance().warning(String.format("Sending HTTP request for Link Index at (%1$s)...", url.concat("/index").concat(query)));
        LinkIndex linkIndex = new SimpleHttpRequester(gfsh, CONNECT_LOCATOR_TIMEOUT_MS, securityProperties).exchange(url.concat("/index").concat(query), LinkIndex.class);
        LogWrapper.getInstance().warning(String.format("Received Link Index (%1$s)", linkIndex.toString()));
        HttpOperationInvoker operationInvoker = new RestHttpOperationInvoker(linkIndex, gfsh, url, securityProperties);
        Initializer.init(operationInvoker);
        gfsh.setOperationInvoker(operationInvoker);
        LogWrapper.getInstance().info(CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS, operationInvoker.toString()));
        return ResultBuilder.createInfoResult(CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS, operationInvoker.toString()));
    } catch (Exception e) {
        // all other exceptions, just logs it and returns a connection error
        if (!(e instanceof SecurityException) && !(e instanceof AuthenticationFailedException)) {
            return handleExcpetion(e, null);
        }
        // connection error
        if (userName != null) {
            return handleExcpetion(e, null);
        }
        // otherwise, prompt for username and password and retry the conenction
        try {
            userName = gfsh.readText(CliStrings.CONNECT__USERNAME + ": ");
            passwordToUse = gfsh.readPassword(CliStrings.CONNECT__PASSWORD + ": ");
            return httpConnect(sslConfigProps, useSsl, url, userName, passwordToUse);
        } catch (IOException ioe) {
            return handleExcpetion(ioe, null);
        }
    } finally {
        Gfsh.redirectInternalJavaLoggers();
    }
}
Also used : HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) AuthenticationFailedException(org.apache.geode.security.AuthenticationFailedException) IOException(java.io.IOException) AuthenticationFailedException(org.apache.geode.security.AuthenticationFailedException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) LinkIndex(org.apache.geode.management.internal.web.domain.LinkIndex) RestHttpOperationInvoker(org.apache.geode.management.internal.web.shell.RestHttpOperationInvoker) HttpOperationInvoker(org.apache.geode.management.internal.web.shell.HttpOperationInvoker) RestHttpOperationInvoker(org.apache.geode.management.internal.web.shell.RestHttpOperationInvoker) SimpleHttpRequester(org.apache.geode.management.internal.web.http.support.SimpleHttpRequester) Gfsh(org.apache.geode.management.internal.cli.shell.Gfsh)

Example 29 with Gfsh

use of org.apache.geode.management.internal.cli.shell.Gfsh in project geode by apache.

the class ShellCommands method readSSLConfiguration.

/**
   * Common code to read SSL information. Used by JMX, Locator & HTTP mode connect
   */
private Map<String, String> readSSLConfiguration(boolean useSsl, String keystoreToUse, String keystorePasswordToUse, String truststoreToUse, String truststorePasswordToUse, String sslCiphersToUse, String sslProtocolsToUse, String gfSecurityPropertiesPath) throws IOException {
    Gfsh gfshInstance = getGfsh();
    final Map<String, String> sslConfigProps = new LinkedHashMap<String, String>();
    // if the default gfsecurity.properties exists useSsl==true
    if (useSsl || gfSecurityPropertiesPath != null) {
        // reference to hold resolved gfSecurityPropertiesPath
        String gfSecurityPropertiesPathToUse = CliUtil.resolvePathname(gfSecurityPropertiesPath);
        URL gfSecurityPropertiesUrl = null;
        // Case 1: User has specified gfSecurity properties file
        if (StringUtils.isNotBlank(gfSecurityPropertiesPathToUse)) {
            // User specified gfSecurity properties doesn't exist
            if (!IOUtils.isExistingPathname(gfSecurityPropertiesPathToUse)) {
                gfshInstance.printAsSevere(CliStrings.format(CliStrings.GEODE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, "Security ", gfSecurityPropertiesPathToUse));
            } else {
                gfSecurityPropertiesUrl = new File(gfSecurityPropertiesPathToUse).toURI().toURL();
            }
        } else if (useSsl && gfSecurityPropertiesPath == null) {
            // Case 2: User has specified to useSsl but hasn't specified
            // gfSecurity properties file. Use default "gfsecurity.properties"
            // in current dir, user's home or classpath
            gfSecurityPropertiesUrl = getFileUrl("gfsecurity.properties");
        }
        // if 'gfSecurityPropertiesPath' OR gfsecurity.properties has resolvable path
        if (gfSecurityPropertiesUrl != null) {
            gfshInstance.logToFile("Using security properties file : " + CliUtil.decodeWithDefaultCharSet(gfSecurityPropertiesUrl.getPath()), null);
            Map<String, String> gfsecurityProps = loadPropertiesFromURL(gfSecurityPropertiesUrl);
            // command line options (if any) would override props in gfsecurity.properties
            sslConfigProps.putAll(gfsecurityProps);
        }
    }
    int numTimesPrompted = 0;
    /*
     * Using do-while here for a case when --use-ssl=true is specified but no SSL options were
     * specified & there was no gfsecurity properties specified or readable in default gfsh
     * directory.
     *
     * NOTE: 2nd round of prompting is done only when sslConfigProps map is empty & useSsl is true -
     * so we won't over-write any previous values.
     */
    do {
        // JMX SSL Config 2: Now read the options
        if (numTimesPrompted > 0) {
            Gfsh.println("Please specify these SSL Configuration properties: ");
        }
        if (numTimesPrompted > 0) {
            // NOTE: sslConfigProps map was empty
            keystoreToUse = gfshInstance.readText(CliStrings.CONNECT__KEY_STORE + ": ");
        }
        if (keystoreToUse != null && keystoreToUse.length() > 0) {
            if (keystorePasswordToUse == null || keystorePasswordToUse.length() == 0) {
                // Check whether specified in gfsecurity props earlier
                keystorePasswordToUse = sslConfigProps.get(Gfsh.SSL_KEYSTORE_PASSWORD);
                if (keystorePasswordToUse == null || keystorePasswordToUse.length() == 0) {
                    // not even in properties file, prompt user for it
                    keystorePasswordToUse = gfshInstance.readPassword(CliStrings.CONNECT__KEY_STORE_PASSWORD + ": ");
                    sslConfigProps.put(Gfsh.SSL_KEYSTORE_PASSWORD, keystorePasswordToUse);
                }
            } else {
                // For cases where password is already part of command option
                sslConfigProps.put(Gfsh.SSL_KEYSTORE_PASSWORD, keystorePasswordToUse);
            }
            sslConfigProps.put(Gfsh.SSL_KEYSTORE, keystoreToUse);
        }
        if (numTimesPrompted > 0) {
            truststoreToUse = gfshInstance.readText(CliStrings.CONNECT__TRUST_STORE + ": ");
        }
        if (truststoreToUse != null && truststoreToUse.length() > 0) {
            if (truststorePasswordToUse == null || truststorePasswordToUse.length() == 0) {
                // Check whether specified in gfsecurity props earlier?
                truststorePasswordToUse = sslConfigProps.get(Gfsh.SSL_TRUSTSTORE_PASSWORD);
                if (truststorePasswordToUse == null || truststorePasswordToUse.length() == 0) {
                    // not even in properties file, prompt user for it
                    truststorePasswordToUse = gfshInstance.readPassword(CliStrings.CONNECT__TRUST_STORE_PASSWORD + ": ");
                    sslConfigProps.put(Gfsh.SSL_TRUSTSTORE_PASSWORD, truststorePasswordToUse);
                }
            } else {
                // For cases where password is already part of command option
                sslConfigProps.put(Gfsh.SSL_TRUSTSTORE_PASSWORD, truststorePasswordToUse);
            }
            sslConfigProps.put(Gfsh.SSL_TRUSTSTORE, truststoreToUse);
        }
        if (numTimesPrompted > 0) {
            sslCiphersToUse = gfshInstance.readText(CliStrings.CONNECT__SSL_CIPHERS + ": ");
        }
        if (sslCiphersToUse != null && sslCiphersToUse.length() > 0) {
            // sslConfigProps.put(DistributionConfig.CLUSTER_SSL_CIPHERS_NAME, sslCiphersToUse);
            sslConfigProps.put(Gfsh.SSL_ENABLED_CIPHERS, sslCiphersToUse);
        }
        if (numTimesPrompted > 0) {
            sslProtocolsToUse = gfshInstance.readText(CliStrings.CONNECT__SSL_PROTOCOLS + ": ");
        }
        if (sslProtocolsToUse != null && sslProtocolsToUse.length() > 0) {
            // sslConfigProps.put(DistributionConfig.CLUSTER_SSL_PROTOCOLS_NAME, sslProtocolsToUse);
            sslConfigProps.put(Gfsh.SSL_ENABLED_PROTOCOLS, sslProtocolsToUse);
        }
    // SSL is required to be used but no SSL config found
    } while (useSsl && sslConfigProps.isEmpty() && (0 == numTimesPrompted++) && !gfshInstance.isQuietMode());
    return sslConfigProps;
}
Also used : Gfsh(org.apache.geode.management.internal.cli.shell.Gfsh) File(java.io.File) URL(java.net.URL) ConnectionEndpoint(org.apache.geode.management.internal.cli.util.ConnectionEndpoint) ConverterHint(org.apache.geode.management.cli.ConverterHint) LinkedHashMap(java.util.LinkedHashMap)

Example 30 with Gfsh

use of org.apache.geode.management.internal.cli.shell.Gfsh in project geode by apache.

the class ShellCommands method connect.

@CliCommand(value = { CliStrings.CONNECT }, help = CliStrings.CONNECT__HELP)
@CliMetaData(shellOnly = true, relatedTopic = { CliStrings.TOPIC_GFSH, CliStrings.TOPIC_GEODE_JMX, CliStrings.TOPIC_GEODE_MANAGER })
public Result connect(@CliOption(key = { CliStrings.CONNECT__LOCATOR }, unspecifiedDefaultValue = ConnectionEndpointConverter.DEFAULT_LOCATOR_ENDPOINTS, optionContext = ConnectionEndpoint.LOCATOR_OPTION_CONTEXT, help = CliStrings.CONNECT__LOCATOR__HELP) ConnectionEndpoint locatorTcpHostPort, @CliOption(key = { CliStrings.CONNECT__JMX_MANAGER }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, optionContext = ConnectionEndpoint.JMXMANAGER_OPTION_CONTEXT, help = CliStrings.CONNECT__JMX_MANAGER__HELP) ConnectionEndpoint memberRmiHostPort, @CliOption(key = { CliStrings.CONNECT__USE_HTTP }, mandatory = false, specifiedDefaultValue = "true", unspecifiedDefaultValue = "false", help = CliStrings.CONNECT__USE_HTTP__HELP) boolean useHttp, @CliOption(key = { CliStrings.CONNECT__URL }, mandatory = false, unspecifiedDefaultValue = CliStrings.CONNECT__DEFAULT_BASE_URL, help = CliStrings.CONNECT__URL__HELP) String url, @CliOption(key = { CliStrings.CONNECT__USERNAME }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__USERNAME__HELP) String userName, @CliOption(key = { CliStrings.CONNECT__PASSWORD }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__PASSWORD__HELP) String password, @CliOption(key = { CliStrings.CONNECT__KEY_STORE }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__KEY_STORE__HELP) String keystore, @CliOption(key = { CliStrings.CONNECT__KEY_STORE_PASSWORD }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__KEY_STORE_PASSWORD__HELP) String keystorePassword, @CliOption(key = { CliStrings.CONNECT__TRUST_STORE }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__TRUST_STORE__HELP) String truststore, @CliOption(key = { CliStrings.CONNECT__TRUST_STORE_PASSWORD }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__TRUST_STORE_PASSWORD__HELP) String truststorePassword, @CliOption(key = { CliStrings.CONNECT__SSL_CIPHERS }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__SSL_CIPHERS__HELP) String sslCiphers, @CliOption(key = { CliStrings.CONNECT__SSL_PROTOCOLS }, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__SSL_PROTOCOLS__HELP) String sslProtocols, @CliOption(key = CliStrings.CONNECT__SECURITY_PROPERTIES, optionContext = ConverterHint.FILE_PATH, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, help = CliStrings.CONNECT__SECURITY_PROPERTIES__HELP) final String gfSecurityPropertiesPath, @CliOption(key = { CliStrings.CONNECT__USE_SSL }, specifiedDefaultValue = "true", unspecifiedDefaultValue = "false", help = CliStrings.CONNECT__USE_SSL__HELP) final boolean useSsl) {
    Result result;
    String passwordToUse = decrypt(password);
    String keystoreToUse = keystore;
    String keystorePasswordToUse = keystorePassword;
    String truststoreToUse = truststore;
    String truststorePasswordToUse = truststorePassword;
    String sslCiphersToUse = sslCiphers;
    String sslProtocolsToUse = sslProtocols;
    Gfsh gfsh = getGfsh();
    if (gfsh != null && gfsh.isConnectedAndReady()) {
        return ResultBuilder.createInfoResult("Already connected to: " + getGfsh().getOperationInvoker().toString());
    }
    Map<String, String> sslConfigProps = null;
    try {
        if (userName != null && userName.length() > 0) {
            if (passwordToUse == null || passwordToUse.length() == 0) {
                passwordToUse = gfsh.readPassword(CliStrings.CONNECT__PASSWORD + ": ");
            }
            if (passwordToUse == null || passwordToUse.length() == 0) {
                return ResultBuilder.createConnectionErrorResult(CliStrings.CONNECT__MSG__JMX_PASSWORD_MUST_BE_SPECIFIED);
            }
        }
        sslConfigProps = this.readSSLConfiguration(useSsl, keystoreToUse, keystorePasswordToUse, truststoreToUse, truststorePasswordToUse, sslCiphersToUse, sslProtocolsToUse, gfSecurityPropertiesPath);
    } catch (IOException e) {
        return handleExcpetion(e, null);
    }
    if (useHttp) {
        result = httpConnect(sslConfigProps, useSsl, url, userName, passwordToUse);
    } else {
        result = jmxConnect(sslConfigProps, memberRmiHostPort, locatorTcpHostPort, useSsl, userName, passwordToUse, gfSecurityPropertiesPath, false);
    }
    return result;
}
Also used : Gfsh(org.apache.geode.management.internal.cli.shell.Gfsh) IOException(java.io.IOException) Result(org.apache.geode.management.cli.Result) ConnectToLocatorResult(org.apache.geode.management.internal.cli.domain.ConnectToLocatorResult) CliCommand(org.springframework.shell.core.annotation.CliCommand) CliMetaData(org.apache.geode.management.cli.CliMetaData)

Aggregations

Gfsh (org.apache.geode.management.internal.cli.shell.Gfsh)40 CommandResult (org.apache.geode.management.internal.cli.result.CommandResult)14 DistributedTest (org.apache.geode.test.junit.categories.DistributedTest)13 FlakyTest (org.apache.geode.test.junit.categories.FlakyTest)13 Test (org.junit.Test)13 IOException (java.io.IOException)11 CliMetaData (org.apache.geode.management.cli.CliMetaData)7 CliCommand (org.springframework.shell.core.annotation.CliCommand)7 TreeSet (java.util.TreeSet)6 ConnectToLocatorResult (org.apache.geode.management.internal.cli.domain.ConnectToLocatorResult)6 File (java.io.File)5 MalformedURLException (java.net.MalformedURLException)5 Result (org.apache.geode.management.cli.Result)5 AuthenticationFailedException (org.apache.geode.security.AuthenticationFailedException)5 ConverterHint (org.apache.geode.management.cli.ConverterHint)3 JmxOperationInvoker (org.apache.geode.management.internal.cli.shell.JmxOperationInvoker)3 ConnectionEndpoint (org.apache.geode.management.internal.cli.util.ConnectionEndpoint)3 HttpOperationInvoker (org.apache.geode.management.internal.web.shell.HttpOperationInvoker)3 RestHttpOperationInvoker (org.apache.geode.management.internal.web.shell.RestHttpOperationInvoker)3 ExitShellRequest (org.springframework.shell.core.ExitShellRequest)3