ReadWriteTransaction rwTx = dataProvider.newReadWriteTransaction();
TenantId tenantId = new TenantId(Utils.normalizeUuid(network.getTenantID()));
L2FloodDomainId l2FdId = new L2FloodDomainId(network.getID());
+ InstanceIdentifier<NetworkMapping> networkMappingIid = NeutronMapperIidFactory.networkMappingIid(l2FdId);
Optional<NetworkMapping> potentionalNetworkMapping = DataStoreHelper.readFromDs(
- LogicalDatastoreType.OPERATIONAL, NeutronMapperIidFactory.networkMappingIid(l2FdId), rwTx);
+ LogicalDatastoreType.OPERATIONAL, networkMappingIid, rwTx);
if (!potentionalNetworkMapping.isPresent()) {
LOG.warn("Illegal state - network-mapping {} does not exist.", l2FdId.getValue());
rwTx.cancel();
return;
}
+ rwTx.delete(LogicalDatastoreType.OPERATIONAL, networkMappingIid);
+
DataStoreHelper.submitToDs(rwTx);
}
-
}
return;
}
- EndpointKey epKey = new EndpointKey(fwCtx.getL2BridgeDomain().getId(), new MacAddress(port.getMacAddress()));
- deleteNeutronGbpMapping(port, epKey, rwTx);
UnregisterEndpointInput unregisterEpRpcInput = createUnregisterEndpointInput(port, fwCtx);
+ boolean isEndpointUnregistered = false;
try {
- RpcResult<Void> rpcResult = epService.unregisterEndpoint(unregisterEpRpcInput).get();
- if (!rpcResult.isSuccessful()) {
- LOG.warn("Illegal state - RPC unregisterEndpoint failed. Input of RPC: {}", unregisterEpRpcInput);
- }
+ isEndpointUnregistered = epService.unregisterEndpoint(unregisterEpRpcInput).get().isSuccessful();
} catch (InterruptedException | ExecutionException e) {
- LOG.error("addPort - RPC invocation failed.", e);
+ LOG.error("unregisterEndpoint - RPC invocation failed.", e);
+ }
+ if (isEndpointUnregistered) {
+ EndpointKey epKey = new EndpointKey(fwCtx.getL2BridgeDomain().getId(), new MacAddress(port.getMacAddress()));
+ deleteNeutronGbpMapping(port, epKey, rwTx);
+ DataStoreHelper.submitToDs(rwTx);
+ } else {
+ LOG.warn("Illegal state - RPC unregisterEndpoint failed. Input of RPC: {}", unregisterEpRpcInput);
rwTx.cancel();
}
}
Subnet subnet = createSubnet(neutronSubnet);
rwTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.subnetIid(tenantId, subnetId), subnet, true);
DataStoreHelper.submitToDs(rwTx);
- rwTx = dataProvider.newReadWriteTransaction();
-
- L2FloodDomainId l2FdId = new L2FloodDomainId(subnet.getParent().getValue());
- ForwardingCtx fwCtx = MappingUtils.createForwardingContext(tenantId, l2FdId, rwTx);
+ rwTx = dataProvider.newReadWriteTransaction();
if (isExternalNetwork(subnet.getParent(), rwTx)) {
LOG.trace("neutronSubnetCreated - adding L3 Endpoint");
+ L2FloodDomainId l2FdId = new L2FloodDomainId(subnet.getParent().getValue());
+ ForwardingCtx fwCtx = MappingUtils.createForwardingContext(tenantId, l2FdId, rwTx);
IpAddress defaultGateway = Utils.createIpAddress(neutronSubnet.getGatewayIP());
//Create L3Endpoint for defaultGateway and write to externalGateways to L3Endpoints in neutron-gbp datastore
NetworkDomainId containment = new NetworkDomainId(neutronSubnet.getID());