Search in sources :

Example 31 with NoRouteToCellException

use of dmg.cells.nucleus.NoRouteToCellException in project dcache by dCache.

the class InstanceData method loadStorage.

private OptionalLong loadStorage() {
    PoolMonitor monitor;
    OptionalLong space = OptionalLong.empty();
    try {
        monitor = poolManagerStub.sendAndWait(new PoolManagerGetPoolMonitor(), 20000, CellEndpoint.SendFlag.RETRY_ON_NO_ROUTE_TO_CELL).getPoolMonitor();
        CostModule costModule = monitor.getCostModule();
        Collection<PoolCostInfo> costInfos = costModule.getPoolCostInfos();
        space = OptionalLong.of(costModule.getPoolCostInfos().stream().map(PoolCostInfo::getSpaceInfo).mapToLong(PoolCostInfo.PoolSpaceInfo::getTotalSpace).sum());
    } catch (CacheException | InterruptedException | NoRouteToCellException e) {
        LOGGER.error("Could not get storage information; set storage to -1.0. This was caused by: ", e);
    }
    return space;
}
Also used : CacheException(diskCacheV111.util.CacheException) CostModule(diskCacheV111.poolManager.CostModule) NoRouteToCellException(dmg.cells.nucleus.NoRouteToCellException) OptionalLong(java.util.OptionalLong) PoolMonitor(org.dcache.poolmanager.PoolMonitor) PoolManagerGetPoolMonitor(diskCacheV111.vehicles.PoolManagerGetPoolMonitor) PoolManagerGetPoolMonitor(diskCacheV111.vehicles.PoolManagerGetPoolMonitor) PoolCostInfo(diskCacheV111.pools.PoolCostInfo)

Example 32 with NoRouteToCellException

use of dmg.cells.nucleus.NoRouteToCellException in project dcache by dCache.

the class AnsiTerminalCommand method runAsciiMode.

private void runAsciiMode() throws IOException {
    Ansi.setEnabled(_useColors);
    while (true) {
        String prompt = Ansi.ansi().bold().a(_userAdminShell.getPrompt()).boldOff().toString();
        Object result;
        try {
            String str = _console.readLine(prompt);
            try {
                if (str == null) {
                    throw new CommandExitException();
                }
                result = _userAdminShell.executeCommand(str);
            } catch (IllegalArgumentException e) {
                result = e.toString();
            } catch (SerializationException e) {
                result = "There is a bug here, please report to support@dcache.org";
                LOGGER.error("This must be a bug, please report to support@dcache.org.", e);
            } catch (CommandSyntaxException e) {
                result = e;
            } catch (CommandExitException e) {
                break;
            } catch (CommandPanicException e) {
                result = "Command '" + str + "' triggered a bug (" + e.getTargetException() + "); the service log file contains additional information. Please " + "contact support@dcache.org.";
            } catch (CommandException e) {
                result = e.getMessage();
            } catch (NoRouteToCellException e) {
                result = "Cell name does not exist or cell is not started: " + e.getMessage();
                LOGGER.warn("The cell the command was sent to is no " + "longer there: {}", e.getMessage());
            } catch (RuntimeException e) {
                result = String.format("Command '%s' triggered a bug (%s); please" + " locate this message in the log file of the admin service and" + " send an email to support@dcache.org with this line and the" + " following stack-trace", str, e);
                LOGGER.error((String) result, e);
            }
        } catch (InterruptedIOException e) {
            _console.getCursorBuffer().clear();
            _console.println();
            result = null;
        } catch (InterruptedException e) {
            _console.println("^C");
            _console.flush();
            _console.getCursorBuffer().clear();
            result = null;
        } catch (IOException e) {
            throw e;
        } catch (Exception e) {
            result = e.getMessage();
            if (result == null) {
                result = e.getClass().getSimpleName() + ": (null)";
            }
        }
        if (result != null) {
            if (result instanceof CommandSyntaxException) {
                CommandSyntaxException e = (CommandSyntaxException) result;
                Ansi sb = Ansi.ansi();
                sb.fg(RED).a("Syntax error: ").a(e.getMessage()).newline();
                String help = e.getHelpText();
                if (help != null) {
                    sb.fg(CYAN);
                    sb.a("Help : ").newline();
                    sb.a(help);
                }
                _console.println(sb.reset().toString());
            } else {
                String s;
                s = Strings.toMultilineString(result);
                if (!s.isEmpty()) {
                    _console.println(s);
                    _console.flush();
                }
            }
        }
        _console.flush();
    }
}
Also used : InterruptedIOException(java.io.InterruptedIOException) SerializationException(dmg.cells.nucleus.SerializationException) CommandException(dmg.util.CommandException) InterruptedIOException(java.io.InterruptedIOException) IOException(java.io.IOException) CommandExitException(dmg.util.CommandExitException) CommandExitException(dmg.util.CommandExitException) InterruptedIOException(java.io.InterruptedIOException) SerializationException(dmg.cells.nucleus.SerializationException) CommandSyntaxException(dmg.util.CommandSyntaxException) CommandException(dmg.util.CommandException) IOException(java.io.IOException) CommandPanicException(dmg.util.CommandPanicException) NoRouteToCellException(dmg.cells.nucleus.NoRouteToCellException) NoRouteToCellException(dmg.cells.nucleus.NoRouteToCellException) Ansi(org.fusesource.jansi.Ansi) CommandSyntaxException(dmg.util.CommandSyntaxException) CommandPanicException(dmg.util.CommandPanicException)

Example 33 with NoRouteToCellException

use of dmg.cells.nucleus.NoRouteToCellException in project dcache by dCache.

the class DirectCommand method executeCommands.

private void executeCommands() {
    for (String command : commands) {
        Object error = null;
        try {
            Object result = shell.executeCommand(command);
            String s = Strings.toString(result);
            if (!s.isEmpty()) {
                outWriter.println(s);
            }
            outWriter.flush();
        } catch (IllegalArgumentException e) {
            error = e.toString();
        } catch (SerializationException e) {
            error = "There is a bug here, please report to support@dcache.org";
            LOGGER.error("This must be a bug, please report to support@dcache.org.", e);
        } catch (CommandSyntaxException e) {
            error = e;
        } catch (CommandEvaluationException | CommandAclException e) {
            error = e.getMessage();
        } catch (CommandExitException e) {
            break;
        } catch (CommandPanicException e) {
            error = String.format("Command '%s' triggered a bug (%s);" + "the service log file contains additional information. Please " + "contact support@dcache.org.", command, e.getTargetException());
        } catch (CommandException e) {
            error = e.getMessage();
        } catch (NoRouteToCellException e) {
            error = "Cell name does not exist or cell is not started: " + e.getMessage();
            LOGGER.warn("Command cannot be executed in the cell, cell is gone {}", e.getMessage());
        } catch (RuntimeException e) {
            error = String.format("Command '%s' triggered a bug (%s); please" + " locate this message in the log file of the admin service and" + " send an email to support@dcache.org with this line and the" + " following stack-trace", command, e);
            LOGGER.error((String) error, e);
        } catch (Exception e) {
            error = e.getMessage();
            if (error == null) {
                error = e.getClass().getSimpleName() + ": (null)";
            }
        }
        if (error != null) {
            if (error instanceof CommandSyntaxException) {
                CommandSyntaxException e = (CommandSyntaxException) error;
                errorWriter.append("Syntax error: ").println(e.getMessage());
            } else {
                errorWriter.println(error);
            }
            errorWriter.flush();
        }
    }
}
Also used : SerializationException(dmg.cells.nucleus.SerializationException) CommandEvaluationException(dmg.util.CommandEvaluationException) CommandException(dmg.util.CommandException) CommandExitException(dmg.util.CommandExitException) CommandException(dmg.util.CommandException) CommandAclException(dmg.util.CommandAclException) CommandPanicException(dmg.util.CommandPanicException) CommandExitException(dmg.util.CommandExitException) SerializationException(dmg.cells.nucleus.SerializationException) CommandSyntaxException(dmg.util.CommandSyntaxException) NoRouteToCellException(dmg.cells.nucleus.NoRouteToCellException) CommandEvaluationException(dmg.util.CommandEvaluationException) NoRouteToCellException(dmg.cells.nucleus.NoRouteToCellException) CommandSyntaxException(dmg.util.CommandSyntaxException) CommandAclException(dmg.util.CommandAclException) CommandPanicException(dmg.util.CommandPanicException)

Example 34 with NoRouteToCellException

use of dmg.cells.nucleus.NoRouteToCellException in project dcache by dCache.

the class NoTerminalCommand method repl.

private void repl() throws IOException {
    Ansi.setEnabled(false);
    while (true) {
        Object error = null;
        try {
            String str = _reader.readLine();
            try {
                if (str == null) {
                    throw new CommandExitException();
                }
                Object result = _userAdminShell.executeCommand(str);
                String s = Strings.toString(result);
                if (!s.isEmpty()) {
                    _writer.println(s);
                }
                _writer.flush();
            } catch (IllegalArgumentException e) {
                error = e.toString();
            } catch (SerializationException e) {
                error = "There is a bug here, please report to support@dcache.org";
                LOGGER.error("This must be a bug, please report to support@dcache.org.", e);
            } catch (CommandSyntaxException e) {
                error = e;
            } catch (CommandEvaluationException | CommandAclException e) {
                error = e.getMessage();
            } catch (CommandExitException e) {
                break;
            } catch (CommandPanicException e) {
                error = "Command '" + str + "' triggered a bug (" + e.getTargetException() + "); the service log file contains additional information. Please " + "contact support@dcache.org.";
            } catch (CommandException e) {
                error = e.getMessage();
            } catch (NoRouteToCellException e) {
                error = "Cell name does not exist or cell is not started: " + e.getMessage();
                LOGGER.warn("The cell the command was sent to is no " + "longer there: {}", e.getMessage());
            } catch (RuntimeException e) {
                error = String.format("Command '%s' triggered a bug (%s); please" + " locate this message in the log file of the admin service and" + " send an email to support@dcache.org with this line and the" + " following stack-trace", str, e);
                LOGGER.error((String) error, e);
            }
        } catch (InterruptedException e) {
            error = null;
        } catch (IOException e) {
            throw e;
        } catch (Exception e) {
            error = e.getMessage();
            if (error == null) {
                error = e.getClass().getSimpleName() + ": (null)";
            }
        }
        if (error != null) {
            if (error instanceof CommandSyntaxException) {
                CommandSyntaxException e = (CommandSyntaxException) error;
                _error.append("Syntax error: ").println(e.getMessage());
            } else {
                _error.println(error);
            }
            _error.flush();
        }
    }
}
Also used : SerializationException(dmg.cells.nucleus.SerializationException) CommandEvaluationException(dmg.util.CommandEvaluationException) CommandException(dmg.util.CommandException) IOException(java.io.IOException) CommandExitException(dmg.util.CommandExitException) CommandException(dmg.util.CommandException) CommandAclException(dmg.util.CommandAclException) IOException(java.io.IOException) CommandPanicException(dmg.util.CommandPanicException) CommandExitException(dmg.util.CommandExitException) SerializationException(dmg.cells.nucleus.SerializationException) CommandSyntaxException(dmg.util.CommandSyntaxException) NoRouteToCellException(dmg.cells.nucleus.NoRouteToCellException) CommandEvaluationException(dmg.util.CommandEvaluationException) NoRouteToCellException(dmg.cells.nucleus.NoRouteToCellException) CommandSyntaxException(dmg.util.CommandSyntaxException) CommandAclException(dmg.util.CommandAclException) CommandPanicException(dmg.util.CommandPanicException)

Example 35 with NoRouteToCellException

use of dmg.cells.nucleus.NoRouteToCellException in project dcache by dCache.

the class UserAdminShell method completeRemote.

/**
 * Completes remote commands using a particular cell as a source for completion candidates.
 */
private int completeRemote(CellPath cell, String buffer, int cursor, List<CharSequence> candidates) {
    try {
        Serializable help = sendObject(cell, "help");
        if (help == null) {
            return -1;
        }
        HelpCompleter completer = new HelpCompleter(String.valueOf(help));
        return completer.complete(buffer, cursor, candidates);
    } catch (NoRouteToCellException | CommandException | AclException e) {
        LOGGER.info("Completion failed: {}", e.toString());
        return -1;
    } catch (InterruptedException e) {
        return -1;
    }
}
Also used : Serializable(java.io.Serializable) NoRouteToCellException(dmg.cells.nucleus.NoRouteToCellException) CommandException(dmg.util.CommandException) AclException(dmg.util.AclException) CommandAclException(dmg.util.CommandAclException)

Aggregations

NoRouteToCellException (dmg.cells.nucleus.NoRouteToCellException)67 CacheException (diskCacheV111.util.CacheException)55 TimeoutCacheException (diskCacheV111.util.TimeoutCacheException)25 PermissionDeniedCacheException (diskCacheV111.util.PermissionDeniedCacheException)22 FileNotFoundCacheException (diskCacheV111.util.FileNotFoundCacheException)19 ArrayList (java.util.ArrayList)15 ApiOperation (io.swagger.annotations.ApiOperation)14 ApiResponses (io.swagger.annotations.ApiResponses)14 Produces (javax.ws.rs.Produces)14 BadRequestException (javax.ws.rs.BadRequestException)13 InternalServerErrorException (javax.ws.rs.InternalServerErrorException)13 Path (javax.ws.rs.Path)13 CellPath (dmg.cells.nucleus.CellPath)11 ExecutionException (java.util.concurrent.ExecutionException)11 ForbiddenException (javax.ws.rs.ForbiddenException)11 GET (javax.ws.rs.GET)11 FsPath (diskCacheV111.util.FsPath)10 PnfsId (diskCacheV111.util.PnfsId)10 SRMException (org.dcache.srm.SRMException)10 SRMInternalErrorException (org.dcache.srm.SRMInternalErrorException)10