public ApiManagementLongRunningOperation BeginBackupApiManagement( string resourceGroupName, string serviceName, string storageAccountName, string storageAccountKey, string backupContainer, string backupBlob) { if (string.IsNullOrWhiteSpace(backupBlob)) { backupBlob = string.Format("{0}-{1:yyyy-MM-dd-HH-mm}.apimbackup", serviceName, DateTime.Now); } var parameters = new ApiServiceBackupRestoreParameters { StorageAccount = storageAccountName, AccessKey = storageAccountKey, ContainerName = backupContainer, BackupName = backupBlob }; var longrunningResponse = Client.ResourceProvider.BeginBackup(resourceGroupName, serviceName, parameters); AdjustRetryAfter(longrunningResponse, _client.LongRunningOperationInitialTimeout); return(ApiManagementLongRunningOperation.CreateLongRunningOperation("Backup-AzureRmApiManagement", longrunningResponse)); }
public ApiManagementLongRunningOperation BeginRestoreApiManagement( string resourceGroupName, string serviceName, string storageAccountName, string storageAccountKey, string backupContainer, string backupBlob) { var parameters = new ApiServiceBackupRestoreParameters { StorageAccount = storageAccountName, AccessKey = storageAccountKey, ContainerName = backupContainer, BackupName = backupBlob }; var longrunningResponse = Client.ResourceProvider.BeginRestoring(resourceGroupName, serviceName, parameters); AdjustRetryAfter(longrunningResponse, _client.LongRunningOperationInitialTimeout); return(ApiManagementLongRunningOperation.CreateLongRunningOperation("Restore-AzureRmApiManagement", longrunningResponse)); }
public void BackupRestore() { using (var context = UndoContext.Current) { context.Start("ResourceProviderFunctionalTests", "BackupRestore"); TryCreateApiService(); // create storage account with blob container for the API Management backup var storageManagementClient = GetServiceClient <StorageManagementClient>(); var storageAccountName = TestUtilities.GenerateName("hydraapimstorage"); Assert.True( storageManagementClient.StorageAccounts.CheckNameAvailability(storageAccountName).IsAvailable, "Could not generate unique storage account name"); var storageCreateParams = new StorageAccountCreateParameters { Name = storageAccountName, Location = Location, AffinityGroup = null, Label = "ApimHydraBackupRestoreTest", Description = "Api Management hydra client backup/restore test", AccountType = StorageAccountTypes.StandardGRS }; storageManagementClient.StorageAccounts.Create(storageCreateParams); var storageKeysResponse = storageManagementClient.StorageAccounts.GetKeys(storageAccountName); const string apimBackupContainerName = "apimbackupcontainer"; // create API Management backup var apiManagementClient = GetServiceClient <ApiManagementClient>(new CSMTestEnvironmentFactory()); apiManagementClient.RefreshAccessToken(); const string apimBackupName = "apimbackup.zip"; var backupRestoreParameters = new ApiServiceBackupRestoreParameters { StorageAccount = storageAccountName, AccessKey = storageKeysResponse.PrimaryKey, ContainerName = apimBackupContainerName, BackupName = apimBackupName }; var response = apiManagementClient.ResourceProvider.Backup( ResourceGroupName, ApiManagementServiceName, backupRestoreParameters); Assert.Equal(HttpStatusCode.OK, response.StatusCode); // restore Api Management service from backup apiManagementClient.RefreshAccessToken(); response = apiManagementClient.ResourceProvider.Restore( ResourceGroupName, ApiManagementServiceName, backupRestoreParameters); Assert.NotNull(response); Assert.Equal(HttpStatusCode.OK, response.StatusCode); var getResponse = apiManagementClient.ResourceProvider.Get(ResourceGroupName, ApiManagementServiceName); Assert.NotNull(getResponse); Assert.Equal(HttpStatusCode.OK, getResponse.StatusCode); Assert.NotNull(getResponse.Value); Assert.Equal("Succeeded", getResponse.Value.Properties.ProvisioningState); } }
public ApiManagementLongRunningOperation BeginRestoreApiManagement( string resourceGroupName, string serviceName, string storageAccountName, string storageAccountKey, string backupContainer, string backupBlob) { var parameters = new ApiServiceBackupRestoreParameters { StorageAccount = storageAccountName, AccessKey = storageAccountKey, ContainerName = backupContainer, BackupName = backupBlob }; var longrunningResponse = Client.ResourceProvider.BeginRestoring(resourceGroupName, serviceName, parameters); AdjustRetryAfter(longrunningResponse, _client.LongRunningOperationInitialTimeout); return ApiManagementLongRunningOperation.CreateLongRunningOperation("Restore-AzureRmApiManagement", longrunningResponse); }
public ApiManagementLongRunningOperation BeginBackupApiManagement( string resourceGroupName, string serviceName, string storageAccountName, string storageAccountKey, string backupContainer, string backupBlob) { if (string.IsNullOrWhiteSpace(backupBlob)) { backupBlob = string.Format("{0}-{1:yyyy-MM-dd-HH-mm}.apimbackup", serviceName, DateTime.Now); } var parameters = new ApiServiceBackupRestoreParameters { StorageAccount = storageAccountName, AccessKey = storageAccountKey, ContainerName = backupContainer, BackupName = backupBlob }; var longrunningResponse = Client.ResourceProvider.BeginBackup(resourceGroupName, serviceName, parameters); AdjustRetryAfter(longrunningResponse, _client.LongRunningOperationInitialTimeout); return ApiManagementLongRunningOperation.CreateLongRunningOperation("Backup-AzureRmApiManagement", longrunningResponse); }
/// <summary> /// Restore an Api Management service from backup. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.ApiManagement.IResourceProviderOperations. /// </param> /// <param name='resourceGroupName'> /// Required. The name of the resource group. /// </param> /// <param name='name'> /// Required. The name of the Api Management service. /// </param> /// <param name='parameters'> /// Required. Parameters supplied to the Restore Api Management service /// from backup operation. /// </param> /// <returns> /// The response of the CreateOrUpdate Api Management service long /// running operation. /// </returns> public static Task <ApiServiceLongRunningOperationResponse> RestoreAsync(this IResourceProviderOperations operations, string resourceGroupName, string name, ApiServiceBackupRestoreParameters parameters) { return(operations.RestoreAsync(resourceGroupName, name, parameters, CancellationToken.None)); }
/// <summary> /// Restore an Api Management service from backup. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.ApiManagement.IResourceProviderOperations. /// </param> /// <param name='resourceGroupName'> /// Required. The name of the resource group. /// </param> /// <param name='name'> /// Required. The name of the Api Management service. /// </param> /// <param name='parameters'> /// Required. Parameters supplied to the Restore Api Management service /// from backup operation. /// </param> /// <returns> /// The response of the CreateOrUpdate Api Management service long /// running operation. /// </returns> public static ApiServiceLongRunningOperationResponse Restore(this IResourceProviderOperations operations, string resourceGroupName, string name, ApiServiceBackupRestoreParameters parameters) { return(Task.Factory.StartNew((object s) => { return ((IResourceProviderOperations)s).RestoreAsync(resourceGroupName, name, parameters); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }