Search in sources :

Example 6 with DataObjectAO

use of org.irods.jargon.core.pub.DataObjectAO in project metalnx-web by irods-contrib.

the class FileOperationServiceImpl method computeChecksum.

@Override
public void computeChecksum(String path, String filename) throws DataGridChecksumException, DataGridConnectionRefusedException {
    if (path == null || path.isEmpty() || filename == null || filename.isEmpty())
        throw new DataGridChecksumException("Could not calculate checksum. File path is invalid.");
    logger.info("Computing checksum for {} ({})", filename, path);
    IRODSFileFactory irodsFileFactory = irodsServices.getIRODSFileFactory();
    DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
    IRODSFile file;
    try {
        file = irodsFileFactory.instanceIRODSFile(path, filename);
        dataObjectAO.computeMD5ChecksumOnDataObject(file);
    } catch (JargonException e) {
        logger.error("Could not calculate checksum: {}", e.getMessage());
        throw new DataGridChecksumException("Could not calculate checksum.");
    }
}
Also used : IRODSFileFactory(org.irods.jargon.core.pub.io.IRODSFileFactory) JargonException(org.irods.jargon.core.exception.JargonException) DataGridChecksumException(com.emc.metalnx.core.domain.exceptions.DataGridChecksumException) DataObjectAO(org.irods.jargon.core.pub.DataObjectAO) IRODSFile(org.irods.jargon.core.pub.io.IRODSFile)

Example 7 with DataObjectAO

use of org.irods.jargon.core.pub.DataObjectAO in project metalnx-web by irods-contrib.

the class UserServiceImpl method updateReadPermissions.

@Override
public boolean updateReadPermissions(DataGridUser user, Map<String, Boolean> addCollectionsToRead, Map<String, Boolean> removeCollectionsToRead) throws DataGridConnectionRefusedException {
    CollectionAO collectionAO = null;
    DataObjectAO dataObjectAO = null;
    IRODSFile irodsFile = null;
    IRODSFileFactory irodsFileFactory = null;
    boolean readPermissionsUpdated = false;
    try {
        collectionAO = irodsServices.getCollectionAO();
        dataObjectAO = irodsServices.getDataObjectAO();
        irodsFileFactory = irodsServices.getIRODSFileFactory();
        for (String path : addCollectionsToRead.keySet()) {
            irodsFile = irodsFileFactory.instanceIRODSFile(path);
            if (irodsFile.isDirectory()) {
                // applying read permissions on a collection (not recursively)
                collectionAO.setAccessPermissionReadAsAdmin(user.getAdditionalInfo(), path, user.getUsername(), addCollectionsToRead.get(path));
            } else {
                // applying read permissions on a data object
                dataObjectAO.setAccessPermissionReadInAdminMode(user.getAdditionalInfo(), path, user.getUsername());
            }
        }
        removeAccessPermissionForUserAsAdmin(user, removeCollectionsToRead);
        readPermissionsUpdated = true;
    } catch (JargonException e) {
        logger.error("Could not set read permission:", e);
    }
    return readPermissionsUpdated;
}
Also used : IRODSFileFactory(org.irods.jargon.core.pub.io.IRODSFileFactory) CollectionAO(org.irods.jargon.core.pub.CollectionAO) JargonException(org.irods.jargon.core.exception.JargonException) DataObjectAO(org.irods.jargon.core.pub.DataObjectAO) IRODSFile(org.irods.jargon.core.pub.io.IRODSFile)

Example 8 with DataObjectAO

use of org.irods.jargon.core.pub.DataObjectAO in project metalnx-web by irods-contrib.

the class UserServiceImpl method removeAccessPermissionForUserAsAdmin.

@Override
public void removeAccessPermissionForUserAsAdmin(DataGridUser user, Map<String, Boolean> paths) throws JargonException, DataGridConnectionRefusedException {
    if (paths == null || paths.isEmpty()) {
        return;
    }
    IRODSFileFactory irodsFileFactory = irodsServices.getIRODSFileFactory();
    CollectionAO collectionAO = irodsServices.getCollectionAO();
    DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
    IRODSFile irodsFile = null;
    for (String path : paths.keySet()) {
        irodsFile = irodsFileFactory.instanceIRODSFile(path);
        if (irodsFile.isDirectory()) {
            collectionAO.removeAccessPermissionForUserAsAdmin(user.getAdditionalInfo(), path, user.getUsername(), paths.get(path));
        } else {
            dataObjectAO.removeAccessPermissionsForUserInAdminMode(user.getAdditionalInfo(), path, user.getUsername());
        }
    }
}
Also used : IRODSFileFactory(org.irods.jargon.core.pub.io.IRODSFileFactory) CollectionAO(org.irods.jargon.core.pub.CollectionAO) DataObjectAO(org.irods.jargon.core.pub.DataObjectAO) IRODSFile(org.irods.jargon.core.pub.io.IRODSFile)

Example 9 with DataObjectAO

use of org.irods.jargon.core.pub.DataObjectAO in project metalnx-web by irods-contrib.

the class FilePropertyServiceImpl method populateVisibilityForCurrentUser.

private void populateVisibilityForCurrentUser(List<DataGridCollectionAndDataObject> objectList) throws DataGridConnectionRefusedException {
    CollectionAO collectionAO = irodsServices.getCollectionAO();
    DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
    String currentUser = getLoggedDataGridUser().getUsername();
    for (DataGridCollectionAndDataObject obj : objectList) {
        List<UserFilePermission> permissions = null;
        try {
            if (obj.isCollection()) {
                permissions = collectionAO.listPermissionsForCollection(obj.getPath());
            } else {
                permissions = dataObjectAO.listPermissionsForDataObject(obj.getPath());
            }
        } catch (JargonException e) {
            logger.error("Could not get permission list for object {}", obj.getPath(), e);
        }
        obj.setVisibleToCurrentUser(false);
        if (permissions != null) {
            for (UserFilePermission permission : permissions) {
                if (permission.getUserName().compareTo(currentUser) == 0) {
                    obj.setVisibleToCurrentUser(true);
                    break;
                }
            }
        }
    }
}
Also used : UserFilePermission(org.irods.jargon.core.pub.domain.UserFilePermission) CollectionAO(org.irods.jargon.core.pub.CollectionAO) JargonException(org.irods.jargon.core.exception.JargonException) DataGridCollectionAndDataObject(com.emc.metalnx.core.domain.entity.DataGridCollectionAndDataObject) DataObjectAO(org.irods.jargon.core.pub.DataObjectAO)

Example 10 with DataObjectAO

use of org.irods.jargon.core.pub.DataObjectAO in project metalnx-web by irods-contrib.

the class GroupServiceImpl method updateOwnership.

@Override
public boolean updateOwnership(DataGridGroup group, Map<String, Boolean> addCollectionsToOwn, Map<String, Boolean> removeCollectionsToOwn) throws DataGridConnectionRefusedException {
    DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
    CollectionAO collectionAO = irodsServices.getCollectionAO();
    try {
        for (String path : addCollectionsToOwn.keySet()) {
            if (collectionService.isCollection(path)) {
                collectionAO.setAccessPermissionOwnAsAdmin(group.getAdditionalInfo(), path, group.getGroupname(), addCollectionsToOwn.get(path));
            } else {
                dataObjectAO.setAccessPermissionWriteInAdminMode(group.getAdditionalInfo(), path, group.getGroupname());
            }
        }
        for (String path : removeCollectionsToOwn.keySet()) {
            if (collectionService.isCollection(path)) {
                collectionAO.removeAccessPermissionForUserAsAdmin(group.getAdditionalInfo(), path, group.getGroupname(), removeCollectionsToOwn.get(path));
            } else {
                dataObjectAO.removeAccessPermissionsForUserInAdminMode(group.getAdditionalInfo(), path, group.getGroupname());
            }
        }
        return true;
    } catch (JargonException | DataGridException e) {
        logger.error("Could not set ownership:", e);
    }
    return false;
}
Also used : CollectionAO(org.irods.jargon.core.pub.CollectionAO) DataGridException(com.emc.metalnx.core.domain.exceptions.DataGridException) JargonException(org.irods.jargon.core.exception.JargonException) DataObjectAO(org.irods.jargon.core.pub.DataObjectAO)

Aggregations

DataObjectAO (org.irods.jargon.core.pub.DataObjectAO)20 JargonException (org.irods.jargon.core.exception.JargonException)18 CollectionAO (org.irods.jargon.core.pub.CollectionAO)14 DataGridCollectionAndDataObject (com.emc.metalnx.core.domain.entity.DataGridCollectionAndDataObject)9 DataObject (org.irods.jargon.core.pub.domain.DataObject)8 IRODSFile (org.irods.jargon.core.pub.io.IRODSFile)6 IRODSFileFactory (org.irods.jargon.core.pub.io.IRODSFileFactory)6 DataGridException (com.emc.metalnx.core.domain.exceptions.DataGridException)4 CollectionAndDataObjectListAndSearchAO (org.irods.jargon.core.pub.CollectionAndDataObjectListAndSearchAO)4 AvuData (org.irods.jargon.core.pub.domain.AvuData)3 FilePermissionEnum (org.irods.jargon.core.protovalues.FilePermissionEnum)2 DataGridMetadata (com.emc.metalnx.core.domain.entity.DataGridMetadata)1 DataGridResource (com.emc.metalnx.core.domain.entity.DataGridResource)1 IconObject (com.emc.metalnx.core.domain.entity.IconObject)1 DataGridChecksumException (com.emc.metalnx.core.domain.exceptions.DataGridChecksumException)1 File (java.io.File)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 IRODSAccount (org.irods.jargon.core.connection.IRODSAccount)1