public override void ExecuteCmdlet() { ExecutionBlock(() => { base.ExecuteCmdlet(); ResourceIdentifier resourceIdentifier = new ResourceIdentifier(VaultId); string vaultName = resourceIdentifier.ResourceName; string resourceGroupName = resourceIdentifier.ResourceGroupName; WriteDebug(string.Format("Input params - Name:{0}, WorkloadType:{1}, " + "BackupManagementType: {2}, " + "RetentionPolicy:{3}, SchedulePolicy:{4}", Name, WorkloadType.ToString(), BackupManagementType.HasValue ? BackupManagementType.ToString() : "NULL", RetentionPolicy == null ? "NULL" : RetentionPolicy.ToString(), SchedulePolicy == null ? "NULL" : SchedulePolicy.ToString())); // validate policy name PolicyCmdletHelpers.ValidateProtectionPolicyName(Name); // Validate if policy already exists if (PolicyCmdletHelpers.GetProtectionPolicyByName( Name, ServiceClientAdapter, vaultName: vaultName, resourceGroupName: resourceGroupName) != null) { throw new ArgumentException(string.Format(Resources.PolicyAlreadyExistException, Name)); } Dictionary <Enum, object> providerParameters = new Dictionary <Enum, object>(); providerParameters.Add(VaultParams.VaultName, vaultName); providerParameters.Add(VaultParams.ResourceGroupName, resourceGroupName); providerParameters.Add(PolicyParams.PolicyName, Name); providerParameters.Add(PolicyParams.WorkloadType, WorkloadType); providerParameters.Add(PolicyParams.RetentionPolicy, RetentionPolicy); providerParameters.Add(PolicyParams.SchedulePolicy, SchedulePolicy); PsBackupProviderManager providerManager = new PsBackupProviderManager(providerParameters, ServiceClientAdapter); IPsBackupProvider psBackupProvider = providerManager.GetProviderInstance(WorkloadType, BackupManagementType); psBackupProvider.CreatePolicy(); WriteDebug("Successfully created policy, now fetching it from service: " + Name); // now get the created policy and return ServiceClientModel.ProtectionPolicyResource policy = PolicyCmdletHelpers.GetProtectionPolicyByName( Name, ServiceClientAdapter, vaultName: vaultName, resourceGroupName: resourceGroupName); // now convert service Policy to PSObject WriteObject(ConversionHelpers.GetPolicyModel(policy)); }, ShouldProcess(Name, VerbsCommon.New)); }
public override void ExecuteCmdlet() { ExecutionBlock(() => { base.ExecuteCmdlet(); WriteDebug(string.Format("Input params - Name:{0}, WorkloadType:{1}, " + "BackupManagementType: {2}, " + "RetentionPolicy:{3}, SchedulePolicy:{4}", Name, WorkloadType.ToString(), BackupManagementType.HasValue ? BackupManagementType.ToString() : "NULL", RetentionPolicy == null ? "NULL" : RetentionPolicy.ToString(), SchedulePolicy == null ? "NULL" : SchedulePolicy.ToString())); // validate policy name PolicyCmdletHelpers.ValidateProtectionPolicyName(Name); // Validate if policy already exists if (PolicyCmdletHelpers.GetProtectionPolicyByName(Name, ServiceClientAdapter) != null) { throw new ArgumentException(string.Format(Resources.PolicyAlreadyExistException, Name)); } PsBackupProviderManager providerManager = new PsBackupProviderManager(new Dictionary <System.Enum, object>() { { PolicyParams.PolicyName, Name }, { PolicyParams.WorkloadType, WorkloadType }, { PolicyParams.RetentionPolicy, RetentionPolicy }, { PolicyParams.SchedulePolicy, SchedulePolicy }, }, ServiceClientAdapter); IPsBackupProvider psBackupProvider = providerManager.GetProviderInstance(WorkloadType, BackupManagementType); psBackupProvider.CreatePolicy(); WriteDebug("Successfully created policy, now fetching it from service: " + Name); // now get the created policy and return ServiceClientModel.ProtectionPolicyResponse policy = PolicyCmdletHelpers.GetProtectionPolicyByName( Name, ServiceClientAdapter); // now convert service Policy to PSObject WriteObject(ConversionHelpers.GetPolicyModel(policy.Item)); }); }