use of org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsKey in project genius by opendaylight.
the class TepCommandHelper method deleteVtep.
@SuppressWarnings("checkstyle:IllegalCatch")
public void deleteVtep(BigInteger dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask, String gatewayIp, String transportZone, CommandSession session) throws TepException {
IpAddress ipAddressObj = null;
IpAddress gatewayIpObj = null;
IpPrefix subnetMaskObj = null;
final VtepsKey vtepkey = new VtepsKey(dpnId, portName);
try {
ipAddressObj = IpAddressBuilder.getDefaultInstance(ipAddress);
gatewayIpObj = IpAddressBuilder.getDefaultInstance("0.0.0.0");
if (!("null".equals(gatewayIp)) || ("0.0.0.0".equals(gatewayIp)) && (gatewayIp != null)) {
gatewayIpObj = IpAddressBuilder.getDefaultInstance(gatewayIp);
} else {
LOG.debug("gateway is null");
gatewayIp = null;
}
} catch (RuntimeException e) {
handleError("Invalid IpAddress. Expected: 1.0.0.0 to 254.255.255.255", session);
return;
}
try {
subnetMaskObj = IpPrefixBuilder.getDefaultInstance(subnetMask);
} catch (Exception e) {
handleError("Invalid Subnet Mask. Expected: 0.0.0.0/0 to 255.255.255.255/32", session);
return;
}
if (!validateIPs(ipAddress, subnetMask, gatewayIp)) {
handleError("IpAddress and gateWayIp should belong to the subnet provided", session);
return;
}
SubnetsKey subnetsKey = new SubnetsKey(subnetMaskObj);
Vteps vtepCli = null;
Subnets subCli = null;
InstanceIdentifier<Vteps> vpath = InstanceIdentifier.builder(TransportZones.class).child(TransportZone.class, new TransportZoneKey(transportZone)).child(Subnets.class, subnetsKey).child(Vteps.class, vtepkey).build();
// check if present in tzones and delete from cache
boolean existsInCache = isInCache(dpnId, portName, vlanId, ipAddress, subnetMask, gatewayIp, transportZone, session);
if (!existsInCache) {
Optional<Vteps> vtepOptional = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, vpath, dataBroker);
if (vtepOptional.isPresent()) {
vtepCli = vtepOptional.get();
if (vtepCli.getIpAddress().equals(ipAddressObj)) {
InstanceIdentifier<Subnets> spath = InstanceIdentifier.builder(TransportZones.class).child(TransportZone.class, new TransportZoneKey(transportZone)).child(Subnets.class, subnetsKey).build();
Optional<Subnets> subOptional = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, spath, dataBroker);
if (subOptional.isPresent()) {
subCli = subOptional.get();
if (subCli.getGatewayIp().equals(gatewayIpObj) && subCli.getVlanId().equals(vlanId)) {
vtepDelCommitList.add(vtepCli);
} else if (session != null) {
session.getConsole().println("vtep with this vlan or gateway doesnt exist");
}
}
} else if (session != null) {
session.getConsole().println("Vtep with this ipaddress doesnt exist");
}
} else if (session != null) {
session.getConsole().println("Vtep Doesnt exist");
}
}
}
Aggregations