HADOOP-15872. ABFS: Update to target 2018-11-09 REST version for ADLS Gen 2.
Contributed by Junhua Gu and Da Zhou.
(cherry picked from commit a8302e398c
)
This commit is contained in:
parent
fea9d37ad5
commit
f5d2806c81
|
@ -166,6 +166,10 @@ public class AbfsConfiguration{
|
||||||
DefaultValue = DEFAULT_ENABLE_HTTPS)
|
DefaultValue = DEFAULT_ENABLE_HTTPS)
|
||||||
private boolean alwaysUseHttps;
|
private boolean alwaysUseHttps;
|
||||||
|
|
||||||
|
@BooleanConfigurationValidatorAnnotation(ConfigurationKey = FS_AZURE_USE_UPN,
|
||||||
|
DefaultValue = DEFAULT_USE_UPN)
|
||||||
|
private boolean useUpn;
|
||||||
|
|
||||||
private Map<String, String> storageAccountKeys;
|
private Map<String, String> storageAccountKeys;
|
||||||
|
|
||||||
public AbfsConfiguration(final Configuration rawConfig, String accountName)
|
public AbfsConfiguration(final Configuration rawConfig, String accountName)
|
||||||
|
@ -441,6 +445,10 @@ public class AbfsConfiguration{
|
||||||
return this.alwaysUseHttps;
|
return this.alwaysUseHttps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isUpnUsed() {
|
||||||
|
return this.useUpn;
|
||||||
|
}
|
||||||
|
|
||||||
public AccessTokenProvider getTokenProvider() throws TokenAccessProviderException {
|
public AccessTokenProvider getTokenProvider() throws TokenAccessProviderException {
|
||||||
AuthType authType = getEnum(FS_AZURE_ACCOUNT_AUTH_TYPE_PROPERTY_NAME, AuthType.SharedKey);
|
AuthType authType = getEnum(FS_AZURE_ACCOUNT_AUTH_TYPE_PROPERTY_NAME, AuthType.SharedKey);
|
||||||
if (authType == AuthType.OAuth) {
|
if (authType == AuthType.OAuth) {
|
||||||
|
|
|
@ -87,8 +87,8 @@ import org.apache.http.client.utils.URIBuilder;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import static org.apache.hadoop.fs.azurebfs.constants.AbfsHttpConstants.SUPER_USER;
|
||||||
import static org.apache.hadoop.fs.azurebfs.constants.ConfigurationKeys.AZURE_ABFS_ENDPOINT;
|
import static org.apache.hadoop.fs.azurebfs.constants.ConfigurationKeys.AZURE_ABFS_ENDPOINT;
|
||||||
import static org.apache.hadoop.fs.azurebfs.constants.ConfigurationKeys.FS_AZURE_ACCOUNT_AUTH_TYPE_PROPERTY_NAME;
|
|
||||||
import static org.apache.hadoop.util.Time.now;
|
import static org.apache.hadoop.util.Time.now;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -114,6 +114,7 @@ public class AzureBlobFileSystemStore {
|
||||||
private final Set<String> azureAtomicRenameDirSet;
|
private final Set<String> azureAtomicRenameDirSet;
|
||||||
private boolean isNamespaceEnabledSet;
|
private boolean isNamespaceEnabledSet;
|
||||||
private boolean isNamespaceEnabled;
|
private boolean isNamespaceEnabled;
|
||||||
|
private final AuthType authType;
|
||||||
|
|
||||||
public AzureBlobFileSystemStore(URI uri, boolean isSecureScheme, Configuration configuration, UserGroupInformation userGroupInformation)
|
public AzureBlobFileSystemStore(URI uri, boolean isSecureScheme, Configuration configuration, UserGroupInformation userGroupInformation)
|
||||||
throws AzureBlobFileSystemException, IOException {
|
throws AzureBlobFileSystemException, IOException {
|
||||||
|
@ -142,11 +143,11 @@ public class AzureBlobFileSystemStore {
|
||||||
this.azureAtomicRenameDirSet = new HashSet<>(Arrays.asList(
|
this.azureAtomicRenameDirSet = new HashSet<>(Arrays.asList(
|
||||||
abfsConfiguration.getAzureAtomicRenameDirs().split(AbfsHttpConstants.COMMA)));
|
abfsConfiguration.getAzureAtomicRenameDirs().split(AbfsHttpConstants.COMMA)));
|
||||||
|
|
||||||
boolean usingOauth = (AuthType.OAuth == abfsConfiguration.getEnum(
|
this.authType = abfsConfiguration.getAuthType(accountName);
|
||||||
FS_AZURE_ACCOUNT_AUTH_TYPE_PROPERTY_NAME, AuthType.SharedKey));
|
boolean usingOauth = (authType == AuthType.OAuth);
|
||||||
|
|
||||||
boolean useHttps = (usingOauth || abfsConfiguration.isHttpsAlwaysUsed()) ? true : isSecureScheme;
|
boolean useHttps = (usingOauth || abfsConfiguration.isHttpsAlwaysUsed()) ? true : isSecureScheme;
|
||||||
initializeClient(uri, fileSystemName, accountName, useHttps);
|
initializeClient(uri, fileSystemName, accountName, useHttps);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String[] authorityParts(URI uri) throws InvalidUriAuthorityException, InvalidUriException {
|
private String[] authorityParts(URI uri) throws InvalidUriAuthorityException, InvalidUriException {
|
||||||
|
@ -262,7 +263,7 @@ public class AzureBlobFileSystemStore {
|
||||||
path);
|
path);
|
||||||
|
|
||||||
final Hashtable<String, String> parsedXmsProperties;
|
final Hashtable<String, String> parsedXmsProperties;
|
||||||
final AbfsRestOperation op = client.getPathProperties(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path));
|
final AbfsRestOperation op = client.getPathProperties(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path), isNamespaceEnabled);
|
||||||
|
|
||||||
final String xMsProperties = op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_PROPERTIES);
|
final String xMsProperties = op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_PROPERTIES);
|
||||||
|
|
||||||
|
@ -344,7 +345,7 @@ public class AzureBlobFileSystemStore {
|
||||||
client.getFileSystem(),
|
client.getFileSystem(),
|
||||||
path);
|
path);
|
||||||
|
|
||||||
final AbfsRestOperation op = client.getPathProperties(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path));
|
final AbfsRestOperation op = client.getPathProperties(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path), isNamespaceEnabled);
|
||||||
|
|
||||||
final String resourceType = op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_RESOURCE_TYPE);
|
final String resourceType = op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_RESOURCE_TYPE);
|
||||||
final long contentLength = Long.parseLong(op.getResult().getResponseHeader(HttpHeaderConfigurations.CONTENT_LENGTH));
|
final long contentLength = Long.parseLong(op.getResult().getResponseHeader(HttpHeaderConfigurations.CONTENT_LENGTH));
|
||||||
|
@ -371,7 +372,7 @@ public class AzureBlobFileSystemStore {
|
||||||
path,
|
path,
|
||||||
overwrite);
|
overwrite);
|
||||||
|
|
||||||
final AbfsRestOperation op = client.getPathProperties(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path));
|
final AbfsRestOperation op = client.getPathProperties(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path), isNamespaceEnabled);
|
||||||
|
|
||||||
final String resourceType = op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_RESOURCE_TYPE);
|
final String resourceType = op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_RESOURCE_TYPE);
|
||||||
final Long contentLength = Long.valueOf(op.getResult().getResponseHeader(HttpHeaderConfigurations.CONTENT_LENGTH));
|
final Long contentLength = Long.valueOf(op.getResult().getResponseHeader(HttpHeaderConfigurations.CONTENT_LENGTH));
|
||||||
|
@ -471,8 +472,8 @@ public class AzureBlobFileSystemStore {
|
||||||
final boolean hasAcl = AbfsPermission.isExtendedAcl(permissions);
|
final boolean hasAcl = AbfsPermission.isExtendedAcl(permissions);
|
||||||
|
|
||||||
return new VersionedFileStatus(
|
return new VersionedFileStatus(
|
||||||
owner == null ? userName : owner,
|
isSuperUserOrEmpty(owner) ? userName : owner,
|
||||||
group == null ? primaryUserGroup : group,
|
isSuperUserOrEmpty(group) ? primaryUserGroup : group,
|
||||||
permissions == null ? new AbfsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL)
|
permissions == null ? new AbfsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL)
|
||||||
: AbfsPermission.valueOf(permissions),
|
: AbfsPermission.valueOf(permissions),
|
||||||
hasAcl,
|
hasAcl,
|
||||||
|
@ -484,7 +485,7 @@ public class AzureBlobFileSystemStore {
|
||||||
path,
|
path,
|
||||||
eTag);
|
eTag);
|
||||||
} else {
|
} else {
|
||||||
AbfsRestOperation op = client.getPathProperties(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path));
|
AbfsRestOperation op = client.getPathProperties(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path), isNamespaceEnabled);
|
||||||
|
|
||||||
final long blockSize = abfsConfiguration.getAzureBlockSize();
|
final long blockSize = abfsConfiguration.getAzureBlockSize();
|
||||||
final AbfsHttpOperation result = op.getResult();
|
final AbfsHttpOperation result = op.getResult();
|
||||||
|
@ -498,8 +499,8 @@ public class AzureBlobFileSystemStore {
|
||||||
final boolean hasAcl = AbfsPermission.isExtendedAcl(permissions);
|
final boolean hasAcl = AbfsPermission.isExtendedAcl(permissions);
|
||||||
|
|
||||||
return new VersionedFileStatus(
|
return new VersionedFileStatus(
|
||||||
owner == null ? userName : owner,
|
isSuperUserOrEmpty(owner) ? userName : owner,
|
||||||
group == null ? primaryUserGroup : group,
|
isSuperUserOrEmpty(group) ? primaryUserGroup : group,
|
||||||
permissions == null ? new AbfsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL)
|
permissions == null ? new AbfsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL)
|
||||||
: AbfsPermission.valueOf(permissions),
|
: AbfsPermission.valueOf(permissions),
|
||||||
hasAcl,
|
hasAcl,
|
||||||
|
@ -537,8 +538,8 @@ public class AzureBlobFileSystemStore {
|
||||||
long blockSize = abfsConfiguration.getAzureBlockSize();
|
long blockSize = abfsConfiguration.getAzureBlockSize();
|
||||||
|
|
||||||
for (ListResultEntrySchema entry : retrievedSchema.paths()) {
|
for (ListResultEntrySchema entry : retrievedSchema.paths()) {
|
||||||
final String owner = entry.owner() == null ? userName : entry.owner();
|
final String owner = isSuperUserOrEmpty(entry.owner()) ? userName : entry.owner();
|
||||||
final String group = entry.group() == null ? primaryUserGroup : entry.group();
|
final String group = isSuperUserOrEmpty(entry.group()) ? primaryUserGroup : entry.group();
|
||||||
final FsPermission fsPermission = entry.permissions() == null
|
final FsPermission fsPermission = entry.permissions() == null
|
||||||
? new AbfsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL)
|
? new AbfsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL)
|
||||||
: AbfsPermission.valueOf(entry.permissions());
|
: AbfsPermission.valueOf(entry.permissions());
|
||||||
|
@ -581,13 +582,20 @@ public class AzureBlobFileSystemStore {
|
||||||
"This operation is only valid for storage accounts with the hierarchical namespace enabled.");
|
"This operation is only valid for storage accounts with the hierarchical namespace enabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String effectiveOwner = owner;
|
||||||
|
String effectiveGroup = group;
|
||||||
|
if (authType == AuthType.SharedKey && owner.equals(userName)) {
|
||||||
|
effectiveOwner = SUPER_USER;
|
||||||
|
effectiveGroup = SUPER_USER;
|
||||||
|
}
|
||||||
|
|
||||||
LOG.debug(
|
LOG.debug(
|
||||||
"setOwner filesystem: {} path: {} owner: {} group: {}",
|
"setOwner filesystem: {} path: {} owner: {} group: {}",
|
||||||
client.getFileSystem(),
|
client.getFileSystem(),
|
||||||
path.toString(),
|
path.toString(),
|
||||||
owner,
|
effectiveOwner,
|
||||||
group);
|
effectiveGroup);
|
||||||
client.setOwner(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path, true), owner, group);
|
client.setOwner(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path, true), effectiveOwner, effectiveGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPermission(final Path path, final FsPermission permission) throws
|
public void setPermission(final Path path, final FsPermission permission) throws
|
||||||
|
@ -618,10 +626,10 @@ public class AzureBlobFileSystemStore {
|
||||||
client.getFileSystem(),
|
client.getFileSystem(),
|
||||||
path.toString(),
|
path.toString(),
|
||||||
AclEntry.aclSpecToString(aclSpec));
|
AclEntry.aclSpecToString(aclSpec));
|
||||||
|
|
||||||
final Map<String, String> modifyAclEntries = AbfsAclHelper.deserializeAclSpec(AclEntry.aclSpecToString(aclSpec));
|
final Map<String, String> modifyAclEntries = AbfsAclHelper.deserializeAclSpec(AclEntry.aclSpecToString(aclSpec));
|
||||||
|
boolean useUpn = AbfsAclHelper.isUpnFormatAclEntries(modifyAclEntries);
|
||||||
|
|
||||||
final AbfsRestOperation op = client.getAclStatus(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path, true));
|
final AbfsRestOperation op = client.getAclStatus(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path, true), useUpn);
|
||||||
final String eTag = op.getResult().getResponseHeader(HttpHeaderConfigurations.ETAG);
|
final String eTag = op.getResult().getResponseHeader(HttpHeaderConfigurations.ETAG);
|
||||||
|
|
||||||
final Map<String, String> aclEntries = AbfsAclHelper.deserializeAclSpec(op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_ACL));
|
final Map<String, String> aclEntries = AbfsAclHelper.deserializeAclSpec(op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_ACL));
|
||||||
|
@ -643,9 +651,10 @@ public class AzureBlobFileSystemStore {
|
||||||
client.getFileSystem(),
|
client.getFileSystem(),
|
||||||
path.toString(),
|
path.toString(),
|
||||||
AclEntry.aclSpecToString(aclSpec));
|
AclEntry.aclSpecToString(aclSpec));
|
||||||
|
|
||||||
final Map<String, String> removeAclEntries = AbfsAclHelper.deserializeAclSpec(AclEntry.aclSpecToString(aclSpec));
|
final Map<String, String> removeAclEntries = AbfsAclHelper.deserializeAclSpec(AclEntry.aclSpecToString(aclSpec));
|
||||||
final AbfsRestOperation op = client.getAclStatus(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path, true));
|
boolean isUpnFormat = AbfsAclHelper.isUpnFormatAclEntries(removeAclEntries);
|
||||||
|
|
||||||
|
final AbfsRestOperation op = client.getAclStatus(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path, true), isUpnFormat);
|
||||||
final String eTag = op.getResult().getResponseHeader(HttpHeaderConfigurations.ETAG);
|
final String eTag = op.getResult().getResponseHeader(HttpHeaderConfigurations.ETAG);
|
||||||
|
|
||||||
final Map<String, String> aclEntries = AbfsAclHelper.deserializeAclSpec(op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_ACL));
|
final Map<String, String> aclEntries = AbfsAclHelper.deserializeAclSpec(op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_ACL));
|
||||||
|
@ -720,7 +729,9 @@ public class AzureBlobFileSystemStore {
|
||||||
path.toString(),
|
path.toString(),
|
||||||
AclEntry.aclSpecToString(aclSpec));
|
AclEntry.aclSpecToString(aclSpec));
|
||||||
final Map<String, String> aclEntries = AbfsAclHelper.deserializeAclSpec(AclEntry.aclSpecToString(aclSpec));
|
final Map<String, String> aclEntries = AbfsAclHelper.deserializeAclSpec(AclEntry.aclSpecToString(aclSpec));
|
||||||
final AbfsRestOperation op = client.getAclStatus(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path, true));
|
final boolean isUpnFormat = AbfsAclHelper.isUpnFormatAclEntries(aclEntries);
|
||||||
|
|
||||||
|
final AbfsRestOperation op = client.getAclStatus(AbfsHttpConstants.FORWARD_SLASH + getRelativePath(path, true), isUpnFormat);
|
||||||
final String eTag = op.getResult().getResponseHeader(HttpHeaderConfigurations.ETAG);
|
final String eTag = op.getResult().getResponseHeader(HttpHeaderConfigurations.ETAG);
|
||||||
|
|
||||||
final Map<String, String> getAclEntries = AbfsAclHelper.deserializeAclSpec(op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_ACL));
|
final Map<String, String> getAclEntries = AbfsAclHelper.deserializeAclSpec(op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_ACL));
|
||||||
|
@ -754,8 +765,8 @@ public class AzureBlobFileSystemStore {
|
||||||
: AbfsPermission.valueOf(permissions);
|
: AbfsPermission.valueOf(permissions);
|
||||||
|
|
||||||
final AclStatus.Builder aclStatusBuilder = new AclStatus.Builder();
|
final AclStatus.Builder aclStatusBuilder = new AclStatus.Builder();
|
||||||
aclStatusBuilder.owner(owner == null ? userName : owner);
|
aclStatusBuilder.owner(isSuperUserOrEmpty(owner)? userName : owner);
|
||||||
aclStatusBuilder.group(group == null ? primaryUserGroup : group);
|
aclStatusBuilder.group(isSuperUserOrEmpty(group) ? primaryUserGroup : group);
|
||||||
|
|
||||||
aclStatusBuilder.setPermission(fsPermission);
|
aclStatusBuilder.setPermission(fsPermission);
|
||||||
aclStatusBuilder.stickyBit(fsPermission.getStickyBit());
|
aclStatusBuilder.stickyBit(fsPermission.getStickyBit());
|
||||||
|
@ -939,6 +950,11 @@ public class AzureBlobFileSystemStore {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isSuperUserOrEmpty(final String name) {
|
||||||
|
return name == null || name.equals(SUPER_USER);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static class VersionedFileStatus extends FileStatus {
|
private static class VersionedFileStatus extends FileStatus {
|
||||||
private final String version;
|
private final String version;
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ public final class AbfsHttpConstants {
|
||||||
public static final String SET_PROPERTIES_ACTION = "setProperties";
|
public static final String SET_PROPERTIES_ACTION = "setProperties";
|
||||||
public static final String SET_ACCESS_CONTROL = "setAccessControl";
|
public static final String SET_ACCESS_CONTROL = "setAccessControl";
|
||||||
public static final String GET_ACCESS_CONTROL = "getAccessControl";
|
public static final String GET_ACCESS_CONTROL = "getAccessControl";
|
||||||
|
public static final String GET_STATUS = "getStatus";
|
||||||
public static final String DEFAULT_TIMEOUT = "90";
|
public static final String DEFAULT_TIMEOUT = "90";
|
||||||
|
|
||||||
public static final String JAVA_VERSION = "java.version";
|
public static final String JAVA_VERSION = "java.version";
|
||||||
|
@ -65,6 +66,7 @@ public final class AbfsHttpConstants {
|
||||||
public static final String QUESTION_MARK = "?";
|
public static final String QUESTION_MARK = "?";
|
||||||
public static final String AND_MARK = "&";
|
public static final String AND_MARK = "&";
|
||||||
public static final String SEMICOLON = ";";
|
public static final String SEMICOLON = ";";
|
||||||
|
public static final String AT = "@";
|
||||||
public static final String HTTP_HEADER_PREFIX = "x-ms-";
|
public static final String HTTP_HEADER_PREFIX = "x-ms-";
|
||||||
|
|
||||||
public static final String PLUS_ENCODE = "%20";
|
public static final String PLUS_ENCODE = "%20";
|
||||||
|
@ -86,6 +88,7 @@ public final class AbfsHttpConstants {
|
||||||
public static final String DEFAULT_OTHER = "default:other:";
|
public static final String DEFAULT_OTHER = "default:other:";
|
||||||
public static final String DEFAULT_SCOPE = "default:";
|
public static final String DEFAULT_SCOPE = "default:";
|
||||||
public static final String PERMISSION_FORMAT = "%04d";
|
public static final String PERMISSION_FORMAT = "%04d";
|
||||||
|
public static final String SUPER_USER = "$superuser";
|
||||||
|
|
||||||
private AbfsHttpConstants() {}
|
private AbfsHttpConstants() {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,6 +54,7 @@ public final class ConfigurationKeys {
|
||||||
public static final String FS_AZURE_ENABLE_FLUSH = "fs.azure.enable.flush";
|
public static final String FS_AZURE_ENABLE_FLUSH = "fs.azure.enable.flush";
|
||||||
public static final String FS_AZURE_USER_AGENT_PREFIX_KEY = "fs.azure.user.agent.prefix";
|
public static final String FS_AZURE_USER_AGENT_PREFIX_KEY = "fs.azure.user.agent.prefix";
|
||||||
public static final String FS_AZURE_SSL_CHANNEL_MODE_KEY = "fs.azure.ssl.channel.mode";
|
public static final String FS_AZURE_SSL_CHANNEL_MODE_KEY = "fs.azure.ssl.channel.mode";
|
||||||
|
public static final String FS_AZURE_USE_UPN = "fs.azure.use.upn";
|
||||||
|
|
||||||
public static final String AZURE_KEY_ACCOUNT_KEYPROVIDER = "fs.azure.account.keyprovider";
|
public static final String AZURE_KEY_ACCOUNT_KEYPROVIDER = "fs.azure.account.keyprovider";
|
||||||
public static final String AZURE_KEY_ACCOUNT_SHELLKEYPROVIDER_SCRIPT = "fs.azure.shellkeyprovider.script";
|
public static final String AZURE_KEY_ACCOUNT_SHELLKEYPROVIDER_SCRIPT = "fs.azure.shellkeyprovider.script";
|
||||||
|
|
|
@ -65,5 +65,7 @@ public final class FileSystemConfigurations {
|
||||||
public static final boolean DEFAULT_ENABLE_DELEGATION_TOKEN = false;
|
public static final boolean DEFAULT_ENABLE_DELEGATION_TOKEN = false;
|
||||||
public static final boolean DEFAULT_ENABLE_HTTPS = true;
|
public static final boolean DEFAULT_ENABLE_HTTPS = true;
|
||||||
|
|
||||||
|
public static final boolean DEFAULT_USE_UPN = false;
|
||||||
|
|
||||||
private FileSystemConfigurations() {}
|
private FileSystemConfigurations() {}
|
||||||
}
|
}
|
|
@ -35,6 +35,7 @@ public final class HttpQueryParams {
|
||||||
public static final String QUERY_PARAM_POSITION = "position";
|
public static final String QUERY_PARAM_POSITION = "position";
|
||||||
public static final String QUERY_PARAM_TIMEOUT = "timeout";
|
public static final String QUERY_PARAM_TIMEOUT = "timeout";
|
||||||
public static final String QUERY_PARAM_RETAIN_UNCOMMITTED_DATA = "retainUncommittedData";
|
public static final String QUERY_PARAM_RETAIN_UNCOMMITTED_DATA = "retainUncommittedData";
|
||||||
|
public static final String QUERY_PARAM_UPN = "upn";
|
||||||
|
|
||||||
private HttpQueryParams() {}
|
private HttpQueryParams() {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -186,6 +186,15 @@ public final class AbfsAclHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isUpnFormatAclEntries(Map<String, String> aclEntries) {
|
||||||
|
for (Map.Entry<String, String> entry : aclEntries.entrySet()) {
|
||||||
|
if (entry.getKey().contains(AbfsHttpConstants.AT)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean removeNamedAceAndUpdateSet(String entry, boolean isDefaultAcl, Set<String> removeIndicationSet,
|
private static boolean removeNamedAceAndUpdateSet(String entry, boolean isDefaultAcl, Set<String> removeIndicationSet,
|
||||||
Map<String, String> aclEntries)
|
Map<String, String> aclEntries)
|
||||||
throws AzureBlobFileSystemException {
|
throws AzureBlobFileSystemException {
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class AbfsClient {
|
||||||
public static final Logger LOG = LoggerFactory.getLogger(AbfsClient.class);
|
public static final Logger LOG = LoggerFactory.getLogger(AbfsClient.class);
|
||||||
private final URL baseUrl;
|
private final URL baseUrl;
|
||||||
private final SharedKeyCredentials sharedKeyCredentials;
|
private final SharedKeyCredentials sharedKeyCredentials;
|
||||||
private final String xMsVersion = "2018-06-17";
|
private final String xMsVersion = "2018-11-09";
|
||||||
private final ExponentialRetryPolicy retryPolicy;
|
private final ExponentialRetryPolicy retryPolicy;
|
||||||
private final String filesystem;
|
private final String filesystem;
|
||||||
private final AbfsConfiguration abfsConfiguration;
|
private final AbfsConfiguration abfsConfiguration;
|
||||||
|
@ -169,6 +169,7 @@ public class AbfsClient {
|
||||||
abfsUriQueryBuilder.addQuery(QUERY_PARAM_RECURSIVE, String.valueOf(recursive));
|
abfsUriQueryBuilder.addQuery(QUERY_PARAM_RECURSIVE, String.valueOf(recursive));
|
||||||
abfsUriQueryBuilder.addQuery(QUERY_PARAM_CONTINUATION, continuation);
|
abfsUriQueryBuilder.addQuery(QUERY_PARAM_CONTINUATION, continuation);
|
||||||
abfsUriQueryBuilder.addQuery(QUERY_PARAM_MAXRESULTS, String.valueOf(listMaxResults));
|
abfsUriQueryBuilder.addQuery(QUERY_PARAM_MAXRESULTS, String.valueOf(listMaxResults));
|
||||||
|
abfsUriQueryBuilder.addQuery(HttpQueryParams.QUERY_PARAM_UPN, String.valueOf(abfsConfiguration.isUpnUsed()));
|
||||||
|
|
||||||
final URL url = createRequestUrl(abfsUriQueryBuilder.toString());
|
final URL url = createRequestUrl(abfsUriQueryBuilder.toString());
|
||||||
final AbfsRestOperation op = new AbfsRestOperation(
|
final AbfsRestOperation op = new AbfsRestOperation(
|
||||||
|
@ -337,14 +338,15 @@ public class AbfsClient {
|
||||||
return op;
|
return op;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbfsRestOperation getPathProperties(final String path) throws AzureBlobFileSystemException {
|
public AbfsRestOperation getPathProperties(final String path, boolean isNameSpaceEnabled) throws AzureBlobFileSystemException {
|
||||||
final List<AbfsHttpHeader> requestHeaders = createDefaultHeaders();
|
final List<AbfsHttpHeader> requestHeaders = createDefaultHeaders();
|
||||||
|
|
||||||
final AbfsUriQueryBuilder abfsUriQueryBuilder = createDefaultUriQueryBuilder();
|
final AbfsUriQueryBuilder abfsUriQueryBuilder = createDefaultUriQueryBuilder();
|
||||||
|
abfsUriQueryBuilder.addQuery(HttpQueryParams.QUERY_PARAM_UPN, String.valueOf(abfsConfiguration.isUpnUsed()));
|
||||||
|
|
||||||
final URL url = createRequestUrl(path, abfsUriQueryBuilder.toString());
|
final URL url = createRequestUrl(path, abfsUriQueryBuilder.toString());
|
||||||
final AbfsRestOperation op = new AbfsRestOperation(
|
final AbfsRestOperation op = new AbfsRestOperation(
|
||||||
AbfsRestOperationType.GetPathProperties,
|
isNameSpaceEnabled ? AbfsRestOperationType.GetPathProperties : AbfsRestOperationType.GetPathStatus,
|
||||||
this,
|
this,
|
||||||
HTTP_METHOD_HEAD,
|
HTTP_METHOD_HEAD,
|
||||||
url,
|
url,
|
||||||
|
@ -483,10 +485,15 @@ public class AbfsClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbfsRestOperation getAclStatus(final String path) throws AzureBlobFileSystemException {
|
public AbfsRestOperation getAclStatus(final String path) throws AzureBlobFileSystemException {
|
||||||
|
return getAclStatus(path, abfsConfiguration.isUpnUsed());
|
||||||
|
}
|
||||||
|
|
||||||
|
public AbfsRestOperation getAclStatus(final String path, final boolean useUPN) throws AzureBlobFileSystemException {
|
||||||
final List<AbfsHttpHeader> requestHeaders = createDefaultHeaders();
|
final List<AbfsHttpHeader> requestHeaders = createDefaultHeaders();
|
||||||
|
|
||||||
final AbfsUriQueryBuilder abfsUriQueryBuilder = createDefaultUriQueryBuilder();
|
final AbfsUriQueryBuilder abfsUriQueryBuilder = createDefaultUriQueryBuilder();
|
||||||
abfsUriQueryBuilder.addQuery(HttpQueryParams.QUERY_PARAM_ACTION, AbfsHttpConstants.GET_ACCESS_CONTROL);
|
abfsUriQueryBuilder.addQuery(HttpQueryParams.QUERY_PARAM_ACTION, AbfsHttpConstants.GET_ACCESS_CONTROL);
|
||||||
|
abfsUriQueryBuilder.addQuery(HttpQueryParams.QUERY_PARAM_UPN, String.valueOf(useUPN));
|
||||||
|
|
||||||
final URL url = createRequestUrl(path, abfsUriQueryBuilder.toString());
|
final URL url = createRequestUrl(path, abfsUriQueryBuilder.toString());
|
||||||
final AbfsRestOperation op = new AbfsRestOperation(
|
final AbfsRestOperation op = new AbfsRestOperation(
|
||||||
|
|
|
@ -31,6 +31,7 @@ public enum AbfsRestOperationType {
|
||||||
RenamePath,
|
RenamePath,
|
||||||
GetAcl,
|
GetAcl,
|
||||||
GetPathProperties,
|
GetPathProperties,
|
||||||
|
GetPathStatus,
|
||||||
SetAcl,
|
SetAcl,
|
||||||
SetOwner,
|
SetOwner,
|
||||||
SetPathProperties,
|
SetPathProperties,
|
||||||
|
|
|
@ -20,6 +20,7 @@ package org.apache.hadoop.fs.azurebfs;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -51,6 +52,9 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
private static final Path TEST_WRITE_ONLY_FOLDER_PATH = new Path(TEST_WRITE_ONLY_FOLDER);
|
private static final Path TEST_WRITE_ONLY_FOLDER_PATH = new Path(TEST_WRITE_ONLY_FOLDER);
|
||||||
private static final Path TEST_WRITE_THEN_READ_ONLY_PATH = new Path(TEST_WRITE_THEN_READ_ONLY);
|
private static final Path TEST_WRITE_THEN_READ_ONLY_PATH = new Path(TEST_WRITE_THEN_READ_ONLY);
|
||||||
private static final String TEST_AUTHZ_CLASS = "org.apache.hadoop.fs.azurebfs.extensions.MockAbfsAuthorizer";
|
private static final String TEST_AUTHZ_CLASS = "org.apache.hadoop.fs.azurebfs.extensions.MockAbfsAuthorizer";
|
||||||
|
private static final String TEST_USER = UUID.randomUUID().toString();
|
||||||
|
private static final String TEST_GROUP = UUID.randomUUID().toString();
|
||||||
|
private static final String BAR = UUID.randomUUID().toString();
|
||||||
|
|
||||||
public ITestAzureBlobFileSystemAuthorization() throws Exception {
|
public ITestAzureBlobFileSystemAuthorization() throws Exception {
|
||||||
}
|
}
|
||||||
|
@ -205,7 +209,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
||||||
fs.setOwner(TEST_WRITE_ONLY_FILE_PATH_0, "testUser", "testGroup");
|
fs.setOwner(TEST_WRITE_ONLY_FILE_PATH_0, TEST_USER, TEST_GROUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -215,7 +219,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
||||||
intercept(AbfsAuthorizationException.class,
|
intercept(AbfsAuthorizationException.class,
|
||||||
()-> {
|
()-> {
|
||||||
fs.setOwner(TEST_WRITE_THEN_READ_ONLY_PATH, "testUser", "testGroup");
|
fs.setOwner(TEST_WRITE_THEN_READ_ONLY_PATH, TEST_USER, TEST_GROUP);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,7 +247,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
||||||
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, "bar", FsAction.ALL));
|
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, BAR, FsAction.ALL));
|
||||||
fs.modifyAclEntries(TEST_WRITE_ONLY_FILE_PATH_0, aclSpec);
|
fs.modifyAclEntries(TEST_WRITE_ONLY_FILE_PATH_0, aclSpec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,7 +256,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
||||||
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, "bar", FsAction.ALL));
|
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, BAR, FsAction.ALL));
|
||||||
intercept(AbfsAuthorizationException.class,
|
intercept(AbfsAuthorizationException.class,
|
||||||
()-> {
|
()-> {
|
||||||
fs.modifyAclEntries(TEST_WRITE_THEN_READ_ONLY_PATH, aclSpec);
|
fs.modifyAclEntries(TEST_WRITE_THEN_READ_ONLY_PATH, aclSpec);
|
||||||
|
@ -264,7 +268,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
||||||
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, "bar", FsAction.ALL));
|
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, BAR, FsAction.ALL));
|
||||||
fs.removeAclEntries(TEST_WRITE_ONLY_FILE_PATH_0, aclSpec);
|
fs.removeAclEntries(TEST_WRITE_ONLY_FILE_PATH_0, aclSpec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,7 +277,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
||||||
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, "bar", FsAction.ALL));
|
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, BAR, FsAction.ALL));
|
||||||
intercept(AbfsAuthorizationException.class,
|
intercept(AbfsAuthorizationException.class,
|
||||||
()-> {
|
()-> {
|
||||||
fs.removeAclEntries(TEST_WRITE_THEN_READ_ONLY_PATH, aclSpec);
|
fs.removeAclEntries(TEST_WRITE_THEN_READ_ONLY_PATH, aclSpec);
|
||||||
|
@ -323,7 +327,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
||||||
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, "bar", FsAction.ALL));
|
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, BAR, FsAction.ALL));
|
||||||
fs.setAcl(TEST_WRITE_ONLY_FILE_PATH_0, aclSpec);
|
fs.setAcl(TEST_WRITE_ONLY_FILE_PATH_0, aclSpec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,7 +336,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
||||||
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, "bar", FsAction.ALL));
|
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, BAR, FsAction.ALL));
|
||||||
intercept(AbfsAuthorizationException.class,
|
intercept(AbfsAuthorizationException.class,
|
||||||
()-> {
|
()-> {
|
||||||
fs.setAcl(TEST_WRITE_THEN_READ_ONLY_PATH, aclSpec);
|
fs.setAcl(TEST_WRITE_THEN_READ_ONLY_PATH, aclSpec);
|
||||||
|
@ -344,7 +348,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
fs.create(TEST_WRITE_THEN_READ_ONLY_PATH).close();
|
||||||
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, "bar", FsAction.ALL));
|
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, BAR, FsAction.ALL));
|
||||||
fs.getAclStatus(TEST_WRITE_THEN_READ_ONLY_PATH);
|
fs.getAclStatus(TEST_WRITE_THEN_READ_ONLY_PATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,7 +357,7 @@ public class ITestAzureBlobFileSystemAuthorization extends AbstractAbfsIntegrati
|
||||||
final AzureBlobFileSystem fs = getFileSystem();
|
final AzureBlobFileSystem fs = getFileSystem();
|
||||||
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
assumeTrue("This test case only runs when namespace is enabled", fs.getIsNamespaceEnabled());
|
||||||
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
fs.create(TEST_WRITE_ONLY_FILE_PATH_0).close();
|
||||||
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, "bar", FsAction.ALL));
|
List<AclEntry> aclSpec = Arrays.asList(aclEntry(ACCESS, GROUP, BAR, FsAction.ALL));
|
||||||
intercept(AbfsAuthorizationException.class,
|
intercept(AbfsAuthorizationException.class,
|
||||||
()-> {
|
()-> {
|
||||||
fs.getAclStatus(TEST_WRITE_ONLY_FILE_PATH_0);
|
fs.getAclStatus(TEST_WRITE_ONLY_FILE_PATH_0);
|
||||||
|
|
|
@ -73,6 +73,11 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
private static final short RW_R_R = 0644;
|
private static final short RW_R_R = 0644;
|
||||||
private static final short STICKY_RWX_RWX = 01770;
|
private static final short STICKY_RWX_RWX = 01770;
|
||||||
|
|
||||||
|
private static final String FOO = UUID.randomUUID().toString();
|
||||||
|
private static final String BAR = UUID.randomUUID().toString();
|
||||||
|
private static final String TEST_OWNER = UUID.randomUUID().toString();
|
||||||
|
private static final String TEST_GROUP = UUID.randomUUID().toString();
|
||||||
|
|
||||||
private static Path testRoot = new Path("/test");
|
private static Path testRoot = new Path("/test");
|
||||||
private Path path;
|
private Path path;
|
||||||
|
|
||||||
|
@ -89,24 +94,24 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
|
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
|
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo", READ_EXECUTE),
|
aclEntry(ACCESS, USER, FOO, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, "foo", READ_EXECUTE));
|
aclEntry(DEFAULT, USER, FOO, READ_EXECUTE));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
|
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", READ_EXECUTE),
|
aclEntry(ACCESS, USER, FOO, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", READ_EXECUTE),
|
aclEntry(DEFAULT, USER, FOO, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, READ_EXECUTE),
|
aclEntry(DEFAULT, MASK, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -122,17 +127,17 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo", READ_EXECUTE));
|
aclEntry(ACCESS, USER, FOO, READ_EXECUTE));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", READ_EXECUTE),
|
aclEntry(ACCESS, USER, FOO, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
||||||
assertPermission(fs, (short) RWX_RX);
|
assertPermission(fs, (short) RWX_RX);
|
||||||
}
|
}
|
||||||
|
@ -144,16 +149,16 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", READ_EXECUTE));
|
aclEntry(DEFAULT, USER, FOO, READ_EXECUTE));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", READ_EXECUTE),
|
aclEntry(DEFAULT, USER, FOO, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, READ_EXECUTE),
|
aclEntry(DEFAULT, MASK, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -168,12 +173,12 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.create(path).close();
|
fs.create(path).close();
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo", READ_WRITE));
|
aclEntry(ACCESS, USER, FOO, READ_WRITE));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", READ_WRITE),
|
aclEntry(ACCESS, USER, FOO, READ_WRITE),
|
||||||
aclEntry(ACCESS, GROUP, READ) }, returned);
|
aclEntry(ACCESS, GROUP, READ) }, returned);
|
||||||
assertPermission(fs, (short) RW_RW);
|
assertPermission(fs, (short) RW_RW);
|
||||||
}
|
}
|
||||||
|
@ -206,13 +211,13 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.create(path).close();
|
fs.create(path).close();
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, MASK, NONE));
|
aclEntry(ACCESS, MASK, NONE));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ) }, returned);
|
aclEntry(ACCESS, GROUP, READ) }, returned);
|
||||||
assertPermission(fs, (short) RW);
|
assertPermission(fs, (short) RW);
|
||||||
}
|
}
|
||||||
|
@ -225,22 +230,22 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo", READ_EXECUTE),
|
aclEntry(ACCESS, USER, FOO, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, "foo", READ_EXECUTE));
|
aclEntry(DEFAULT, USER, FOO, READ_EXECUTE));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", READ_EXECUTE),
|
aclEntry(ACCESS, USER, FOO, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", READ_EXECUTE),
|
aclEntry(DEFAULT, USER, FOO, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, READ_EXECUTE),
|
aclEntry(DEFAULT, MASK, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -255,7 +260,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
// Path has not been created.
|
// Path has not been created.
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
|
@ -269,7 +274,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.create(path).close();
|
fs.create(path).close();
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -342,14 +347,14 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo"),
|
aclEntry(ACCESS, USER, FOO),
|
||||||
aclEntry(DEFAULT, USER, "foo"));
|
aclEntry(DEFAULT, USER, FOO));
|
||||||
fs.removeAclEntries(path, aclSpec);
|
fs.removeAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
|
@ -371,18 +376,18 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, USER, "bar", READ_WRITE),
|
aclEntry(ACCESS, USER, BAR, READ_WRITE),
|
||||||
aclEntry(ACCESS, GROUP, READ_WRITE),
|
aclEntry(ACCESS, GROUP, READ_WRITE),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo"));
|
aclEntry(ACCESS, USER, FOO));
|
||||||
fs.removeAclEntries(path, aclSpec);
|
fs.removeAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "bar", READ_WRITE),
|
aclEntry(ACCESS, USER, BAR, READ_WRITE),
|
||||||
aclEntry(ACCESS, GROUP, READ_WRITE) }, returned);
|
aclEntry(ACCESS, GROUP, READ_WRITE) }, returned);
|
||||||
assertPermission(fs, (short) RWX_RW);
|
assertPermission(fs, (short) RWX_RW);
|
||||||
}
|
}
|
||||||
|
@ -397,17 +402,17 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(DEFAULT, USER, "bar", READ_EXECUTE));
|
aclEntry(DEFAULT, USER, BAR, READ_EXECUTE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo"));
|
aclEntry(DEFAULT, USER, FOO));
|
||||||
fs.removeAclEntries(path, aclSpec);
|
fs.removeAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "bar", READ_EXECUTE),
|
aclEntry(DEFAULT, USER, BAR, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, READ_EXECUTE),
|
aclEntry(DEFAULT, MASK, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -423,12 +428,12 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RWX_RW));
|
fs.setPermission(path, FsPermission.createImmutable((short) RWX_RW));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_WRITE),
|
aclEntry(ACCESS, GROUP, READ_WRITE),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo"),
|
aclEntry(ACCESS, USER, FOO),
|
||||||
aclEntry(ACCESS, MASK));
|
aclEntry(ACCESS, MASK));
|
||||||
fs.removeAclEntries(path, aclSpec);
|
fs.removeAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
|
@ -445,15 +450,15 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo"),
|
aclEntry(ACCESS, USER, FOO),
|
||||||
aclEntry(ACCESS, MASK),
|
aclEntry(ACCESS, MASK),
|
||||||
aclEntry(DEFAULT, USER, "foo"),
|
aclEntry(DEFAULT, USER, FOO),
|
||||||
aclEntry(DEFAULT, MASK));
|
aclEntry(DEFAULT, MASK));
|
||||||
fs.removeAclEntries(path, aclSpec);
|
fs.removeAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
|
@ -473,14 +478,14 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
aclSpec = Lists.newArrayList(
|
aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo"),
|
aclEntry(ACCESS, USER, FOO),
|
||||||
aclEntry(DEFAULT, USER, "foo"));
|
aclEntry(DEFAULT, USER, FOO));
|
||||||
fs.removeAclEntries(path, aclSpec);
|
fs.removeAclEntries(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
|
@ -500,7 +505,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
// Path has not been created.
|
// Path has not been created.
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo"));
|
aclEntry(ACCESS, USER, FOO));
|
||||||
fs.removeAclEntries(path, aclSpec);
|
fs.removeAclEntries(path, aclSpec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -512,7 +517,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, MASK, EXECUTE),
|
aclEntry(ACCESS, MASK, EXECUTE),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL));
|
aclEntry(ACCESS, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
|
|
||||||
fs.removeAclEntries(path, Lists.newArrayList(aclEntry(ACCESS, MASK, NONE)));
|
fs.removeAclEntries(path, Lists.newArrayList(aclEntry(ACCESS, MASK, NONE)));
|
||||||
|
@ -526,7 +531,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, MASK, EXECUTE),
|
aclEntry(DEFAULT, MASK, EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
|
|
||||||
fs.removeAclEntries(path, Lists.newArrayList(aclEntry(DEFAULT, MASK, NONE)));
|
fs.removeAclEntries(path, Lists.newArrayList(aclEntry(DEFAULT, MASK, NONE)));
|
||||||
|
@ -556,16 +561,16 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
fs.removeDefaultAcl(path);
|
fs.removeDefaultAcl(path);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
||||||
assertPermission(fs, (short) RWX_RWX);
|
assertPermission(fs, (short) RWX_RWX);
|
||||||
}
|
}
|
||||||
|
@ -579,7 +584,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
|
@ -587,7 +592,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
||||||
assertPermission(fs, (short) RWX_RWX);
|
assertPermission(fs, (short) RWX_RWX);
|
||||||
}
|
}
|
||||||
|
@ -599,7 +604,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
fs.removeDefaultAcl(path);
|
fs.removeDefaultAcl(path);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
|
@ -629,16 +634,16 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
fs.removeDefaultAcl(path);
|
fs.removeDefaultAcl(path);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
||||||
assertPermission(fs, (short) STICKY_RWX_RWX);
|
assertPermission(fs, (short) STICKY_RWX_RWX);
|
||||||
}
|
}
|
||||||
|
@ -660,10 +665,10 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
|
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
fs.removeAcl(path);
|
fs.removeAcl(path);
|
||||||
|
@ -696,10 +701,10 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
fs.removeAcl(path);
|
fs.removeAcl(path);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
|
@ -718,7 +723,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
fs.removeAcl(path);
|
fs.removeAcl(path);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
|
@ -744,18 +749,18 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, ALL),
|
aclEntry(DEFAULT, MASK, ALL),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -771,14 +776,14 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, READ_WRITE),
|
aclEntry(ACCESS, USER, READ_WRITE),
|
||||||
aclEntry(ACCESS, USER, "foo", READ),
|
aclEntry(ACCESS, USER, FOO, READ),
|
||||||
aclEntry(ACCESS, GROUP, READ),
|
aclEntry(ACCESS, GROUP, READ),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", READ),
|
aclEntry(ACCESS, USER, FOO, READ),
|
||||||
aclEntry(ACCESS, GROUP, READ) }, returned);
|
aclEntry(ACCESS, GROUP, READ) }, returned);
|
||||||
assertPermission(fs, (short) RW_R);
|
assertPermission(fs, (short) RW_R);
|
||||||
}
|
}
|
||||||
|
@ -790,13 +795,13 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, ALL),
|
aclEntry(DEFAULT, MASK, ALL),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -812,7 +817,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, READ_WRITE),
|
aclEntry(ACCESS, USER, READ_WRITE),
|
||||||
aclEntry(ACCESS, USER, "foo", READ),
|
aclEntry(ACCESS, USER, FOO, READ),
|
||||||
aclEntry(ACCESS, GROUP, READ),
|
aclEntry(ACCESS, GROUP, READ),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
|
@ -856,7 +861,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, READ_WRITE),
|
aclEntry(ACCESS, USER, READ_WRITE),
|
||||||
aclEntry(ACCESS, USER, "foo", READ),
|
aclEntry(ACCESS, USER, FOO, READ),
|
||||||
aclEntry(ACCESS, GROUP, READ),
|
aclEntry(ACCESS, GROUP, READ),
|
||||||
aclEntry(ACCESS, MASK, ALL),
|
aclEntry(ACCESS, MASK, ALL),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
|
@ -864,7 +869,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", READ),
|
aclEntry(ACCESS, USER, FOO, READ),
|
||||||
aclEntry(ACCESS, GROUP, READ) }, returned);
|
aclEntry(ACCESS, GROUP, READ) }, returned);
|
||||||
assertPermission(fs, (short) RW_RWX);
|
assertPermission(fs, (short) RW_RWX);
|
||||||
}
|
}
|
||||||
|
@ -877,18 +882,18 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) 01750));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, ALL),
|
aclEntry(DEFAULT, MASK, ALL),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -903,7 +908,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
// Path has not been created.
|
// Path has not been created.
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, READ_WRITE),
|
aclEntry(ACCESS, USER, READ_WRITE),
|
||||||
aclEntry(ACCESS, USER, "foo", READ),
|
aclEntry(ACCESS, USER, FOO, READ),
|
||||||
aclEntry(ACCESS, GROUP, READ),
|
aclEntry(ACCESS, GROUP, READ),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
|
@ -917,7 +922,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.create(path).close();
|
fs.create(path).close();
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -965,19 +970,19 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RWX));
|
fs.setPermission(path, FsPermission.createImmutable((short) RWX));
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, ALL),
|
aclEntry(DEFAULT, MASK, ALL),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -993,7 +998,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
fs.setPermission(path, FsPermission.createImmutable((short) RW_R));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, READ_WRITE),
|
aclEntry(ACCESS, USER, READ_WRITE),
|
||||||
aclEntry(ACCESS, USER, "foo", READ),
|
aclEntry(ACCESS, USER, FOO, READ),
|
||||||
aclEntry(ACCESS, GROUP, READ),
|
aclEntry(ACCESS, GROUP, READ),
|
||||||
aclEntry(ACCESS, OTHER, NONE));
|
aclEntry(ACCESS, OTHER, NONE));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
|
@ -1001,7 +1006,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", READ),
|
aclEntry(ACCESS, USER, FOO, READ),
|
||||||
aclEntry(ACCESS, GROUP, READ) }, returned);
|
aclEntry(ACCESS, GROUP, READ) }, returned);
|
||||||
assertPermission(fs, (short) RW);
|
assertPermission(fs, (short) RW);
|
||||||
}
|
}
|
||||||
|
@ -1016,14 +1021,14 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
aclEntry(ACCESS, USER, ALL),
|
aclEntry(ACCESS, USER, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(ACCESS, OTHER, NONE),
|
aclEntry(ACCESS, OTHER, NONE),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
fs.setPermission(path, FsPermission.createImmutable((short) RWX));
|
fs.setPermission(path, FsPermission.createImmutable((short) RWX));
|
||||||
AclStatus s = fs.getAclStatus(path);
|
AclStatus s = fs.getAclStatus(path);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, ALL),
|
aclEntry(DEFAULT, MASK, ALL),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -1037,14 +1042,14 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
Path filePath = new Path(path, "file1");
|
Path filePath = new Path(path, "file1");
|
||||||
fs.create(filePath).close();
|
fs.create(filePath).close();
|
||||||
AclStatus s = fs.getAclStatus(filePath);
|
AclStatus s = fs.getAclStatus(filePath);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
||||||
assertPermission(fs, filePath, (short) RW_R);
|
assertPermission(fs, filePath, (short) RW_R);
|
||||||
}
|
}
|
||||||
|
@ -1057,7 +1062,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo", ALL));
|
aclEntry(ACCESS, USER, FOO, ALL));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
Path filePath = new Path(path, "file1");
|
Path filePath = new Path(path, "file1");
|
||||||
fs.create(filePath).close();
|
fs.create(filePath).close();
|
||||||
|
@ -1093,7 +1098,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
|
|
||||||
Path dirPath = new Path(path, "dir1");
|
Path dirPath = new Path(path, "dir1");
|
||||||
|
@ -1102,10 +1107,10 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
AclStatus s = fs.getAclStatus(dirPath);
|
AclStatus s = fs.getAclStatus(dirPath);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, ALL),
|
aclEntry(DEFAULT, MASK, ALL),
|
||||||
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
aclEntry(DEFAULT, OTHER, NONE) }, returned);
|
||||||
|
@ -1119,7 +1124,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(ACCESS, USER, "foo", ALL));
|
aclEntry(ACCESS, USER, FOO, ALL));
|
||||||
fs.modifyAclEntries(path, aclSpec);
|
fs.modifyAclEntries(path, aclSpec);
|
||||||
Path dirPath = new Path(path, "dir1");
|
Path dirPath = new Path(path, "dir1");
|
||||||
fs.mkdirs(dirPath);
|
fs.mkdirs(dirPath);
|
||||||
|
@ -1158,7 +1163,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
Path filePath = new Path(path, "file1");
|
Path filePath = new Path(path, "file1");
|
||||||
int bufferSize = 4 * 1024 * 1024;
|
int bufferSize = 4 * 1024 * 1024;
|
||||||
|
@ -1168,7 +1173,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
AclStatus s = fs.getAclStatus(filePath);
|
AclStatus s = fs.getAclStatus(filePath);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
aclEntry(ACCESS, GROUP, READ_EXECUTE) }, returned);
|
||||||
assertPermission(fs, filePath, (short) RWX_R);
|
assertPermission(fs, filePath, (short) RWX_R);
|
||||||
}
|
}
|
||||||
|
@ -1180,17 +1185,17 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
path = new Path(testRoot, UUID.randomUUID().toString());
|
path = new Path(testRoot, UUID.randomUUID().toString());
|
||||||
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX_RX));
|
FileSystem.mkdirs(fs, path, FsPermission.createImmutable((short) RWX_RX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(path, aclSpec);
|
fs.setAcl(path, aclSpec);
|
||||||
Path dirPath = new Path(path, "dir1");
|
Path dirPath = new Path(path, "dir1");
|
||||||
fs.mkdirs(dirPath, new FsPermission((short) RWX_R));
|
fs.mkdirs(dirPath, new FsPermission((short) RWX_R));
|
||||||
AclStatus s = fs.getAclStatus(dirPath);
|
AclStatus s = fs.getAclStatus(dirPath);
|
||||||
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
AclEntry[] returned = s.getEntries().toArray(new AclEntry[0]);
|
||||||
assertArrayEquals(new AclEntry[] {
|
assertArrayEquals(new AclEntry[] {
|
||||||
aclEntry(ACCESS, USER, "foo", ALL),
|
aclEntry(ACCESS, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
aclEntry(ACCESS, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, USER, ALL),
|
aclEntry(DEFAULT, USER, ALL),
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
aclEntry(DEFAULT, GROUP, READ_EXECUTE),
|
||||||
aclEntry(DEFAULT, MASK, ALL),
|
aclEntry(DEFAULT, MASK, ALL),
|
||||||
aclEntry(DEFAULT, OTHER, READ_EXECUTE) }, returned);
|
aclEntry(DEFAULT, OTHER, READ_EXECUTE) }, returned);
|
||||||
|
@ -1205,7 +1210,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
Path dirPath = new Path(path, "dir");
|
Path dirPath = new Path(path, "dir");
|
||||||
FileSystem.mkdirs(fs, dirPath, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, dirPath, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(dirPath, aclSpec);
|
fs.setAcl(dirPath, aclSpec);
|
||||||
Path filePath = new Path(path, "file1");
|
Path filePath = new Path(path, "file1");
|
||||||
fs.create(filePath).close();
|
fs.create(filePath).close();
|
||||||
|
@ -1227,7 +1232,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
Path dirPath = new Path(path, "dir");
|
Path dirPath = new Path(path, "dir");
|
||||||
FileSystem.mkdirs(fs, dirPath, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, dirPath, FsPermission.createImmutable((short) RWX_RX));
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL));
|
aclEntry(DEFAULT, USER, FOO, ALL));
|
||||||
fs.setAcl(dirPath, aclSpec);
|
fs.setAcl(dirPath, aclSpec);
|
||||||
Path subdirPath = new Path(path, "subdir");
|
Path subdirPath = new Path(path, "subdir");
|
||||||
FileSystem.mkdirs(fs, subdirPath, FsPermission.createImmutable((short) RWX_RX));
|
FileSystem.mkdirs(fs, subdirPath, FsPermission.createImmutable((short) RWX_RX));
|
||||||
|
@ -1248,17 +1253,17 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
Path rootPath = new Path("/");
|
Path rootPath = new Path("/");
|
||||||
|
|
||||||
List<AclEntry> aclSpec1 = Lists.newArrayList(
|
List<AclEntry> aclSpec1 = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, GROUP, "foo", ALL),
|
aclEntry(DEFAULT, GROUP, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, "bar", ALL));
|
aclEntry(ACCESS, GROUP, BAR, ALL));
|
||||||
fs.setAcl(rootPath, aclSpec1);
|
fs.setAcl(rootPath, aclSpec1);
|
||||||
fs.getAclStatus(rootPath);
|
fs.getAclStatus(rootPath);
|
||||||
|
|
||||||
fs.setOwner(rootPath, "", "testgroup");
|
fs.setOwner(rootPath, TEST_OWNER, TEST_GROUP);
|
||||||
fs.setPermission(rootPath, new FsPermission("777"));
|
fs.setPermission(rootPath, new FsPermission("777"));
|
||||||
|
|
||||||
List<AclEntry> aclSpec2 = Lists.newArrayList(
|
List<AclEntry> aclSpec2 = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, USER, "foo", ALL),
|
aclEntry(DEFAULT, USER, FOO, ALL),
|
||||||
aclEntry(ACCESS, USER, "bar", ALL));
|
aclEntry(ACCESS, USER, BAR, ALL));
|
||||||
fs.modifyAclEntries(rootPath, aclSpec2);
|
fs.modifyAclEntries(rootPath, aclSpec2);
|
||||||
fs.removeAclEntries(rootPath, aclSpec2);
|
fs.removeAclEntries(rootPath, aclSpec2);
|
||||||
fs.removeDefaultAcl(rootPath);
|
fs.removeDefaultAcl(rootPath);
|
||||||
|
@ -1275,7 +1280,7 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
assertTrue(fs.exists(filePath));
|
assertTrue(fs.exists(filePath));
|
||||||
|
|
||||||
FileStatus oldFileStatus = fs.getFileStatus(filePath);
|
FileStatus oldFileStatus = fs.getFileStatus(filePath);
|
||||||
fs.setOwner(filePath, "Alice", "testGroup");
|
fs.setOwner(filePath, TEST_OWNER, TEST_GROUP);
|
||||||
FileStatus newFileStatus = fs.getFileStatus(filePath);
|
FileStatus newFileStatus = fs.getFileStatus(filePath);
|
||||||
|
|
||||||
assertEquals(oldFileStatus.getOwner(), newFileStatus.getOwner());
|
assertEquals(oldFileStatus.getOwner(), newFileStatus.getOwner());
|
||||||
|
@ -1309,8 +1314,8 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.create(filePath);
|
fs.create(filePath);
|
||||||
try {
|
try {
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, GROUP, "foo", ALL),
|
aclEntry(DEFAULT, GROUP, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, "bar", ALL));
|
aclEntry(ACCESS, GROUP, BAR, ALL));
|
||||||
fs.modifyAclEntries(filePath, aclSpec);
|
fs.modifyAclEntries(filePath, aclSpec);
|
||||||
assertFalse("UnsupportedOperationException is expected", false);
|
assertFalse("UnsupportedOperationException is expected", false);
|
||||||
} catch (UnsupportedOperationException ex) {
|
} catch (UnsupportedOperationException ex) {
|
||||||
|
@ -1326,8 +1331,8 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.create(filePath);
|
fs.create(filePath);
|
||||||
try {
|
try {
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, GROUP, "foo", ALL),
|
aclEntry(DEFAULT, GROUP, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, "bar", ALL));
|
aclEntry(ACCESS, GROUP, BAR, ALL));
|
||||||
fs.removeAclEntries(filePath, aclSpec);
|
fs.removeAclEntries(filePath, aclSpec);
|
||||||
assertFalse("UnsupportedOperationException is expected", false);
|
assertFalse("UnsupportedOperationException is expected", false);
|
||||||
} catch (UnsupportedOperationException ex) {
|
} catch (UnsupportedOperationException ex) {
|
||||||
|
@ -1371,8 +1376,8 @@ public class ITestAzureBlobFilesystemAcl extends AbstractAbfsIntegrationTest {
|
||||||
fs.create(filePath);
|
fs.create(filePath);
|
||||||
try {
|
try {
|
||||||
List<AclEntry> aclSpec = Lists.newArrayList(
|
List<AclEntry> aclSpec = Lists.newArrayList(
|
||||||
aclEntry(DEFAULT, GROUP, "foo", ALL),
|
aclEntry(DEFAULT, GROUP, FOO, ALL),
|
||||||
aclEntry(ACCESS, GROUP, "bar", ALL));
|
aclEntry(ACCESS, GROUP, BAR, ALL));
|
||||||
fs.setAcl(filePath, aclSpec);
|
fs.setAcl(filePath, aclSpec);
|
||||||
assertFalse("UnsupportedOperationException is expected", false);
|
assertFalse("UnsupportedOperationException is expected", false);
|
||||||
} catch (UnsupportedOperationException ex) {
|
} catch (UnsupportedOperationException ex) {
|
||||||
|
|
Loading…
Reference in New Issue