import java.net.HttpURLConnection;
-import org.opendaylight.controller.containermanager.ContainerConfig;
import org.opendaylight.controller.networkconfig.neutron.INeutronNetworkAware;
import org.opendaylight.controller.networkconfig.neutron.NeutronNetwork;
import org.slf4j.Logger;
result);
return;
}
- String networkID = convertNeutronIDToKey(network.getID());
-
- ContainerConfig config = new ContainerConfig();
- config.setContainer(networkID);
- containerManager.removeContainer(config);
+ TenantNetworkManager.getManager().networkDeleted(network.getID());
}
}
String tenantID = convertNeutronIDToKey(port.getTenantID());
String networkID = convertNeutronIDToKey(port.getNetworkUUID());
String portID = convertNeutronIDToKey(port.getID());
-/*
- * Delete the Corresponding OF NodeConnector from the Container
- *
- ContainerConfig config = new ContainerConfig();
- config.setContainer(networkID);
- List<String> ncList = new ArrayList<String>();
- ncList.add("OVS|"+ portID +"@OVS|"+networkID);
- config.addNodeConnectors(ncList);
- Status status = containerManager.removeContainerEntry(networkID, ncList);
- if (!status.isSuccess()) {
- logger.error(" PORT delete failed for tenant-id - {}, " +
- " bridge-id - {}, port-id - {}, result - {} ",
- tenantID, networkID, portID, status);
- } else {
- logger.error(" PORT delete successful for tenant-id - {}, " +
- " bridge-id - {}, port-id - {}, result - {} ",
- tenantID, networkID, portID, status);
- }
-*/
logger.debug(" PORT delete successful for tenant-id - {}, " +
" network-id - {}, port-id - {}", tenantID, networkID, portID);
private static TenantNetworkManager tenantHelper = new TenantNetworkManager();
private Queue<Integer> internalVlans = new LinkedList<Integer>();
private Map<String, Integer> tenantVlanMap = new HashMap<String, Integer>();
+ private boolean enableContainer = false;
private TenantNetworkManager() {
for (int i = 1; i < MAX_VLAN ; i++) {
internalVlans.add(i);
}
+ String isTenantContainer = System.getProperty("TenantIsContainer");
+ if (isTenantContainer != null && isTenantContainer.equalsIgnoreCase("true")) {
+ enableContainer = true;
+ }
}
public static TenantNetworkManager getManager() {
}
public int networkCreated (String networkId) {
- IContainerManager containerManager = (IContainerManager)ServiceHelper.getGlobalInstance(IContainerManager.class, this);
- if (containerManager == null) {
- logger.error("ContainerManager is null. Failed to create Container for {}", networkId);
- return 0;
- }
int internalVlan = this.assignInternalVlan(networkId);
- if (internalVlan != 0) {
+ if (enableContainer && internalVlan != 0) {
+ IContainerManager containerManager = (IContainerManager)ServiceHelper.getGlobalInstance(IContainerManager.class, this);
+ if (containerManager == null) {
+ logger.error("ContainerManager is null. Failed to create Container for {}", networkId);
+ return 0;
+ }
+
ContainerConfig config = new ContainerConfig();
config.setContainer(BaseHandler.convertNeutronIDToKey(networkId));
Status status = containerManager.addContainer(config);
tags.add(BigInteger.valueOf(vlan));
port.setTag(tags);
ovsdbTable.updateRow(node, Port.NAME.getName(), null, portUUID, port);
- this.addPortToTenantNetworkContainer(node, portUUID, network);
+ if (enableContainer) this.addPortToTenantNetworkContainer(node, portUUID, network);
}
private void addPortToTenantNetworkContainer(Node node, String portUUID, NeutronNetwork network) {
return null;
}
+ public void networkDeleted(String id) {
+ if (!enableContainer) return;
+
+ IContainerManager containerManager = (IContainerManager)ServiceHelper.getGlobalInstance(IContainerManager.class, this);
+ if (containerManager == null) {
+ logger.error("ContainerManager is not accessible");
+ return;
+ }
+
+ String networkID = BaseHandler.convertNeutronIDToKey(id);
+ ContainerConfig config = new ContainerConfig();
+ config.setContainer(networkID);
+ containerManager.removeContainer(config);
+ }
+
}