class MtxTapeLibraryService implements TapeLoadUnloadService {

    @Override
    public synchronized TapeResponse unloadTape(String tapeIndex, String driveIndex) {
        ParametersChecker.checkParameter("Arguments tapeIndex and deriveIndex are required", tapeIndex, driveIndex);

        List<String> args = Lists.newArrayList(F, tapeRobotConf.getDevice(), UNLOAD, tapeIndex, driveIndex);
        LOGGER.debug("Execute script : {},timeout: {}, args : {}", tapeRobotConf.getMtxPath(),
            tapeRobotConf.getTimeoutInMilliseconds(),
            args);

        Output output =
            getExecutor().execute(tapeRobotConf.getMtxPath(), tapeRobotConf.isUseSudo(),
                tapeRobotConf.getTimeoutInMilliseconds(), args);

        return parseCommonResponse(output);
    }

    public  MtxTapeLibraryService(TapeRobotConf tapeRobotConf, ProcessExecutor processExecutor);

}