/** * Create empty directory with the given ID. * * @param id ID. * @return File info. */ public static IgfsDirectoryInfo createDirectory(IgniteUuid id) { return createDirectory(id, null, null); }
/** {@inheritDoc} */ @Override public IgfsEntryInfo process(MutableEntry<IgniteUuid, IgfsEntryInfo> entry, Object... args) throws EntryProcessorException { IgfsEntryInfo info = IgfsUtils.createFile( entry.getKey(), blockSize, len, affKey, lockId, evictExclude, props, accessTime, modificationTime ); entry.setValue(info); return info; }
/** * Setter for the user name. * @param userName the user name. */ public final void userName(String userName) { this.userName = IgfsUtils.fixUserName(userName); } }
/** * create system entry if it is absent. * * @param id System entry ID. * @return Value of created or existing system entry. * @throws IgniteCheckedException On error. */ private IgfsEntryInfo createSystemDirectoryIfAbsent(IgniteUuid id) throws IgniteCheckedException { assert IgfsUtils.isRootOrTrashId(id); IgfsEntryInfo info = IgfsUtils.createDirectory(id); IgfsEntryInfo oldInfo = id2InfoPrj.getAndPutIfAbsent(id, info); if (oldInfo != null) info = oldInfo; return info; }
/** * Writes the given String to a DataOutput, reads from DataInput, then checks if they are the same. * * @param s0 The String to check serialization for. * @throws Exception On error. */ private static void checkString(String s0) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutput dout = new DataOutputStream(baos); IgfsUtils.writeUTF(dout, s0); DataInput din = new DataInputStream(new ByteArrayInputStream(baos.toByteArray())); String s1 = IgfsUtils.readUTF(din); assertEquals(s0, s1); }
IgfsUtils.createDirectory( IgniteUuid.randomUuid(), null, s.getModificationTime() ) : IgfsUtils.createFile( IgniteUuid.randomUuid(), (int)s.getBlockSize(),
validTxState(false); IgniteUuid trashId = IgfsUtils.randomTrashId(); IgfsEntryInfo newInfo = IgfsUtils.createDirectory( IgniteUuid.randomUuid(), transferListing,
String victimName = pathIds.lastPart(); if (IgfsUtils.isRootId(victimId)) throw new IgfsException("Cannot remove root directory"); IgniteUuid trashId = IgfsUtils.randomTrashId(); final String trashName = IgfsUtils.composeNameForTrash(path, victimId);
IgniteUuid trashId = IgfsUtils.randomTrashId(); IgfsUtils.composeNameForTrash(path, oldId), new IgfsListingEntry(oldInfo))); IgfsUtils.sendEvents(igfsCtx.kernalContext(), path, EventType.EVT_IGFS_FILE_OPENED_WRITE);
/** * Lock file IDs. * * @param fileIds File IDs (sorted). * @return Map with lock info. * @throws IgniteCheckedException If failed. */ private Map<IgniteUuid, IgfsEntryInfo> lockIds(Collection<IgniteUuid> fileIds) throws IgniteCheckedException { assert isSorted(fileIds); validTxState(true); if (log.isDebugEnabled()) log.debug("Locking file ids: " + fileIds); // Lock files and get their infos. Map<IgniteUuid, IgfsEntryInfo> map = getInfos(fileIds); if (log.isDebugEnabled()) log.debug("Locked file ids: " + fileIds); for (IgniteUuid fileId : fileIds) { if (IgfsUtils.isRootOrTrashId(fileId)) { if (!map.containsKey(fileId)) map.put(fileId, createSystemDirectoryIfAbsent(fileId)); } } // Returns detail's map for locked IDs. return map; }
/** * Constructor * * @param dfltMode Default IGFS mode. * @param modes List of configured modes. The order is significant as modes are added in order of occurrence. * @throws IgniteCheckedException On error. */ public IgfsModeResolver(IgfsMode dfltMode, @Nullable ArrayList<T2<IgfsPath, IgfsMode>> modes) throws IgniteCheckedException { assert dfltMode != null; this.dfltMode = dfltMode; dualParentsWithPrimaryChildren = new HashSet<>(); this.modes = IgfsUtils.preparePathModes(dfltMode, modes, dualParentsWithPrimaryChildren); if (modes != null) modesCache = new GridBoundedConcurrentLinkedHashMap<>(MAX_PATH_CACHE); }
/** * @throws Exception If failed. */ @Test public void testCanContain() throws Exception { for (IgfsMode m: IgfsMode.values()) { // Each mode can contain itself: assertTrue(IgfsUtils.canContain(m, m)); // PRIMARY and PROXY can contain itself only: assertTrue(IgfsUtils.canContain(PRIMARY,m) == (m == PRIMARY)); assertTrue(IgfsUtils.canContain(PROXY,m) == (m == PROXY)); // Any mode but PRIMARY & PROXY can contain any mode: if (m != PRIMARY && m != PROXY) for (IgfsMode n: IgfsMode.values()) assertTrue(IgfsUtils.canContain(m,n)); } }
/** * Reads string-to-string map written by {@link #writeStringMap(DataOutput, Map)}. * * @param in Data input. * @throws IOException If write failed. * @return Read result. */ public static Map<String, String> readStringMap(DataInput in) throws IOException { int size = in.readInt(); if (size == -1) return null; else { Map<String, String> map = U.newHashMap(size); for (int i = 0; i < size; i++) map.put(readUTF(in), readUTF(in)); return map; } }
/** * Writes string-to-string map to given data output. * * @param out Data output. * @param map Map. * @throws IOException If write failed. */ public static void writeStringMap(DataOutput out, @Nullable Map<String, String> map) throws IOException { if (map != null) { out.writeInt(map.size()); for (Map.Entry<String, String> e : map.entrySet()) { writeUTF(out, e.getKey()); writeUTF(out, e.getValue()); } } else out.writeInt(-1); }
IgfsUtils.createDirectory( IgniteUuid.randomUuid(), null, status.modificationTime() ) : IgfsUtils.createFile( IgniteUuid.randomUuid(), igfsCtx.configuration().getBlockSize(),
/** * create system entry if it is absent. * * @param id System entry ID. * @return Value of created or existing system entry. * @throws IgniteCheckedException On error. */ private IgfsEntryInfo createSystemDirectoryIfAbsent(IgniteUuid id) throws IgniteCheckedException { assert IgfsUtils.isRootOrTrashId(id); IgfsEntryInfo info = IgfsUtils.createDirectory(id); IgfsEntryInfo oldInfo = id2InfoPrj.getAndPutIfAbsent(id, info); if (oldInfo != null) info = oldInfo; return info; }
validTxState(false); IgniteUuid trashId = IgfsUtils.randomTrashId(); IgfsEntryInfo newInfo = IgfsUtils.createDirectory( IgniteUuid.randomUuid(), transferListing,
String victimName = pathIds.lastPart(); if (IgfsUtils.isRootId(victimId)) throw new IgfsException("Cannot remove root directory"); IgniteUuid trashId = IgfsUtils.randomTrashId(); final String trashName = IgfsUtils.composeNameForTrash(path, victimId);
IgniteUuid trashId = IgfsUtils.randomTrashId(); IgfsUtils.composeNameForTrash(path, oldId), new IgfsListingEntry(oldInfo))); IgfsUtils.sendEvents(igfsCtx.kernalContext(), path, EventType.EVT_IGFS_FILE_OPENED_WRITE);
@Override public boolean apply() { int metaSize = 0; for (Object metaId : grid(0).cachex(igfs.configuration().getMetaCacheConfiguration().getName()) .keySet()) { if (!IgfsUtils.isRootOrTrashId((IgniteUuid)metaId)) metaSize++; } return metaSize == 0; } }, 5000);