__init__.py 文件源码

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

项目:vCloudDirectorManager 作者: blackms 项目源码 文件源码
def get_less_used_network(num_of_requested_ip, global_variable, config_obj):
    """
    Get the network with more IP available.

    :return: Network
    """
    # identify less used network
    while global_variable.free_ip_lock is True:
        time.sleep(1)
    free_ip = global_variable.free_ips
    less_used_network = sorted(free_ip, key=lambda k: len(free_ip[k]), reverse=True)[0]
    # network must have enough IPs
    if len(global_variable.free_ips[less_used_network]) < num_of_requested_ip + int(
            config_section_map(config_obj, 'vcloud')['min_spare_ip']):
        return None
    ip_list = global_variable.free_ips[less_used_network][:num_of_requested_ip]
    pvdc_external_networks = global_variable.vcs.get_network()
    from ipaddress import IPv4Address, IPv4Network

    external_network = filter(lambda x: IPv4Address(x.gateway) in IPv4Network(less_used_network), pvdc_external_networks)
    return {'object': external_network[0],
            'iplist': ip_list}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号