Exemplo n.º 1
0
        public void AclProcessorReturnsLinksTest()
        {
            if (!_shoudRunLinkTests)
            {
                Assert.Inconclusive();
            }

            void verifyAclLinkForPath(string rootPath, string LinkPath)
            {
                // Apply acls
                var aclStats = AclProcessor.RunAclProcessor(rootPath, _adlsClient, _aclEntriesToSet, RequestedAclType.ModifyAcl, 25);

                Assert.AreEqual(aclStats.LinkPaths.Length, 1);
                Assert.AreEqual(aclStats.LinkPaths[0], LinkPath);

                // runc acl verifier
                var aclVerifyStatsPath1 =
                    AclProcessor.RunAclVerifier(rootPath, _adlsClient, _aclEntriesToSet, RequestedAclType.ModifyAcl, 25);

                Assert.IsTrue(aclStats.FilesProcessed == aclVerifyStatsPath1.FilesProcessed);
                Assert.IsTrue(aclStats.DirectoryProcessed == aclVerifyStatsPath1.DirectoryProcessed);
                Assert.IsTrue(0 == aclVerifyStatsPath1.IncorrectFileCount);
                Assert.IsTrue(0 == aclVerifyStatsPath1.IncorrectDirectoryCount);

                // Make sure acl entries are not set on link
                var aclEntriesLinkPath = _adlsClient.GetAclStatus(LinkPath).Entries.ToArray();

                foreach (var aclEntry in _aclEntriesToSet)
                {
                    Assert.IsFalse(aclEntriesLinkPath.Contains(aclEntry));
                }
            }

            verifyAclLinkForPath(LinkPath1Root, LinkPath1);
        }
Exemplo n.º 2
0
        public void TestSetAcl()
        {
            SemSetAcl.WaitOne();
            if (_setAclRun)
            {
                SemSetAcl.Release();
                return;
            }
            List <AclEntry> aclEntries2 = GetAclEntryForSet();
            List <AclEntry> aclEntries3 = new List <AclEntry>(aclEntries2)
            {
                //Add the default permission ACLs
                new AclEntry(AclType.user, "", AclScope.Access, AclAction.All),
                new AclEntry(AclType.group, "", AclScope.Access, AclAction.All),
                new AclEntry(AclType.other, "", AclScope.Access, AclAction.None)
            };
            var aclStats = AclProcessor.RunAclProcessor(remotePath + "/B1", _adlsClient, aclEntries3,
                                                        RequestedAclType.SetAcl, 25);
            var aclVerifyStats =
                AclProcessor.RunAclVerifier(remotePath + "/B1", _adlsClient, aclEntries2, RequestedAclType.SetAcl, 10);

            Assert.IsTrue(aclStats.FilesProcessed == aclVerifyStats.FilesProcessed);
            Assert.IsTrue(aclStats.DirectoryProcessed == aclVerifyStats.DirectoryProcessed);
            Assert.IsTrue(aclStats.FilesProcessed == aclVerifyStats.FilesCorrect);
            Assert.IsTrue(aclStats.DirectoryProcessed == aclVerifyStats.DirectoriesCorrect);
            _setAclRun = true;
            SemSetAcl.Release();
        }
Exemplo n.º 3
0
        public static void CleanTests()
        {
            foreach (var dir in createdDirs)
            {
                _adlsClient.DeleteRecursive(dir);
            }

            var aclStatsPaths1 = AclProcessor.RunAclProcessor(LinkPath1Root, _adlsClient, _aclEntriesToSet, RequestedAclType.RemoveAcl, 25);
        }
Exemplo n.º 4
0
        public void TestModifyOnlyDefaultAcl()
        {
            List <AclEntry> aclEntries1 = GetAclEntryDefault();
            var             aclStats    = AclProcessor.RunAclProcessor(UnitTestPath + "/B0", _adlsClient, aclEntries1,
                                                                       RequestedAclType.ModifyAcl, 25);
            var aclVerifyStats =
                AclProcessor.RunAclVerifier(UnitTestPath + "/B0", _adlsClient, aclEntries1, RequestedAclType.ModifyAcl, 25);

            Assert.IsTrue(aclStats.FilesProcessed == aclVerifyStats.FilesProcessed);
            Assert.IsTrue(aclStats.DirectoryProcessed == aclVerifyStats.DirectoryProcessed);
            Assert.IsTrue(0 == aclVerifyStats.IncorrectFileCount);
            Assert.IsTrue(0 == aclVerifyStats.IncorrectDirectoryCount);
        }
Exemplo n.º 5
0
        public void RemoveAcl()
        {
            TestModifyAcl();
            List <AclEntry> aclEntries1 = GetAclEntryForModifyAndRemove();
            var             aclStats    = AclProcessor.RunAclProcessor(remotePath + "/B0", _adlsClient, aclEntries1,
                                                                       RequestedAclType.RemoveAcl, 10);
            var aclVerifyStats =
                AclProcessor.RunAclVerifier(remotePath + "/B0", _adlsClient, aclEntries1, RequestedAclType.RemoveAcl, 10);

            Assert.IsTrue(aclStats.FilesProcessed == aclVerifyStats.FilesProcessed);
            Assert.IsTrue(aclStats.DirectoryProcessed == aclVerifyStats.DirectoryProcessed);
            Assert.IsTrue(aclStats.FilesProcessed == aclVerifyStats.FilesCorrect);
            Assert.IsTrue(aclStats.DirectoryProcessed == aclVerifyStats.DirectoriesCorrect);
        }
Exemplo n.º 6
0
        public void TestModifyAcl()
        {
            SemModifyAcl.WaitOne();
            if (_modifyAclRun)
            {
                SemModifyAcl.Release();
                return;
            }
            List <AclEntry> aclEntries1 = GetAclEntryForModifyAndRemove();
            var             aclStats    = AclProcessor.RunAclProcessor(remotePath + "/B0", _adlsClient, aclEntries1,
                                                                       RequestedAclType.ModifyAcl, 25);
            var aclVerifyStats =
                AclProcessor.RunAclVerifier(remotePath + "/B0", _adlsClient, aclEntries1, RequestedAclType.ModifyAcl, 25);

            Assert.IsTrue(aclStats.FilesProcessed == aclVerifyStats.FilesProcessed);
            Assert.IsTrue(aclStats.DirectoryProcessed == aclVerifyStats.DirectoryProcessed);
            Assert.IsTrue(aclStats.FilesProcessed == aclVerifyStats.FilesCorrect);
            Assert.IsTrue(aclStats.DirectoryProcessed == aclVerifyStats.DirectoriesCorrect);
            _modifyAclRun = true;
            SemModifyAcl.Release();
        }
Exemplo n.º 7
0
        public void TestSetAclVerification()
        {
            string          path        = UnitTestPath + "/B2";
            List <AclEntry> aclEntries1 = GetAclEntryForModifyAndRemove();

            GetExpectedOutput(_oneLevelDirCount, _oneLevelFileCnt, _recurseLevel - 1, _oneFileSize, out var expectedFileCount, out var expectedDirCount, out var expectedFileSize);
            expectedDirCount += 1;
            var status = AclProcessor.RunAclVerifier(path, _adlsClient, aclEntries1, RequestedAclType.ModifyAcl, 25);

            Assert.IsTrue(status.FilesProcessed == expectedFileCount);
            Assert.IsTrue(status.DirectoryProcessed == expectedDirCount);
            Assert.IsTrue(status.IncorrectFileCount == expectedFileCount);
            Assert.IsTrue(status.IncorrectDirectoryCount == expectedDirCount);
            _adlsClient.ModifyAclEntries(path, aclEntries1);
            status = AclProcessor.RunAclVerifier(path, _adlsClient, aclEntries1, RequestedAclType.ModifyAcl, 25);
            Assert.IsTrue(status.FilesProcessed == expectedFileCount);
            Assert.IsTrue(status.DirectoryProcessed == expectedDirCount);
            Assert.IsTrue(status.IncorrectFileCount == expectedFileCount);
            Assert.IsTrue(status.IncorrectDirectoryCount == expectedDirCount - 1);

            var aclStats = AclProcessor.RunAclProcessor(UnitTestPath + "/B2/C0", _adlsClient, aclEntries1, RequestedAclType.ModifyAcl, 25);

            GetExpectedOutput(_oneLevelDirCount, _oneLevelFileCnt, _recurseLevel - 2, _oneFileSize, out var expectedFileCountSub, out var expectedDirCountSub, out var expectedFileSizeSub);
            expectedDirCountSub += 1;

            status = AclProcessor.RunAclVerifier(path, _adlsClient, aclEntries1, RequestedAclType.ModifyAcl, 25, LocalPath + @"\verificationfile");
            Assert.IsTrue(status.FilesProcessed == expectedFileCount);
            Assert.IsTrue(status.DirectoryProcessed == expectedDirCount);
            Assert.IsTrue(status.IncorrectFileCount == expectedFileCount - expectedFileCountSub);
            Assert.IsTrue(status.IncorrectDirectoryCount == expectedDirCount - 1 - expectedDirCountSub);

            AclProcessor.RunAclProcessor(UnitTestPath + "/B2/C1", _adlsClient, aclEntries1, RequestedAclType.ModifyAcl, 25);

            status = AclProcessor.RunAclVerifier(path, _adlsClient, aclEntries1, RequestedAclType.ModifyAcl, 25, LocalPath + @"\verificationfile1");
            Assert.IsTrue(status.FilesProcessed == expectedFileCount);
            Assert.IsTrue(status.DirectoryProcessed == expectedDirCount);
            Assert.IsTrue(status.IncorrectFileCount == expectedFileCount - 2 * expectedFileCountSub);
            Assert.IsTrue(status.IncorrectDirectoryCount == expectedDirCount - 1 - 2 * expectedDirCountSub);
        }
 internal VerifyChangeAclJob(AclProcessor aclProcess, string fullPath, DirectoryEntryType type) : base(1)
 {
     _aclProcess = aclProcess;
     _fullPath   = fullPath;
     _entryType  = type;
 }
 internal EnumerateDirectoryChangeAclJob(AclProcessor aclProcess, string fullPath) : base(1)
 {
     _aclProcess = aclProcess;
     _fullPath   = fullPath;
 }
Exemplo n.º 10
0
 internal EnumerateDirectoryChangeAclJob(AclProcessor aclProcess, string fullPath, string ltAfter = "") : base(1)
 {
     _aclProcess = aclProcess;
     FullPath    = fullPath;
     listAfter   = ltAfter;
 }