Function: Configure vSphere Replication for vCenter Virtual Machine

by Simon Sparks · 4 February 2026

To use this function add it to the class library file named OrchestratorService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: OrchestratorService.ts

Description: Orchestrator Function to Configure vSphere Replication for vCenter Virtual Machine

Private Function: configureReplicationToVc

private configureReplicationToVc(objVRVcRemoteSite: VRVcRemoteSite, objVcVirtualMachine: VcVirtualMachine, objVRRemoteDatastore: VRRemoteDatastore, objVRDiskType: VRDiskType, objVRStorageProfile: VRStorageProfile, objVSphereReplicationConfig: VSphereReplicationConfig) {

    let objVRReplicationSettings: VRReplicationSettings = new VRReplicationSettings();
    objVRReplicationSettings.name = objVcVirtualMachine.name;
    objVRReplicationSettings.perDiskEnabled = objVSphereReplicationConfig.perDiskEnabled
    objVRReplicationSettings.includedDisks = [];
    objVRReplicationSettings.excludedDisks = [];
    objVRReplicationSettings.remoteDatastore = objVRRemoteDatastore;
    objVRReplicationSettings.remoteDatastores = [];
    objVRReplicationSettings.diskType = objVRDiskType;
    objVRReplicationSettings.diskTypes = [];
    objVRReplicationSettings.storageProfile = objVRStorageProfile
    objVRReplicationSettings.storageProfiles = [];
    objVRReplicationSettings.autoReplicateNewDisks = objVSphereReplicationConfig.autoReplicateNewDisks
    objVRReplicationSettings.encryptionEnabled = objVSphereReplicationConfig.encryptionEnabled
    objVRReplicationSettings.useDefaultSeed = objVSphereReplicationConfig.useDefaultSeed
    objVRReplicationSettings.rpo = objVSphereReplicationConfig.rpo
    objVRReplicationSettings.quiesceGuestEnabled = objVSphereReplicationConfig.quiesceGuestEnabled
    objVRReplicationSettings.networkCompressionEnabled = objVSphereReplicationConfig.networkCompressionEnabled
    objVRReplicationSettings.dataSetsReplicationEnabled = objVSphereReplicationConfig.dataSetsReplicationEnabled
    objVRReplicationSettings.includeAllDisks = objVSphereReplicationConfig.includeAllDisks

    if (objVSphereReplicationConfig.enableMPIT) {
        let objVRRetentionPolicyTier: VRRetentionPolicyTier = new VRRetentionPolicyTier();
        objVRRetentionPolicyTier.granularityMinutes = Math.floor((24 / objVSphereReplicationConfig.instancesPerDay) * 60);
        objVRRetentionPolicyTier.numSlots = objVSphereReplicationConfig.numDays * objVSphereReplicationConfig.instancesPerDay;

        objVRReplicationSettings.retentionPolicyTiers = [objVRRetentionPolicyTier];
    }

    return objVRVcRemoteSite.configureReplicationTo(objVcVirtualMachine.id, objVRReplicationSettings);
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like