Search in sources :

Example 1 with VisorTxOperation

use of org.apache.ignite.internal.visor.tx.VisorTxOperation in project ignite by apache.

the class TxCommands method parseArguments.

/**
 * @param argIter Argument iterator.
 */
@Override
public void parseArguments(CommandArgIterator argIter) {
    VisorTxProjection proj = null;
    Integer limit = null;
    VisorTxSortOrder sortOrder = null;
    Long duration = null;
    Integer size = null;
    String lbRegex = null;
    List<String> consistentIds = null;
    VisorTxOperation op = VisorTxOperation.LIST;
    String xid = null;
    TxVerboseId txVerboseId = null;
    while (true) {
        String str = argIter.peekNextArg();
        if (str == null)
            break;
        TxCommandArg arg = CommandArgUtils.of(str, TxCommandArg.class);
        if (arg == null)
            break;
        switch(arg) {
            case TX_LIMIT:
                argIter.nextArg("");
                limit = (int) argIter.nextNonNegativeLongArg(TxCommandArg.TX_LIMIT.toString());
                break;
            case TX_ORDER:
                argIter.nextArg("");
                sortOrder = VisorTxSortOrder.valueOf(argIter.nextArg(TxCommandArg.TX_ORDER.toString()).toUpperCase());
                break;
            case TX_SERVERS:
                argIter.nextArg("");
                proj = VisorTxProjection.SERVER;
                break;
            case TX_CLIENTS:
                argIter.nextArg("");
                proj = VisorTxProjection.CLIENT;
                break;
            case TX_NODES:
                argIter.nextArg("");
                Set<String> ids = argIter.nextStringSet(TxCommandArg.TX_NODES.toString());
                if (ids.isEmpty()) {
                    throw new IllegalArgumentException("Consistent id list is empty.");
                }
                consistentIds = new ArrayList<>(ids);
                break;
            case TX_DURATION:
                argIter.nextArg("");
                duration = argIter.nextNonNegativeLongArg(TxCommandArg.TX_DURATION.toString()) * 1000L;
                break;
            case TX_SIZE:
                argIter.nextArg("");
                size = (int) argIter.nextNonNegativeLongArg(TxCommandArg.TX_SIZE.toString());
                break;
            case TX_LABEL:
                argIter.nextArg("");
                lbRegex = argIter.nextArg(TxCommandArg.TX_LABEL.toString());
                try {
                    Pattern.compile(lbRegex);
                } catch (PatternSyntaxException ignored) {
                    throw new IllegalArgumentException("Illegal regex syntax");
                }
                break;
            case TX_XID:
                argIter.nextArg("");
                xid = argIter.nextArg(TxCommandArg.TX_XID.toString());
                break;
            case TX_KILL:
                argIter.nextArg("");
                op = VisorTxOperation.KILL;
                break;
            case TX_INFO:
                argIter.nextArg("");
                op = VisorTxOperation.INFO;
                txVerboseId = TxVerboseId.fromString(argIter.nextArg(TX_INFO.argName()));
                break;
            default:
                throw new AssertionError();
        }
    }
    if (proj != null && consistentIds != null)
        throw new IllegalArgumentException("Projection can't be used together with list of consistent ids.");
    this.args = new VisorTxTaskArg(op, limit, duration, size, null, proj, consistentIds, xid, lbRegex, sortOrder, txVerboseId);
}
Also used : TxVerboseId(org.apache.ignite.internal.visor.tx.TxVerboseId) VisorTxTaskArg(org.apache.ignite.internal.visor.tx.VisorTxTaskArg) VisorTxProjection(org.apache.ignite.internal.visor.tx.VisorTxProjection) VisorTxOperation(org.apache.ignite.internal.visor.tx.VisorTxOperation) VisorTxSortOrder(org.apache.ignite.internal.visor.tx.VisorTxSortOrder) PatternSyntaxException(java.util.regex.PatternSyntaxException)

Aggregations

PatternSyntaxException (java.util.regex.PatternSyntaxException)1 TxVerboseId (org.apache.ignite.internal.visor.tx.TxVerboseId)1 VisorTxOperation (org.apache.ignite.internal.visor.tx.VisorTxOperation)1 VisorTxProjection (org.apache.ignite.internal.visor.tx.VisorTxProjection)1 VisorTxSortOrder (org.apache.ignite.internal.visor.tx.VisorTxSortOrder)1 VisorTxTaskArg (org.apache.ignite.internal.visor.tx.VisorTxTaskArg)1