コード例 #1
0
def get_consumed_management_ips():
    """
    Return a list of all ip addresses that are currently consumed on the wistar management network
    THIS ASSUMES A /24 for THE MANAGEMENT NETWORK!
    :return: a list of ints representing the last octet of the /24 management network
    """
    all_ips = list()

    # let's also grab consumed management ips as well
    if configuration.deployment_backend == "openstack":
        if openstackUtils.connect_to_openstack():
            dhcp_leases = openstackUtils.get_consumed_management_ips()
        else:
            return all_ips
    else:
        dhcp_leases = osUtils.get_dhcp_leases()
        # let's also grab current dhcp reservations
        dhcp_reservations = osUtils.get_dhcp_reservations()
        for dr in dhcp_reservations:
            ip = str(dr["ip-address"])
            last_octet = ip.split('.')[-1]
            all_ips.append(int(last_octet))

    for lease in dhcp_leases:
        ip = str(lease["ip-address"])
        logger.debug("adding active lease %s" % ip)
        last_octet = ip.split('.')[-1]
        all_ips.append(int(last_octet))

    return all_ips
コード例 #2
0
ファイル: wistarUtils.py プロジェクト: haind13/wistar
def get_used_ips():
    """
    get a list of all IPs that have been configured on topologyIcon objects
    and also append all the current dhcp leases as well
    :return: list of used ips
    """

    all_ips = set()

    topologies = Topology.objects.all()

    for topology in topologies:
        json_data = json.loads(topology.json)
        for json_object in json_data:

            if "userData" in json_object and json_object["userData"] is not None and "ip" in json_object["userData"]:
                ud = json_object["userData"]
                ip = ud["ip"]
                last_octet = ip.split('.')[-1]
                all_ips.add(int(last_octet))

    # let's also grab current dhcp leases as well
    dhcp_leases = osUtils.get_dhcp_leases()
    for lease in dhcp_leases:
        ip = str(lease["ip-address"])
        logger.debug("adding active lease %s" % ip)
        last_octet = ip.split('.')[-1]
        all_ips.add(int(last_octet))

    # let's also grab current dhcp reservations
    dhcp_leases = osUtils.get_dhcp_reservations()
    for lease in dhcp_leases:
        ip = str(lease["ip-address"])
        logger.debug("adding active reservation %s" % ip)
        last_octet = ip.split('.')[-1]
        all_ips.add(int(last_octet))

    logger.debug("sorting and returning all_ips")
    all_ips_list = list(all_ips)
    all_ips_list.sort()
    return all_ips_list
コード例 #3
0
def get_dhcp_reserved_ips():
    # pull current ips out of dhcp reservations and leases files
    # return as a single list
    all_ips = list()

    # let's also grab current dhcp leases as well
    dhcp_leases = osUtils.get_dhcp_leases()
    for lease in dhcp_leases:
        ip = str(lease["ip-address"])
        logger.debug("adding active lease %s" % ip)
        last_octet = ip.split('.')[-1]
        all_ips.append(int(last_octet))

    # let's also grab current dhcp reservations
    dhcp_leases = osUtils.get_dhcp_reservations()
    for lease in dhcp_leases:
        ip = str(lease["ip-address"])
        last_octet = ip.split('.')[-1]
        all_ips.append(int(last_octet))

    return all_ips