diff options
author | Matt Schwager <schwag09@gmail.com> | 2012-10-19 13:37:49 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-02-12 08:35:32 -0500 |
commit | 0253b04b9ba7c3e4ef139bf352b7a57de823daaa (patch) | |
tree | f06a339d7baaa73cc90cb65b6a0b87d75b11eecd /src/lib/Bcfg2/Server/Plugins | |
parent | ead022433a759686db6de02b91811de7ca166ac7 (diff) | |
download | bcfg2-0253b04b9ba7c3e4ef139bf352b7a57de823daaa.tar.gz bcfg2-0253b04b9ba7c3e4ef139bf352b7a57de823daaa.tar.bz2 bcfg2-0253b04b9ba7c3e4ef139bf352b7a57de823daaa.zip |
Added CIDR notation to IP ACLs. Still need to test.
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Acl.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Acl.py b/src/lib/Bcfg2/Server/Plugins/Acl.py index 71275de27..1f7b27b53 100644 --- a/src/lib/Bcfg2/Server/Plugins/Acl.py +++ b/src/lib/Bcfg2/Server/Plugins/Acl.py @@ -1,5 +1,6 @@ import os import logging +import netaddr import Bcfg2.Server.Plugin class AclFile(Bcfg2.Server.Plugin.XMLFileBacked): @@ -23,6 +24,7 @@ class AclFile(Bcfg2.Server.Plugin.XMLFileBacked): Bcfg2.Server.Plugin.XMLFileBacked.__init__(self, filename, fam=fam, should_monitor=True) self.core = core + self.cidr_ips = [] self.ips = [] self.logger = logging.getLogger(self.__class__.__name__) @@ -30,6 +32,14 @@ class AclFile(Bcfg2.Server.Plugin.XMLFileBacked): Bcfg2.Server.Plugin.XMLFileBacked.Index(self) for entry in self.xdata.xpath('//IPs'): [self.ips.append(i.get('name')) for i in entry.findall('IP')] + [self.cidr_ips.append(i.get('name')) for i in entry.findall('CIDR')] + + def check_acl(self, ip): + if ('*' in self.ips or + ip in self.ips or + IP(ip) in [CIDR(cidr_ip) for cidr_ip in self.cidr_ips]): + return True + return False class Acl(Bcfg2.Server.Plugin.Plugin, Bcfg2.Server.Plugin.Connector): |