示例#1
0
        protected override void ProcessRecord()
        {
            ExecutionBlock(() =>
            {
                base.ProcessRecord();
                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));
            });
        }
示例#2
0
        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));
 }
 /// <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());
 }