public InstanceLifecycleTest(
      final String user,
      final String password,
      final String host,
      final int port,
      final String instanceName,
      final String nodeAgentName,
      final String configName,
      final Map optional) {
    final CmdChainCmd chain = new CmdChainCmd();

    final CmdFactory cmdFactory = getCmdFactory();

    final ConnectCmd connectCmd = cmdFactory.createConnectCmd(user, password, host, port);
    final CreateInstanceCmd createInstanceCmd =
        cmdFactory.createCreateInstanceCmd(instanceName, nodeAgentName, configName, optional);
    final StartInstanceCmd startInstanceCmd = cmdFactory.createStartInstanceCmd(instanceName);
    final StopInstanceCmd stopInstanceCmd = cmdFactory.createStopInstanceCmd(instanceName);
    final DeleteInstanceCmd deleteInstanceCmd = cmdFactory.createDeleteInstanceCmd(instanceName);

    chain.addCmd(new PipeCmd(connectCmd, createInstanceCmd));
    chain.addCmd(new PipeCmd(connectCmd, startInstanceCmd));
    chain.addCmd(new PipeCmd(connectCmd, stopInstanceCmd));
    chain.addCmd(new PipeCmd(connectCmd, deleteInstanceCmd));

    target = chain;
  }