* Use functional transforms where possible.
* Remove uses of Optional which are only null-checks (Optional.of()
immediately followed by .isPresent()).
* Use try-with-resources for transactions where appropriate (and
spotted during Optional cleanup).
Change-Id: I1198d10cceb806a6f3d4718bdd169cf746faf2f1
Signed-off-by: Stephen Kitt <skitt@redhat.com>
InstanceIdentifier<Interface> id = InstanceIdentifier.builder(Interfaces.class)
.child(Interface.class, new InterfaceKey(interfaceName)).build();
- Optional<Interface> port = read(LogicalDatastoreType.CONFIGURATION, id);
- if(port.isPresent()) {
+ if (read(LogicalDatastoreType.CONFIGURATION, id).isPresent()) {
NodeConnectorId ncId = getNodeConnectorIdFromInterface(interfaceName);
NodeId nodeId = getNodeIdFromNodeConnectorId(ncId);
InstanceIdentifier.builder(InterfacesState.class).child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.class,
new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceKey(interfaceName));
InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> id = idBuilder.build();
- Optional<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> interfaceStateOptional = read(LogicalDatastoreType.OPERATIONAL, id);
- if(interfaceStateOptional.isPresent()) {
- return interfaceStateOptional.get();
- }
- return null;
+ return read(LogicalDatastoreType.OPERATIONAL, id).orNull();
}
protected byte[] getMacAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState, String interfaceName) {
protected Interface getInterfaceFromConfigDS(String interfaceName) {
InterfaceKey interfaceKey = new InterfaceKey(interfaceName);
InstanceIdentifier<Interface> interfaceId = getInterfaceIdentifier(interfaceKey);
- Optional<Interface> interfaceOptional = read(LogicalDatastoreType.CONFIGURATION, interfaceId);
- if (!interfaceOptional.isPresent()) {
- return null;
- }
-
- return interfaceOptional.get();
+ return read(LogicalDatastoreType.CONFIGURATION, interfaceId).orNull();
}
private <T extends DataObject> Optional<T> read(LogicalDatastoreType datastoreType,
InstanceIdentifier<T> path) {
- ReadOnlyTransaction tx = dataBroker.newReadOnlyTransaction();
-
- Optional<T> result = Optional.absent();
- try {
- result = tx.read(datastoreType, path).get();
+ try (ReadOnlyTransaction tx = dataBroker.newReadOnlyTransaction()) {
+ return tx.read(datastoreType, path).get();
} catch (Exception e) {
throw new RuntimeException(e);
- } finally {
- tx.close();
}
-
- return result;
}
}
.build(new CacheLoader<Long, String>() {
@Override
public String load(Long monitorId) throws Exception {
- String monitorKey = null;
- Optional<MonitoridKeyEntry> optKey =
- read(LogicalDatastoreType.OPERATIONAL, getMonitorMapId(monitorId));
- if (optKey.isPresent()) {
- monitorKey = optKey.get().getMonitorKey();
- }
- return monitorKey;
+ return read(LogicalDatastoreType.OPERATIONAL, getMonitorMapId(monitorId)).transform(
+ MonitoridKeyEntry::getMonitorKey).orNull();
}
});
}
private boolean stopMonitoringTask(Long monitorId, boolean interruptTask) {
Optional<MonitoringInfo> optInfo = read(LogicalDatastoreType.OPERATIONAL, getMonitoringInfoId(monitorId));
- MonitoringInfo monitoringInfo = optInfo.get();
- if (monitoringInfo == null) {
+ if (!optInfo.isPresent()) {
LOG.warn("There is no monitoring info present for monitor id {}", monitorId);
return false;
}
+ MonitoringInfo monitoringInfo = optInfo.get();
Optional<MonitorProfile> optProfile = read(LogicalDatastoreType.OPERATIONAL,
getMonitorProfileId(monitoringInfo.getProfileId()));
EtherTypes protocolType = optProfile.get().getProtocolType();
//DATA STORE OPERATIONS
<T extends DataObject> Optional<T> read(LogicalDatastoreType datastoreType, InstanceIdentifier<T> path) {
- ReadOnlyTransaction tx = dataBroker.newReadOnlyTransaction();
-
- Optional<T> result = Optional.absent();
- try {
- result = tx.read(datastoreType, path).get();
+ try (ReadOnlyTransaction tx = dataBroker.newReadOnlyTransaction()) {
+ return tx.read(datastoreType, path).get();
} catch (InterruptedException | ExecutionException e) {
LOG.warn("Error reading data from path {} in datastore {}", path, datastoreType, e);
- } finally {
- tx.close();
}
- return result;
+ return Optional.absent();
}
@Override
}
private List<Long> getMonitorIds(String interfaceName) {
- Optional<InterfaceMonitorEntry> optEntry = read(LogicalDatastoreType.OPERATIONAL,
- getInterfaceMonitorMapId(interfaceName));
- if (optEntry.isPresent()) {
- InterfaceMonitorEntry entry = optEntry.get();
- return entry.getMonitorIds();
- }
- return Collections.emptyList();
+ return read(LogicalDatastoreType.OPERATIONAL, getInterfaceMonitorMapId(interfaceName)).transform(
+ InterfaceMonitorEntry::getMonitorIds).or(Collections.emptyList());
}
}
private <T extends DataObject> Optional<T> read(LogicalDatastoreType datastoreType,
InstanceIdentifier<T> path) {
-
- ReadOnlyTransaction tx = dataService.newReadOnlyTransaction();
-
- Optional<T> result = Optional.absent();
- try {
- result = tx.read(datastoreType, path).get();
+ try (ReadOnlyTransaction tx = dataService.newReadOnlyTransaction()) {
+ return tx.read(datastoreType, path).get();
} catch (Exception e) {
throw new RuntimeException(e);
}
- tx.close();
-
- return result;
}
}
.setMode(MonitoringMode.OneOne)
.setProfileId(profileId).build()).build();
@SuppressWarnings("unchecked")
- Optional<MonitorProfile> optionalProfile = (Optional<MonitorProfile>)mock(Optional.class);
+ Optional<MonitorProfile> optionalProfile = Optional.of(getTestMonitorProfile());
CheckedFuture<Optional<MonitorProfile>, ReadFailedException> proFuture = Futures.immediateCheckedFuture(optionalProfile);
when(readTx.read(eq(LogicalDatastoreType.OPERATIONAL), argThat(isType(MonitorProfile.class)))).thenReturn(proFuture);
- doReturn(true).when(optionalProfile).isPresent();
- doReturn(getTestMonitorProfile()).when(optionalProfile).get();
CheckedFuture<Optional<MonitoringInfo>, ReadFailedException> outFuture = Futures.immediateCheckedFuture(Optional.<MonitoringInfo>absent());
when(readTx.read(eq(LogicalDatastoreType.OPERATIONAL), argThat(isType(MonitoringInfo.class)))).thenReturn(outFuture);
RpcResult<MonitorStartOutput> output = alivenessMonitor.monitorStart(input).get();
*/
package org.opendaylight.genius.fcapsapp;
-import com.google.common.base.Optional;
import java.net.InetAddress;
import java.util.Collection;
import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
*/
public boolean isNodeOwner(String nodeId) {
Entity entity = new Entity("openflow", nodeId);
- Optional<EntityOwnershipState> entityState = this.entityOwnershipService.getOwnershipState(entity);
- if (entityState.isPresent()) {
- return entityState.get().isOwner();
- }
- return false;
+ return this.entityOwnershipService.getOwnershipState(entity).transform(EntityOwnershipState::isOwner).or(false);
}
@Override
*/
package org.opendaylight.genius.fcapsapp.performancecounter;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Iterables;
*/
public boolean isNodeOwner(String nodeId) {
Entity entity = new Entity("openflow", nodeId);
- Optional<EntityOwnershipState> eState = this.entityOwnershipService.getOwnershipState(entity);
- if(eState.isPresent()) {
- return eState.get().isOwner();
- }
- return false;
+ return this.entityOwnershipService.getOwnershipState(entity).transform(EntityOwnershipState::isOwner).or(false);
}
private boolean compareInstanceIdentifierTail(InstanceIdentifier<?> identifier1,
public static <T extends DataObject> Optional<T> read(LogicalDatastoreType datastoreType,
InstanceIdentifier<T> path, DataBroker broker) {
-
- ReadOnlyTransaction tx = broker.newReadOnlyTransaction();
-
- Optional<T> result = Optional.absent();
- try {
- result = tx.read(datastoreType, path).get();
+ try (ReadOnlyTransaction tx = broker.newReadOnlyTransaction()) {
+ return tx.read(datastoreType, path).get();
} catch (Exception e) {
throw new RuntimeException(e);
}
-
- return result;
}
public static List<Action> getEgressActionsForInterface(String interfaceName, Long tunnelKey, Integer actionKey,
InstanceIdentifier.builder(Nodes.class)
.child(Node.class, new NodeKey(getNodeIdFromNodeConnectorId(ncId)))
.child(NodeConnector.class, new NodeConnectorKey(ncId)).build();
- Optional<NodeConnector> optNc = read(LogicalDatastoreType.OPERATIONAL, ncIdentifier, dataBroker);
- if(optNc.isPresent()) {
- NodeConnector nc = optNc.get();
- FlowCapableNodeConnector fcnc = nc.getAugmentation(FlowCapableNodeConnector.class);
- return fcnc.getName();
- }
- return null;
+ return read(LogicalDatastoreType.OPERATIONAL, ncIdentifier, dataBroker).transform(
+ nc -> nc.getAugmentation(FlowCapableNodeConnector.class).getName()).orNull();
}
public static NodeConnectorId getNodeConnectorIdFromInterface(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState){
public static String getInterfaceFromMonitorId(DataBroker broker, Long monitorId) {
InstanceIdentifier<MonitorIdInterface> id = InstanceIdentifier.builder(MonitorIdInterfaceMap.class).child(MonitorIdInterface.class, new MonitorIdInterfaceKey(monitorId)).build();
- Optional<MonitorIdInterface> interfaceMonitorIdMap = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, broker);
- if(interfaceMonitorIdMap.isPresent()) {
- return interfaceMonitorIdMap.get().getInterfaceName();
- }
- return null;
+ return IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, broker).transform(
+ MonitorIdInterface::getInterfaceName).orNull();
}
private static void removeMonitorIdInterfaceMap(DataBroker broker, long monitorId) {
InstanceIdentifier<MonitorIdInterface> id = InstanceIdentifier.builder(MonitorIdInterfaceMap.class).child(MonitorIdInterface.class, new MonitorIdInterfaceKey(monitorId)).build();
Optional<MonitorIdInterface> monitorIdInterfaceMap = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, broker);
- if(monitorIdInterfaceMap.isPresent()) {
+ if (monitorIdInterfaceMap.isPresent()) {
MDSALUtil.syncDelete(broker, LogicalDatastoreType.OPERATIONAL, id);
}
}
private static void removeMonitorIdFromInterfaceMonitorIdMap(DataBroker broker, String infName, long monitorId) {
InstanceIdentifier<InterfaceMonitorId> id = InstanceIdentifier.builder(InterfaceMonitorIdMap.class).child(InterfaceMonitorId.class, new InterfaceMonitorIdKey(infName)).build();
Optional<InterfaceMonitorId> interfaceMonitorIdMap = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, broker);
- if(interfaceMonitorIdMap.isPresent()) {
+ if (interfaceMonitorIdMap.isPresent()) {
InterfaceMonitorId interfaceMonitorIdInstance = interfaceMonitorIdMap.get();
List<Long> existingMonitorIds = interfaceMonitorIdInstance.getMonitorId();
if (existingMonitorIds != null && existingMonitorIds.contains(monitorId)) {
public static List<Long> getMonitorIdForInterface(DataBroker broker, String infName) {
InstanceIdentifier<InterfaceMonitorId> id = InstanceIdentifier.builder(InterfaceMonitorIdMap.class).child(InterfaceMonitorId.class, new InterfaceMonitorIdKey(infName)).build();
- Optional<InterfaceMonitorId> interfaceMonitorIdMap = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, broker);
- if(interfaceMonitorIdMap.isPresent()) {
- return interfaceMonitorIdMap.get().getMonitorId();
- }
- return null;
+ return IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, broker).transform(
+ InterfaceMonitorId::getMonitorId).orNull();
}
public static long createMonitorProfile(AlivenessMonitorService alivenessMonitor, MonitorProfileCreateInput monitorProfileCreateInput) {
import com.google.common.util.concurrent.ListenableFuture;
import java.math.BigInteger;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Matcher;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406._interface.child.info._interface.parent.entry.InterfaceChildEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406._interface.child.info._interface.parent.entry.InterfaceChildEntryKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.dpn.to._interface.list.DpnToInterface;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.dpn.to._interface.list.DpnToInterfaceBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.dpn.to._interface.list.DpnToInterfaceKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.dpn.to._interface.list.dpn.to._interface.InterfaceNameEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.dpn.to._interface.list.dpn.to._interface.InterfaceNameEntryBuilder;
.child(Node.class, new NodeKey(nodeId))
.child(NodeConnector.class, new NodeConnectorKey(nodeConnectorId)).build();
- Optional<NodeConnector> nodeConnectorOptional = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, ncIdentifier,
- dataBroker);
- if (!nodeConnectorOptional.isPresent()) {
- return null;
- }
- return nodeConnectorOptional.get();
+ return IfmUtil.read(LogicalDatastoreType.OPERATIONAL, ncIdentifier, dataBroker).orNull();
}
public static boolean isNodePresent(DataBroker dataBroker, NodeConnectorId nodeConnectorId) {
public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface getInterfaceStateFromOperDS(
InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifStateId,
DataBroker dataBroker) {
- Optional<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifStateOptional = IfmUtil
- .read(LogicalDatastoreType.OPERATIONAL, ifStateId, dataBroker);
- if (!ifStateOptional.isPresent()) {
- return null;
- }
-
- return ifStateOptional.get();
+ return IfmUtil.read(LogicalDatastoreType.OPERATIONAL, ifStateId, dataBroker).orNull();
}
public static void makeTunnelIngressFlow(List<ListenableFuture<Void>> futures, IMdsalApiManager mdsalApiManager,
*/
package org.opendaylight.genius.interfacemanager.commons;
-import com.google.common.base.Optional;
import java.math.BigInteger;
import java.util.List;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
public static BridgeRefEntry getBridgeRefEntryFromOperDS(InstanceIdentifier<BridgeRefEntry> dpnBridgeEntryIid,
DataBroker dataBroker) {
- Optional<BridgeRefEntry> bridgeRefEntryOptional =
- IfmUtil.read(LogicalDatastoreType.OPERATIONAL, dpnBridgeEntryIid, dataBroker);
- if (!bridgeRefEntryOptional.isPresent()) {
- return null;
- }
- return bridgeRefEntryOptional.get();
+ return IfmUtil.read(LogicalDatastoreType.OPERATIONAL, dpnBridgeEntryIid, dataBroker).orNull();
}
public static OvsdbBridgeRef getBridgeRefEntryFromOperDS(BigInteger dpId,
if (bridgeRefEntry != null && bridgeRefEntry.getBridgeReference() != null) {
InstanceIdentifier<OvsdbBridgeAugmentation> bridgeIid =
(InstanceIdentifier<OvsdbBridgeAugmentation>) bridgeRefEntry.getBridgeReference().getValue();
- Optional<OvsdbBridgeAugmentation> bridgeNodeOptional =
- IfmUtil.read(LogicalDatastoreType.OPERATIONAL, bridgeIid, dataBroker);
- if (bridgeNodeOptional.isPresent()) {
- return true;
- }
+ return IfmUtil.read(LogicalDatastoreType.OPERATIONAL, bridgeIid, dataBroker).isPresent();
}
return false;
}
public static BridgeEntry getBridgeEntryFromConfigDS(InstanceIdentifier<BridgeEntry> bridgeEntryInstanceIdentifier,
DataBroker dataBroker) {
- Optional<BridgeEntry> bridgeEntryOptional =
- IfmUtil.read(LogicalDatastoreType.CONFIGURATION, bridgeEntryInstanceIdentifier, dataBroker);
- if (!bridgeEntryOptional.isPresent()) {
- return null;
- }
- return bridgeEntryOptional.get();
+ return IfmUtil.read(LogicalDatastoreType.CONFIGURATION, bridgeEntryInstanceIdentifier, dataBroker).orNull();
}
public static InstanceIdentifier<BridgeInterfaceEntry> getBridgeInterfaceEntryIdentifier(BridgeEntryKey bridgeEntryKey,
public static InterfaceParentEntry getInterfaceParentEntryFromConfigDS(
InstanceIdentifier<InterfaceParentEntry> intfId, DataBroker dataBroker) {
- Optional<InterfaceParentEntry> interfaceParentEntryOptional =
- IfmUtil.read(LogicalDatastoreType.CONFIGURATION, intfId, dataBroker);
- if (!interfaceParentEntryOptional.isPresent()) {
- return null;
- }
- return interfaceParentEntryOptional.get();
+ return IfmUtil.read(LogicalDatastoreType.CONFIGURATION, intfId, dataBroker).orNull();
}
public static InterfaceChildEntry getInterfaceChildEntryFromConfigDS(InterfaceParentEntryKey interfaceParentEntryKey,
public static InterfaceChildEntry getInterfaceChildEntryFromConfigDS(
InstanceIdentifier<InterfaceChildEntry> intfChildIid, DataBroker dataBroker) {
- Optional<InterfaceChildEntry> interfaceChildEntryOptional =
- IfmUtil.read(LogicalDatastoreType.CONFIGURATION, intfChildIid, dataBroker);
- if (!interfaceChildEntryOptional.isPresent()) {
- return null;
- }
- return interfaceChildEntryOptional.get();
+ return IfmUtil.read(LogicalDatastoreType.CONFIGURATION, intfChildIid, dataBroker).orNull();
}
public static void createLportTagInterfaceMap(WriteTransaction t, String infName, Integer ifIndex) {
DataBroker dataBroker) {
InstanceIdentifier<TunnelInstanceInterface> id = InstanceIdentifier.builder(TunnelInstanceInterfaceMap.class).
child(TunnelInstanceInterface.class, new TunnelInstanceInterfaceKey(tunnelInstanceId)).build();
- Optional<TunnelInstanceInterface> tunnelInstanceInterfaceOptional = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, dataBroker);
- if(tunnelInstanceInterfaceOptional.isPresent()){
- return tunnelInstanceInterfaceOptional.get().getInterfaceName();
- }
- return null;
+ return IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, dataBroker).transform(
+ TunnelInstanceInterface::getInterfaceName).orNull();
}
public static void deleteBridgeInterfaceEntry(BridgeEntryKey bridgeEntryKey, List<BridgeInterfaceEntry> bridgeInterfaceEntries,
*/
package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.utilities;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableBiMap;
import java.math.BigInteger;
import java.util.ArrayList;
ServicesInfoKey servicesInfoKey = new ServicesInfoKey(interfaceName,serviceMode);
InstanceIdentifier.InstanceIdentifierBuilder<ServicesInfo> servicesInfoIdentifierBuilder =
InstanceIdentifier.builder(ServiceBindings.class).child(ServicesInfo.class, servicesInfoKey);
- Optional<ServicesInfo> servicesInfoOptional = IfmUtil.read(LogicalDatastoreType.CONFIGURATION,
- servicesInfoIdentifierBuilder.build(), dataBroker);
-
- if (servicesInfoOptional.isPresent()) {
- return servicesInfoOptional.get();
- }
-
- return null;
+ return IfmUtil.read(LogicalDatastoreType.CONFIGURATION, servicesInfoIdentifierBuilder.build(),
+ dataBroker).orNull();
}
public static NodeConnectorId getNodeConnectorIdFromInterface(String interfaceName, DataBroker dataBroker) {
<version>${genius.version}</version>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.7</version>
- <configuration>
- <instructions>
- <Import-Package>
- org.apache.karaf.shell.console,
- *
- </Import-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
</project>
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.net.util.SubnetUtils;
import org.apache.felix.service.command.CommandSession;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.genius.mdsalutil.MDSALDataStoreUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfL2vlan;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnel;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeBfd;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeLldp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorParamsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TepTypeInternal;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelOperStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnel.list.InternalTunnel;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZonesBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZone;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-//import org.opendaylight.genius.interfacemgr.util.OperationalIfmUtil;
-
-
public class TepCommandHelper {
private static final Logger LOG = LoggerFactory.getLogger(TepCommandHelper.class);
public TransportZone getTransportZone(String tzone) {
InstanceIdentifier<TransportZone> tzonePath = InstanceIdentifier.builder(TransportZones.class)
.child(TransportZone.class, new TransportZoneKey(tzone)).build();
- Optional<TransportZone> tZoneOptional = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, tzonePath,
- dataBroker);
- if (tZoneOptional.isPresent()) {
- return tZoneOptional.get();
- }
- return null;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, tzonePath, dataBroker).orNull();
}
/**
public TransportZone getTransportZoneFromConfigDS(String tzone) {
InstanceIdentifier<TransportZone> tzonePath = InstanceIdentifier.builder(TransportZones.class)
.child(TransportZone.class, new TransportZoneKey(tzone)).build();
- Optional<TransportZone> tZoneOptional = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, tzonePath,
- dataBroker);
- if (tZoneOptional.isPresent()) {
- return tZoneOptional.get();
- }
- return null;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, tzonePath, dataBroker).orNull();
}
/**
*/
public TransportZones getAllTransportZones() {
InstanceIdentifier<TransportZones> path = InstanceIdentifier.builder(TransportZones.class).build();
- Optional<TransportZones> tZonesOptional = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, dataBroker);
- if (tZonesOptional.isPresent()) {
- return tZonesOptional.get();
- }
- return null;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, dataBroker).orNull();
}
public boolean checkExistingSubnet(Map<SubnetObject, List<Vteps>> subVtepMapTemp, SubnetObject subObCli) {
private static boolean trunkExists( String srcDpnOrNode, String dstDpnOrNode,
Class<? extends TunnelTypeBase> tunType,DataBroker dataBroker) {
- boolean existsFlag = false ;
InstanceIdentifier<ExternalTunnel> path = InstanceIdentifier.create(
ExternalTunnelList.class)
.child(ExternalTunnel.class, ItmUtils.getExternalTunnelKey(dstDpnOrNode, srcDpnOrNode, tunType));
- Optional<ExternalTunnel> exTunnels = ItmUtils.read(LogicalDatastoreType.CONFIGURATION,path, dataBroker) ;
- if( exTunnels.isPresent()) {
- existsFlag = true;
- }
- return existsFlag ;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION,path, dataBroker).isPresent();
}
}
.getValue(),dstTep.getTunnelType().getName());
}
private static boolean checkIfTrunkExists(BigInteger srcDpnId, BigInteger dstDpnId, Class<? extends TunnelTypeBase> tunType, DataBroker dataBroker) {
- boolean existsFlag = false ;
InstanceIdentifier<InternalTunnel> path = InstanceIdentifier.create(
TunnelList.class)
.child(InternalTunnel.class, new InternalTunnelKey( dstDpnId, srcDpnId, tunType));
- Optional<InternalTunnel> internalTunnels = ItmUtils.read(LogicalDatastoreType.CONFIGURATION,path, dataBroker) ;
- if( internalTunnels.isPresent())
- existsFlag = true ;
- return existsFlag ;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION,path, dataBroker).isPresent();
}
}
}
protected boolean getTunnelMonitorEnabledFromConfigDS() {
- boolean tunnelMonitorEnabled = true;
InstanceIdentifier<TunnelMonitorParams> path = InstanceIdentifier.builder(TunnelMonitorParams.class).build();
- Optional<TunnelMonitorParams> storedTunnelMonitor = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, broker);
- if (storedTunnelMonitor.isPresent()) {
- tunnelMonitorEnabled = storedTunnelMonitor.get().isEnabled();
- }
- return tunnelMonitorEnabled;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, broker).transform(
+ TunnelMonitorParams::isEnabled).or(true);
}
protected Class<? extends TunnelMonitoringTypeBase> getTunnelMonitorTypeFromConfigDS() {
Class<? extends TunnelMonitoringTypeBase> tunnelMonitorType = TunnelMonitoringTypeBfd.class;
InstanceIdentifier<TunnelMonitorParams> path = InstanceIdentifier.builder(TunnelMonitorParams.class).build();
Optional<TunnelMonitorParams> storedTunnelMonitor = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, broker);
- if(storedTunnelMonitor.isPresent() && storedTunnelMonitor.get().getMonitorProtocol()!=null )
+ if (storedTunnelMonitor.isPresent() && storedTunnelMonitor.get().getMonitorProtocol() != null) {
tunnelMonitorType = storedTunnelMonitor.get().getMonitorProtocol();
+ }
return tunnelMonitorType;
}
protected int getTunnelMonitorIntervalFromConfigDS() {
- int tunnelMonitorInterval = ITMConstants.DEFAULT_MONITOR_INTERVAL;
InstanceIdentifier<TunnelMonitorInterval> path = InstanceIdentifier.builder(TunnelMonitorInterval.class).build();
- Optional<TunnelMonitorInterval> storedTunnelMonitor = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, broker);
- if (storedTunnelMonitor.isPresent()) {
- tunnelMonitorInterval = storedTunnelMonitor.get().getInterval();
- }
- return tunnelMonitorInterval;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, broker).transform(
+ TunnelMonitorInterval::getInterval).or(ITMConstants.DEFAULT_MONITOR_INTERVAL);
}
}
*/
package org.opendaylight.genius.itm.impl;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import java.math.BigInteger;
import java.util.List;
import java.util.regex.Pattern;
import org.apache.felix.service.command.CommandSession;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
import org.opendaylight.controller.md.sal.binding.api.NotificationService;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeGre;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeMplsOverGre;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.VtepConfigSchemas;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.vtep.config.schemas.VtepConfigSchema;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.vtep.config.schemas.VtepConfigSchemaBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelList;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.ExternalTunnelList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.external.tunnel.list.ExternalTunnel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.external.tunnel.list.ExternalTunnelBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.external.tunnel.list.ExternalTunnelKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.AddExternalTunnelEndpointInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.RemoveExternalTunnelEndpointInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.AddExternalTunnelEndpointInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.RemoveExternalTunnelEndpointInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.*;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Override
public VtepConfigSchema getVtepConfigSchema(String schemaName) {
- Optional<VtepConfigSchema> schema = ItmUtils.read(LogicalDatastoreType.CONFIGURATION,
- ItmUtils.getVtepConfigSchemaIdentifier(schemaName), this.dataBroker);
- if (schema.isPresent()) {
- return schema.get();
- }
- return null;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, ItmUtils.getVtepConfigSchemaIdentifier(schemaName),
+ this.dataBroker).orNull();
}
@Override
public List<VtepConfigSchema> getAllVtepConfigSchemas() {
- Optional<VtepConfigSchemas> schemas = ItmUtils.read(LogicalDatastoreType.CONFIGURATION,
- ItmUtils.getVtepConfigSchemasIdentifier(), this.dataBroker);
- if (schemas.isPresent()) {
- return schemas.get().getVtepConfigSchema();
- }
- return null;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, ItmUtils.getVtepConfigSchemasIdentifier(),
+ this.dataBroker).transform(VtepConfigSchemas::getVtepConfigSchema).orNull();
}
@Override
public static <T extends DataObject> Optional<T> read(LogicalDatastoreType datastoreType,
InstanceIdentifier<T> path, DataBroker broker) {
-
- ReadOnlyTransaction tx = broker.newReadOnlyTransaction();
-
- Optional<T> result = Optional.absent();
- try {
- result = tx.read(datastoreType, path).get();
+ try (ReadOnlyTransaction tx = broker.newReadOnlyTransaction()) {
+ return tx.read(datastoreType, path).get();
} catch (Exception e) {
throw new RuntimeException(e);
}
-
- return result;
}
public static <T extends DataObject> void asyncWrite(LogicalDatastoreType datastoreType,
InstanceIdentifier<TransportZone> path = InstanceIdentifier.builder(TransportZones.class).
child(TransportZone.class, new TransportZoneKey(tzone)).build();
Optional<TransportZone> tZoneOptional = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, dataBroker);
- Class<? extends TunnelTypeBase> tunType = tZoneOptional.get().getTunnelType();
if (tZoneOptional.isPresent()) {
- if (tZoneOptional.get().getSubnets() != null && !tZoneOptional.get().getSubnets().isEmpty()) {
- for (Subnets sub : tZoneOptional.get().getSubnets()) {
+ TransportZone transportZone = tZoneOptional.get();
+ Class<? extends TunnelTypeBase> tunType = transportZone.getTunnelType();
+ if (transportZone.getSubnets() != null && !transportZone.getSubnets().isEmpty()) {
+ for (Subnets sub : transportZone.getSubnets()) {
if (sub.getVteps() != null && !sub.getVteps().isEmpty()) {
for (Vteps vtepLocal : sub.getVteps()) {
for (Vteps vtepRemote : sub.getVteps()) {
Optional<InternalTunnel> TunnelsOptional =
ItmUtils.read(LogicalDatastoreType.CONFIGURATION, intIID, dataBroker);
if (TunnelsOptional.isPresent()) {
- LOG.trace("Internal Tunnel added {}",TunnelsOptional.get().getTunnelInterfaceName());
- tunnels.add(TunnelsOptional.get().getTunnelInterfaceName());
+ String tunnelInterfaceName = TunnelsOptional.get().getTunnelInterfaceName();
+ LOG.trace("Internal Tunnel added {}", tunnelInterfaceName);
+ tunnels.add(tunnelInterfaceName);
}
}
}
}
}
}
- }
- if (hwVtepsExist) {
- for (HwVtep hwVtep : hwVteps) {
- for (HwVtep hwVtepOther : hwVteps) {
- if (!hwVtep.getHwIp().equals(hwVtepOther.getHwIp())) {
- tunnels.add(getExtTunnel(hwVtep.getNode_id(), hwVtepOther.getNode_id(), tunType, dataBroker));
- tunnels.add(getExtTunnel(hwVtepOther.getNode_id(), hwVtep.getNode_id(), tunType, dataBroker));
+ if (hwVtepsExist) {
+ for (HwVtep hwVtep : hwVteps) {
+ for (HwVtep hwVtepOther : hwVteps) {
+ if (!hwVtep.getHwIp().equals(hwVtepOther.getHwIp())) {
+ tunnels.add(getExtTunnel(hwVtep.getNode_id(), hwVtepOther.getNode_id(), tunType, dataBroker));
+ tunnels.add(getExtTunnel(hwVtepOther.getNode_id(), hwVtep.getNode_id(), tunType, dataBroker));
+ }
}
}
}
child(TransportZone.class, new TransportZoneKey(tzone)).build();
Optional<TransportZone> tZoneOptional = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, dataBroker);
if (tZoneOptional.isPresent()) {
- if (tZoneOptional.get().getSubnets() != null && !tZoneOptional.get().getSubnets().isEmpty()) {
- for (Subnets sub : tZoneOptional.get().getSubnets()) {
+ TransportZone transportZone = tZoneOptional.get();
+ if (transportZone.getSubnets() != null && !transportZone.getSubnets().isEmpty()) {
+ for (Subnets sub : transportZone.getSubnets()) {
if (sub.getVteps() != null && !sub.getVteps().isEmpty()) {
for (Vteps vtepLocal : sub.getVteps()) {
for (Vteps vtepRemote : sub.getVteps()) {
if (!vtepLocal.equals(vtepRemote)) {
- InternalTunnelKey key = new InternalTunnelKey(vtepRemote.getDpnId(), vtepLocal.getDpnId(), tZoneOptional.get().getTunnelType());
+ InternalTunnelKey key =
+ new InternalTunnelKey(vtepRemote.getDpnId(), vtepLocal.getDpnId(),
+ transportZone.getTunnelType());
InstanceIdentifier<InternalTunnel> intIID =
InstanceIdentifier.builder(TunnelList.class).
child(InternalTunnel.class, key).build();
- Optional<InternalTunnel> TunnelsOptional =
+ Optional<InternalTunnel> tunnelsOptional =
ItmUtils.read(LogicalDatastoreType.CONFIGURATION, intIID, dataBroker);
- if (TunnelsOptional.isPresent()) {
- LOG.trace("Internal Tunnel added {}",
- TunnelsOptional.get().getTunnelInterfaceName());
- tunnels.add(TunnelsOptional.get().getTunnelInterfaceName());
+ if (tunnelsOptional.isPresent()) {
+ String tunnelInterfaceName = tunnelsOptional.get().getTunnelInterfaceName();
+ LOG.trace("Internal Tunnel added {}", tunnelInterfaceName);
+ tunnels.add(tunnelInterfaceName);
}
}
}
ExternalTunnelKey key = getExternalTunnelKey(dpId, node_id, tunType);
InstanceIdentifier<ExternalTunnel> intIID = InstanceIdentifier.builder(ExternalTunnelList.class).
child(ExternalTunnel.class, key).build();
- Optional<ExternalTunnel> TunnelsOptional =
+ Optional<ExternalTunnel> tunnelsOptional =
ItmUtils.read(LogicalDatastoreType.CONFIGURATION, intIID, dataBroker);
- if (TunnelsOptional.isPresent()) {
- LOG.trace("ext tunnel returned {} ",TunnelsOptional.get().getTunnelInterfaceName());
- return TunnelsOptional.get().getTunnelInterfaceName();
+ if (tunnelsOptional.isPresent()) {
+ String tunnelInterfaceName = tunnelsOptional.get().getTunnelInterfaceName();
+ LOG.trace("ext tunnel returned {} ", tunnelInterfaceName);
+ return tunnelInterfaceName;
}
return null;
}
}
public static TunnelList getAllInternalTunnels(DataBroker broker) {
InstanceIdentifier<TunnelList> tunnelListInstanceIdentifier = InstanceIdentifier.builder(TunnelList.class).build();
- Optional<TunnelList> tunnelList = read(LogicalDatastoreType.CONFIGURATION, tunnelListInstanceIdentifier, broker);
- if (tunnelList.isPresent()) {
- return tunnelList.get();
- }
- return null;
+ return read(LogicalDatastoreType.CONFIGURATION, tunnelListInstanceIdentifier, broker).orNull();
}
public static InternalTunnel getInternalTunnel(String interfaceName, DataBroker broker) {
InternalTunnel internalTunnel = null;
* @return the all vtep config schemas
*/
private List<VtepConfigSchema> getAllVtepConfigSchemas() {
- Optional<VtepConfigSchemas> schemas = ItmUtils.read(LogicalDatastoreType.CONFIGURATION,
- ItmUtils.getVtepConfigSchemasIdentifier(), this.dataBroker);
- if (schemas.isPresent()) {
- return schemas.get().getVtepConfigSchema();
- }
- return null;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, ItmUtils.getVtepConfigSchemasIdentifier(),
+ this.dataBroker).transform(VtepConfigSchemas::getVtepConfigSchema).orNull();
}
/**
* @return the vtep ip pool
*/
private VtepIpPool getVtepIpPool(final String subnetCidr) {
- Optional<VtepIpPool> vtepIpPool = ItmUtils.read(LogicalDatastoreType.CONFIGURATION,
- ItmUtils.getVtepIpPoolIdentifier(subnetCidr), this.dataBroker);
- if (vtepIpPool.isPresent()) {
- return vtepIpPool.get();
- }
- return null;
+ return ItmUtils.read(LogicalDatastoreType.CONFIGURATION, ItmUtils.getVtepIpPoolIdentifier(subnetCidr),
+ this.dataBroker).orNull();
}
/**
private boolean readWriteLock(final InstanceIdentifier<Lock> lockInstanceIdentifier, final Lock lockData)
throws InterruptedException, ExecutionException {
ReadWriteTransaction tx = broker.newReadWriteTransaction();
- Optional<Lock> result = Optional.absent();
- result = tx.read(LogicalDatastoreType.OPERATIONAL, lockInstanceIdentifier).get();
+ Optional<Lock> result = tx.read(LogicalDatastoreType.OPERATIONAL, lockInstanceIdentifier).get();
if (!result.isPresent()) {
tx.put(LogicalDatastoreType.OPERATIONAL, lockInstanceIdentifier, lockData, true);
CheckedFuture<Void, TransactionCommitFailedException> futures = tx.submit();
private void unlock(final String lockName, final InstanceIdentifier<Lock> lockInstanceIdentifier) {
ReadWriteTransaction tx = broker.newReadWriteTransaction();
- Optional<Lock> result = Optional.absent();
try {
- result = tx.read(LogicalDatastoreType.OPERATIONAL, lockInstanceIdentifier).get();
+ Optional<Lock> result = tx.read(LogicalDatastoreType.OPERATIONAL, lockInstanceIdentifier).get();
if (!result.isPresent()) {
LOG.info("{} is already unlocked", lockName);
return;
*/
package org.opendaylight.genius.datastoreutils;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import java.util.Collections;
import java.util.Map;
for (InstanceIdentifier<?> key : keys) {
if (clazz.equals(key.getTargetType())) {
InstanceIdentifier<T> createKeyIdent = key.firstIdentifierOf(clazz);
- final Optional<DataObject> value = Optional.of(createdData.get(key));
- if (value.isPresent()) {
- this.add(createKeyIdent, (T)value.get());
+ DataObject value = createdData.get(key);
+ if (value != null) {
+ this.add(createKeyIdent, (T) value);
}
}
}
for (InstanceIdentifier<?> key : keys) {
if (clazz.equals(key.getTargetType())) {
InstanceIdentifier<T> updateKeyIdent = key.firstIdentifierOf(clazz);
- final Optional<DataObject> value = Optional.of(updateData.get(key));
- final Optional<DataObject> original = Optional.of(originalData.get(key));
- if (value.isPresent() && original.isPresent()) {
- this.update(updateKeyIdent, (T) original.get(), (T) value.get());
+ final DataObject value = updateData.get(key);
+ final DataObject original = originalData.get(key);
+ if (value != null && original != null) {
+ this.update(updateKeyIdent, (T) original, (T) value);
}
}
}
*/
package org.opendaylight.genius.datastoreutils;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import java.util.Collections;
import java.util.Map;
for (InstanceIdentifier<?> key : keys) {
if (clazz.equals(key.getTargetType())) {
InstanceIdentifier<T> createKeyIdent = key.firstIdentifierOf(clazz);
- final Optional<DataObject> value = Optional.of(createdData.get(key));
- if (value.isPresent()) {
- this.add(createKeyIdent, (T)value.get());
+ final DataObject value = createdData.get(key);
+ if (value != null) {
+ this.add(createKeyIdent, (T) value);
}
}
}
for (InstanceIdentifier<?> key : keys) {
if (clazz.equals(key.getTargetType())) {
InstanceIdentifier<T> updateKeyIdent = key.firstIdentifierOf(clazz);
- final Optional<DataObject> value = Optional.of(updateData.get(key));
- final Optional<DataObject> original = Optional.of(originalData.get(key));
- if (value.isPresent() && original.isPresent()) {
- this.update(updateKeyIdent, (T) original.get(), (T) value.get());
+ final DataObject value = updateData.get(key);
+ final DataObject original = originalData.get(key);
+ if (value != null && original != null) {
+ this.update(updateKeyIdent, (T) original, (T) value);
}
}
}
*/
package org.opendaylight.genius.mdsalutil;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
for (InstanceIdentifier<?> key : keys) {
if (clazz.equals(key.getTargetType())) {
InstanceIdentifier<T> createKeyIdent = key.firstIdentifierOf(clazz);
- final Optional<DataObject> value = Optional.of(createdData.get(key));
- if (value.isPresent()) {
- this.add(createKeyIdent, (T)value.get());
+ DataObject value = createdData.get(key);
+ if (value != null) {
+ this.add(createKeyIdent, (T)value);
}
}
}
for (InstanceIdentifier<?> key : keys) {
if (clazz.equals(key.getTargetType())) {
InstanceIdentifier<T> updateKeyIdent = key.firstIdentifierOf(clazz);
- final Optional<DataObject> value = Optional.of(updateData.get(key));
- final Optional<DataObject> original = Optional.of(originalData.get(key));
- if (value.isPresent() && original.isPresent()) {
- this.update(updateKeyIdent, (T)original.get(), (T)value.get());
+ DataObject value = updateData.get(key);
+ DataObject original = originalData.get(key);
+ if (value != null && original != null) {
+ this.update(updateKeyIdent, (T)original, (T)value);
}
}
}
public static <T extends DataObject> Optional<T> read(final DataBroker broker,final LogicalDatastoreType datastoreType,
InstanceIdentifier<T> path) {
-
- ReadOnlyTransaction tx = broker.newReadOnlyTransaction();
-
- Optional<T> result = Optional.absent();
- try {
- result = tx.read(datastoreType, path).get();
+ try (ReadOnlyTransaction tx = broker.newReadOnlyTransaction()) {
+ return tx.read(datastoreType, path).get();
} catch (Exception e) {
throw new RuntimeException(e);
}
-
- return result;
}
public static <T extends DataObject> void asyncWrite(final DataBroker broker, final LogicalDatastoreType datastoreType,
public static <T extends DataObject> Optional<T> read(LogicalDatastoreType datastoreType,
InstanceIdentifier<T> path, DataBroker broker) {
-
- ReadOnlyTransaction tx = broker.newReadOnlyTransaction();
-
- Optional<T> result = Optional.absent();
- try {
- result = tx.read(datastoreType, path).get();
+ try (ReadOnlyTransaction tx = broker.newReadOnlyTransaction()) {
+ return tx.read(datastoreType, path).get();
} catch (Exception e) {
logger.error("An error occured while reading data from the path {} with the exception {}", path, e);
+ return Optional.absent();
}
- return result;
}
public static <T extends DataObject> Optional<T> read(DataBroker broker,
LogicalDatastoreType datastoreType, InstanceIdentifier<T> path) {
-
- ReadOnlyTransaction tx = broker.newReadOnlyTransaction();
-
- Optional<T> result = Optional.absent();
- try {
- result = tx.read(datastoreType, path).get();
+ try (ReadOnlyTransaction tx = broker.newReadOnlyTransaction()) {
+ return tx.read(datastoreType, path).get();
} catch (Exception e) {
throw new RuntimeException(e);
}
- return result;
}
public static <T extends DataObject> void syncWrite(DataBroker broker,
.child(Node.class, new NodeKey(nodeId))
.child(NodeConnector.class,
new NodeConnectorKey(nodeConnectorId)).build();
-
- Optional<NodeConnector> nodeConnectorOptional = read(
- dataBroker,
- LogicalDatastoreType.OPERATIONAL, ncIdentifier);
- if (!nodeConnectorOptional.isPresent()) {
- return null;
- }
- NodeConnector nc = nodeConnectorOptional.get();
- FlowCapableNodeConnector fc = nc
- .getAugmentation(FlowCapableNodeConnector.class);
- return fc.getName();
+ return read(dataBroker, LogicalDatastoreType.OPERATIONAL, ncIdentifier).transform(
+ nc -> nc.getAugmentation(FlowCapableNodeConnector.class).getName()).orNull();
}
public static NodeConnectorId getNodeConnectorId(DataBroker dataBroker,
NodeConnectorRef ref) {
- Optional<NodeConnector> nc = (Optional<NodeConnector>) read(
- dataBroker,
- LogicalDatastoreType.OPERATIONAL, ref.getValue());
- if(nc.isPresent()){
- return nc.get().getId();
- }
- return null;
+ return ((Optional<NodeConnector>) read(dataBroker, LogicalDatastoreType.OPERATIONAL, ref.getValue())).transform(
+ NodeConnector::getId).orNull();
}
public static TransmitPacketInput getPacketOut(List<Action> actions, byte[] payload, BigInteger dpnId) {
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.genius.mdsalutil.MDSALDataStoreUtils;
-import org.opendaylight.genius.mdsalutil.MDSALUtil;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public static <T extends DataObject> Object get(String cacheName, InstanceIdentifier<T> identifier, String key, DataBroker broker, boolean isConfig) {
Object dataObject = getCache(cacheName).get(key);
- Optional<T> optionalObject = Optional.absent();
if (dataObject == null) {
- if (isConfig) {
- optionalObject = MDSALDataStoreUtils.read(broker, LogicalDatastoreType.CONFIGURATION, identifier);
- } else {
- optionalObject = MDSALDataStoreUtils.read(broker, LogicalDatastoreType.OPERATIONAL, identifier);
- }
- if (optionalObject.isPresent()) {
- dataObject = optionalObject.get();
+ Optional<T> datastoreObject = MDSALDataStoreUtils.read(broker,
+ isConfig ? LogicalDatastoreType.CONFIGURATION : LogicalDatastoreType.OPERATIONAL, identifier);
+ if (datastoreObject.isPresent()) {
+ dataObject = datastoreObject.get();
add(cacheName, key, dataObject);
}
}
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import com.google.common.base.Optional;
import com.google.common.util.concurrent.ListenableFuture;
/**
String logicalSwitchName) {
final InstanceIdentifier<LogicalSwitches> iid = HwvtepSouthboundUtils
.createLogicalSwitchesInstanceIdentifier(nodeId, new HwvtepNodeName(logicalSwitchName));
- Optional<LogicalSwitches> optLogicalSwitch = MDSALUtil.read(broker, datastoreType, iid);
- if (optLogicalSwitch.isPresent()) {
- return optLogicalSwitch.get();
- }
- return null;
+ return MDSALUtil.read(broker, datastoreType, iid).orNull();
}
/**
LogicalDatastoreType datastoreType, NodeId nodeId, String portName) {
TerminationPointKey tpKey = new TerminationPointKey(new TpId(portName));
InstanceIdentifier<TerminationPoint> iid = HwvtepSouthboundUtils.createTerminationPointId(nodeId, tpKey);
- Optional<TerminationPoint> physicalPortTerminationPoint = MDSALUtil.read(broker, datastoreType, iid);
- if (physicalPortTerminationPoint.isPresent()) {
- return physicalPortTerminationPoint.get();
- }
- return null;
+ return MDSALUtil.read(broker, datastoreType, iid).orNull();
}
/**
InstanceIdentifier<LogicalSwitches> logicalSwitchesIdentifier = HwvtepSouthboundUtils
.createLogicalSwitchesInstanceIdentifier(nodeId, new HwvtepNodeName(vni));
- Optional<LogicalSwitches> logicalSwitches = MDSALUtil.read(broker, LogicalDatastoreType.CONFIGURATION,
- logicalSwitchesIdentifier);
- if (!logicalSwitches.isPresent()) {
- return null;
- }
-
- return logicalSwitches.get();
+ return MDSALUtil.read(broker, LogicalDatastoreType.CONFIGURATION, logicalSwitchesIdentifier).orNull();
}
/**
InstanceIdentifier<HwvtepPhysicalLocatorAugmentation> iid = HwvtepSouthboundUtils
.createPhysicalLocatorInstanceIdentifier(nodeId, phyLocatorAug)
.augmentation(HwvtepPhysicalLocatorAugmentation.class);
- Optional<HwvtepPhysicalLocatorAugmentation> optPhyLocator = MDSALUtil.read(broker, datastoreType, iid);
- if (optPhyLocator.isPresent()) {
- return optPhyLocator.get();
- }
- return null;
+ return MDSALUtil.read(broker, datastoreType, iid).orNull();
}
/**
NodeId nodeId, RemoteMcastMacsKey remoteMcastMacsKey) {
final InstanceIdentifier<RemoteMcastMacs> iid = HwvtepSouthboundUtils
.createRemoteMcastMacsInstanceIdentifier(nodeId, remoteMcastMacsKey);
- Optional<RemoteMcastMacs> optRemoteMcastMac = MDSALUtil.read(broker, datastoreType, iid);
- if (optRemoteMcastMac.isPresent()) {
- return optRemoteMcastMac.get();
- }
- return null;
+ return MDSALUtil.read(broker, datastoreType, iid).orNull();
}
/**
* @return the hw vtep node
*/
public static Node getHwVtepNode(DataBroker dataBroker, LogicalDatastoreType datastoreType, NodeId nodeId) {
- Optional<Node> optNode = MDSALUtil.read(dataBroker, datastoreType,
- HwvtepSouthboundUtils.createInstanceIdentifier(nodeId));
- if (optNode.isPresent()) {
- return optNode.get();
- }
- return null;
+ return MDSALUtil.read(dataBroker, datastoreType,
+ HwvtepSouthboundUtils.createInstanceIdentifier(nodeId)).orNull();
}
/**