@Override public void create(Network network) { LOG.info("Neutron Network Created : Network name: " + network.getName()); LOG.debug("Lisp Neutron Network: " + network.toString()); }
@Override public void delete(Network network) { LOG.info("Neutron Network Deleted : Network name: " + network.getName()); LOG.debug("Lisp Neutron Network: " + network.toString()); } }
@Override public void update(Network network) { LOG.info("Neutron Network Updated : Network name: " + network.getName()); LOG.debug("Lisp Neutron Network: " + network.toString()); }
String networkDesc = network.getName(); String bridgeDesc = bridge.getDescription(); boolean modify = false;
/** * Determine whether the specified neutron network is changed or not. * * <p> * This method compares network fields only used by * {@link NetworkHandler#neutronNetworkUpdated(Network)}. * </p> * * @param before Neutron network instance before modification. * @param after Neutron network instance after modification. * @return {@code true} if the specified neutron network is updated. * {@code false} otherwise. */ static boolean isChanged(@Nonnull Network before, @Nonnull Network after) { // Compare UUIDs. boolean same = (Objects.equals(before.getTenantId(), after.getTenantId()) && Objects.equals(before.getUuid(), after.getUuid())); if (same) { // Compare name and shared. same = (Objects.equals(before.getName(), after.getName()) && Objects.equals(before.isShared(), after.isShared())); } return !same; }
/** * Invoked to take action after a network has been created. * * @param network An instance of new Network object. */ public void neutronNetworkCreated(@Nonnull Network network) { String tenantID = getTenantId(network); int result = vtnManager.updateTenant(tenantID, VnodeUpdateMode.UPDATE); if (result != HTTP_OK) { LOG.error("Failed to create network: network={}", network); } else { String networkDesc = network.getName(); String bridgeID = getBridgeId(network); result = vtnManager.updateBridge(tenantID, bridgeID, networkDesc, VnodeUpdateMode.CREATE); if (result != HTTP_OK) { LOG.error("Failed to create vBridge: network={}", network); } } }
/** * Invoked to take action after a network has been updated. * * @param network An instance of modified Network object. */ public void neutronNetworkUpdated(@Nonnull Network network) { // Check to see if the object already exists in VTN manager. String tenantID = getTenantId(network); String bridgeID = getBridgeId(network); VbridgeConfig bconf = vtnManager.getBridgeConfig(tenantID, bridgeID); if (bconf == null) { LOG.error("vBridge is not present: {}/{}", tenantID, bridgeID); return; } Boolean shared = network.isShared(); if ((shared != null) && (shared)) { LOG.error("Shared option - {} not supported in vtn", shared); return; } // if vbridge description has changed update the description boolean modify = canModifyBridge(network, bconf); String networkDesc = network.getName(); if (modify) { int result = vtnManager.updateBridge( tenantID, bridgeID, networkDesc, VnodeUpdateMode.MODIFY); if (result != HTTP_OK) { LOG.error("Failed to update vBridge: network={}", network); } } }
@Deprecated private void createTenantNetworkDomains(Network network, TenantId tenantId, ReadWriteTransaction rwTx) { Name name; L3ContextBuilder l3CtxBuilder = new L3ContextBuilder(); L2FloodDomainBuilder l2FdBuilder = new L2FloodDomainBuilder(); L2BridgeDomainBuilder l2BdBuilder = new L2BridgeDomainBuilder(); if (!Strings.isNullOrEmpty(network.getName())) { try { name = new Name(network.getName()); l3CtxBuilder.setName(name); l2FdBuilder.setName(name); l2BdBuilder.setName(name); } catch (Exception e) { name = null; LOG.info("Name of Neutron Network '{}' is ignored.", network.getName()); LOG.debug("Name exception", e); } } L2FloodDomainId l2FdId = new L2FloodDomainId(network.getUuid().getValue()); L3ContextId l3ContextId = new L3ContextId(l2FdId); L3Context l3Context = l3CtxBuilder.setId(l3ContextId).build(); rwTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.l3ContextIid(tenantId, l3Context.getId()), l3Context, true); L2BridgeDomainId l2BdId = new L2BridgeDomainId(l2FdId); L2BridgeDomain l2Bd = l2BdBuilder.setId(l2BdId).setParent(l3Context.getId()).build(); rwTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.l2BridgeDomainIid(tenantId, l2BdId), l2Bd, true); L2FloodDomain l2Fd = l2FdBuilder.setId(l2FdId).setParent(l2BdId).build(); rwTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.l2FloodDomainIid(tenantId, l2FdId), l2Fd, true); }
.setContextId(ctxId) .setContextType(MappingUtils.L3_CONTEXT); if (!Strings.isNullOrEmpty(network.getName())) { try { name = new Name(network.getName()); fwdCtxBuilder.setName(name); } catch (Exception e) { LOG.info("Name of Neutron Network '{}' is ignored.", network.getName()); LOG.debug("Name exception", e);
protected NeutronNetwork fromMd(Network network) { NeutronNetwork result = new NeutronNetwork(); result.setAdminStateUp(network.isAdminStateUp()); result.setNetworkName(network.getName()); result.setShared(network.isShared()); result.setStatus(network.getStatus());
protected NeutronNetwork fromMd(Network network) { NeutronNetwork result = new NeutronNetwork(); result.setAdminStateUp(network.isAdminStateUp()); result.setNetworkName(network.getName()); result.setShared(network.isShared()); result.setStatus(network.getStatus());
private NeutronNetwork fromMd(Network network) { NeutronNetwork result = new NeutronNetwork(); result.setAdminStateUp(network.isAdminStateUp()); result.setNetworkName(network.getName()); result.setShared(network.isShared()); result.setStatus(network.getStatus()); // todo remove '-' chars as tenant id doesn't use them if (network.getTenantId() != null) { result.setTenantID(network.getTenantId().getValue()); } result.setID(network.getUuid().getValue()); NetworkL3Extension l3Extension = network.getAugmentation(NetworkL3Extension.class); result.setRouterExternal(l3Extension.isExternal()); NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class); result.setProviderPhysicalNetwork(providerExtension.getPhysicalNetwork()); result.setProviderSegmentationID(providerExtension.getSegmentationId()); result.setProviderNetworkType(NETWORK_MAP.get(providerExtension.getNetworkType())); List<NeutronNetwork_Segment> segments = new ArrayList<>(); if (providerExtension.getSegments() != null) { for (Segments segment: providerExtension.getSegments()) { NeutronNetwork_Segment neutronSegment = new NeutronNetwork_Segment(); neutronSegment.setProviderPhysicalNetwork(segment.getPhysicalNetwork()); neutronSegment.setProviderSegmentationID(segment.getSegmentationId()); neutronSegment.setProviderNetworkType(NETWORK_MAP.get(segment.getNetworkType())); segments.add(neutronSegment); } } result.setSegments(segments); return result; }
private NeutronNetwork fromMd(Network network) { NeutronNetwork result = new NeutronNetwork(); result.setAdminStateUp(network.isAdminStateUp()); result.setNetworkName(network.getName()); result.setShared(network.isShared()); result.setStatus(network.getStatus()); // todo remove '-' chars as tenant id doesn't use them if (network.getTenantId() != null) { result.setTenantID(network.getTenantId().getValue()); } result.setID(network.getUuid().getValue()); NetworkL3Extension l3Extension = network.getAugmentation(NetworkL3Extension.class); result.setRouterExternal(l3Extension.isExternal()); NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class); result.setProviderPhysicalNetwork(providerExtension.getPhysicalNetwork()); result.setProviderSegmentationID(providerExtension.getSegmentationId()); result.setProviderNetworkType(NETWORK_MAP.get(providerExtension.getNetworkType())); List<NeutronNetwork_Segment> segments = new ArrayList<>(); if (providerExtension.getSegments() != null) { for (Segments segment: providerExtension.getSegments()) { NeutronNetwork_Segment neutronSegment = new NeutronNetwork_Segment(); neutronSegment.setProviderPhysicalNetwork(segment.getPhysicalNetwork()); neutronSegment.setProviderSegmentationID(segment.getSegmentationId()); neutronSegment.setProviderNetworkType(NETWORK_MAP.get(segment.getNetworkType())); segments.add(neutronSegment); } } result.setSegments(segments); return result; }
result.initDefaults(); result.setAdminStateUp(network.isAdminStateUp()); result.setNetworkName(network.getName()); result.setShared(network.isShared()); result.setStatus(network.getStatus());