Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }
Example #6
0
 /// <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));
 }
Example #7
0
 /// <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());
 }