X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fdevice%2Finitialization%2FOF10DeviceInitializer.java;h=5f2b1c266448de24910218840b29a92a90129538;hb=refs%2Fchanges%2F77%2F100077%2F17;hp=f53a7de315a272058b965bdc117b44514b0fd088;hpb=5ae6b8928b7ed3ce989e304c0c57350ca3f692b5;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/initialization/OF10DeviceInitializer.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/initialization/OF10DeviceInitializer.java index f53a7de315..5f2b1c2664 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/initialization/OF10DeviceInitializer.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/initialization/OF10DeviceInitializer.java @@ -5,20 +5,16 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.openflowplugin.impl.device.initialization; -import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; -import java.util.List; -import java.util.concurrent.Future; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; @@ -41,11 +37,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeCon import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.MultipartReply; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.CapabilitiesV10; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortGrouping; -import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.FlowCapableNodeConnectorStatisticsData; import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.FlowCapableNodeConnectorStatisticsDataBuilder; import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; @@ -56,7 +50,7 @@ public class OF10DeviceInitializer extends AbstractDeviceInitializer { private static final Logger LOG = LoggerFactory.getLogger(OF10DeviceInitializer.class); @Override - protected Future initializeNodeInformation(@Nonnull final DeviceContext deviceContext, + protected ListenableFuture initializeNodeInformation(@NonNull final DeviceContext deviceContext, final boolean switchFeaturesMandatory, final boolean skipTableFeatures, @Nullable final MultipartWriterProvider multipartWriterProvider, @@ -74,7 +68,7 @@ public class OF10DeviceInitializer extends AbstractDeviceInitializer { Futures.addCallback(future, new FutureCallback() { @Override - public void onSuccess(@Nullable final Boolean result) { + public void onSuccess(final Boolean result) { if (Boolean.TRUE.equals(result)) { LOG.debug("Creating empty flow capable node: {}", deviceInfo); makeEmptyFlowCapableNode(deviceContext, deviceInfo); @@ -83,26 +77,22 @@ public class OF10DeviceInitializer extends AbstractDeviceInitializer { DeviceInitializationUtil.makeEmptyTables( deviceContext, deviceInfo, - deviceContext.getPrimaryConnectionContext().getFeatures().getTables()); + deviceContext.getPrimaryConnectionContext().getFeatures().getTables().toJava()); } } @Override - public void onFailure(@Nonnull final Throwable throwable) { + public void onFailure(final Throwable throwable) { LOG.warn("Error occurred in preparation node {} for protocol 1.0", deviceInfo); LOG.trace("Error for node {} : ", deviceInfo, throwable); } }, MoreExecutors.directExecutor()); - return Futures.transform(future, new Function() { - @Nullable - @Override - public Void apply(@Nullable final Boolean input) { - LOG.debug("Writing physical port information for {}", deviceInfo); - writePhyPortInformation(deviceContext); - return null; - } - }); + return Futures.transform(future, input -> { + LOG.debug("Writing physical port information for {}", deviceInfo); + writePhyPortInformation(deviceContext); + return null; + }, MoreExecutors.directExecutor()); } @SuppressWarnings("checkstyle:IllegalCatch") @@ -119,20 +109,20 @@ public class OF10DeviceInitializer extends AbstractDeviceInitializer { port.getPortNo(), OpenflowVersion.get(deviceInfo.getVersion())); + final NodeConnectorBuilder connectorBuilder = new NodeConnectorBuilder() + .setId(nodeConnectorId) + .addAugmentation(new FlowCapableNodeConnectorStatisticsDataBuilder().build()); + final FlowCapableNodeConnector augment = translator.translate(port, deviceInfo, null); + if (augment != null) { + connectorBuilder.addAugmentation(augment); + } + try { deviceContext.writeToTransaction(LogicalDatastoreType.OPERATIONAL, deviceInfo .getNodeInstanceIdentifier() .child(NodeConnector.class, new NodeConnectorKey(nodeConnectorId)), - new NodeConnectorBuilder() - .setId(nodeConnectorId) - .addAugmentation( - FlowCapableNodeConnector.class, - translator.translate(port, deviceInfo, null)) - .addAugmentation( - FlowCapableNodeConnectorStatisticsData.class, - new FlowCapableNodeConnectorStatisticsDataBuilder().build()) - .build()); + connectorBuilder.build()); } catch (final Exception e) { LOG.debug("Failed to write node {} to DS ", deviceInfo, e); } @@ -159,29 +149,14 @@ public class OF10DeviceInitializer extends AbstractDeviceInitializer { new SingleLayerMultipartCollectorService(deviceContext, deviceContext); return Futures.transform(service.handleServiceCall(multipartType), - new Function>, Boolean>() { - @Nonnull - @Override - public Boolean apply(final RpcResult> input) { - return input.isSuccessful(); - } - }); + RpcResult::isSuccessful, MoreExecutors.directExecutor()); } final MultiLayerMultipartCollectorService service = new MultiLayerMultipartCollectorService(deviceContext, deviceContext); return Futures.transform(service.handleServiceCall(multipartType), - new Function>, Boolean>() { - @Nonnull - @Override - public Boolean apply(final RpcResult> input) { - return input.isSuccessful(); - } - }); + RpcResult::isSuccessful, MoreExecutors.directExecutor()); } }