package org.opendaylight.openflowplugin.api.openflow.device.handlers;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
-import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
/**
* Created by Martin Bobak <mbobak@cisco.com> on 27.2.2015.
* Method is used to propagate information about established connection with device. It propagates connected
* device's device context.
*/
- void deviceConnected(DeviceContext deviceContext, RequestContext requestContext);
+ void deviceConnected(DeviceContext deviceContext);
}
import java.util.Collection;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
import org.opendaylight.openflowplugin.api.openflow.OpenFlowPluginProvider;
@Override
public void initialize() {
- deviceManager = new DeviceManagerImpl(providerContext);
rpcManager = new RpcManagerImpl(providerContext);
+ deviceManager = new DeviceManagerImpl(rpcManager, providerContext.getSALService(DataBroker.class));
//TODO : initialize statistics manager
//TODO : initialize translatorLibrary + inject into deviceMngr
}
import javax.annotation.Nonnull;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
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.openflowplugin.api.openflow.connection.ConnectionContext;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceManager;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceState;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
-import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
import org.opendaylight.openflowplugin.api.openflow.device.Xid;
import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceContextReadyHandler;
import org.opendaylight.openflowplugin.api.openflow.rpc.RpcManager;
import org.opendaylight.openflowplugin.impl.common.MultipartRequestInputFactory;
import org.opendaylight.openflowplugin.impl.common.NodeStaticReplyTranslatorUtil;
-import org.opendaylight.openflowplugin.impl.rpc.RequestContextImpl;
-import org.opendaylight.openflowplugin.impl.rpc.RpcContextImpl;
-import org.opendaylight.openflowplugin.impl.rpc.RpcManagerImpl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableBuilder;
private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerImpl.class);
- private final BindingAwareBroker.ProviderContext providerContext;
+ private final RpcManager rpcManager;
+ private final DataBroker dataBroker;
- public DeviceManagerImpl (@Nonnull final ProviderContext providerContext) {
- this.providerContext = Preconditions.checkNotNull(providerContext);
+ public DeviceManagerImpl (@Nonnull final RpcManager rpcManager, @Nonnull final DataBroker dataBroker) {
+ this.rpcManager = Preconditions.checkNotNull(rpcManager);
+ this.dataBroker = Preconditions.checkNotNull(dataBroker);
}
@Override
public void deviceConnected(@CheckForNull final ConnectionContext connectionContext) {
Preconditions.checkArgument(connectionContext != null);
- final DataBroker dataBroker = providerContext.getSALService(DataBroker.class);
final DeviceState deviceState = new DeviceStateImpl(connectionContext.getFeatures(), connectionContext.getNodeId());
final DeviceContext deviceContext = new DeviceContextImpl(connectionContext, deviceState, dataBroker);
@Override
public void onSuccess(final List<Collection<MultipartReply>> result) {
// FIXME : add statistics
- final RpcManager rpcManager = new RpcManagerImpl(providerContext);
- final RequestContextStack rcs = new RpcContextImpl(providerContext, deviceContext);
- final RequestContext<?> requestContext = new RequestContextImpl<>(rcs);
- rpcManager.deviceConnected(deviceContext, requestContext);
+ rpcManager.deviceConnected(deviceContext);
((DeviceContextImpl) deviceContext).submitTransaction();
}
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
-import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
import org.opendaylight.openflowplugin.api.openflow.rpc.RpcContext;
import org.opendaylight.openflowplugin.api.openflow.rpc.RpcManager;
import org.opendaylight.openflowplugin.impl.util.MdSalRegistratorUtils;
* @see org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceContextReadyHandler#deviceConnected(org.opendaylight.openflowplugin.api.openflow.device.DeviceContext, org.opendaylight.openflowplugin.api.openflow.device.RequestContext)
*/
@Override
- public void deviceConnected(final DeviceContext deviceContext, final RequestContext requestContext) {
+ public void deviceConnected(final DeviceContext deviceContext) {
final RpcContext rpcContext = new RpcContextImpl(providerContext, deviceContext);
MdSalRegistratorUtils.registerServices(rpcContext, deviceContext);
}
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-
+import java.math.BigInteger;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Matchers;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply;
import org.opendaylight.yangtools.yang.binding.RpcService;
import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.math.BigInteger;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
public class RpcManagerImplTest {
final ProviderContext mockedProviderContext = mock(ProviderContext.class);
final RpcManagerImpl rpcManager = new RpcManagerImpl(mockedProviderContext);
- final RequestContext mockedRequestContext = mock(RequestContext.class);
final RpcContext mockedRpcContext = mock(RpcContext.class);
final AddFlowInput mockedFlowInput = prepareTestingAddFlow();
final DeviceContext mockedDeviceContext = mock(DeviceContext.class);
@Test
public void deviceConnectedTest() {
- rpcManager.deviceConnected(mockedDeviceContext, mockedRequestContext);
+ rpcManager.deviceConnected(mockedDeviceContext);
verify(mockedProviderContext, times(AWAITED_NUM_OF_CALL_ADD_ROUTED_RPC)).addRoutedRpcImplementation(
Matchers.any(Class.class), Matchers.any(RpcService.class));
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
+import org.opendaylight.openflowplugin.api.openflow.rpc.RpcManager;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDescCase;
@Mock
private FeaturesReply features;
@Mock
- private ProviderContext providerContext;
+ private DataBroker dataBroker;
+ @Mock
+ private RpcManager rpcManager;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
- Mockito.when(providerContext.getSALService(DataBroker.class)).thenReturn(Mockito.mock(DataBroker.class));
Mockito.when(connectionContext.getConnectionAdapter()).thenReturn(connectionAdapter);
Mockito.when(connectionContext.getFeatures()).thenReturn(features);
Mockito.when(features.getVersion()).thenReturn((short) 42);
- deviceManager = new DeviceManagerImpl(providerContext);
+ deviceManager = new DeviceManagerImpl(rpcManager, dataBroker);
}
/**