Example #1
0
        public PSVpnServerConfigurationPolicyGroup CreateOrUpdateVpnServerConfigurationPolicyGroup(string resourceGroupName, string parentVpnServerConfigurationName, string name, PSVpnServerConfigurationPolicyGroup vpnServerConfigurationPolicyGroup)
        {
            var vpnServerConfigurationPolicyGroupModel = NetworkResourceManagerProfile.Mapper.Map <MNM.VpnServerConfigurationPolicyGroup>(vpnServerConfigurationPolicyGroup);

            var vpnServerConfigurationPolicyGroupCreatedOrUpdated = this.ConfigurationPolicyGroupClient.CreateOrUpdate(resourceGroupName, parentVpnServerConfigurationName, name, vpnServerConfigurationPolicyGroupModel);
            PSVpnServerConfigurationPolicyGroup vpnServerConfigurationPolicyGroupToReturn = this.ToPsVpnServerConfigurationPolicyGroup(vpnServerConfigurationPolicyGroupCreatedOrUpdated);

            return(vpnServerConfigurationPolicyGroupToReturn);
        }
Example #2
0
        private PSVpnServerConfigurationPolicyGroup UpdatePolicyGroup()
        {
            PSVpnServerConfiguration            parentVpnServerConfiguration = null;
            PSVpnServerConfigurationPolicyGroup policyGroupToUpdate          = null;

            if (ParameterSetName.Equals(CortexParameterSetNames.ByVpnServerConfigurationObject, StringComparison.OrdinalIgnoreCase))
            {
                this.ResourceGroupName       = this.ServerConfigurationObject.ResourceGroupName;
                this.ServerConfigurationName = this.ServerConfigurationObject.Name;
            }
            else if (ParameterSetName.Equals(CortexParameterSetNames.ByVpnServerConfigurationResourceId, StringComparison.OrdinalIgnoreCase))
            {
                var parsedResourceId = new ResourceIdentifier(this.ServerConfigurationResourceId);
                this.ResourceGroupName       = parsedResourceId.ResourceGroupName;
                this.ServerConfigurationName = parsedResourceId.ResourceName;
            }

            if (string.IsNullOrWhiteSpace(this.ResourceGroupName) || string.IsNullOrWhiteSpace(this.ServerConfigurationName))
            {
                throw new PSArgumentException(Properties.Resources.VpnServerConfigurationRequiredToCreateOrUpdatePolicyGroup);
            }

            parentVpnServerConfiguration = GetVpnServerConfiguration(this.ResourceGroupName, this.ServerConfigurationName);

            if (parentVpnServerConfiguration == null)
            {
                throw new PSArgumentException(Properties.Resources.VpnServerConfigurationRequiredToCreateOrUpdatePolicyGroup);
            }

            policyGroupToUpdate = GetVpnServerConfigurationPolicyGroup(this.ResourceGroupName, this.ServerConfigurationName, this.Name);

            if (policyGroupToUpdate == null)
            {
                throw new PSArgumentException(Properties.Resources.VpnServerConfigurationPolicyGroupNotFound);
            }

            if (this.Priority > 0)
            {
                policyGroupToUpdate.Priority = this.Priority;
            }

            if (this.DefaultPolicyGroup.HasValue)
            {
                policyGroupToUpdate.IsDefault = this.DefaultPolicyGroup.Value;
            }

            if (this.PolicyMember != null)
            {
                policyGroupToUpdate.PolicyMembers = new List <PSVpnServerConfigurationPolicyGroupMember>();
                policyGroupToUpdate.PolicyMembers.AddRange(this.PolicyMember);
            }

            this.CreateOrUpdateVpnServerConfigurationPolicyGroup(this.ResourceGroupName, this.ServerConfigurationName, this.Name, policyGroupToUpdate);

            return(this.GetVpnServerConfigurationPolicyGroup(this.ResourceGroupName, this.ServerConfigurationName, this.Name));
        }
Example #3
0
        public override void Execute()
        {
            if (ParameterSetName.Equals(CortexParameterSetNames.ByVpnServerConfigurationObject, StringComparison.OrdinalIgnoreCase))
            {
                this.ResourceGroupName       = this.ServerConfigurationObject.ResourceGroupName;
                this.ServerConfigurationName = this.ServerConfigurationObject.Name;
            }
            else if (ParameterSetName.Equals(CortexParameterSetNames.ByVpnServerConfigurationResourceId, StringComparison.OrdinalIgnoreCase))
            {
                var parsedResourceId = new ResourceIdentifier(this.ServerConfigurationResourceId);
                this.ResourceGroupName       = parsedResourceId.ResourceGroupName;
                this.ServerConfigurationName = parsedResourceId.ResourceName;
            }

            // Get the VpnServerConfigurationPolicyGroup object - this will throw not found if the object is not found
            PSVpnServerConfigurationPolicyGroup configurationPolicyGroupToRemove = this.GetVpnServerConfigurationPolicyGroup(this.ResourceGroupName, this.ServerConfigurationName, this.Name);

            if (configurationPolicyGroupToRemove == null)
            {
                throw new PSArgumentException(Properties.Resources.VpnServerConfigurationPolicyGroupNotFound);
            }
            else
            {
                base.Execute();

                ConfirmAction(
                    Force.IsPresent,
                    string.Format(Properties.Resources.RemovingResource, this.Name),
                    Properties.Resources.RemoveResourceMessage,
                    this.Name,
                    () =>
                {
                    this.ConfigurationPolicyGroupClient.Delete(this.ResourceGroupName, this.ServerConfigurationName, this.Name);

                    if (PassThru)
                    {
                        WriteObject(true);
                    }
                });
            }
        }
        private PSVpnServerConfigurationPolicyGroup VpnServerConfigurationPolicy()
        {
            base.Execute();
            PSVpnServerConfiguration parentVpnServerConfiguration = null;

            //// Resolve the VpnServerConfiguration
            if (ParameterSetName.Contains(CortexParameterSetNames.ByVpnServerConfigurationObject))
            {
                this.ResourceGroupName       = this.ServerConfigurationObject.ResourceGroupName;
                this.ServerConfigurationName = this.ServerConfigurationObject.Name;
            }
            else if (ParameterSetName.Contains(CortexParameterSetNames.ByVpnServerConfigurationResourceId))
            {
                var parsedResourceId = new ResourceIdentifier(this.ServerConfigurationResourceId);
                this.ResourceGroupName       = parsedResourceId.ResourceGroupName;
                this.ServerConfigurationName = parsedResourceId.ResourceName;
            }

            if (string.IsNullOrWhiteSpace(this.ResourceGroupName) || string.IsNullOrWhiteSpace(this.ServerConfigurationName))
            {
                throw new PSArgumentException(Properties.Resources.VpnServerConfigurationRequiredToCreateOrUpdatePolicyGroup);
            }

            //// At this point, we should have the resource name and the resource group for the parent VpnServerConfiguration resolved.
            //// This will throw not found exception if the VpnServerConfiguration does not exist
            parentVpnServerConfiguration = this.GetVpnServerConfiguration(this.ResourceGroupName, this.ServerConfigurationName);
            if (parentVpnServerConfiguration == null)
            {
                throw new PSArgumentException(Properties.Resources.ParentVpnServerConfigurationNotFound);
            }


            if (this.IsVpnServerConfigurationPolicyGroupPresent(this.ResourceGroupName, this.ServerConfigurationName, this.Name))
            {
                throw new PSArgumentException(string.Format(Properties.Resources.ChildResourceAlreadyPresentInResourceGroup, this.Name, this.ResourceGroupName, this.ServerConfigurationName));
            }

            // Create VpnServerConfigurationPolicyGroup
            PSVpnServerConfigurationPolicyGroup policyGroup = new PSVpnServerConfigurationPolicyGroup
            {
                Name          = this.Name,
                Priority      = this.Priority,
                PolicyMembers = new List <PSVpnServerConfigurationPolicyGroupMember>()
            };

            if (this.DefaultPolicyGroup.IsPresent)
            {
                policyGroup.IsDefault = true;
            }
            else
            {
                policyGroup.IsDefault = false;
            }

            if (this.PolicyMember != null && this.PolicyMember.Any())
            {
                policyGroup.PolicyMembers.AddRange(this.PolicyMember);
            }


            PSVpnServerConfigurationPolicyGroup policyGroupToReturn = null;

            ConfirmAction(
                Properties.Resources.CreatingResourceMessage,
                this.Name,
                () =>
            {
                WriteVerbose(String.Format(Properties.Resources.CreatingChildResourceLongRunningOperationMessage, this.ResourceGroupName, this.ServerConfigurationName, this.Name));
                this.CreateOrUpdateVpnServerConfigurationPolicyGroup(this.ResourceGroupName, this.ServerConfigurationName, this.Name, policyGroup);

                policyGroupToReturn = this.GetVpnServerConfigurationPolicyGroup(this.ResourceGroupName, this.ServerConfigurationName, this.Name);
            });

            return(policyGroupToReturn);
        }