项目:hadoop
文件:Snapshot.java
Root(INodeDirectory other) {
// Always preserve ACL,XAttr.
super(other,false,Lists.newArrayList(
Iterables.filter(Arrays.asList(other.getFeatures()),new Predicate<Feature>() {
@Override
public boolean apply(Feature input) {
if (AclFeature.class.isinstance(input)
|| XAttrFeature.class.isinstance(input)) {
return true;
}
return false;
}
}))
.toArray(new Feature[0]));
}
项目:aliyun-oss-hadoop-fs
文件:Snapshot.java
Root(INodeDirectory other) {
// Always preserve ACL,new Predicate<Feature>() {
@Override
public boolean apply(Feature input) {
if (AclFeature.class.isinstance(input)
|| XAttrFeature.class.isinstance(input)) {
return true;
}
return false;
}
}))
.toArray(new Feature[0]));
}
项目:big-c
文件:Snapshot.java
Root(INodeDirectory other) {
// Always preserve ACL,new Predicate<Feature>() {
@Override
public boolean apply(Feature input) {
if (AclFeature.class.isinstance(input)
|| XAttrFeature.class.isinstance(input)) {
return true;
}
return false;
}
}))
.toArray(new Feature[0]));
}
项目:hadoop-2.6.0-cdh5.4.3
文件:Snapshot.java
Root(INodeDirectory other) {
// Always preserve ACL,new Predicate<Feature>() {
@Override
public boolean apply(Feature input) {
if (AclFeature.class.isinstance(input)
|| XAttrFeature.class.isinstance(input)) {
return true;
}
return false;
}
}))
.toArray(new Feature[0]));
}
项目:FlexMap
文件:Snapshot.java
Root(INodeDirectory other) {
// Always preserve ACL,new Predicate<Feature>() {
@Override
public boolean apply(Feature input) {
if (AclFeature.class.isinstance(input)
|| XAttrFeature.class.isinstance(input)) {
return true;
}
return false;
}
}))
.toArray(new Feature[0]));
}
项目:hadoop
文件:TestAclWithSnapshot.java
private void deleteSnapshotWithAclAndVerify(AclFeature aclFeature,Path pathtocheckAcl,int totalAclFeatures) throws IOException {
hdfs.deleteSnapshot(path,snapshotName);
AclFeature afterDeleteAclFeature = FSAclBaseTest.getAclFeature(
pathtocheckAcl,cluster);
assertSame(aclFeature,afterDeleteAclFeature);
assertEquals("Reference count should remain same"
+ " even after deletion of snapshot",1,afterDeleteAclFeature.getRefCount());
hdfs.removeAcl(pathtocheckAcl);
assertEquals("Reference count should be 0",aclFeature.getRefCount());
assertEquals("Unique ACL features should remain same",totalAclFeatures,AclStorage.getUniqueAclFeatures().getUniqueElementsSize());
}
项目:aliyun-oss-hadoop-fs
文件:TestAclWithSnapshot.java
private void deleteSnapshotWithAclAndVerify(AclFeature aclFeature,AclStorage.getUniqueAclFeatures().getUniqueElementsSize());
}
项目:big-c
文件:TestAclWithSnapshot.java
private void deleteSnapshotWithAclAndVerify(AclFeature aclFeature,AclStorage.getUniqueAclFeatures().getUniqueElementsSize());
}
项目:incubator-sentry
文件:SentryAuthorizationProvider.java
private void checkAndRemoveHdfsAcl(INodeAuthorizationInfo node,boolean warn) {
AclFeature f = defaultAuthzProvider.getAclFeature(node,Snapshot.CURRENT_STATE_ID);
if (f != null) {
defaultAuthzProvider.removeAclFeature(node);
} else {
if (warn) {
LOG.warn("### removeAclFeature is requested on {},but it does not " +
"have any acl.",node);
}
}
}
项目:incubator-sentry
文件:SentryAuthorizationProvider.java
@Override
public void addAclFeature(INodeAuthorizationInfo node,AclFeature f) {
// always fall through to defaultAuthZProvider,// issue warning when the path is sentry managed
if (isSentryManaged(node)) {
LOG.warn("### addAclFeature {} (sentry managed path) {},update HDFS." +
WARN_VISIBILITY,node.getFullPathName(),f.toString());
// For Sentry-managed path,remove ACL silently before adding new ACL
checkAndRemoveHdfsAcl(node,false);
}
defaultAuthzProvider.addAclFeature(node,f);
}
项目:FlexMap
文件:INodeSymlink.java
@Override
public void addAclFeature(AclFeature f) {
throw new UnsupportedOperationException("ACLs are not supported on symlinks");
}
项目:hadoop-on-lustre2
文件:Snapshot.java
Root(INodeDirectory other) {
// Always preserve ACL.
super(other,AclFeature.class))
.toArray(new Feature[0]));
}
项目:incubator-sentry
文件:SentryAuthorizationProvider.java
@Override
public AclFeature getAclFeature(INodeAuthorizationInfo node,int snapshotId) {
AclFeature f = null;
String[] pathelements = getpathelements(node);
String p = Arrays.toString(pathelements);
boolean isPrefixed = false;
boolean isstale = false;
boolean hasAuthzObj = false;
Map<String,AclEntry> aclMap = null;
if (!authzInfo.isUnderPrefix(pathelements)) {
isPrefixed = false;
f = defaultAuthzProvider.getAclFeature(node,snapshotId);
} else if (!authzInfo.doesBelongToAuthzObject(pathelements)) {
isPrefixed = true;
f = defaultAuthzProvider.getAclFeature(node,snapshotId);
} else {
isPrefixed = true;
hasAuthzObj = true;
aclMap = new HashMap<String,AclEntry>();
if (originalAuthzAsAcl) {
String user = defaultAuthzProvider.getUser(node,snapshotId);
String group = getDefaultProviderGroup(node,snapshotId);
FsPermission perm = defaultAuthzProvider.getFsPermission(node,snapshotId);
addToACLMap(aclMap,createAclEntries(user,group,perm));
} else {
addToACLMap(aclMap,createAclEntries(this.user,this.group,this.permission));
}
if (!authzInfo.isstale()) {
isstale = false;
addToACLMap(aclMap,authzInfo.getAclEntries(pathelements));
f = new SentryAclFeature(ImmutableList.copyOf(aclMap.values()));
} else {
isstale = true;
f = new SentryAclFeature(ImmutableList.copyOf(aclMap.values()));
}
}
if (LOG.isDebugEnabled()) {
LOG.debug("### getAclEntry \n[" + p + "] : ["
+ "isPreifxed=" + isPrefixed
+ ",isstale=" + isstale
+ ",hasAuthzObj=" + hasAuthzObj
+ ",origAuthzAsAcl=" + originalAuthzAsAcl + "]\n"
+ "[" + (aclMap == null ? "null" : aclMap) + "]\n"
+ "[" + (f == null ? "null" : f.getEntries()) + "]\n");
}
return f;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。