Example #1
0
    def configure_from_node(self, node, defaults, parent):
        XMLConfigurable.configure_from_node(self, node, defaults, parent)

        # If I have a vlan_number set, my VLAN is the vlan
        # my parent has that has the same vlan number
        if self.vlan_number is not None:
            self.vlan_number = int(self.vlan_number)
            log.debug("vlan number: %s, %s", self.vlan_number, parent.site.get_vlans() )
            self.vlan = [x for x in parent.site.get_vlans() if x.number == self.vlan_number][0]
        else:
            # The vlan I belong to is my parent's VLAN
            self.vlan = parent.get_vlan()
            pass
        
        if self.vlan is None:
            raise KeyError("No VLAN defined for parent of IP address %s" % self.ip)

        # If this is a service IP, it must have a vlan number defined
        if self.type == 'service':
            if self.vlan_number is None:
                raise KeyError("Service IP address '%s' defined with no vlan_number attribute." % self.ip)
                pass
            pass

        # if the netmask isn't set, make it the same as the first
        # network in the vlan the IP is in.
        if self.netmask is None:
            try:
                network = self.vlan.get_networks()[0]
            except IndexError:
                raise IndexError("VLAN %s has no networks defined" % self.vlan.number)
            self.netmask = network.netmask
Example #2
0
 def configure_from_node(self, node, defaults, site):
     self.site = site
     XMLConfigurable.configure_from_node(self, node, defaults, site)