__init__.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:vCloudDirectorManager 作者: blackms 项目源码 文件源码
def calculate_free_ips(global_variable):
    import itertools
    from netaddr import IPSet, IPAddress
    global_variable.free_ip_lock = True
    global_variable.app.logger.debug('Calculating free ips...')
    networks = {}
    for ip in list(itertools.chain(*[ip_ for ip_ in global_variable.used_ips])):
        net = '{network}.0/24'.format(network='.'.join(ip.split('.')[0:3]))
        if net not in networks.keys():
            networks[net] = IPSet([net])
        if IPAddress(ip) in networks[net]:
            networks[net].remove(IPAddress(ip))
        for x in xrange(0, 11):
            networks[net].remove(
                IPAddress(
                    '{network}.{last_oct}'.format(network='.'.join(ip.split('.')[0:3]),
                                                  last_oct=x)
                )
            )
    global_variable.free_ips = {key: [x for x in value] for key, value in networks.items()}
    global_variable.free_ip_lock = False
    return True
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号