@Override public Network implement(Network network, NetworkOffering offering, DeployDestination dest, ReservationContext context) throws InsufficientVirtualNetworkCapacityException { s_logger.trace("implement " + network.toString()); super.implement(network, offering, dest, context); _sspMgr.createNetwork(network, offering, dest, context); return network; }
@Override public void reserve(NicProfile nic, Network network, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context) throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { super.reserve(nic, network, vm, dest, context); _sspMgr.createNicEnv(network, nic, dest, context); }
@Override public void shutdown(NetworkProfile profile, NetworkOffering offering) { s_logger.trace("shutdown " + profile.toString()); _sspMgr.deleteNetwork(profile); super.shutdown(profile, offering); }
@Override protected boolean canHandle(NetworkOffering offering, NetworkType networkType, PhysicalNetwork physicalNetwork) { s_logger.trace("canHandle"); String setting = null; if (physicalNetwork != null && physicalNetwork.getIsolationMethods().contains("SSP")) { // Be careful, PhysicalNetwork#getIsolationMethods() returns List<String>, not List<IsolationMethod> setting = "physicalnetwork setting"; } else if (_ntwkOfferingSrvcDao.isProviderForNetworkOffering(offering.getId(), Network.Provider.getProvider(SspElement.s_SSP_NAME))) { setting = "network offering setting"; } if (setting != null) { if (networkType != NetworkType.Advanced) { s_logger.info("SSP enebled by " + setting + " but not active because networkType was " + networkType); } else if (!isMyTrafficType(offering.getTrafficType())) { s_logger.info("SSP enabled by " + setting + " but not active because traffic type not Guest"); } else if (offering.getGuestType() != Network.GuestType.Isolated) { s_logger.info("SSP works for network isolatation."); } else if (!_sspMgr.canHandle(physicalNetwork)) { s_logger.info("SSP manager not ready"); } else { return true; } } else { s_logger.debug("SSP not configured to be active"); } return false; }
@Override public boolean release(NicProfile nic, VirtualMachineProfile vm, String reservationId) { Network network = _networkDao.findById(nic.getNetworkId()); _sspMgr.deleteNicEnv(network, nic, new ReservationContextImpl(reservationId, null, null)); return super.release(nic, vm, reservationId); }