AdlsDotNetSDK/AclTools/Jobs/ChangeAclJob.cs (41 lines of code) (raw):
namespace Microsoft.Azure.DataLake.Store.AclTools.Jobs
{
internal class ChangeAclJob : BaseJob
{
private readonly AclProcessor _aclProcess;
private readonly string _fullPath;
private readonly DirectoryEntryType _entryType;
internal ChangeAclJob(AclProcessor aclProcess, string fullPath, DirectoryEntryType type):base(2)
{
_aclProcess = aclProcess;
_fullPath = fullPath;
_entryType = type;
}
protected override object DoJob()
{
var aclEntries = _entryType == DirectoryEntryType.DIRECTORY ? _aclProcess.AclEntries : _aclProcess.FileAclEntries;
if ( _aclProcess.Type== RequestedAclType.SetAcl)
{
_aclProcess.Client.SetAcl(_fullPath, aclEntries);
}
else if (_aclProcess.Type == RequestedAclType.ModifyAcl)
{
_aclProcess.Client.ModifyAclEntries(_fullPath, aclEntries);
}
else if (_aclProcess.Type == RequestedAclType.RemoveAcl)
{
_aclProcess.Client.RemoveAclEntries(_fullPath, aclEntries);
}
return null;
}
protected override string JobDetails()
{
return $"EntryName: {_fullPath}, EntryType: {_entryType}";
}
protected override string JobType()
{
return $"AclProcessor.{_aclProcess.Type}";
}
}
}