public override void ExecuteCmdlet() { base.ExecuteCmdlet(); var freq = BackupRestoreUtils.StringToFrequencyUnit(FrequencyUnit); BackupSchedule schedule = new BackupSchedule(freq, FrequencyInterval, KeepAtLeastOneBackup.IsPresent, RetentionPeriodInDays, StartTime); BackupRequest request = new BackupRequest() { Location = "", Enabled = true, StorageAccountUrl = this.StorageAccountUrl, BackupSchedule = schedule, Databases = this.Databases, BackupRequestType = BackupRestoreOperationType.Default }; WebsitesClient.UpdateWebAppBackupConfiguration(ResourceGroupName, Name, Slot, request); var config = new AzureWebAppBackupConfiguration() { Name = this.Name, ResourceGroupName = this.ResourceGroupName, StorageAccountUrl = this.StorageAccountUrl, FrequencyInterval = this.FrequencyInterval, FrequencyUnit = this.FrequencyUnit, RetentionPeriodInDays = this.RetentionPeriodInDays, StartTime = this.StartTime, KeepAtLeastOneBackup = this.KeepAtLeastOneBackup.IsPresent, Databases = this.Databases, Enabled = true }; WriteObject(config); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); BackupRequest request = new BackupRequest() { // Location is required by Resource (base class of BackupRequest) // to not be null, but is not actually significant for the request. Location = "", StorageAccountUrl = this.StorageAccountUrl, BackupRequestName = this.BackupName, Databases = this.Databases }; var backup = WebsitesClient.BackupSite(ResourceGroupName, Name, Slot, request); WriteObject(BackupRestoreUtils.BackupItemToAppBackup(backup, ResourceGroupName, Name, Slot)); }
public static AzureWebAppBackupConfiguration BackupRequestToAppBackupConfiguration(BackupRequest configuration, string resourceGroupName, string name, string slot) { if (configuration == null) { return new AzureWebAppBackupConfiguration(); } BackupSchedule schedule = configuration.BackupSchedule; DatabaseBackupSetting[] databases = null; bool? enabled = configuration.Enabled; if (configuration.Databases != null) { databases = configuration.Databases.ToArray(); } int? frequencyInterval = null; string frequencyUnit = null; int? retentionPeriodInDays = null; DateTime? startTime = null; bool? keepAtLeastOneBackup = null; if (schedule != null) { frequencyInterval = schedule.FrequencyInterval; if (schedule.FrequencyUnit != null) { frequencyUnit = schedule.FrequencyUnit.ToString(); } retentionPeriodInDays = schedule.RetentionPeriodInDays; startTime = schedule.StartTime; keepAtLeastOneBackup = schedule.KeepAtLeastOneBackup; } return new AzureWebAppBackupConfiguration() { Name = name, ResourceGroupName = resourceGroupName, StorageAccountUrl = configuration.StorageAccountUrl, FrequencyInterval = frequencyInterval, FrequencyUnit = frequencyUnit, RetentionPeriodInDays = retentionPeriodInDays, StartTime = startTime, Databases = databases, KeepAtLeastOneBackup = keepAtLeastOneBackup, Enabled = enabled }; }
public BackupItem GetSiteBackupStatusSecrets(string resourceGroupName, string webSiteName, string slotName, string backupId, BackupRequest request = null) { string qualifiedSiteName; var useSlot = CmdletHelpers.ShouldUseDeploymentSlot(webSiteName, slotName, out qualifiedSiteName); if (useSlot) { return WrappedWebsitesClient.Sites.GetSiteBackupStatusSecretsSlot(resourceGroupName, webSiteName, backupId, request, slotName); } else { return WrappedWebsitesClient.Sites.GetSiteBackupStatusSecrets(resourceGroupName, webSiteName, backupId, request); } }
public BackupItem BackupSite(string resourceGroupName, string webSiteName, string slotName, BackupRequest request) { string qualifiedSiteName; var useSlot = CmdletHelpers.ShouldUseDeploymentSlot(webSiteName, slotName, out qualifiedSiteName); if (useSlot) { var backup = WrappedWebsitesClient.Sites.BackupSiteSlot(resourceGroupName, webSiteName, request, slotName); return backup; } else { var backup = WrappedWebsitesClient.Sites.BackupSite(resourceGroupName, webSiteName, request); return backup; } }
public BackupRequest UpdateWebAppBackupConfiguration(string resourceGroupName, string webSiteName, string slotName, BackupRequest newSchedule) { string qualifiedSiteName; var useSlot = CmdletHelpers.ShouldUseDeploymentSlot(webSiteName, slotName, out qualifiedSiteName); if (useSlot) { return WrappedWebsitesClient.Sites.UpdateSiteBackupConfigurationSlot(resourceGroupName, webSiteName, newSchedule, slotName); } else { return WrappedWebsitesClient.Sites.UpdateSiteBackupConfiguration(resourceGroupName, webSiteName, newSchedule); } }
public void ListBackupsAndScheduledBackupRoundTrip() { var handler = new RecordedDelegatingHandler() { StatusCodeToReturn = HttpStatusCode.OK }; using (UndoContext context = UndoContext.Current) { context.Start(); var webSitesClient = GetWebSitesClient(handler); var resourcesClient = GetResourcesClient(handler); string farmName = TestUtilities.GenerateName("csmsf"); string resourceGroupName = TestUtilities.GenerateName("csmrg"); string locationName = "West US"; string siteName = TestUtilities.GenerateName("csmws"); resourcesClient.ResourceGroups.CreateOrUpdate(resourceGroupName, new ResourceGroup { Location = locationName }); webSitesClient.WebHostingPlans.CreateOrUpdate(resourceGroupName, new WebHostingPlanCreateOrUpdateParameters { WebHostingPlan = new WebHostingPlan { Name = farmName, Location = locationName, Properties = new WebHostingPlanProperties { NumberOfWorkers = 1, WorkerSize = WorkerSizeOptions.Small } } }); webSitesClient.WebSites.CreateOrUpdate(resourceGroupName, siteName, null, new WebSiteCreateOrUpdateParameters() { WebSite = new WebSiteBase() { Name = siteName, Location = locationName, Properties = new WebSiteBaseProperties() { ServerFarm = farmName } } }); var backupResponse = webSitesClient.WebSites.ListBackups(resourceGroupName, siteName, null); Assert.Equal(0, backupResponse.BackupList.Properties.Count); // , "Backup list should be empty" // the following URL just have a proper format, but it is not valid - for an API test it is not needed to be valid, // since we are just testing a roundtrip here string storageUrl = "https://nonexistingusername3567.blob.core.windows.net/backup/?sv=2012-02-12&st=2013-12-05T19%3A30%3A45Z&se=2017-12-04T19%3A30%3A45Z&sr=c&sp=rwdl&sig=3BY5sbzQ2NeKvdaelzxc8inxJgE1mGq2a%2BaqUeFGJYo%3D"; var sr = new BackupRequest() { Enabled = false, BackupSchedule = new BackupSchedule() { FrequencyInterval = 17, FrequencyUnit = FrequencyUnit.Day, KeepAtLeastOneBackup = true, RetentionPeriodInDays = 26, StartTime = DateTime.Now.AddDays(5) }, Name = "abc", StorageAccountUrl = storageUrl }; webSitesClient.WebSites.UpdateBackupConfiguration(resourceGroupName, siteName, null, new BackupRequestEnvelope() { Location = locationName, Request = sr }); var backupConfiguration = webSitesClient.WebSites.GetBackupConfiguration(resourceGroupName, siteName, null); Assert.Equal(sr.Enabled, backupConfiguration.BackupSchedule.Properties.Enabled); Assert.Equal(sr.BackupSchedule.FrequencyInterval, backupConfiguration.BackupSchedule.Properties.BackupSchedule.FrequencyInterval); Assert.Equal(sr.BackupSchedule.FrequencyUnit, backupConfiguration.BackupSchedule.Properties.BackupSchedule.FrequencyUnit); Assert.Equal(sr.BackupSchedule.KeepAtLeastOneBackup, backupConfiguration.BackupSchedule.Properties.BackupSchedule.KeepAtLeastOneBackup); Assert.Equal(sr.Name, backupConfiguration.BackupSchedule.Properties.Name); webSitesClient.WebSites.Delete(resourceGroupName, siteName, null, new WebSiteDeleteParameters() { DeleteAllSlots = true, DeleteMetrics = true }); webSitesClient.WebHostingPlans.Delete(resourceGroupName, farmName); var serverFarmResponse = webSitesClient.WebHostingPlans.List(resourceGroupName); Assert.Equal(0, serverFarmResponse.WebHostingPlans.Count); } }