/*
   * Test the API: RepNode.shutdownNetworkBackup/restartNetworkBackup service
   * used to disable the service around a replica syncup operation.
   */
  @Test
  public void testLockout() throws IOException {

    setExceptionListener(repEnvInfo[0]);
    repEnvInfo[0].openEnv();
    RepNode repNode = repEnvInfo[0].getRepNode();
    leaveGroupAllButMaster();

    repNode.shutdownNetworkBackup();
    File backupDir = new File(repEnvInfo[1].getEnvHome().getCanonicalPath() + ".backup");
    backupDir.mkdir();
    assertTrue(backupDir.exists());

    DataChannelFactory channelFactory =
        DataChannelFactoryBuilder.construct(RepTestUtils.readRepNetConfig());
    EnvironmentImpl envImpl = createEnvImpl(backupDir);
    try {
      NetworkBackup backup =
          new NetworkBackup(
              repNode.getSocket(),
              backupDir,
              new NameIdPair("n1", (short) 1),
              true,
              envImpl.getFileManager(),
              channelFactory);
      backup.execute();
      fail("expected exception service should not have been available");
    } catch (ServiceConnectFailedException e) {
      /* Expected. */
    } catch (Exception e) {
      fail("unexpected exception" + e);
    }

    repNode.restartNetworkBackup();
    try {
      NetworkBackup backup =
          new NetworkBackup(
              repNode.getSocket(),
              backupDir,
              new NameIdPair("n1", (short) 1),
              true,
              envImpl.getFileManager(),
              channelFactory);
      backup.execute();
    } catch (Exception e) {
      fail("unexpected exception:" + e);
    }

    envImpl.abnormalClose();
  }