/// <summary> /// Updates Mobility Service. /// </summary> /// <param name="fabricName">Fabric Name</param> /// <param name="protectionContainerName">Protection Conatiner Name</param> /// <param name="replicationProtectedItemName">Replication Protected Item</param> /// <param name="input">Update Mobility Service Request</param> /// <returns>Job Response</returns> public PSSiteRecoveryLongRunningOperation UpdateAzureSiteRecoveryMobilityService( string fabricName, string protectionContainerName, string replicationProtectedItemName, UpdateMobilityServiceRequest input) { var op = this.GetSiteRecoveryClient() .ReplicationProtectedItems.BeginUpdateMobilityServiceWithHttpMessagesAsync( fabricName, protectionContainerName, replicationProtectedItemName, input, this.GetRequestHeaders(true)) .GetAwaiter() .GetResult(); var result = SiteRecoveryAutoMapperProfile.Mapper.Map <PSSiteRecoveryLongRunningOperation>(op); return(result); }
/// <summary> /// ProcessRecord of the command. /// </summary> public override void ExecuteSiteRecoveryCmdlet() { base.ExecuteSiteRecoveryCmdlet(); if (this.ShouldProcess( "Update Mobility Service", ReplicationProtectedItem.FriendlyName)) { // Validate the Replication Provider for InMageAzureV2 / InMage. if (string.Compare( this.ReplicationProtectedItem.ReplicationProvider, Constants.InMageAzureV2, StringComparison.OrdinalIgnoreCase) != 0 && string.Compare( this.ReplicationProtectedItem.ReplicationProvider, Constants.InMage, StringComparison.OrdinalIgnoreCase) != 0 && string.Compare( this.ReplicationProtectedItem.ReplicationProvider, Constants.A2A, StringComparison.OrdinalIgnoreCase) != 0) { throw new InvalidOperationException( string.Format( Resources.UnsupportedReplicationProviderForUpdateMobilityService, this.ReplicationProtectedItem.ReplicationProvider)); } // Set the Fabric Name and Protection Container Name. this.fabricName = Utilities.GetValueFromArmId( this.ReplicationProtectedItem.ID, ARMResourceTypeConstants.ReplicationFabrics); this.protectionContainerName = Utilities.GetValueFromArmId( this.ReplicationProtectedItem.ID, ARMResourceTypeConstants.ReplicationProtectionContainers); this.protectableItemName = Utilities.GetValueFromArmId( this.ReplicationProtectedItem.ID, ARMResourceTypeConstants.ReplicationProtectedItems); // Create the Update Mobility Service input request. var input = new UpdateMobilityServiceRequest(); if (this.Account != null) { input.Properties = new UpdateMobilityServiceRequestProperties { RunAsAccountId = this.Account.AccountId }; } else { input.Properties = new UpdateMobilityServiceRequestProperties(); } // Update the Mobility Service. var response = this.RecoveryServicesClient.UpdateAzureSiteRecoveryMobilityService( this.fabricName, this.protectionContainerName, this.protectableItemName, input); var jobResponse = this.RecoveryServicesClient.GetAzureSiteRecoveryJobDetails( PSRecoveryServicesClient.GetJobIdFromReponseLocation(response.Location)); this.WriteObject(new ASRJob(jobResponse)); } }