Exemple #1
0
        private void ParseZones(XElement configNode, bool parseAddressBook)
        {
            var zones = configNode.XPathSelectElements("./security/zones/security-zone");

            foreach (var zone in zones)
            {
                JuniperObject juniperZone = new Juniper_Zone();
                juniperZone.Parse(zone, null);
                _juniperObjects.Add(juniperZone);

                if (parseAddressBook)
                {
                    var addresses = zone.XPathSelectElements("address-book/address");
                    ParseAddresses(addresses, juniperZone.Name);

                    var addressGroups = zone.XPathSelectElements("address-book/address-set");
                    foreach (var group in addressGroups)
                    {
                        JuniperObject juniperAddressGroup = new Juniper_AddressGroup();
                        juniperAddressGroup.Parse(group, juniperZone.Name);
                        _juniperObjects.Add(juniperAddressGroup);

                        HandleDuplicatedAddressName(juniperAddressGroup.Name, juniperZone.Name);
                    }
                }
            }
        }
Exemple #2
0
        private bool ParseAddressBooks(XElement configNode)
        {
            var addressBooks = configNode.XPathSelectElements("./security/address-book");

            if (!addressBooks.Any())
            {
                return(false);
            }

            foreach (var addressBook in addressBooks)
            {
                string addressBookName = JuniperObject.GlobalZoneName;
                string addressBookZone = JuniperObject.GlobalZoneName;

                var addressBookNameNode = addressBook.Element("name");
                if (addressBookNameNode != null && !string.IsNullOrEmpty(addressBookNameNode.Value))
                {
                    addressBookName = addressBookNameNode.Value;
                }

                var zoneNameNode = addressBook.XPathSelectElement("./attach/zone/name");
                if (zoneNameNode != null && !string.IsNullOrEmpty(zoneNameNode.Value))
                {
                    addressBookZone = zoneNameNode.Value;
                }
                else if (addressBookName != JuniperObject.GlobalZoneName)
                {
                    // Found non global address-book without a zone attached!!!
                    Console.WriteLine("Found non global address-book without a zone attached: {0}", addressBookName);
                    continue;
                }

                var addresses = addressBook.Elements("address");
                ParseAddresses(addresses, addressBookZone);

                var addressGroups = addressBook.Elements("address-set");
                foreach (var group in addressGroups)
                {
                    JuniperObject juniperAddressGroup = new Juniper_AddressGroup();
                    juniperAddressGroup.Parse(group, addressBookZone);
                    _juniperObjects.Add(juniperAddressGroup);

                    HandleDuplicatedAddressName(juniperAddressGroup.Name, addressBookZone);
                }
            }

            return(true);
        }