Merge dev/fluorine work across to master
[unimgr.git] / netvirt / src / main / java / org / opendaylight / unimgr / mef / netvirt / NetvirtUtils.java
diff --git a/netvirt/src/main/java/org/opendaylight/unimgr/mef/netvirt/NetvirtUtils.java b/netvirt/src/main/java/org/opendaylight/unimgr/mef/netvirt/NetvirtUtils.java
deleted file mode 100644 (file)
index 6b8948d..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright (c) 2016 Hewlett Packard Enterprise, Co. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.unimgr.mef.netvirt;
-
-import java.math.BigInteger;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.services.rev150526.EvcElan;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.services.rev150526.IpvcVpn;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.services.rev150526.mef.services.MefService;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.services.rev150526.mef.services.mef.service.mef.service.choice.EvcChoice;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.services.rev150526.mef.services.mef.service.mef.service.choice.IpvcChoice;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.services.rev150526.mef.services.mef.service.mef.service.choice.ipvc.choice.ipvc.VpnElans;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.types.rev150526.RetailSvcIdType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.L2vlan;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfL2vlan;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfL2vlanBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefs;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.SplitHorizon;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.SplitHorizonBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetDpidFromInterfaceInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetDpidFromInterfaceInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetDpidFromInterfaceOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp_allocation_pool.rev161214.DhcpAllocationPool;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp_allocation_pool.rev161214.dhcp_allocation_pool.Network;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp_allocation_pool.rev161214.dhcp_allocation_pool.NetworkKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp_allocation_pool.rev161214.dhcp_allocation_pool.network.AllocationPool;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp_allocation_pool.rev161214.dhcp_allocation_pool.network.AllocationPoolBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp_allocation_pool.rev161214.dhcp_allocation_pool.network.AllocationPoolKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.InterfaceAcl;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.InterfaceAclBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInstance;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInstanceBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInterface;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInterface.EtreeInterfaceType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInterfaceBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.ElanInstances;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.ElanInterfaces;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstanceBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstanceKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.interfaces.ElanInterface;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.interfaces.ElanInterfaceBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.interfaces.ElanInterfaceKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.unimgr.unimgr.dhcp.rev161214.unimgr.dhcp.unimgr.services.network.UnimgrAllocationPool;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.SegmentTypeVxlan;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Optional;
-
-public class NetvirtUtils {
-
-    private static final Logger logger = LoggerFactory.getLogger(NetvirtUtils.class);
-    private static final long DEFAULT_MAC_TIMEOUT = 300;
-
-    public static void createElanInstance(DataBroker dataBroker, String instanceName, boolean isEtree,
-            Long segmentationId) {
-        createElanInstance(dataBroker, instanceName, isEtree, segmentationId, DEFAULT_MAC_TIMEOUT);
-    }
-
-    public static void createElanInstance(DataBroker dataBroker, String instanceName, boolean isEtree,
-            Long segmentationId, Long macTimeout) {
-        ElanInstanceBuilder einstBuilder = createElanInstanceBuilder(instanceName, segmentationId, macTimeout);
-
-        if (isEtree) {
-            EtreeInstance etreeInstance = new EtreeInstanceBuilder().build();
-            einstBuilder.addAugmentation(EtreeInstance.class, etreeInstance).build();
-        }
-
-        MdsalUtils.syncWrite(dataBroker, LogicalDatastoreType.CONFIGURATION,
-                getElanInstanceInstanceIdentifier(instanceName), einstBuilder.build());
-    }
-
-    public static void updateElanInstance(DataBroker dataBroker, String instanceName) {
-        WriteTransaction tx = MdsalUtils.createTransaction(dataBroker);
-        updateElanInstance(instanceName, tx);
-        MdsalUtils.commitTransaction(tx);
-    }
-
-    public static void updateElanInstance(String instanceName, WriteTransaction tx) {
-        ElanInstanceBuilder einstBuilder = createElanInstanceBuilder(instanceName);
-        saveElanInstance(instanceName, tx, einstBuilder);
-    }
-
-    public static void updateElanInstance(String instanceName, WriteTransaction tx, Long segmentationId) {
-        ElanInstanceBuilder einstBuilder = createElanInstanceBuilder(instanceName, segmentationId);
-        saveElanInstance(instanceName, tx, einstBuilder);
-    }
-
-    public static void updateElanInstance(String instanceName, WriteTransaction tx, Long segmentationId,
-            Long macTimeout) {
-        ElanInstanceBuilder einstBuilder = createElanInstanceBuilder(instanceName, segmentationId, macTimeout);
-        saveElanInstance(instanceName, tx, einstBuilder);
-    }
-
-    private static void saveElanInstance(String instanceName, WriteTransaction tx, ElanInstanceBuilder einstBuilder) {
-        tx.merge(LogicalDatastoreType.CONFIGURATION, getElanInstanceInstanceIdentifier(instanceName),
-                einstBuilder.build());
-    }
-
-    public static void updateElanInterface(DataBroker dataBroker, String instanceName, String interfaceName) {
-        ElanInterfaceBuilder einterfaceBuilder = createElanInterface(instanceName, interfaceName);
-
-        MdsalUtils.syncUpdate(dataBroker, LogicalDatastoreType.CONFIGURATION,
-                getElanInterfaceInstanceIdentifier(interfaceName), einterfaceBuilder.build());
-    }
-
-    public static void deleteElanInstance(DataBroker dataBroker, String instanceName) {
-        MdsalUtils.syncDelete(dataBroker, LogicalDatastoreType.CONFIGURATION,
-                getElanInstanceInstanceIdentifier(instanceName));
-    }
-
-    public static void deleteElanInstance(String instanceName, WriteTransaction tx) {
-        tx.delete(LogicalDatastoreType.CONFIGURATION, getElanInstanceInstanceIdentifier(instanceName));
-    }
-
-    public static void deleteElanInterface(DataBroker dataBroker, String interfaceName) {
-        WriteTransaction tx = MdsalUtils.createTransaction(dataBroker);
-        deleteElanInterface(interfaceName, tx);
-        MdsalUtils.commitTransaction(tx);
-    }
-
-    public static void deleteElanInterface(String interfaceName, WriteTransaction tx) {
-        tx.delete(LogicalDatastoreType.CONFIGURATION, getElanInterfaceInstanceIdentifier(interfaceName));
-    }
-
-    public static Interface createTrunkInterface(String interfaceName, String parentIfaceName) {
-        IfL2vlanBuilder ifL2vlanBuilder = new IfL2vlanBuilder();
-        ifL2vlanBuilder.setL2vlanMode(IfL2vlan.L2vlanMode.Trunk);
-        return createInterface(interfaceName, parentIfaceName, ifL2vlanBuilder.build());
-    }
-
-    public static Interface createTrunkMemberInterface(String interfaceName, String parentIfaceName, int vlanId) {
-        IfL2vlanBuilder ifL2vlanBuilder = new IfL2vlanBuilder();
-        ifL2vlanBuilder.setL2vlanMode(IfL2vlan.L2vlanMode.TrunkMember).setVlanId(new VlanId(vlanId));
-        return createInterface(interfaceName, parentIfaceName, ifL2vlanBuilder.build());
-    }
-
-    private static Interface createInterface(String interfaceName, String parentIfaceName, IfL2vlan ifL2vlan) {
-        InterfaceBuilder interfaceBuilder = new InterfaceBuilder();
-        SplitHorizon sh = new SplitHorizonBuilder().setOverrideSplitHorizonProtection(true).build();
-        ParentRefsBuilder parentRefsBuilder = new ParentRefsBuilder().setParentInterface(parentIfaceName);
-        interfaceBuilder.setEnabled(true).setName(interfaceName).setType(L2vlan.class)
-                .addAugmentation(SplitHorizon.class, sh).addAugmentation(IfL2vlan.class, ifL2vlan)
-                .addAugmentation(ParentRefs.class, parentRefsBuilder.build());
-        return interfaceBuilder.build();
-    }
-
-    public static void addAclToInterface(String interfaceName, List<Uuid> securityGroups, WriteTransaction tx) {
-        InterfaceBuilder interfaceBuilder = new InterfaceBuilder();
-        interfaceBuilder.setName(interfaceName);
-        InterfaceAclBuilder interfaceAclBuilder = new InterfaceAclBuilder();
-        interfaceAclBuilder.setPortSecurityEnabled(true);
-        interfaceAclBuilder.setSecurityGroups(securityGroups);
-        interfaceAclBuilder.setAllowedAddressPairs(Collections.emptyList());
-        interfaceBuilder.addAugmentation(InterfaceAcl.class, interfaceAclBuilder.build());
-        tx.merge(LogicalDatastoreType.CONFIGURATION, getInterfaceIdentifier(interfaceName), interfaceBuilder.build());
-    }
-
-    private static ElanInstanceBuilder createElanInstanceBuilder(String instanceName) {
-        return createElanInstanceBuilder(instanceName, Long.valueOf(Math.abs((short) instanceName.hashCode())));
-    }
-
-    private static ElanInstanceBuilder createElanInstanceBuilder(String instanceName, Long segmentationId) {
-        return createElanInstanceBuilder(instanceName, segmentationId, DEFAULT_MAC_TIMEOUT);
-    }
-
-    private static ElanInstanceBuilder createElanInstanceBuilder(String instanceName, Long segmentationId,
-            Long macTimeout) {
-        if (segmentationId == null) {
-            segmentationId = Long.valueOf(Math.abs((short) instanceName.hashCode()));
-        }
-        ElanInstanceBuilder einstBuilder = new ElanInstanceBuilder();
-        einstBuilder.setElanInstanceName(instanceName);
-        einstBuilder.setKey(new ElanInstanceKey(instanceName));
-        einstBuilder.setMacTimeout(macTimeout);
-        einstBuilder.setSegmentationId(segmentationId);
-        einstBuilder.setSegmentType(SegmentTypeVxlan.class);
-        return einstBuilder;
-    }
-
-    private static ElanInterfaceBuilder createElanInterface(String instanceName, String interfaceName) {
-        ElanInterfaceBuilder einterfaceBuilder = new ElanInterfaceBuilder();
-        einterfaceBuilder.setElanInstanceName(instanceName);
-        einterfaceBuilder.setName(interfaceName);
-        return einterfaceBuilder;
-    }
-
-    private static ElanInterfaceBuilder createEtreeInterface(String instanceName, String interfaceName,
-            EtreeInterfaceType interfaceType) {
-        ElanInterfaceBuilder einterfaceBuilder = new ElanInterfaceBuilder();
-        einterfaceBuilder.setElanInstanceName(instanceName);
-        einterfaceBuilder.setName(interfaceName);
-        EtreeInterface etreeInterface = new EtreeInterfaceBuilder().setEtreeInterfaceType(interfaceType).build();
-        einterfaceBuilder.addAugmentation(EtreeInterface.class, etreeInterface);
-        return einterfaceBuilder;
-    }
-
-    public static InstanceIdentifier<ElanInstance> getElanInstanceInstanceIdentifier() {
-        return InstanceIdentifier.builder(ElanInstances.class).child(ElanInstance.class).build();
-    }
-
-    public static InstanceIdentifier<ElanInterfaces> getElanInterfacesInstanceIdentifier() {
-        return InstanceIdentifier.builder(ElanInterfaces.class).build();
-    }
-
-    public static InstanceIdentifier<ElanInstance> getElanInstanceInstanceIdentifier(String instanceName) {
-        return InstanceIdentifier.builder(ElanInstances.class)
-                .child(ElanInstance.class, new ElanInstanceKey(instanceName)).build();
-    }
-
-    private static InstanceIdentifier<ElanInterface> getElanInterfaceInstanceIdentifier(String interfaceName) {
-        return InstanceIdentifier.builder(ElanInterfaces.class)
-                .child(ElanInterface.class, new ElanInterfaceKey(interfaceName)).build();
-    }
-
-    public static InstanceIdentifier<Interface> getInterfaceIdentifier(String interfaceName) {
-        InstanceIdentifierBuilder<Interface> idBuilder = InstanceIdentifier.builder(Interfaces.class)
-                .child(Interface.class, new InterfaceKey(interfaceName));
-        InstanceIdentifier<Interface> id = idBuilder.build();
-        return id;
-    }
-
-    public static Optional<Interface> getIetfInterface(DataBroker dataBroker, String interfaceName) {
-        return MdsalUtils.read(dataBroker, LogicalDatastoreType.CONFIGURATION, getInterfaceIdentifier(interfaceName));
-    }
-
-    public static void writeInterface(Interface iface, WriteTransaction tx) {
-        String interfaceName = iface.getName();
-        InstanceIdentifier<Interface> interfaceIdentifier = createInterfaceIdentifier(interfaceName);
-        tx.put(LogicalDatastoreType.CONFIGURATION, interfaceIdentifier, iface, true);
-    }
-
-    public static void deleteInterface(String interfaceName, WriteTransaction tx) {
-        InstanceIdentifier<Interface> interfaceIdentifier = createInterfaceIdentifier(interfaceName);
-        tx.delete(LogicalDatastoreType.CONFIGURATION, interfaceIdentifier);
-    }
-
-    private static InstanceIdentifier<Interface> createInterfaceIdentifier(String interfaceName) {
-        return InstanceIdentifier.builder(Interfaces.class).child(Interface.class, new InterfaceKey(interfaceName))
-                .build();
-    }
-
-    public static void createElanInterface(DataBroker dataBroker, String instanceName, String interfaceName,
-            EtreeInterfaceType etreeInterfaceType, boolean isEtree) {
-        WriteTransaction tx = MdsalUtils.createTransaction(dataBroker);
-        createElanInterface(instanceName, interfaceName, etreeInterfaceType, isEtree, tx);
-        MdsalUtils.commitTransaction(tx);
-    }
-
-    public static void createElanInterface(String instanceName, String interfaceName,
-            EtreeInterfaceType etreeInterfaceType, boolean isEtree, WriteTransaction tx) {
-        logger.info("Adding {} interface: {}", isEtree ? "etree" : "elan", interfaceName);
-
-        if (isEtree) {
-            NetvirtUtils.createEtreeInterface(instanceName, interfaceName, etreeInterfaceType, tx);
-        } else {
-            NetvirtUtils.createElanInterface(instanceName, interfaceName, tx);
-        }
-    }
-
-    private static void createEtreeInterface(String instanceName, String interfaceName, EtreeInterfaceType type,
-            WriteTransaction tx) {
-        ElanInterfaceBuilder einterfaceBuilder = createEtreeInterface(instanceName, interfaceName, type);
-
-        tx.put(LogicalDatastoreType.CONFIGURATION, getElanInterfaceInstanceIdentifier(interfaceName),
-                einterfaceBuilder.build());
-    }
-
-    private static void createElanInterface(String instanceName, String interfaceName, WriteTransaction tx) {
-        ElanInterfaceBuilder einterfaceBuilder = createElanInterface(instanceName, interfaceName);
-
-        tx.put(LogicalDatastoreType.CONFIGURATION, getElanInterfaceInstanceIdentifier(interfaceName),
-                einterfaceBuilder.build());
-    }
-
-    public static BigInteger getDpnForInterface(OdlInterfaceRpcService interfaceManagerRpcService, String ifName) {
-        BigInteger nodeId = BigInteger.ZERO;
-        try {
-            GetDpidFromInterfaceInput dpIdInput = new GetDpidFromInterfaceInputBuilder().setIntfName(ifName).build();
-            Future<RpcResult<GetDpidFromInterfaceOutput>> dpIdOutput = interfaceManagerRpcService
-                    .getDpidFromInterface(dpIdInput);
-            RpcResult<GetDpidFromInterfaceOutput> dpIdResult = dpIdOutput.get();
-            if (dpIdResult.isSuccessful()) {
-                nodeId = dpIdResult.getResult().getDpid();
-            } else {
-                logger.error("Could not retrieve DPN Id for interface {}", ifName);
-            }
-        } catch (NullPointerException | InterruptedException | ExecutionException e) {
-            logger.error("Exception when getting dpn for interface {}", ifName, e);
-        }
-        return nodeId;
-    }
-
-    public static void safeSleep() {
-        try {
-            Thread.yield();
-            Thread.sleep(1000);
-        } catch (InterruptedException e) {
-        }
-    }
-
-    public static void safeSleep(short sec) {
-        try {
-            Thread.yield();
-            Thread.sleep(1000 * sec);
-        } catch (InterruptedException e) {
-        }
-    }
-
-    public static void createDhcpAllocationPool(DataBroker dataBroker, UnimgrAllocationPool unimgrAllocationPool,
-            String unimgrNetworkId, RetailSvcIdType svcId) {
-        String networkId = convertNetworkToNetvirtNetwork(dataBroker, unimgrNetworkId, svcId);
-        if (networkId != null) {
-            // add allocation pool to netvirt
-            MdsalUtils.syncWrite(dataBroker, LogicalDatastoreType.CONFIGURATION,
-                    createDhcpAllocationPoolInstanceIdentifier(networkId, unimgrAllocationPool.getKey().getSubnet()),
-                    buildDhcpAllocationPool(unimgrAllocationPool));
-        } else {
-            logger.warn("no network found for svc-id {}", svcId);
-        }
-    }
-
-    public static void removeDhcpAllocationPool(DataBroker dataBroker, String unimgrNetworkId, RetailSvcIdType svcId,
-            IpPrefix subnet) {
-        String networkId = convertNetworkToNetvirtNetwork(dataBroker, unimgrNetworkId, svcId);
-        if (networkId != null) {
-            // remove allocation pool from netvirt
-            MdsalUtils.syncDelete(dataBroker, LogicalDatastoreType.CONFIGURATION,
-                    createDhcpAllocationPoolInstanceIdentifier(networkId, subnet));
-        } else {
-            logger.warn("no network found for svc-id {}", svcId);
-        }
-    }
-
-    private static String convertNetworkToNetvirtNetwork(DataBroker dataBroker, String unimgrNetworkId,
-            RetailSvcIdType svcId) {
-        Optional<MefService> optionalOpMefService = MefServicesUtils.getOpMefServiceBySvcId(dataBroker, svcId);
-        if (!optionalOpMefService.isPresent()) {
-            logger.warn("no mef-service found for svc-id {}", svcId);
-            return null;
-        }
-        MefService opMefService = optionalOpMefService.get();
-        return MefServicesUtils.getNetworkIdFromOpMefService(opMefService, unimgrNetworkId);
-    }
-
-    private static InstanceIdentifier<AllocationPool> createDhcpAllocationPoolInstanceIdentifier(String networkId,
-            IpPrefix subnet) {
-        return InstanceIdentifier.builder(DhcpAllocationPool.class).child(Network.class, new NetworkKey(networkId))
-                .child(AllocationPool.class, new AllocationPoolKey(subnet)).build();
-    }
-
-    private static AllocationPool buildDhcpAllocationPool(UnimgrAllocationPool unimgrAllocationPool) {
-        AllocationPool allocationPool = new AllocationPoolBuilder()
-                .setKey(new AllocationPoolKey(unimgrAllocationPool.getSubnet()))
-                .setSubnet(unimgrAllocationPool.getSubnet()).setAllocateFrom(unimgrAllocationPool.getAllocateFrom())
-                .setAllocateTo(unimgrAllocationPool.getAllocateTo()).setDnsServers(unimgrAllocationPool.getDnsServers())
-                .setGateway(unimgrAllocationPool.getGateway()).build();
-        return allocationPool;
-    }
-
-}