public override void ExecuteCmdlet() { ExecutionBlock(() => { base.ExecuteCmdlet(); WriteDebug("Making client call"); ProtectionPolicyHelpers.ValidateProtectionPolicyName(Name); AzureBackupClient.CheckProtectionPolicyNameAvailability(Vault.ResourceGroupName, Vault.Name, this.Name); var ScheduleType = ProtectionPolicyHelpers.GetScheduleType(DaysOfWeek, this.ParameterSetName, DailyScheduleParamSet, WeeklyScheduleParamSet); var backupSchedule = ProtectionPolicyHelpers.FillCSMBackupSchedule(ScheduleType, BackupTime, DaysOfWeek); ProtectionPolicyHelpers.ValidateRetentionPolicy(RetentionPolicy, backupSchedule); var addCSMProtectionPolicyRequest = new CSMAddProtectionPolicyRequest(); addCSMProtectionPolicyRequest.PolicyName = this.Name; addCSMProtectionPolicyRequest.Properties = new CSMAddProtectionPolicyRequestProperties(); addCSMProtectionPolicyRequest.Properties.PolicyName = this.Name; addCSMProtectionPolicyRequest.Properties.BackupSchedule = backupSchedule; addCSMProtectionPolicyRequest.Properties.WorkloadType = ProtectionPolicyHelpers.ConvertToCSMWorkLoadType(this.Type); addCSMProtectionPolicyRequest.Properties.LtrRetentionPolicy = ProtectionPolicyHelpers.ConvertToCSMRetentionPolicyObject(RetentionPolicy, backupSchedule); AzureBackupClient.AddProtectionPolicy(Vault.ResourceGroupName, Vault.Name, this.Name, addCSMProtectionPolicyRequest); WriteDebug(Resources.ProtectionPolicyCreated); var policyInfo = AzureBackupClient.GetProtectionPolicyByName(Vault.ResourceGroupName, Vault.Name, Name); WriteObject(ProtectionPolicyHelpers.GetCmdletPolicy(Vault, policyInfo)); }); }
/// <summary> /// Create new Protection Policy. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.BackupServices.ICSMProtectionPolicyOperations. /// </param> /// <param name='resourceGroupName'> /// Required. /// </param> /// <param name='resourceName'> /// Required. /// </param> /// <param name='policyName'> /// Required. The protection policy Name to be updated. /// </param> /// <param name='cSMAddProtectionPolicyRequest'> /// Required. The protection policy creation request. /// </param> /// <param name='customRequestHeaders'> /// Optional. Request header parameters. /// </param> /// <returns> /// A standard service response including an HTTP status code and /// request ID. /// </returns> public static AzureOperationResponse Add(this ICSMProtectionPolicyOperations operations, string resourceGroupName, string resourceName, string policyName, CSMAddProtectionPolicyRequest cSMAddProtectionPolicyRequest, CustomRequestHeaders customRequestHeaders) { return Task.Factory.StartNew((object s) => { return ((ICSMProtectionPolicyOperations)s).AddAsync(resourceGroupName, resourceName, policyName, cSMAddProtectionPolicyRequest, customRequestHeaders); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); }
public void AddProtectionPolicyTest() { using (UndoContext context = UndoContext.Current) { context.Start(); var client = GetServiceClient<BackupServicesManagementClient>(); var backupSchedule = GetBackupSchedule(); var addProtectionPolicyRequest = new CSMAddProtectionPolicyRequest(); string policyName = ConfigurationManager.AppSettings["PolicyName"]; addProtectionPolicyRequest.PolicyName = ConfigurationManager.AppSettings["PolicyName"]; addProtectionPolicyRequest.Properties = new CSMAddProtectionPolicyRequestProperties(); addProtectionPolicyRequest.Properties.PolicyName = ConfigurationManager.AppSettings["PolicyName"]; addProtectionPolicyRequest.Properties.BackupSchedule = backupSchedule; addProtectionPolicyRequest.Properties.WorkloadType = ConfigurationManager.AppSettings["WorkloadType"]; addProtectionPolicyRequest.Properties.LtrRetentionPolicy = GetRetentionPolicy(backupSchedule.ScheduleRunTimes); var response = client.CSMProtectionPolicy.Add(BackupServicesTestsBase.ResourceGroupName, BackupServicesTestsBase.ResourceName, policyName, addProtectionPolicyRequest, GetCustomRequestHeaders()); Assert.Equal(HttpStatusCode.OK, response.StatusCode); } }
/// <summary> /// Add protection policy /// </summary> /// <param name="policyName"></param> /// <param name="request"></param> public void AddProtectionPolicy(string resourceGroupName, string resourceName, string policyName, CSMAddProtectionPolicyRequest request) { AzureBackupClient.CSMProtectionPolicy.AddAsync(resourceGroupName, resourceName, policyName, request, GetCustomRequestHeaders(), CmdletCancellationToken).Wait(); }
/// <summary> /// Create new Protection Policy. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.BackupServices.ICSMProtectionPolicyOperations. /// </param> /// <param name='resourceGroupName'> /// Required. /// </param> /// <param name='resourceName'> /// Required. /// </param> /// <param name='policyName'> /// Required. The protection policy Name to be updated. /// </param> /// <param name='cSMAddProtectionPolicyRequest'> /// Required. The protection policy creation request. /// </param> /// <param name='customRequestHeaders'> /// Optional. Request header parameters. /// </param> /// <returns> /// A standard service response including an HTTP status code and /// request ID. /// </returns> public static Task<AzureOperationResponse> AddAsync(this ICSMProtectionPolicyOperations operations, string resourceGroupName, string resourceName, string policyName, CSMAddProtectionPolicyRequest cSMAddProtectionPolicyRequest, CustomRequestHeaders customRequestHeaders) { return operations.AddAsync(resourceGroupName, resourceName, policyName, cSMAddProtectionPolicyRequest, customRequestHeaders, CancellationToken.None); }