implemented IPy address-ranges (with hostmask) for hosts

This commit is contained in:
Rafael.Timmerberg 2013-12-29 15:01:31 +01:00
commit 6908704587
2 changed files with 20 additions and 5 deletions

View file

@ -126,7 +126,8 @@ def main():
for hostgroup in layout.get_hostgroups():
job_count += (hostgroup.get_services().__len__() * hostgroup.get_hosts().__len__())
start_date = datetime.datetime.now()
start_date = datetime.datetime.now() + datetime.timedelta(seconds=30)
time_delta = 0
jobs = []
count = 0

View file

@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
from logging import getLogger
import netaddr
logger = getLogger(__name__)
@ -82,10 +83,23 @@ class HostGroup(object):
def add_members(self, member):
self.__add_internal(self.get_members(), member)
def add_hosts(self, host):
self.__add_internal(self.get_hosts(), host)
def add_host(self, host):
if "/" in host:
try:
from IPy import IP
ips = list(str(ip) for ip in IP(host))
#ips = [str(ip) for ip in list(netaddr.IPNetwork(host))]
self.hosts.extend(ips)
except Exception, e:
logger.error("Could not explode IP-range (%s). Maybe you need the IPy module.\n%s" % (host, e))
else:
self.hosts.append(host)
def add_hosts(self, hosts):
for host in hosts:
self.add_host(host)
def add_parents(self, parent):
self.__add_internal(self.get_parents(), parent)