Search in sources :

Example 1 with Quantity

use of com.emc.fapiclient.ws.Quantity in project coprhd-controller by CoprHD.

the class RecoverPointClient method getQuantity.

private Quantity getQuantity(QuantityType type, long value) {
    Quantity quantity1 = new Quantity();
    quantity1.setType(type);
    quantity1.setValue(value);
    return quantity1;
}
Also used : Quantity(com.emc.fapiclient.ws.Quantity)

Example 2 with Quantity

use of com.emc.fapiclient.ws.Quantity in project coprhd-controller by CoprHD.

the class RecoverPointClient method createLinkPolicy.

/**
 * Convenience method for creating a link policy object
 *
 * @param remote whether to set the "protect over wan" to true
 */
private ConsistencyGroupLinkPolicy createLinkPolicy(RecoverPointCGCopyType copyType, String copyMode, String rpoType, Long rpoValue) {
    ConsistencyGroupLinkPolicy linkPolicy = new ConsistencyGroupLinkPolicy();
    linkPolicy.setAdvancedPolicy(new LinkAdvancedPolicy());
    linkPolicy.getAdvancedPolicy().setPerformLongInitialization(true);
    linkPolicy.getAdvancedPolicy().setSnapshotGranularity(SnapshotGranularity.FIXED_PER_SECOND);
    linkPolicy.setProtectionPolicy(new LinkProtectionPolicy());
    linkPolicy.getProtectionPolicy().setBandwidthLimit(0.0);
    linkPolicy.getProtectionPolicy().setCompression(WanCompression.NONE);
    linkPolicy.getProtectionPolicy().setDeduplication(false);
    linkPolicy.getProtectionPolicy().setMeasureLagToTargetRPA(true);
    linkPolicy.getProtectionPolicy().setProtectionType(ProtectionMode.ASYNCHRONOUS);
    linkPolicy.getProtectionPolicy().setReplicatingOverWAN(copyType.isRemote());
    linkPolicy.getProtectionPolicy().setRpoPolicy(new RpoPolicy());
    linkPolicy.getProtectionPolicy().getRpoPolicy().setAllowRegulation(false);
    linkPolicy.getProtectionPolicy().getRpoPolicy().setMaximumAllowedLag(getQuantity(QuantityType.MICROSECONDS, 25000000));
    linkPolicy.getProtectionPolicy().getRpoPolicy().setMinimizationType(RpoMinimizationType.IRRELEVANT);
    linkPolicy.getProtectionPolicy().setSyncReplicationLatencyThresholds(new SyncReplicationThreshold());
    linkPolicy.getProtectionPolicy().getSyncReplicationLatencyThresholds().setResumeSyncReplicationBelow(getQuantity(QuantityType.MICROSECONDS, 3000));
    linkPolicy.getProtectionPolicy().getSyncReplicationLatencyThresholds().setStartAsyncReplicationAbove(getQuantity(QuantityType.MICROSECONDS, 5000));
    linkPolicy.getProtectionPolicy().getSyncReplicationLatencyThresholds().setThresholdEnabled(false);
    linkPolicy.getProtectionPolicy().setSyncReplicationThroughputThresholds(new SyncReplicationThreshold());
    linkPolicy.getProtectionPolicy().getSyncReplicationThroughputThresholds().setResumeSyncReplicationBelow(getQuantity(QuantityType.KB, 35000));
    linkPolicy.getProtectionPolicy().getSyncReplicationThroughputThresholds().setStartAsyncReplicationAbove(getQuantity(QuantityType.KB, 45000));
    linkPolicy.getProtectionPolicy().getSyncReplicationThroughputThresholds().setThresholdEnabled(false);
    linkPolicy.getProtectionPolicy().setWeight(1);
    LinkProtectionPolicy linkProtectionPolicy = linkPolicy.getProtectionPolicy();
    if (copyMode != null) {
        logger.info("Setting CG policy of: " + copyMode);
        ProtectionMode protectionMode = ProtectionMode.valueOf(copyMode);
        if (protectionMode == null) {
            // Default to ASYNCHRONOUS
            protectionMode = ProtectionMode.ASYNCHRONOUS;
        }
        linkProtectionPolicy.setProtectionType(protectionMode);
    }
    RpoPolicy rpoPolicy = linkProtectionPolicy.getRpoPolicy();
    if (rpoValue != null && rpoType != null) {
        logger.info("Setting CG RPO policy of: " + rpoValue.toString() + " " + rpoType);
        Quantity rpoQuantity = new Quantity();
        QuantityType quantityType = QuantityType.valueOf(rpoType);
        rpoQuantity.setType(quantityType);
        rpoQuantity.setValue(rpoValue);
        rpoPolicy.setMaximumAllowedLag(rpoQuantity);
    } else if ((rpoValue == null && rpoType != null) || (rpoValue != null && rpoType == null)) {
        logger.warn("RPO Policy specified only one of value and type, both need to be specified for RPO policy to be applied.  Ignoring RPO policy.");
    }
    linkProtectionPolicy.setRpoPolicy(rpoPolicy);
    linkPolicy.setProtectionPolicy(linkProtectionPolicy);
    return linkPolicy;
}
Also used : SyncReplicationThreshold(com.emc.fapiclient.ws.SyncReplicationThreshold) QuantityType(com.emc.fapiclient.ws.QuantityType) LinkProtectionPolicy(com.emc.fapiclient.ws.LinkProtectionPolicy) RpoPolicy(com.emc.fapiclient.ws.RpoPolicy) Quantity(com.emc.fapiclient.ws.Quantity) LinkAdvancedPolicy(com.emc.fapiclient.ws.LinkAdvancedPolicy) FullConsistencyGroupLinkPolicy(com.emc.fapiclient.ws.FullConsistencyGroupLinkPolicy) ConsistencyGroupLinkPolicy(com.emc.fapiclient.ws.ConsistencyGroupLinkPolicy) ProtectionMode(com.emc.fapiclient.ws.ProtectionMode)

Aggregations

Quantity (com.emc.fapiclient.ws.Quantity)2 ConsistencyGroupLinkPolicy (com.emc.fapiclient.ws.ConsistencyGroupLinkPolicy)1 FullConsistencyGroupLinkPolicy (com.emc.fapiclient.ws.FullConsistencyGroupLinkPolicy)1 LinkAdvancedPolicy (com.emc.fapiclient.ws.LinkAdvancedPolicy)1 LinkProtectionPolicy (com.emc.fapiclient.ws.LinkProtectionPolicy)1 ProtectionMode (com.emc.fapiclient.ws.ProtectionMode)1 QuantityType (com.emc.fapiclient.ws.QuantityType)1 RpoPolicy (com.emc.fapiclient.ws.RpoPolicy)1 SyncReplicationThreshold (com.emc.fapiclient.ws.SyncReplicationThreshold)1