/// <summary> /// ProcessRecord of the command. /// </summary> public override void ExecuteSiteRecoveryCmdlet() { base.ExecuteSiteRecoveryCmdlet(); string armName = string.Format( "StrgMap_{0}_{1}_{2}", PrimaryStorageClassification.Name, RecoveryStorageClassification.Name, Guid.NewGuid()); var props = new StorageClassificationMappingInputProperties() { TargetStorageClassificationId = RecoveryStorageClassification.Id }; var input = new StorageClassificationMappingInput() { Properties = props }; LongRunningOperationResponse operationResponse = RecoveryServicesClient.MapStorageClassification( PrimaryStorageClassification, input, armName); JobResponse jobResponse = RecoveryServicesClient.GetAzureSiteRecoveryJobDetails( PSRecoveryServicesClient.GetJobIdFromReponseLocation(operationResponse.Location)); base.WriteObject(new ASRJob(jobResponse.Job)); }
/// <summary> /// ProcessRecord of the command. /// </summary> public override void ExecuteSiteRecoveryCmdlet() { base.ExecuteSiteRecoveryCmdlet(); if (this.ShouldProcess( this.Name, VerbsCommon.New)) { var mappingName = this.Name; var props = new StorageMappingInputProperties { TargetStorageClassificationId = this.RecoveryStorageClassification.Id }; var input = new StorageClassificationMappingInput { Properties = props }; var operationResponse = this.RecoveryServicesClient.MapStorageClassification( this.PrimaryStorageClassification, input, mappingName); var jobResponse = this.RecoveryServicesClient.GetAzureSiteRecoveryJobDetails( PSRecoveryServicesClient .GetJobIdFromReponseLocation(operationResponse.Location)); this.WriteObject(new ASRJob(jobResponse)); } }
public void PairUnpairStorageClassifications() { using (UndoContext context = UndoContext.Current) { context.Start(); var client = GetSiteRecoveryClient(CustomHttpHandler); FabricListResponse responseServers = client.Fabrics.List(RequestHeaders); foreach (Fabric fabric in responseServers.Fabrics) { if (fabric.Properties.CustomDetails.InstanceType == "VMM") { var storageClassifications = client.StorageClassification.List(fabric.Name, RequestHeaders); if (storageClassifications.StorageClassifications.Count > 1) { StorageClassificationMappingInputProperties mapProps = new StorageClassificationMappingInputProperties() { TargetStorageClassificationId = storageClassifications.StorageClassifications[1].Id }; StorageClassificationMappingInput mapInput = new StorageClassificationMappingInput() { Properties = mapProps }; string mappingName = "StorageClassificationMapping-" + (new Random()).Next(); var pairResp = client.StorageClassificationMapping.PairStorageClassification( fabric.Name, storageClassifications.StorageClassifications[0].Name, mappingName, mapInput, RequestHeaders); var mappings = client.StorageClassificationMapping.List( fabric.Name, storageClassifications.StorageClassifications[0].Name, RequestHeaders); var mapping = client.StorageClassificationMapping.Get( fabric.Name, storageClassifications.StorageClassifications[0].Name, mappings.StorageClassificationMappings[0].Name, RequestHeaders); var unpairResp = client.StorageClassificationMapping.UnpairStorageClassification( fabric.Name, storageClassifications.StorageClassifications[0].Name, mappingName, RequestHeaders); } } } } }
/// <summary> /// Starts job for mapping storage classification. /// </summary> /// <param name="primaryClassification">Primary classification.</param> /// <param name="input">Mapping input.</param> /// <param name="armName">Optional. ARM name of the mapping.</param> /// <returns>Operation response.</returns> public LongRunningOperationResponse MapStorageClassification( ASRStorageClassification primaryClassification, StorageClassificationMappingInput input, string armName) { string[] tokens = primaryClassification.Id.UnFormatArmId( ARMResourceIdPaths.StorageClassificationResourceIdPath); return(this.GetSiteRecoveryClient().StorageClassificationMapping .BeginPairStorageClassification( tokens[0], tokens[1], armName, input, this.GetRequestHeaders())); }
/// <summary> /// Starts job for mapping storage classification. /// </summary> /// <param name="primaryClassification">Primary classification.</param> /// <param name="input">Mapping input.</param> /// <param name="armName">Optional. ARM name of the mapping.</param> /// <returns>Operation response.</returns> public PSSiteRecoveryLongRunningOperation MapStorageClassification( ASRStorageClassification primaryClassification, StorageClassificationMappingInput input, string armName) { var tokens = primaryClassification.Id.UnFormatArmId( ARMResourceIdPaths.StorageClassificationResourceIdPath); var op = this.GetSiteRecoveryClient() .ReplicationStorageClassificationMappings.BeginCreateWithHttpMessagesAsync( tokens[0], tokens[1], armName, input, this.GetRequestHeaders(true)) .GetAwaiter() .GetResult(); var result = SiteRecoveryAutoMapperProfile.Mapper.Map <PSSiteRecoveryLongRunningOperation>(op); return(result); }
public static StorageClassificationMappingOperationResponse PairStorageClassification( this SiteRecoveryManagementClient client, Fabric primaryFabric, StorageClassification primaryClassification, StorageClassification recoveryClassification, string armResourceName) { StorageClassificationMappingInputProperties props = new StorageClassificationMappingInputProperties() { TargetStorageClassificationId = recoveryClassification.Id }; StorageClassificationMappingInput input = new StorageClassificationMappingInput() { Properties = props }; return(client.StorageClassificationMapping.PairStorageClassification( primaryFabric.Name, primaryClassification.Name, armResourceName, input, GetRequestHeaders()) as StorageClassificationMappingOperationResponse); }
/// <summary> /// Pairs storage to a given storage. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.SiteRecovery.IStorageClassificationMappingOperations. /// </param> /// <param name='fabricName'> /// Required. Fabric name. /// </param> /// <param name='storageClassificationName'> /// Required. Storage name. /// </param> /// <param name='storageClassificationMappingName'> /// Required. Storage mapping name. /// </param> /// <param name='input'> /// Required. Create mapping input. /// </param> /// <param name='customRequestHeaders'> /// Optional. Request header parameters. /// </param> /// <returns> /// A standard service response for long running operations. /// </returns> public static Task <LongRunningOperationResponse> BeginPairStorageClassificationAsync(this IStorageClassificationMappingOperations operations, string fabricName, string storageClassificationName, string storageClassificationMappingName, StorageClassificationMappingInput input, CustomRequestHeaders customRequestHeaders) { return(operations.BeginPairStorageClassificationAsync(fabricName, storageClassificationName, storageClassificationMappingName, input, customRequestHeaders, CancellationToken.None)); }
/// <summary> /// Pairs storage to a given storage. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.SiteRecovery.IStorageClassificationMappingOperations. /// </param> /// <param name='fabricName'> /// Required. Fabric name. /// </param> /// <param name='storageClassificationName'> /// Required. Storage name. /// </param> /// <param name='storageClassificationMappingName'> /// Required. Storage mapping name. /// </param> /// <param name='input'> /// Required. Create mapping input. /// </param> /// <param name='customRequestHeaders'> /// Optional. Request header parameters. /// </param> /// <returns> /// A standard service response for long running operations. /// </returns> public static LongRunningOperationResponse BeginPairStorageClassification(this IStorageClassificationMappingOperations operations, string fabricName, string storageClassificationName, string storageClassificationMappingName, StorageClassificationMappingInput input, CustomRequestHeaders customRequestHeaders) { return(Task.Factory.StartNew((object s) => { return ((IStorageClassificationMappingOperations)s).BeginPairStorageClassificationAsync(fabricName, storageClassificationName, storageClassificationMappingName, input, customRequestHeaders); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }
/// <summary> /// Create storage classification mapping. /// </summary> /// <remarks> /// The operation to create a storage classification mapping. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='fabricName'> /// Fabric name. /// </param> /// <param name='storageClassificationName'> /// Storage classification name. /// </param> /// <param name='storageClassificationMappingName'> /// Storage classification mapping name. /// </param> /// <param name='pairingInput'> /// Pairing input. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <StorageClassificationMapping> BeginCreateAsync(this IReplicationStorageClassificationMappingsOperations operations, string fabricName, string storageClassificationName, string storageClassificationMappingName, StorageClassificationMappingInput pairingInput, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.BeginCreateWithHttpMessagesAsync(fabricName, storageClassificationName, storageClassificationMappingName, pairingInput, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Create storage classification mapping. /// </summary> /// <remarks> /// The operation to create a storage classification mapping. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='fabricName'> /// Fabric name. /// </param> /// <param name='storageClassificationName'> /// Storage classification name. /// </param> /// <param name='storageClassificationMappingName'> /// Storage classification mapping name. /// </param> /// <param name='pairingInput'> /// Pairing input. /// </param> public static StorageClassificationMapping BeginCreate(this IReplicationStorageClassificationMappingsOperations operations, string fabricName, string storageClassificationName, string storageClassificationMappingName, StorageClassificationMappingInput pairingInput) { return(operations.BeginCreateAsync(fabricName, storageClassificationName, storageClassificationMappingName, pairingInput).GetAwaiter().GetResult()); }