Search in sources :

Example 1 with InformationElement

use of org.eclipse.titan.executor.views.executormonitor.InformationElement in project titan.EclipsePlug-ins by eclipse.

the class CliExecutor method processInfoOutputHC.

/**
 * Processes the host controller related part of the mctr_cli's answer to the info command.
 * <p>
 * @see #processInfoOutput(BufferedReader)
 *
 * @param stdout the output of the process to be parsed.
 * @param root the main controller element to add the host controller data to.
 */
private void processInfoOutputHC(final BufferedReader stdout, final MainControllerElement root) {
    HostControllerElement tempHost;
    Matcher matcher = HOSTNAME_PATTERN.matcher(fastLine);
    if (matcher.matches()) {
        tempHost = new HostControllerElement("Host Controller");
        root.addHostController(tempHost);
        String hostIPAddress = matcher.group(1);
        tempHost.setIPAddressInfo(new InformationElement("IP address: " + hostIPAddress));
        String hostIpNumber = matcher.group(2);
        if (hostIpNumber != null && hostIpNumber.length() > 0) {
            tempHost.setIPNumberInfo(new InformationElement("IP number: " + hostIpNumber.substring(2, hostIpNumber.length() - 1)));
        }
        String localHostName = matcher.group(3);
        if (localHostName != null && localHostName.length() > 0) {
            tempHost.setHostNameInfo(new InformationElement("Local host name: " + localHostName.substring(2, localHostName.length() - 1)));
        }
        readFullLineOnly(stdout);
    } else {
        fastLine = null;
        return;
    }
    if (fastLine != null && fastLine.startsWith("     operating system")) {
        tempHost.setOperatingSystemInfo(new InformationElement(fastLine.trim()));
        readFullLineOnly(stdout);
    } else {
        fastLine = null;
        return;
    }
    if (fastLine != null && HC_STATE_PATTERN.matcher(fastLine).matches()) {
        tempHost.setStateInfo(new InformationElement(fastLine.trim()));
        readFullLineOnly(stdout);
    } else {
        fastLine = null;
        return;
    }
    if (fastLine != null && "     test component information:".equals(fastLine)) {
        readFullLineOnly(stdout);
        if (fastLine != null && fastLine.startsWith("      no components on this host")) {
            readFullLineOnly(stdout);
        } else {
            while (fastLine != null && fastLine.startsWith("      - ")) {
                processInfoOutputComponent(stdout, tempHost);
            }
        }
    } else {
        fastLine = null;
    }
}
Also used : HostControllerElement(org.eclipse.titan.executor.views.executormonitor.HostControllerElement) Matcher(java.util.regex.Matcher) InformationElement(org.eclipse.titan.executor.views.executormonitor.InformationElement)

Example 2 with InformationElement

use of org.eclipse.titan.executor.views.executormonitor.InformationElement in project titan.EclipsePlug-ins by eclipse.

the class CliExecutor method processInfoOutput.

/**
 * Tries to parse in mctr_cli's answer to the info command.
 *
 * @param stdout the output of the process to be parsed.
 */
private void processInfoOutput(final BufferedReader stdout) {
    Matcher matcher;
    MainControllerElement tempRoot = new MainControllerElement("Temporal root", this);
    readFullLineOnly(stdout);
    if (fastLine == null) {
        return;
    }
    matcher = MC_STATE_PATTERN.matcher(fastLine);
    if (matcher.matches()) {
        String mcStateName = matcher.group(1);
        tempRoot.setStateInfo(new InformationElement("State: " + mcStateName));
        readFullLineOnly(stdout);
        suspectedLastState = getMCStateFromName(mcStateName);
    } else {
        fastLine = null;
        return;
    }
    if (fastLine != null && " host information:".equals(fastLine)) {
        readFullLineOnly(stdout);
    } else {
        fastLine = null;
        return;
    }
    if (fastLine != null) {
        if (fastLine.startsWith("  -")) {
            // host list
            while (fastLine != null && fastLine.startsWith("  -")) {
                processInfoOutputHC(stdout, tempRoot);
            }
        } else if ("  no HCs are connected".equals(fastLine)) {
            readFullLineOnly(stdout);
        }
    } else {
        fastLine = null;
        return;
    }
    if (fastLine != null && PAUSE_PATTERN.matcher(fastLine).matches()) {
        tempRoot.setPauseInfo(new InformationElement(fastLine.trim()));
        readFullLineOnly(stdout);
    } else {
        fastLine = null;
        return;
    }
    if (fastLine != null && CONSOLE_LOGGING_PATTERN.matcher(fastLine).matches()) {
        tempRoot.setConsoleLoggingInfo(new InformationElement(fastLine.trim()));
    } else {
        fastLine = null;
        return;
    }
    if (mainControllerRoot != null) {
        mainControllerRoot.children().clear();
        mainControllerRoot.transferData(tempRoot);
    }
}
Also used : Matcher(java.util.regex.Matcher) MainControllerElement(org.eclipse.titan.executor.views.executormonitor.MainControllerElement) InformationElement(org.eclipse.titan.executor.views.executormonitor.InformationElement)

Example 3 with InformationElement

use of org.eclipse.titan.executor.views.executormonitor.InformationElement in project titan.EclipsePlug-ins by eclipse.

the class CliExecutor method processInfoOutputComponent.

/**
 * Processes the component related part of the mctr_cli's answer to the info command.
 * <p>
 * @see #processInfoOutputHC(BufferedReader, MainControllerElement)
 *
 * @param stdout the output of the process to be parsed.
 * @param host the host to add the component data to.
 */
private void processInfoOutputComponent(final BufferedReader stdout, final HostControllerElement host) {
    Matcher matcher;
    ComponentElement tempComponent;
    matcher = HC_NAME_COMPONENT_PATTERN.matcher(fastLine);
    if (matcher.matches()) {
        tempComponent = new ComponentElement("Component " + matcher.group(1), new InformationElement("Component reference: " + matcher.group(2)));
        host.addComponent(tempComponent);
        readFullLineOnly(stdout);
    } else {
        matcher = HC_COMPONENT_PATTERN.matcher(fastLine);
        if (matcher.matches()) {
            tempComponent = new ComponentElement("Component " + matcher.group(1));
            host.addComponent(tempComponent);
            readFullLineOnly(stdout);
        } else {
            fastLine = null;
            return;
        }
    }
    if (fastLine != null && HC_COMPONENT_TYPE_PATTERN.matcher(fastLine).matches()) {
        tempComponent.setTypeInfo(new InformationElement(fastLine.trim()));
        readFullLineOnly(stdout);
    }
    if (fastLine != null && HC_COMPONENT_STATE_PATTERN.matcher(fastLine).matches()) {
        tempComponent.setStateInfo(new InformationElement(fastLine.trim()));
        readFullLineOnly(stdout);
    } else {
        fastLine = null;
        return;
    }
    if (fastLine != null && HC_EXECUTED_PATTERN.matcher(fastLine).matches()) {
        tempComponent.setExecutedInfo(new InformationElement(fastLine.trim()));
        readFullLineOnly(stdout);
    }
    if (fastLine != null && HC_LOCAL_VERDICT_PATTERN.matcher(fastLine).matches()) {
        tempComponent.setLocalVerdictInfo(new InformationElement(fastLine.trim()));
        readFullLineOnly(stdout);
    }
}
Also used : Matcher(java.util.regex.Matcher) ComponentElement(org.eclipse.titan.executor.views.executormonitor.ComponentElement) InformationElement(org.eclipse.titan.executor.views.executormonitor.InformationElement)

Example 4 with InformationElement

use of org.eclipse.titan.executor.views.executormonitor.InformationElement in project titan.EclipsePlug-ins by eclipse.

the class JniExecutor method updateInfoDisplay.

/**
 * Updates the information displayed about the MainController's and HostControllers actual states.
 */
private void updateInfoDisplay() {
    JNIMiddleWare middleware = jnimw;
    McStateEnum mcState = middleware.get_state();
    MainControllerElement tempRoot = new MainControllerElement("Temporal root", this);
    String mcStateName = middleware.get_mc_state_name(mcState);
    tempRoot.setStateInfo(new InformationElement("state: " + mcStateName));
    HostControllerElement tempHost;
    ComponentStruct comp;
    QualifiedName qualifiedName;
    ComponentElement tempComponent;
    StringBuilder builder;
    int nofHosts = middleware.get_nof_hosts();
    HostStruct host;
    for (int i = 0; i < nofHosts; i++) {
        host = middleware.get_host_data(i);
        tempHost = new HostControllerElement("Host Controller: ");
        tempRoot.addHostController(tempHost);
        tempHost.setIPAddressInfo(new InformationElement("IP address: " + host.hostname));
        tempHost.setIPNumberInfo(new InformationElement("IP number: " + host.ip_addr));
        tempHost.setHostNameInfo(new InformationElement("Local host name:" + host.hostname_local));
        tempHost.setOperatingSystemInfo(new InformationElement(host.system_name + " " + host.system_release + " " + host.system_version));
        tempHost.setStateInfo(new InformationElement("State: " + middleware.get_hc_state_name(host.hc_state)));
        int activeComponents = host.n_active_components;
        int[] components = host.components.clone();
        middleware.release_data();
        for (int component_index = 0; component_index < activeComponents; component_index++) {
            comp = middleware.get_component_data(components[component_index]);
            tempComponent = new ComponentElement("Component: " + comp.comp_name, new InformationElement("Component reference: " + comp.comp_ref));
            tempHost.addComponent(tempComponent);
            qualifiedName = comp.comp_type;
            if (qualifiedName != null && qualifiedName.definition_name != null) {
                builder = new StringBuilder("Component type: ");
                if (qualifiedName.module_name != null) {
                    builder.append(qualifiedName.module_name).append('.');
                }
                builder.append(qualifiedName.definition_name);
                tempComponent.setTypeInfo(new InformationElement(builder.toString()));
            }
            tempComponent.setStateInfo(new InformationElement(middleware.get_tc_state_name(comp.tc_state)));
            qualifiedName = comp.tc_fn_name;
            if (qualifiedName.definition_name != null) {
                builder = new StringBuilder(comp.comp_ref == 1 ? "test case" : "function");
                if (qualifiedName.module_name != null) {
                    builder.append(qualifiedName.module_name).append('.');
                }
                builder.append(qualifiedName.definition_name);
                tempComponent.setExecutedInfo(new InformationElement(builder.toString()));
            }
            VerdictTypeEnum localVerdict = comp.local_verdict;
            if (localVerdict != null) {
                builder = new StringBuilder("local verdict: ");
                builder.append(localVerdict.getName());
            }
        }
    }
    middleware.release_data();
    if (mainControllerRoot != null) {
        mainControllerRoot.children().clear();
        mainControllerRoot.transferData(tempRoot);
    }
    if (Activator.getMainView() != null) {
        Activator.getMainView().refreshAll();
    }
}
Also used : QualifiedName(org.eclipse.titan.executor.jni.QualifiedName) ComponentStruct(org.eclipse.titan.executor.jni.ComponentStruct) InformationElement(org.eclipse.titan.executor.views.executormonitor.InformationElement) HostControllerElement(org.eclipse.titan.executor.views.executormonitor.HostControllerElement) HostStruct(org.eclipse.titan.executor.jni.HostStruct) VerdictTypeEnum(org.eclipse.titan.executor.jni.VerdictTypeEnum) McStateEnum(org.eclipse.titan.executor.jni.McStateEnum) ComponentElement(org.eclipse.titan.executor.views.executormonitor.ComponentElement) JNIMiddleWare(org.eclipse.titan.executor.jni.JNIMiddleWare) MainControllerElement(org.eclipse.titan.executor.views.executormonitor.MainControllerElement)

Aggregations

InformationElement (org.eclipse.titan.executor.views.executormonitor.InformationElement)4 Matcher (java.util.regex.Matcher)3 ComponentElement (org.eclipse.titan.executor.views.executormonitor.ComponentElement)2 HostControllerElement (org.eclipse.titan.executor.views.executormonitor.HostControllerElement)2 MainControllerElement (org.eclipse.titan.executor.views.executormonitor.MainControllerElement)2 ComponentStruct (org.eclipse.titan.executor.jni.ComponentStruct)1 HostStruct (org.eclipse.titan.executor.jni.HostStruct)1 JNIMiddleWare (org.eclipse.titan.executor.jni.JNIMiddleWare)1 McStateEnum (org.eclipse.titan.executor.jni.McStateEnum)1 QualifiedName (org.eclipse.titan.executor.jni.QualifiedName)1 VerdictTypeEnum (org.eclipse.titan.executor.jni.VerdictTypeEnum)1