Search in sources :

Example 6 with VisorBaselineTaskResult

use of org.apache.ignite.internal.visor.baseline.VisorBaselineTaskResult in project ignite by apache.

the class CommandHandler method baselineAdd.

/**
 * Add nodes to baseline.
 *
 * @param client Client.
 * @param baselineArgs Baseline action arguments.
 * @throws Throwable If failed to add nodes to baseline.
 */
private void baselineAdd(GridClient client, String baselineArgs) throws Throwable {
    try {
        VisorBaselineTaskResult res = executeTask(client, VisorBaselineTask.class, arg(ADD, baselineArgs));
        baselinePrint0(res);
    } catch (Throwable e) {
        log("Failed to add nodes to baseline.");
        throw e;
    }
}
Also used : VisorBaselineTaskResult(org.apache.ignite.internal.visor.baseline.VisorBaselineTaskResult)

Example 7 with VisorBaselineTaskResult

use of org.apache.ignite.internal.visor.baseline.VisorBaselineTaskResult in project ignite by apache.

the class BaselineCommand method baselinePrint0.

/**
 * Print baseline topology.
 *
 * @param res Task result with baseline topology.
 */
private void baselinePrint0(VisorBaselineTaskResult res, Logger logger) {
    logger.info("Cluster state: " + (res.isActive() ? "active" : "inactive"));
    logger.info("Current topology version: " + res.getTopologyVersion());
    VisorBaselineAutoAdjustSettings autoAdjustSettings = res.getAutoAdjustSettings();
    if (autoAdjustSettings != null) {
        logger.info("Baseline auto adjustment " + (TRUE.equals(autoAdjustSettings.getEnabled()) ? "enabled" : "disabled") + ": softTimeout=" + autoAdjustSettings.getSoftTimeout());
    }
    if (autoAdjustSettings.enabled) {
        if (res.isBaselineAdjustInProgress())
            logger.info("Baseline auto-adjust is in progress");
        else if (res.getRemainingTimeToBaselineAdjust() < 0)
            logger.info("Baseline auto-adjust are not scheduled");
        else
            logger.info("Baseline auto-adjust will happen in '" + res.getRemainingTimeToBaselineAdjust() + "' ms");
    }
    logger.info("");
    Map<String, VisorBaselineNode> baseline = res.getBaseline();
    Map<String, VisorBaselineNode> srvs = res.getServers();
    // if task runs on a node with VisorBaselineNode of old version (V1) we'll get order=null for all nodes.
    Function<VisorBaselineNode, String> extractFormattedAddrs = node -> {
        Stream<String> sortedByIpHosts = Optional.ofNullable(node).map(addrs -> node.getAddrs()).orElse(Collections.emptyList()).stream().sorted(Comparator.comparing(resolvedAddr -> new VisorTaskUtils.SortableAddress(resolvedAddr.address()))).map(resolvedAddr -> {
            if (!resolvedAddr.hostname().equals(resolvedAddr.address()))
                return resolvedAddr.hostname() + "/" + resolvedAddr.address();
            else
                return resolvedAddr.address();
        });
        if (verbose) {
            String hosts = String.join(",", sortedByIpHosts.collect(Collectors.toList()));
            if (!hosts.isEmpty())
                return ", Addresses=" + hosts;
            else
                return "";
        } else
            return sortedByIpHosts.findFirst().map(ip -> ", Address=" + ip).orElse("");
    };
    String crdStr = srvs.values().stream().filter(node -> node.getOrder() != null).min(Comparator.comparing(VisorBaselineNode::getOrder)).map(crd -> " (Coordinator: ConsistentId=" + crd.getConsistentId() + extractFormattedAddrs.apply(crd) + ", Order=" + crd.getOrder() + ")").orElse("");
    logger.info("Current topology version: " + res.getTopologyVersion() + crdStr);
    logger.info("");
    if (F.isEmpty(baseline))
        logger.info("Baseline nodes not found.");
    else {
        logger.info("Baseline nodes:");
        for (VisorBaselineNode node : baseline.values()) {
            VisorBaselineNode srvNode = srvs.get(node.getConsistentId());
            String state = ", State=" + (srvNode != null ? "ONLINE" : "OFFLINE");
            String order = srvNode != null ? ", Order=" + srvNode.getOrder() : "";
            logger.info(DOUBLE_INDENT + "ConsistentId=" + node.getConsistentId() + extractFormattedAddrs.apply(srvNode) + state + order);
        }
        logger.info(DELIM);
        logger.info("Number of baseline nodes: " + baseline.size());
        logger.info("");
        List<VisorBaselineNode> others = new ArrayList<>();
        for (VisorBaselineNode node : srvs.values()) {
            if (!baseline.containsKey(node.getConsistentId()))
                others.add(node);
        }
        if (F.isEmpty(others))
            logger.info("Other nodes not found.");
        else {
            logger.info("Other nodes:");
            for (VisorBaselineNode node : others) logger.info(DOUBLE_INDENT + "ConsistentId=" + node.getConsistentId() + ", Order=" + node.getOrder());
            logger.info("Number of other nodes: " + others.size());
        }
    }
}
Also used : BaselineSubcommands(org.apache.ignite.internal.commandline.baseline.BaselineSubcommands) DELIM(org.apache.ignite.internal.commandline.CommandHandler.DELIM) TaskExecutor.executeTaskByNameOnNode(org.apache.ignite.internal.commandline.TaskExecutor.executeTaskByNameOnNode) VisorBaselineTask(org.apache.ignite.internal.visor.baseline.VisorBaselineTask) DOUBLE_INDENT(org.apache.ignite.internal.commandline.CommandLogger.DOUBLE_INDENT) Function(java.util.function.Function) CommandArgUtils(org.apache.ignite.internal.commandline.argument.CommandArgUtils) ArrayList(java.util.ArrayList) Map(java.util.Map) VisorBaselineNode(org.apache.ignite.internal.visor.baseline.VisorBaselineNode) Collections.singletonMap(java.util.Collections.singletonMap) GridClientNode(org.apache.ignite.internal.client.GridClientNode) VisorTaskUtils(org.apache.ignite.internal.visor.util.VisorTaskUtils) F(org.apache.ignite.internal.util.typedef.F) CommandLogger.optional(org.apache.ignite.internal.commandline.CommandLogger.optional) CMD_AUTO_CONFIRMATION(org.apache.ignite.internal.commandline.CommonArgParser.CMD_AUTO_CONFIRMATION) GridClient(org.apache.ignite.internal.client.GridClient) GridClientConfiguration(org.apache.ignite.internal.client.GridClientConfiguration) Set(java.util.Set) UUID(java.util.UUID) Logger(java.util.logging.Logger) Collectors(java.util.stream.Collectors) VisorBaselineAutoAdjustSettings(org.apache.ignite.internal.visor.baseline.VisorBaselineAutoAdjustSettings) List(java.util.List) Stream(java.util.stream.Stream) AutoAdjustCommandArg(org.apache.ignite.internal.commandline.baseline.AutoAdjustCommandArg) BaselineArguments(org.apache.ignite.internal.commandline.baseline.BaselineArguments) BaselineSubcommands.of(org.apache.ignite.internal.commandline.baseline.BaselineSubcommands.of) Optional(java.util.Optional) Comparator(java.util.Comparator) BASELINE(org.apache.ignite.internal.commandline.CommandList.BASELINE) Collections(java.util.Collections) VisorBaselineTaskArg(org.apache.ignite.internal.visor.baseline.VisorBaselineTaskArg) TRUE(java.lang.Boolean.TRUE) VisorBaselineTaskResult(org.apache.ignite.internal.visor.baseline.VisorBaselineTaskResult) ArrayList(java.util.ArrayList) VisorBaselineAutoAdjustSettings(org.apache.ignite.internal.visor.baseline.VisorBaselineAutoAdjustSettings) Stream(java.util.stream.Stream) VisorBaselineNode(org.apache.ignite.internal.visor.baseline.VisorBaselineNode)

Aggregations

VisorBaselineTaskResult (org.apache.ignite.internal.visor.baseline.VisorBaselineTaskResult)7 UUID (java.util.UUID)2 GridClient (org.apache.ignite.internal.client.GridClient)2 VisorBaselineTask (org.apache.ignite.internal.visor.baseline.VisorBaselineTask)2 TRUE (java.lang.Boolean.TRUE)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 Collections.singletonMap (java.util.Collections.singletonMap)1 Comparator (java.util.Comparator)1 List (java.util.List)1 Map (java.util.Map)1 Optional (java.util.Optional)1 Set (java.util.Set)1 Function (java.util.function.Function)1 Logger (java.util.logging.Logger)1 Collectors (java.util.stream.Collectors)1 Stream (java.util.stream.Stream)1 GridClientConfiguration (org.apache.ignite.internal.client.GridClientConfiguration)1 GridClientNode (org.apache.ignite.internal.client.GridClientNode)1 DELIM (org.apache.ignite.internal.commandline.CommandHandler.DELIM)1