Пример #1
0
        public static List <ServiceClientModel.SubProtectionPolicy> GetServiceClientSubProtectionPolicy(
            AzureVmWorkloadPolicy policy)
        {
            List <ServiceClientModel.SubProtectionPolicy> subProtectionPolicy =
                new List <ServiceClientModel.SubProtectionPolicy>();

            if (policy.FullBackupSchedulePolicy != null &&
                policy.FullBackupRetentionPolicy != null)
            {
                subProtectionPolicy.Add(new ServiceClientModel.SubProtectionPolicy("Full",
                                                                                   GetServiceClientSimpleSchedulePolicy((SimpleSchedulePolicy)policy.FullBackupSchedulePolicy),
                                                                                   GetServiceClientLongTermRetentionPolicy((LongTermRetentionPolicy)policy.FullBackupRetentionPolicy)));
            }
            if (policy.DifferentialBackupSchedulePolicy != null &&
                policy.DifferentialBackupRetentionPolicy != null &&
                policy.IsDifferentialBackupEnabled)
            {
                subProtectionPolicy.Add(new ServiceClientModel.SubProtectionPolicy("Differential",
                                                                                   GetServiceClientSimpleSchedulePolicy((SimpleSchedulePolicy)policy.DifferentialBackupSchedulePolicy),
                                                                                   GetServiceClientSimpleRetentionPolicy((SimpleRetentionPolicy)policy.DifferentialBackupRetentionPolicy)));
            }
            if (policy.LogBackupSchedulePolicy != null &&
                policy.LogBackupRetentionPolicy != null &&
                policy.IsLogBackupEnabled)
            {
                subProtectionPolicy.Add(new ServiceClientModel.SubProtectionPolicy("Log",
                                                                                   GetServiceClientLogSchedulePolicy((LogSchedulePolicy)policy.LogBackupSchedulePolicy),
                                                                                   GetServiceClientSimpleRetentionPolicy((SimpleRetentionPolicy)policy.LogBackupRetentionPolicy)));
            }
            return(subProtectionPolicy);
        }
Пример #2
0
        public static void GetPSSubProtectionPolicy(AzureVmWorkloadPolicy azureVmWorkloadPolicyModel,
                                                    ServiceClientModel.ProtectionPolicyResource serviceClientResponse, string timeZone)
        {
            foreach (var subProtectionPolicy in
                     ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).SubProtectionPolicy)
            {
                if (string.Compare(subProtectionPolicy.PolicyType, "Full") == 0)
                {
                    azureVmWorkloadPolicyModel.FullBackupSchedulePolicy = PolicyHelpers.GetPSSimpleSchedulePolicy(
                        (ServiceClientModel.SimpleSchedulePolicy)subProtectionPolicy.SchedulePolicy,
                        ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).Settings.TimeZone);

                    azureVmWorkloadPolicyModel.FullBackupRetentionPolicy = PolicyHelpers.GetPSLongTermRetentionPolicy(
                        (ServiceClientModel.LongTermRetentionPolicy)subProtectionPolicy.RetentionPolicy,
                        ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).Settings.TimeZone);
                }
                else if (string.Compare(subProtectionPolicy.PolicyType, "Differential") == 0)
                {
                    azureVmWorkloadPolicyModel.DifferentialBackupSchedulePolicy = PolicyHelpers.GetPSSimpleSchedulePolicy(
                        (ServiceClientModel.SimpleSchedulePolicy)subProtectionPolicy.SchedulePolicy,
                        ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).Settings.TimeZone);
                    azureVmWorkloadPolicyModel.DifferentialBackupRetentionPolicy = PolicyHelpers.GetPSSimpleRetentionPolicy(
                        (ServiceClientModel.SimpleRetentionPolicy)subProtectionPolicy.RetentionPolicy,
                        ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).Settings.TimeZone, "AzureWorkload");
                    azureVmWorkloadPolicyModel.IsDifferentialBackupEnabled = true;
                }
                else if (string.Compare(subProtectionPolicy.PolicyType, "Log") == 0)
                {
                    azureVmWorkloadPolicyModel.LogBackupSchedulePolicy = PolicyHelpers.GetPSLogSchedulePolicy((ServiceClientModel.LogSchedulePolicy)
                                                                                                              subProtectionPolicy.SchedulePolicy,
                                                                                                              ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).Settings.TimeZone);
                    azureVmWorkloadPolicyModel.LogBackupRetentionPolicy = PolicyHelpers.GetPSSimpleRetentionPolicy((ServiceClientModel.SimpleRetentionPolicy)
                                                                                                                   subProtectionPolicy.RetentionPolicy,
                                                                                                                   ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).Settings.TimeZone, "AzureWorkload");
                    azureVmWorkloadPolicyModel.IsLogBackupEnabled = true;
                }
            }
        }
Пример #3
0
        public static PolicyBase GetPolicyModelForAzureVmWorkload(ServiceClientModel.ProtectionPolicyResource serviceClientResponse,
                                                                  PolicyBase policyModel)
        {
            ServiceClientModel.AzureVmWorkloadProtectionPolicy azureVmWorkloadPolicy =
                (ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties;

            foreach (var policy in azureVmWorkloadPolicy.SubProtectionPolicy)
            {
                if (string.Compare(policy.PolicyType, "Full") == 0)
                {
                    if (policy.SchedulePolicy.GetType() !=
                        typeof(ServiceClientModel.SimpleSchedulePolicy))
                    {
                        Logger.Instance.WriteDebug("Unknown Schedule object received: " +
                                                   policy.SchedulePolicy.GetType());
                        Logger.Instance.WriteWarning(Resources.UpdateToNewAzurePowershellWarning);
                        return(null);
                    }
                    if (policy.RetentionPolicy.GetType() !=
                        typeof(ServiceClientModel.LongTermRetentionPolicy))
                    {
                        Logger.Instance.WriteDebug("Unknown RetentionPolicy object received: " +
                                                   policy.RetentionPolicy.GetType());
                        Logger.Instance.WriteWarning(Resources.UpdateToNewAzurePowershellWarning);
                        return(null);
                    }
                }
                else if (string.Compare(policy.PolicyType, "Differential") == 0)
                {
                    if (policy.SchedulePolicy.GetType() !=
                        typeof(ServiceClientModel.SimpleSchedulePolicy))
                    {
                        Logger.Instance.WriteDebug("Unknown Schedule object received: " +
                                                   policy.SchedulePolicy.GetType());
                        Logger.Instance.WriteWarning(Resources.UpdateToNewAzurePowershellWarning);
                        return(null);
                    }
                    if (policy.RetentionPolicy.GetType() !=
                        typeof(ServiceClientModel.SimpleRetentionPolicy))
                    {
                        Logger.Instance.WriteDebug("Unknown RetentionPolicy object received: " +
                                                   policy.RetentionPolicy.GetType());
                        Logger.Instance.WriteWarning(Resources.UpdateToNewAzurePowershellWarning);
                        return(null);
                    }
                }
                else if (string.Compare(policy.PolicyType, "Log") == 0)
                {
                    if (policy.SchedulePolicy.GetType() !=
                        typeof(ServiceClientModel.LogSchedulePolicy))
                    {
                        Logger.Instance.WriteDebug("Unknown Schedule object received: " +
                                                   policy.SchedulePolicy.GetType());
                        Logger.Instance.WriteWarning(Resources.UpdateToNewAzurePowershellWarning);
                        return(null);
                    }
                    if (policy.RetentionPolicy.GetType() !=
                        typeof(ServiceClientModel.SimpleRetentionPolicy))
                    {
                        Logger.Instance.WriteDebug("Unknown RetentionPolicy object received: " +
                                                   policy.RetentionPolicy.GetType());
                        Logger.Instance.WriteWarning(Resources.UpdateToNewAzurePowershellWarning);
                        return(null);
                    }
                }
            }

            policyModel = new AzureVmWorkloadPolicy();
            AzureVmWorkloadPolicy azureVmWorkloadPolicyModel = policyModel as AzureVmWorkloadPolicy;

            azureVmWorkloadPolicyModel.WorkloadType         = WorkloadType.MSSQL;
            azureVmWorkloadPolicyModel.BackupManagementType = BackupManagementType.AzureWorkload;
            azureVmWorkloadPolicyModel.IsCompression        =
                ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).Settings.IsCompression;
            azureVmWorkloadPolicyModel.IsDifferentialBackupEnabled = false;
            azureVmWorkloadPolicyModel.IsLogBackupEnabled          = false;
            GetPSSubProtectionPolicy(azureVmWorkloadPolicyModel, serviceClientResponse,
                                     ((ServiceClientModel.AzureVmWorkloadProtectionPolicy)serviceClientResponse.Properties).Settings.TimeZone);
            return(policyModel);
        }