/// <summary> /// InMageRcm provider switch appliance input. /// </summary> private void InMageRcmSwitchAppliance(UpdateApplianceForReplicationProtectedItemInputProperties input) { var inMageRcmSwitchApplianceInput = new InMageRcmUpdateApplianceForReplicationProtectedItemInput(); if (this.runAsAccountId != null) { inMageRcmSwitchApplianceInput.RunAsAccountId = this.runAsAccountId; } input.TargetApplianceId = this.targetApplianceId; input.ProviderSpecificDetails = inMageRcmSwitchApplianceInput; }
/// <summary> /// ProcessRecord of the command. /// </summary> public override void ExecuteSiteRecoveryCmdlet() { base.ExecuteSiteRecoveryCmdlet(); if (this.ShouldProcess( this.ReplicationProtectedItem.FriendlyName, "Switch the appliance")) { // Set the Fabric Name and Protection Container Name. string fabricName = this.Fabric.Name; string protectionContainerName = Utilities.GetValueFromArmId( this.ReplicationProtectedItem.ID, ARMResourceTypeConstants.ReplicationProtectionContainers); var updateApplianceInput = new UpdateApplianceForReplicationProtectedItemInputProperties(); if (this.ReplicationProtectedItem.ReplicationProvider.Equals(Constants.InMageRcm)) { this.InMageRcmValidateSwitchApplianceInput(); this.InMageRcmSwitchAppliance(updateApplianceInput); } else { throw new InvalidOperationException( string.Format( Resources.UnsupportedReplicationProviderOperation, this.ReplicationProtectedItem.ReplicationProvider, "SwitchAppliance")); } var input = new UpdateApplianceForReplicationProtectedItemInput { Properties = updateApplianceInput }; // Switch the appliance for protected item. var response = this.RecoveryServicesClient.SwitchAppliance( fabricName, protectionContainerName, this.ReplicationProtectedItem.Name, input); var jobResponse = this.RecoveryServicesClient.GetAzureSiteRecoveryJobDetails( PSRecoveryServicesClient.GetJobIdFromReponseLocation(response.Location)); this.WriteObject(new ASRJob(jobResponse)); } }