Skip to content

Commit

Permalink
pnfsmanager: Drop legacy FileMetaData class
Browse files Browse the repository at this point in the history
Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6267/
  • Loading branch information
gbehrmann committed Nov 26, 2013
1 parent edd8ad8 commit e7742ac
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 806 deletions.
Expand Up @@ -27,7 +27,6 @@
import diskCacheV111.namespace.NameSpaceProvider;
import diskCacheV111.util.CacheException;
import diskCacheV111.util.FileExistsCacheException;
import diskCacheV111.util.FileMetaData;
import diskCacheV111.util.FileNotFoundCacheException;
import diskCacheV111.util.FsPath;
import diskCacheV111.util.NotDirCacheException;
Expand Down Expand Up @@ -122,59 +121,6 @@ public void setAtimeGap(long gap) {
_atimeGap = TimeUnit.SECONDS.toMillis(gap);
}

private static Stat fileMetadata2Stat(FileMetaData metaData, boolean isDir) {

Stat stat = new Stat();

int mode = 0;

// user
if (metaData.getUserPermissions().canRead()) {
mode |= 0400;
}
if (metaData.getUserPermissions().canWrite()) {
mode |= 0200;
}
if (metaData.getUserPermissions().canExecute()) {
mode |= 0100;
}

// group
if (metaData.getGroupPermissions().canRead()) {
mode |= 0040;
}
if (metaData.getGroupPermissions().canWrite()) {
mode |= 0020;
}
if (metaData.getGroupPermissions().canExecute()) {
mode |= 0010;
}

// world
if (metaData.getWorldPermissions().canRead()) {
mode |= 0004;
}
if (metaData.getWorldPermissions().canWrite()) {
mode |= 0002;
}
if (metaData.getWorldPermissions().canExecute()) {
mode |= 0001;
}

if (isDir) {
mode |= UnixPermission.S_IFDIR;
} else {
mode |= UnixPermission.S_IFREG;
}

setModeOf(stat, mode);
stat.setUid(metaData.getUid());
stat.setGid(metaData.getGid());
stat.setSize(metaData.getFileSize());

return stat;
}

private FsInode pathToInode(Subject subject, String path)
throws IOException, ChimeraFsException, CacheException
{
Expand Down
Expand Up @@ -31,7 +31,6 @@
import diskCacheV111.util.CacheException;
import diskCacheV111.util.CheckStagePermission;
import diskCacheV111.util.DCapUrl;
import diskCacheV111.util.FileMetaData;
import diskCacheV111.util.PnfsHandler;
import diskCacheV111.util.PnfsId;
import diskCacheV111.util.RetentionPolicy;
Expand Down Expand Up @@ -79,6 +78,7 @@
import org.dcache.auth.attributes.LoginAttribute;
import org.dcache.auth.attributes.ReadOnly;
import org.dcache.cells.CellStub;
import org.dcache.chimera.UnixPermission;
import org.dcache.namespace.FileAttribute;
import org.dcache.pinmanager.PinManagerPinMessage;
import org.dcache.services.login.RemoteLoginStrategy;
Expand Down Expand Up @@ -1070,9 +1070,8 @@ protected PnfsSessionHandler(int sessionId, int commandId, VspArgs args,
{
super(sessionId, commandId, args);

_attributes = FileMetaData.getKnownFileAttributes();
_attributes.add(PNFSID);
_attributes.add(TYPE);
_attributes = EnumSet.of(OWNER, OWNER_GROUP, MODE, TYPE, SIZE,
CREATION_TIME, ACCESS_TIME, MODIFICATION_TIME, CHANGE_TIME, PNFSID);
if (!metaDataOnly) {
_attributes.add(STORAGEINFO);
}
Expand Down Expand Up @@ -1297,40 +1296,38 @@ private StatHandler(int sessionId,
public void fileAttributesAvailable()
{
try {
FileMetaData meta = new FileMetaData(_fileAttributes);
StringBuilder sb = new StringBuilder() ;
sb.append(_sessionId).append(" ").
append(_commandId).append(" ").
//FIXME: do we support links?
// append(_vargs.getName()).append(_followLinks?" stat ":" stat ");
append(_vargs.getName()).append(" stat ");

sb.append("-st_size=").append(meta.getFileSize()).append(" ");
sb.append("-st_uid=").append(meta.getUid()).append(" ");
sb.append("-st_gid=").append(meta.getGid()).append(" ");
sb.append("-st_atime=").append(meta.getLastAccessedTime()/1000).append(" ");
sb.append("-st_mtime=").append(meta.getLastModifiedTime()/1000).append(" ");
sb.append("-st_ctime=").append(meta.getLastChangedTime()/1000).append(" ");

FileMetaData.Permissions user = meta.getUserPermissions() ;
FileMetaData.Permissions group = meta.getGroupPermissions();
FileMetaData.Permissions world = meta.getWorldPermissions() ;

sb.append("-st_mode=").
append(meta.isRegularFile()?"-":
meta.isDirectory()?"d":
meta.isSymbolicLink()?"l":"x").
append(user.canRead()?"r":"-").
append(user.canWrite()?"w":"-").
append(user.canExecute()?"x":"-").
append(group.canRead()?"r":"-").
append(group.canWrite()?"w":"-").
append(group.canExecute()?"x":"-").
append(world.canRead()?"r":"-").
append(world.canWrite()?"w":"-").
append(world.canExecute()?"x":"-").
append(" ") ;
sb.append("-st_size=").append(_fileAttributes.getSize()).append(" ");
sb.append("-st_uid=").append(_fileAttributes.getOwner()).append(" ");
sb.append("-st_gid=").append(_fileAttributes.getGroup()).append(" ");
sb.append("-st_atime=").append(_fileAttributes.getAccessTime()/1000).append(" ");
sb.append("-st_mtime=").append(_fileAttributes.getModificationTime()/1000).append(" ");
sb.append("-st_ctime=").append(_fileAttributes.getChangeTime()/1000).append(" ");

String mode = new UnixPermission(_fileAttributes.getMode()).toString().substring(1);
switch (_fileAttributes.getFileType()) {
case DIR:
mode = "d" + mode;
break;
case REGULAR:
mode = "-" + mode;
break;
case LINK:
mode = "l" + mode;
break;
case SPECIAL:
mode = "x" + mode;
break;
}

sb.append("-st_mode=").append(mode);
sb.append(" ") ;
sb.append("-st_ino=").append(_fileAttributes.getPnfsId().toString().hashCode()&0xfffffff) ;

println( sb.toString() ) ;
Expand Down
Expand Up @@ -19,7 +19,6 @@

import diskCacheV111.util.AccessLatency;
import diskCacheV111.util.CacheException;
import diskCacheV111.util.FileMetaData;
import diskCacheV111.util.PnfsId;
import diskCacheV111.util.RetentionPolicy;
import diskCacheV111.vehicles.StorageInfo;
Expand All @@ -33,6 +32,8 @@
import org.dcache.util.ChecksumType;
import org.dcache.vehicles.FileAttributes;

import static org.dcache.namespace.FileAttribute.*;


enum Operation {
PATH_TO_PNFS_ID("pathtopnfsid", "Reads the pnfs id of a file"),
Expand Down Expand Up @@ -211,7 +212,8 @@ private void processOperation(Operation aOp, String path) throws URISyntaxExcept
break;
case FILE_META_DATA:
provider.getFileAttributes(Subjects.ROOT, getPnfsid(path),
FileMetaData.getKnownFileAttributes());
EnumSet.of(OWNER, OWNER_GROUP, MODE, TYPE, SIZE,
CREATION_TIME, ACCESS_TIME, MODIFICATION_TIME, CHANGE_TIME));
break;
case DELETE_ENTRY:
provider.deleteEntry(Subjects.ROOT, getPnfsid(path));
Expand Down
Expand Up @@ -12,6 +12,7 @@
import java.io.File;
import java.io.PrintWriter;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
Expand All @@ -25,7 +26,6 @@

import diskCacheV111.util.CacheException;
import diskCacheV111.util.ChecksumFactory;
import diskCacheV111.util.FileMetaData;
import diskCacheV111.util.FileNotFoundCacheException;
import diskCacheV111.util.FsPath;
import diskCacheV111.util.InvalidMessageCacheException;
Expand Down Expand Up @@ -66,6 +66,7 @@
import org.dcache.cells.AbstractCellComponent;
import org.dcache.cells.CellCommandListener;
import org.dcache.cells.CellMessageReceiver;
import org.dcache.chimera.UnixPermission;
import org.dcache.commons.stats.RequestCounters;
import org.dcache.commons.stats.RequestExecutionTimeGauges;
import org.dcache.namespace.FileAttribute;
Expand All @@ -84,6 +85,7 @@

import static org.dcache.acl.enums.AccessType.*;
import static org.dcache.auth.Subjects.ROOT;
import static org.dcache.namespace.FileAttribute.*;

public class PnfsManagerV3
extends AbstractCellComponent
Expand Down Expand Up @@ -539,12 +541,37 @@ public void getInfo( PrintWriter pw ){
}
}

FileMetaData info =
new FileMetaData(_nameSpaceProvider.getFileAttributes(ROOT, pnfsId, FileMetaData.getKnownFileAttributes()));
FileAttributes fileAttributes = _nameSpaceProvider
.getFileAttributes(ROOT, pnfsId, EnumSet.of(OWNER, OWNER_GROUP, MODE, TYPE,
CREATION_TIME, ACCESS_TIME, MODIFICATION_TIME));

SimpleDateFormat formatter = new SimpleDateFormat("MM.dd-HH:mm:ss");
StringBuilder info = new StringBuilder();
switch (fileAttributes.getFileType()) {
case DIR:
info.append("d");
break;
case LINK:
info.append("l");
break;
case REGULAR:
info.append("-");
break;
default:
info.append("x");
break;
}
info.append(new UnixPermission(fileAttributes.getMode()).toString().substring(1));
info.append(";").append(fileAttributes.getOwner());
info.append(";").append(fileAttributes.getGroup());
info.append("[c=").append(formatter.format(fileAttributes.getCreationTime()));
info.append(";m=").append(formatter.format(fileAttributes.getModificationTime()));
info.append(";a=").append(formatter.format(fileAttributes.getAccessTime())).append("]");

if(v){
sb.append(" Meta Data : ").append(info ).append("\n") ;
sb.append(" Meta Data : ").append(info).append("\n") ;
}else{
sb.append(info.toString()).append("\n");
sb.append(info).append("\n");
}
}catch(Exception ee ){
sb.append("matadataof failed : ").append(ee.getMessage());
Expand Down

0 comments on commit e7742ac

Please sign in to comment.