Source:
<code>public VcrReplicationManager(CloudConfig cloudConfig, ReplicationConfig replicationConfig, ClusterMapConfig clusterMapConfig, StoreConfig storeConfig, StoreManager storeManager, StoreKeyFactory storeKeyFactory, ClusterMap clusterMap, VirtualReplicatorCluster virtualReplicatorCluster, CloudDestination cloudDestination, ScheduledExecutorService scheduler, ConnectionPool connectionPool, VcrMetrics vcrMetrics, NotificationSystem requestNotification, StoreKeyConverterFactory storeKeyConverterFactory, String transformerClassName) throws ReplicationException, IllegalStateException { super(replicationConfig, clusterMapConfig, storeKeyFactory, clusterMap, scheduler, virtualReplicatorCluster.getCurrentDataNodeId(), Collections.emptyList(), connectionPool, vcrMetrics.getMetricRegistry(), requestNotification, storeKeyConverterFactory, transformerClassName, null, storeManager); this.cloudConfig = cloudConfig; this.storeConfig = storeConfig; this.virtualReplicatorCluster = virtualReplicatorCluster; this.vcrMetrics = vcrMetrics; this.persistor = new CloudTokenPersistor(replicaTokenFileName, mountPathToPartitionInfos, replicationMetrics, clusterMap, tokenHelper, cloudDestination); this.cloudStorageCompactor = cloudConfig.cloudBlobCompactionEnabled ? new CloudStorageCompactor(cloudDestination, cloudConfig, partitionToPartitionInfo.keySet(), vcrMetrics) : null; <START> if (!cloudConfig.cloudIsVcr && cloudConfig.vcrCrossColoReplicationPeerDatacenters.isEmpty()) { <END> throw new IllegalStateException( "Either this should be a vcr replicator OR one or more vcr cross colo replication peer datacenter should be specified"); } }</code><technical_language>I context of cloud I understand config cloudIsVcr, types of nodes related Cloud. is VCR, in impression, is supposed replicate blobs regular ambry server Azure (correct if I wrong). is other type of cloud node</technical_language>

Target:
public VcrReplicationManager(CloudConfig cloudConfig, ReplicationConfig replicationConfig, ClusterMapConfig clusterMapConfig, StoreConfig storeConfig, StoreManager storeManager, StoreKeyFactory storeKeyFactory, ClusterMap clusterMap, VirtualReplicatorCluster virtualReplicatorCluster, CloudDestination cloudDestination, ScheduledExecutorService scheduler, ConnectionPool connectionPool, VcrMetrics vcrMetrics, NotificationSystem requestNotification, StoreKeyConverterFactory storeKeyConverterFactory, String transformerClassName) throws ReplicationException, IllegalStateException { super(replicationConfig, clusterMapConfig, storeKeyFactory, clusterMap, scheduler, virtualReplicatorCluster.getCurrentDataNodeId(), Collections.emptyList(), connectionPool, vcrMetrics.getMetricRegistry(), requestNotification, storeKeyConverterFactory, transformerClassName, null, storeManager); this.cloudConfig = cloudConfig; this.storeConfig = storeConfig; this.virtualReplicatorCluster = virtualReplicatorCluster; this.vcrMetrics = vcrMetrics; this.persistor = new CloudTokenPersistor(replicaTokenFileName, mountPathToPartitionInfos, replicationMetrics, clusterMap, tokenHelper, cloudDestination); this.cloudStorageCompactor = cloudConfig.cloudBlobCompactionEnabled ? new CloudStorageCompactor(cloudDestination, cloudConfig, partitionToPartitionInfo.keySet(), vcrMetrics) : null; if (cloudConfig.vcrSourceDatacenters.isEmpty()) { throw new IllegalStateException("One or more VCR cross colo replication peer datacenter should be specified"); } }