Example #1
0
def test_ip_acquire(test_db):
    network_id = hashlib.sha1('network_id').hexdigest()
    ep_id1 = hashlib.sha1('ep_id1').hexdigest()
    ep_id2 = hashlib.sha1('ep_id2').hexdigest()

    network = Network.create(network_id, '10.100.0.1/16')

    ip1 = network.acquire_ip(ep_id1, 'hostname')
    assert ip1 is not None
    assert ip1.hostname == 'hostname'
    assert ip1.endpoint_id == ep_id1
    assert ip1.network_id == network_id
    assert ip1.ip

    ip2 = network.acquire_ip(ep_id2, 'hostname', '10.100.0.2')
    assert ip2 is not None
    assert ip2.hostname == 'hostname'
    assert ip2.endpoint_id == ep_id2
    assert ip2.network_id == network_id
    assert str(ip2.ip) == '10.100.0.2'

    ip3 = network.acquire_ip(ep_id2, 'hostname', '10.101.0.1')
    assert ip3 is None

    ip4 = IP.get(ep_id1)
    assert ip4.endpoint_id == ip1.endpoint_id == ep_id1
    ip5 = IP.get(ep_id2)
    assert ip5.endpoint_id == ip2.endpoint_id == ep_id2
Example #2
0
def delete_endpoint():
    data = request.get_json(force=True)
    app.logger.debug('DeleteEndpoint JSON=%s', data)

    endpoint_id = data['EndpointID']
    app.logger.info('Removing endpoint %s', endpoint_id)

    ip = IP.get(endpoint_id)
    if ip:
        ip.release()

    app.logger.debug('DeleteEndpoint response JSON=%s', '{}')
    return jsonify({})
Example #3
0
def join():
    data = request.get_json(force=True)
    app.logger.debug('Join JSON=%s', data)

    endpoint_id = data['EndpointID']
    app.logger.info('Joining endpoint %s', endpoint_id)

    ip = IP.get(endpoint_id)
    veth = random_veth()
    create_veth(veth, 'em1', ip)

    resp = {
        'InterfaceName': {
            'SrcName': veth,
            'DstPrefix': 'vnbe',
        },
        'Gateway': '',
    }

    app.logger.debug('Join Response JSON=%s', resp)
    return jsonify(resp)