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
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({})
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)