Search in sources :

Example 1 with SyncReplicationThreshold

use of com.emc.fapiclient.ws.SyncReplicationThreshold 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)

Example 2 with SyncReplicationThreshold

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

the class RecoverPointClient method setLinkPolicy.

/**
 * Convenience method to set the link policy.
 *
 * @param remote whether to set the "protect over wan" to true
 * @param prodCopyUID production copy id
 * @param targetCopyUID target copy id
 * @param cgUID cg id
 * @throws FunctionalAPIActionFailedException_Exception
 * @throws FunctionalAPIInternalError_Exception
 */
private void setLinkPolicy(boolean remote, ConsistencyGroupCopyUID prodCopyUID, ConsistencyGroupCopyUID targetCopyUID, ConsistencyGroupUID cgUID) throws FunctionalAPIActionFailedException_Exception, FunctionalAPIInternalError_Exception {
    ConsistencyGroupLinkUID groupLink = new ConsistencyGroupLinkUID();
    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(remote);
    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);
    groupLink.setFirstCopy(prodCopyUID.getGlobalCopyUID());
    groupLink.setSecondCopy(targetCopyUID.getGlobalCopyUID());
    groupLink.setGroupUID(cgUID);
    functionalAPI.addConsistencyGroupLink(groupLink, linkPolicy);
    waitForRpOperation();
}
Also used : SyncReplicationThreshold(com.emc.fapiclient.ws.SyncReplicationThreshold) LinkProtectionPolicy(com.emc.fapiclient.ws.LinkProtectionPolicy) RpoPolicy(com.emc.fapiclient.ws.RpoPolicy) LinkAdvancedPolicy(com.emc.fapiclient.ws.LinkAdvancedPolicy) ConsistencyGroupLinkUID(com.emc.fapiclient.ws.ConsistencyGroupLinkUID) FullConsistencyGroupLinkPolicy(com.emc.fapiclient.ws.FullConsistencyGroupLinkPolicy) ConsistencyGroupLinkPolicy(com.emc.fapiclient.ws.ConsistencyGroupLinkPolicy)

Aggregations

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