/// <summary> /// Initializes a new instance of the CreateRecoveryPlanInput class /// with required arguments. /// </summary> public CreateRecoveryPlanInput(CreateRecoveryPlanInputProperties properties) : this() { if (properties == null) { throw new ArgumentNullException("properties"); } this.Properties = properties; }
/// <summary> /// Create Recovery Plan: By Service object /// </summary> private void CreateRecoveryPlan(RecoveryPlan recoveryPlan) { CreateRecoveryPlanInputProperties createRecoveryPlanInputProperties = new CreateRecoveryPlanInputProperties() { FailoverDeploymentModel = recoveryPlan.Properties.FailoverDeploymentModel, Groups = recoveryPlan.Properties.Groups, PrimaryFabricId = recoveryPlan.Properties.PrimaryFabricId, RecoveryFabricId = recoveryPlan.Properties.RecoveryFabricId }; CreateRecoveryPlanInput createRecoveryPlanInput = new CreateRecoveryPlanInput() { Properties = createRecoveryPlanInputProperties }; CreateRecoveryPlan(recoveryPlan.Name, createRecoveryPlanInput); }
/// <summary> /// Creates Replication Plan /// </summary> private void CreateRecoveryPlan() { CreateRecoveryPlanInputProperties createRecoveryPlanInputProperties = new CreateRecoveryPlanInputProperties() { FailoverDeploymentModel = failoverDeploymentModel, Groups = new List<RecoveryPlanGroup>(), PrimaryFabricId = this.primaryserver, RecoveryFabricId = this.recoveryserver }; RecoveryPlanGroup recoveryPlanGroup = new RecoveryPlanGroup() { GroupType = Constants.Boot, ReplicationProtectedItems = new List<RecoveryPlanProtectedItem>(), StartGroupActions = new List<RecoveryPlanAction>(), EndGroupActions = new List<RecoveryPlanAction>() }; foreach (ASRReplicationProtectedItem rpi in ReplicationProtectedItem) { string fabricName = Utilities.GetValueFromArmId(rpi.ID, ARMResourceTypeConstants.ReplicationFabrics); ReplicationProtectedItemResponse replicationProtectedItemResponse = RecoveryServicesClient.GetAzureSiteRecoveryReplicationProtectedItem(fabricName, Utilities.GetValueFromArmId(rpi.ID, ARMResourceTypeConstants.ReplicationProtectionContainers), rpi.Name); string VmId = null; if (replicationProtectedItemResponse.ReplicationProtectedItem.Properties.ProviderSpecificDetails.GetType() == typeof(HyperVReplicaAzureReplicationDetails)) { VmId = ((HyperVReplicaAzureReplicationDetails)replicationProtectedItemResponse.ReplicationProtectedItem.Properties.ProviderSpecificDetails).VmId; } else if (replicationProtectedItemResponse.ReplicationProtectedItem.Properties.ProviderSpecificDetails.GetType() == typeof(HyperVReplica2012ReplicationDetails)) { VmId = ((HyperVReplica2012ReplicationDetails)replicationProtectedItemResponse.ReplicationProtectedItem.Properties.ProviderSpecificDetails).VmId; } RecoveryPlanProtectedItem recoveryPlanProtectedItem = new RecoveryPlanProtectedItem(); recoveryPlanProtectedItem.Id = replicationProtectedItemResponse.ReplicationProtectedItem.Id; recoveryPlanProtectedItem.VirtualMachineId = VmId; recoveryPlanGroup.ReplicationProtectedItems.Add(recoveryPlanProtectedItem); } createRecoveryPlanInputProperties.Groups.Add(recoveryPlanGroup); CreateRecoveryPlanInput createRecoveryPlanInput = new CreateRecoveryPlanInput() { Properties = createRecoveryPlanInputProperties }; CreateRecoveryPlan(this.Name, createRecoveryPlanInput); }