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); }
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; } } }
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); }