Java 类net.floodlightcontroller.core.internal.OFSwitchAppHandshakePlugin.PluginResultType 实例源码

项目:fresco_floodlight    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:fresco_floodlight    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:iTAP-controller    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:iTAP-controller    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:SDN-Multicast    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:SDN-Multicast    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:arscheduler    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:arscheduler    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:floodlight1.2-delay    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:floodlight1.2-delay    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:floodlight-hardware    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:floodlight-hardware    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:ACAMPController    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:ACAMPController    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:fast-failover-demo    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:fast-failover-demo    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:floodlightLB    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:floodlightLB    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:DSC    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:DSC    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole(null)).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:floodlight    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a plugin returns a DISCONNECT result. This means
 * we should disconnect the connection and the state should not change.
 *
 * @throws Exception
 */
@Test
public void failedAppHandshake() throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    PluginResult result = new PluginResult(PluginResultType.DISCONNECT);
    handshakePlugin.exitPlugin(result);

    assertThat(connection.isConnected(), equalTo(false));
}
项目:floodlight    文件:OFSwitchHandshakeHandlerVer10Test.java   
@Override
@Test
public void moveToWaitInitialRole()
        throws Exception {
    moveToWaitAppHandshakeState();

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(WaitAppHandshakeState.class));

    reset(sw);
    expect(sw.getAttribute(IOFSwitchBackend.SWITCH_SUPPORTS_NX_ROLE)).andReturn(true).anyTimes();
    replay(sw);

    reset(roleManager);
    expect(roleManager.getOFControllerRole()).andReturn(OFControllerRole.ROLE_MASTER).anyTimes();
    replay(roleManager);

    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    PluginResult result = new PluginResult(PluginResultType.CONTINUE);
    state.exitPlugin(result);

    assertThat(connection.retrieveMessage(), instanceOf(getRoleRequestClass()));
    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(OFSwitchHandshakeHandler.WaitInitialRoleState.class));
}
项目:fresco_floodlight    文件:OFSwitchHandshakeHandler.java   
/**
 * Called by handshake plugins to signify that they have finished their
 * sub handshake.
 *
 * @param result
 *            the result of the sub handshake
 */
void exitPlugin(PluginResult result) {

    // Proceed
    if (result.getResultType() == PluginResultType.CONTINUE) {
        if (log.isDebugEnabled()) {
            log.debug("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}."
                    + " Proceeding normally..",
                    this.plugin.getClass().getSimpleName(), result);
        }

        enterNextPlugin();

        // Stop
    } else if (result.getResultType() == PluginResultType.DISCONNECT) {
        log.error("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}. "
                + "Disconnecting switch.",
                this.plugin.getClass().getSimpleName(), result);
        mainConnection.disconnect();
    } else if (result.getResultType() == PluginResultType.QUARANTINE) {
        log.warn("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}. "
                + "Putting switch into quarantine state.",
                this.plugin.getClass().getSimpleName(),
                result);
        setState(new QuarantineState(result.getReason()));
    }
}
项目:fresco_floodlight    文件:PluginResult.java   
public PluginResult(@Nonnull PluginResultType result, String reason) {
    Preconditions.checkNotNull(result, "result must not be null");

    if(result != PluginResultType.QUARANTINE && reason != null)
        throw new IllegalStateException("Reason can only be set for Quarantine PluginResult");

    this.result = result;
    this.reason = reason;
}
项目:fresco_floodlight    文件:OFSwitchHandlerTestBase.java   
public void setUpFeaturesReply() {
    getFeaturesReply();
    this.featuresReply = getFeaturesReply();

    // Plugin set
    IAppHandshakePluginFactory factory = createMock(IAppHandshakePluginFactory.class);
    PluginResult result = new PluginResult(PluginResultType.QUARANTINE, "test quarantine");
    handshakePlugin = new TestHandshakePlugin(result, 5);
    expect(factory.createPlugin()).andReturn(handshakePlugin).anyTimes();
    replay(factory);
    plugins = ImmutableList.of(factory);
}
项目:fresco_floodlight    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a switch returns a QUARANTINE result. This means
 * we should move the handshake handler to a quarantine state and also
 * quarantine the switch in the controller.
 *
 * @throws Exception
 */
@Test
public void moveQuarantine() throws Exception {
    moveToWaitAppHandshakeState();

    reset(switchManager);
    switchManager.switchStatusChanged(sw, SwitchStatus.HANDSHAKE, SwitchStatus.QUARANTINED);
    expectLastCall().once();
    replay(switchManager);

    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(WaitAppHandshakeState.class));
    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    reset(sw);
    expect(sw.getStatus()).andReturn(SwitchStatus.HANDSHAKE);
    sw.setStatus(SwitchStatus.QUARANTINED);
    expectLastCall().once();
    replay(sw);

    PluginResult result = new PluginResult(PluginResultType.QUARANTINE, "test quarantine");
    handshakePlugin.exitPlugin(result);

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(QuarantineState.class));
    verify(switchManager);
}
项目:fresco_floodlight    文件:OFSwitchHandlerTestBase.java   
@Test
public void validAppHandshakePluginReason() throws Exception {
    try{
        new PluginResult(PluginResultType.QUARANTINE,"This should not cause an exception");
    }catch(IllegalStateException e) {
        fail("This should cause an illegal state exception");
    }
}
项目:iTAP-controller    文件:OFSwitchHandshakeHandler.java   
/**
 * Called by handshake plugins to signify that they have finished their
 * sub handshake.
 *
 * @param result
 *            the result of the sub handshake
 */
void exitPlugin(PluginResult result) {

    // Proceed
    if (result.getResultType() == PluginResultType.CONTINUE) {
        if (log.isDebugEnabled()) {
            log.debug("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}."
                    + " Proceeding normally..",
                    this.plugin.getClass().getSimpleName(), result);
        }

        enterNextPlugin();

        // Stop
    } else if (result.getResultType() == PluginResultType.DISCONNECT) {
        log.error("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}. "
                + "Disconnecting switch.",
                this.plugin.getClass().getSimpleName(), result);
        mainConnection.disconnect();
    } else if (result.getResultType() == PluginResultType.QUARANTINE) {
        log.warn("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}. "
                + "Putting switch into quarantine state.",
                this.plugin.getClass().getSimpleName(),
                result);
        setState(new QuarantineState(result.getReason()));
    }
}
项目:iTAP-controller    文件:PluginResult.java   
public PluginResult(@Nonnull PluginResultType result, String reason) {
    Preconditions.checkNotNull(result, "result must not be null");

    if(result != PluginResultType.QUARANTINE && reason != null)
        throw new IllegalStateException("Reason can only be set for Quarantine PluginResult");

    this.result = result;
    this.reason = reason;
}
项目:iTAP-controller    文件:OFSwitchHandlerTestBase.java   
@Before
public void setUpFeaturesReply() {
    getFeaturesReply();
    this.featuresReply = getFeaturesReply();

    // Plugin set
    IAppHandshakePluginFactory factory = createMock(IAppHandshakePluginFactory.class);
    PluginResult result = new PluginResult(PluginResultType.QUARANTINE, "test quarantine");
    handshakePlugin = new TestHandshakePlugin(result, 5);
    expect(factory.createPlugin()).andReturn(handshakePlugin).anyTimes();
    replay(factory);
    plugins = ImmutableList.of(factory);
}
项目:iTAP-controller    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a switch returns a QUARANTINE result. This means
 * we should move the handshake handler to a quarantine state and also
 * quarantine the switch in the controller.
 *
 * @throws Exception
 */
@Test
public void moveQuarantine() throws Exception {
    moveToWaitAppHandshakeState();

    reset(switchManager);
    switchManager.switchStatusChanged(sw, SwitchStatus.HANDSHAKE, SwitchStatus.QUARANTINED);
    expectLastCall().once();
    replay(switchManager);

    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(WaitAppHandshakeState.class));
    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    reset(sw);
    expect(sw.getStatus()).andReturn(SwitchStatus.HANDSHAKE);
    sw.setStatus(SwitchStatus.QUARANTINED);
    expectLastCall().once();
    replay(sw);

    PluginResult result = new PluginResult(PluginResultType.QUARANTINE, "test quarantine");
    handshakePlugin.exitPlugin(result);

    assertThat(switchHandler.getStateForTesting(),
               CoreMatchers.instanceOf(QuarantineState.class));
    verify(switchManager);
}
项目:iTAP-controller    文件:OFSwitchHandlerTestBase.java   
@Test
public void validAppHandshakePluginReason() throws Exception {
    try{
        new PluginResult(PluginResultType.QUARANTINE,"This should not cause an exception");
    }catch(IllegalStateException e) {
        fail("This should cause an illegal state exception");
    }
}
项目:SDN-Multicast    文件:OFSwitchHandshakeHandler.java   
/**
 * Called by handshake plugins to signify that they have finished their
 * sub handshake.
 *
 * @param result
 *            the result of the sub handshake
 */
void exitPlugin(PluginResult result) {

    // Proceed
    if (result.getResultType() == PluginResultType.CONTINUE) {
        if (log.isDebugEnabled()) {
            log.debug("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}."
                    + " Proceeding normally..",
                    this.plugin.getClass().getSimpleName(), result);
        }

        enterNextPlugin();

        // Stop
    } else if (result.getResultType() == PluginResultType.DISCONNECT) {
        log.error("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}. "
                + "Disconnecting switch.",
                this.plugin.getClass().getSimpleName(), result);
        mainConnection.disconnect();
    } else if (result.getResultType() == PluginResultType.QUARANTINE) {
        log.warn("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}. "
                + "Putting switch into quarantine state.",
                this.plugin.getClass().getSimpleName(),
                result);
        setState(new QuarantineState(result.getReason()));
    }
}
项目:SDN-Multicast    文件:PluginResult.java   
public PluginResult(@Nonnull PluginResultType result, String reason) {
    Preconditions.checkNotNull(result, "result must not be null");

    if(result != PluginResultType.QUARANTINE && reason != null)
        throw new IllegalStateException("Reason can only be set for Quarantine PluginResult");

    this.result = result;
    this.reason = reason;
}
项目:SDN-Multicast    文件:OFSwitchHandlerTestBase.java   
public void setUpFeaturesReply() {
    getFeaturesReply();
    this.featuresReply = getFeaturesReply();

    // Plugin set
    IAppHandshakePluginFactory factory = createMock(IAppHandshakePluginFactory.class);
    PluginResult result = new PluginResult(PluginResultType.QUARANTINE, "test quarantine");
    handshakePlugin = new TestHandshakePlugin(result, 5);
    expect(factory.createPlugin()).andReturn(handshakePlugin).anyTimes();
    replay(factory);
    plugins = ImmutableList.of(factory);
}
项目:SDN-Multicast    文件:OFSwitchHandlerTestBase.java   
/**
 * Tests a situation where a switch returns a QUARANTINE result. This means
 * we should move the handshake handler to a quarantine state and also
 * quarantine the switch in the controller.
 *
 * @throws Exception
 */
@Test
public void moveQuarantine() throws Exception {
    moveToWaitAppHandshakeState();

    reset(switchManager);
    switchManager.switchStatusChanged(sw, SwitchStatus.HANDSHAKE, SwitchStatus.QUARANTINED);
    expectLastCall().once();
    replay(switchManager);

    assertThat(switchHandler.getStateForTesting(), CoreMatchers.instanceOf(WaitAppHandshakeState.class));
    WaitAppHandshakeState state = (WaitAppHandshakeState) switchHandler.getStateForTesting();
    assertThat(state.getCurrentPlugin(), CoreMatchers.<OFSwitchAppHandshakePlugin>equalTo(handshakePlugin));

    reset(sw);
    expect(sw.getStatus()).andReturn(SwitchStatus.HANDSHAKE);
    sw.setStatus(SwitchStatus.QUARANTINED);
    expectLastCall().once();
    replay(sw);

    PluginResult result = new PluginResult(PluginResultType.QUARANTINE, "test quarantine");
    handshakePlugin.exitPlugin(result);

    assertThat(switchHandler.getStateForTesting(),
            CoreMatchers.instanceOf(QuarantineState.class));
    verify(switchManager);
}
项目:SDN-Multicast    文件:OFSwitchHandlerTestBase.java   
@Test
public void validAppHandshakePluginReason() throws Exception {
    try{
        new PluginResult(PluginResultType.QUARANTINE,"This should not cause an exception");
    }catch(IllegalStateException e) {
        fail("This should cause an illegal state exception");
    }
}
项目:arscheduler    文件:OFSwitchHandshakeHandler.java   
/**
 * Called by handshake plugins to signify that they have finished their
 * sub handshake.
 *
 * @param result
 *            the result of the sub handshake
 */
void exitPlugin(PluginResult result) {

    // Proceed
    if (result.getResultType() == PluginResultType.CONTINUE) {
        if (log.isDebugEnabled()) {
            log.debug("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}."
                    + " Proceeding normally..",
                    this.plugin.getClass().getSimpleName(), result);
        }

        enterNextPlugin();

        // Stop
    } else if (result.getResultType() == PluginResultType.DISCONNECT) {
        log.error("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}. "
                + "Disconnecting switch.",
                this.plugin.getClass().getSimpleName(), result);
        mainConnection.disconnect();
    } else if (result.getResultType() == PluginResultType.QUARANTINE) {
        log.warn("Switch " + getSwitchInfoString() + " app handshake plugin {} returned {}. "
                + "Putting switch into quarantine state.",
                this.plugin.getClass().getSimpleName(),
                result);
        setState(new QuarantineState(result.getReason()));
    }
}
项目:arscheduler    文件:PluginResult.java   
public PluginResult(@Nonnull PluginResultType result, String reason) {
    Preconditions.checkNotNull(result, "result must not be null");

    if(result != PluginResultType.QUARANTINE && reason != null)
        throw new IllegalStateException("Reason can only be set for Quarantine PluginResult");

    this.result = result;
    this.reason = reason;
}
项目:arscheduler    文件:OFSwitchHandlerTestBase.java   
public void setUpFeaturesReply() {
    getFeaturesReply();
    this.featuresReply = getFeaturesReply();

    // Plugin set
    IAppHandshakePluginFactory factory = createMock(IAppHandshakePluginFactory.class);
    PluginResult result = new PluginResult(PluginResultType.QUARANTINE, "test quarantine");
    handshakePlugin = new TestHandshakePlugin(result, 5);
    expect(factory.createPlugin()).andReturn(handshakePlugin).anyTimes();
    replay(factory);
    plugins = ImmutableList.of(factory);
}