/** * Resolve IGFS profiler logs directory. * * @param igfs IGFS instance to resolve logs dir for. * @return {@link Path} to log dir or {@code null} if not found. * @throws IgniteCheckedException if failed to resolve. */ public static Path resolveIgfsProfilerLogsDir(IgniteFileSystem igfs) throws IgniteCheckedException { String logsDir; if (igfs instanceof IgfsEx) logsDir = ((IgfsEx)igfs).clientLogDirectory(); else if (igfs == null) throw new IgniteCheckedException("Failed to get profiler log folder (IGFS instance not found)"); else throw new IgniteCheckedException("Failed to get profiler log folder (unexpected IGFS instance type)"); URL logsDirUrl = U.resolveIgniteUrl(logsDir != null ? logsDir : DFLT_IGFS_LOG_DIR); return logsDirUrl != null ? new File(logsDirUrl.getPath()).toPath() : null; }
@Override public IgfsHandshakeResponse apply() { igfs.clientLogDirectory(logDir); return new IgfsHandshakeResponse(igfs.name(), igfs.groupBlockSize(), igfs.globalSampling()); } });
/** * Ensure that log directory is set to IGFS when client FS connects. * * @throws Exception If failed. */ @SuppressWarnings("ConstantConditions") @Test public void testLogDirectory() throws Exception { startUp(); assertEquals(Paths.get(U.getIgniteHome()).normalize().toString(), igfs.clientLogDirectory()); }
/** * Processes handshake request. * * @param req Handshake request. * @return Response message. * @throws IgniteCheckedException In case of handshake failure. */ private IgfsMessage processHandshakeRequest(IgfsHandshakeRequest req) throws IgniteCheckedException { if (req.igfsName() != null && !F.eq(igfs.name(), req.igfsName())) throw new IgniteCheckedException("Failed to perform handshake because existing IGFS name " + "differs from requested [requested=" + req.igfsName() + ", existing=" + igfs.name() + ']'); IgfsControlResponse res = new IgfsControlResponse(); igfs.clientLogDirectory(req.logDirectory()); IgfsHandshakeResponse handshake = new IgfsHandshakeResponse(igfs.name(), igfs.groupBlockSize(), igfs.globalSampling()); res.handshake(handshake); return res; }
/** * Resolve IGFS profiler logs directory. * * @param igfs IGFS instance to resolve logs dir for. * @return {@link Path} to log dir or {@code null} if not found. * @throws IgniteCheckedException if failed to resolve. */ public static Path resolveIgfsProfilerLogsDir(IgniteFileSystem igfs) throws IgniteCheckedException { String logsDir; if (igfs instanceof IgfsEx) logsDir = ((IgfsEx)igfs).clientLogDirectory(); else if (igfs == null) throw new IgniteCheckedException("Failed to get profiler log folder (IGFS instance not found)"); else throw new IgniteCheckedException("Failed to get profiler log folder (unexpected IGFS instance type)"); URL logsDirUrl = U.resolveIgniteUrl(logsDir != null ? logsDir : DFLT_IGFS_LOG_DIR); return logsDirUrl != null ? new File(logsDirUrl.getPath()).toPath() : null; }
/** * Processes handshake request. * * @param req Handshake request. * @return Response message. * @throws IgniteCheckedException In case of handshake failure. */ private IgfsMessage processHandshakeRequest(IgfsHandshakeRequest req) throws IgniteCheckedException { if (req.igfsName() != null && !F.eq(igfs.name(), req.igfsName())) throw new IgniteCheckedException("Failed to perform handshake because existing IGFS name " + "differs from requested [requested=" + req.igfsName() + ", existing=" + igfs.name() + ']'); IgfsControlResponse res = new IgfsControlResponse(); igfs.clientLogDirectory(req.logDirectory()); IgfsHandshakeResponse handshake = new IgfsHandshakeResponse(igfs.name(), igfs.groupBlockSize(), igfs.globalSampling()); res.handshake(handshake); return res; }