Exemple #1
0
        public override void Execute()
        {
            base.Execute();
            MNM.SecurityGroupViewParameters properties = new MNM.SecurityGroupViewParameters();
            properties.TargetResourceId = this.TargetVirtualMachineId;

            PSSecurityGroupViewResult securityGroupView = new PSSecurityGroupViewResult();

            if (string.Equals(this.ParameterSetName, "SetByLocation", StringComparison.OrdinalIgnoreCase))
            {
                var networkWatcher = this.GetNetworkWatcherByLocation(this.Location);

                if (networkWatcher == null)
                {
                    throw new ArgumentException("There is no network watcher in location {0}", this.Location);
                }

                this.ResourceGroupName  = NetworkBaseCmdlet.GetResourceGroup(networkWatcher.Id);
                this.NetworkWatcherName = networkWatcher.Name;
                securityGroupView       = GetSecurityGroupView(this.ResourceGroupName, this.NetworkWatcherName, properties);
            }
            else if (string.Equals(this.ParameterSetName, "SetByResource", StringComparison.OrdinalIgnoreCase))
            {
                securityGroupView = GetSecurityGroupView(this.NetworkWatcher.ResourceGroupName, this.NetworkWatcher.Name, properties);
            }
            else
            {
                securityGroupView = GetSecurityGroupView(this.ResourceGroupName, this.NetworkWatcherName, properties);
            }
            WriteObject(securityGroupView);
        }
        public override void Execute()
        {
            base.Execute();
            MNM.SecurityGroupViewParameters properties = new MNM.SecurityGroupViewParameters();
            properties.TargetResourceId = this.TargetVirtualMachineId;

            PSSecurityGroupViewResult securityGroupView = new PSSecurityGroupViewResult();

            if (ParameterSetName.Contains("SetByResource"))
            {
                securityGroupView = GetSecurityGroupView(this.NetworkWatcher.ResourceGroupName, this.NetworkWatcher.Name, properties);
            }
            else
            {
                securityGroupView = GetSecurityGroupView(this.ResourceGroupName, this.NetworkWatcherName, properties);
            }
            WriteObject(securityGroupView);
        }
        public PSSecurityGroupViewResult GetSecurityGroupView(string resourceGroupName, string name, MNM.SecurityGroupViewParameters properties, string expandResource = null)
        {
            MNM.SecurityGroupViewResult securityGroupView = this.NetworkWatcherClient.GetVMSecurityRules(resourceGroupName, name, properties);
            var networkInterfaces = new PSSecurityGroupViewResult();

            networkInterfaces.NetworkInterfaces = new List <PSSecurityGroupView>();

            foreach (var view in securityGroupView.NetworkInterfaces)
            {
                PSSecurityGroupView securityRules = new PSSecurityGroupView();

                securityRules.NetworkInterfaceId = view.Id;

                if (view.SecurityRuleAssociations.NetworkInterfaceAssociation != null)
                {
                    securityRules.NetworkInterfaceSecurityRules = new List <PSSecurityRule>();
                    var customSecurityRulesList = view.SecurityRuleAssociations.NetworkInterfaceAssociation.SecurityRules;

                    foreach (var rule in customSecurityRulesList)
                    {
                        PSSecurityRule psRule = Mapper.Map <PSSecurityRule>(rule);
                        securityRules.NetworkInterfaceSecurityRules.Add(psRule);
                    }
                }

                if (view.SecurityRuleAssociations.SubnetAssociation != null)
                {
                    securityRules.SubnetId            = view.SecurityRuleAssociations.SubnetAssociation.Id;
                    securityRules.SubnetSecurityRules = new List <PSSecurityRule>();

                    var subnetSecurityRulesList = view.SecurityRuleAssociations.SubnetAssociation.SecurityRules;

                    foreach (var rule in subnetSecurityRulesList)
                    {
                        PSSecurityRule psRule = Mapper.Map <PSSecurityRule>(rule);
                        securityRules.SubnetSecurityRules.Add(psRule);
                    }
                }

                securityRules.DefaultSecurityRules = new List <PSSecurityRule>();
                var defaultSecurityRulesList = view.SecurityRuleAssociations.DefaultSecurityRules;

                foreach (var rule in defaultSecurityRulesList)
                {
                    PSSecurityRule psRule = Mapper.Map <PSSecurityRule>(rule);
                    securityRules.DefaultSecurityRules.Add(psRule);
                }

                securityRules.EffectiveSecurityRules = new List <PSEffectiveSecurityRule>();
                var effectiveSecurityRulesList = view.SecurityRuleAssociations.EffectiveSecurityRules;

                foreach (var rule in effectiveSecurityRulesList)
                {
                    PSEffectiveSecurityRule psRule = Mapper.Map <PSEffectiveSecurityRule>(rule);
                    securityRules.EffectiveSecurityRules.Add(psRule);
                }

                networkInterfaces.NetworkInterfaces.Add(securityRules);
            }

            return(networkInterfaces);
        }