private TimelineACLsManager.AccessControlListExt PutDomainIntoCache(TimelineDomain domain) { IDictionary <ApplicationAccessType, AccessControlList> acls = new Dictionary <ApplicationAccessType , AccessControlList>(2); acls[ApplicationAccessType.ViewApp] = new AccessControlList(StringHelper.Cjoin(domain .GetReaders())); acls[ApplicationAccessType.ModifyApp] = new AccessControlList(StringHelper.Cjoin( domain.GetWriters())); TimelineACLsManager.AccessControlListExt aclExt = new TimelineACLsManager.AccessControlListExt (domain.GetOwner(), acls); aclExts[domain.GetId()] = aclExt; return(aclExt); }
/// <exception cref="System.IO.IOException"/> public virtual TimelineDomain GetDomain(string domainId) { TimelineDomain domain = domainsById[domainId]; if (domain == null) { return(null); } else { return(CreateTimelineDomain(domain.GetId(), domain.GetDescription(), domain.GetOwner (), domain.GetReaders(), domain.GetWriters(), domain.GetCreatedTime(), domain.GetModifiedTime ())); } }
/// <exception cref="System.IO.IOException"/> public virtual void Put(TimelineDomain domain) { TimelineDomain domainToReplace = domainsById[domain.GetId()]; long currentTimestamp = Runtime.CurrentTimeMillis(); TimelineDomain domainToStore = CreateTimelineDomain(domain.GetId(), domain.GetDescription (), domain.GetOwner(), domain.GetReaders(), domain.GetWriters(), (domainToReplace == null ? currentTimestamp : domainToReplace.GetCreatedTime()), currentTimestamp ); domainsById[domainToStore.GetId()] = domainToStore; ICollection <TimelineDomain> domainsByOneOwner = domainsByOwner[domainToStore.GetOwner ()]; if (domainsByOneOwner == null) { domainsByOneOwner = new HashSet <TimelineDomain>(); domainsByOwner[domainToStore.GetOwner()] = domainsByOneOwner; } if (domainToReplace != null) { domainsByOneOwner.Remove(domainToReplace); } domainsByOneOwner.AddItem(domainToStore); }
/// <exception cref="System.Exception"/> public virtual void TestDSShell(bool haveDomain) { string[] args = new string[] { "--jar", AppmasterJar, "--num_containers", "2", "--shell_command" , Shell.Windows ? "dir" : "ls", "--master_memory", "512", "--master_vcores", "2" , "--container_memory", "128", "--container_vcores", "1" }; if (haveDomain) { string[] domainArgs = new string[] { "--domain", "TEST_DOMAIN", "--view_acls", "reader_user reader_group" , "--modify_acls", "writer_user writer_group", "--create" }; IList <string> argsList = new AList <string>(Arrays.AsList(args)); Sharpen.Collections.AddAll(argsList, Arrays.AsList(domainArgs)); args = Sharpen.Collections.ToArray(argsList, new string[argsList.Count]); } Log.Info("Initializing DS Client"); Client client = new Client(new Configuration(yarnCluster.GetConfig())); bool initSuccess = client.Init(args); NUnit.Framework.Assert.IsTrue(initSuccess); Log.Info("Running DS Client"); AtomicBoolean result = new AtomicBoolean(false); Sharpen.Thread t = new _Thread_194(result, client); t.Start(); YarnClient yarnClient = YarnClient.CreateYarnClient(); yarnClient.Init(new Configuration(yarnCluster.GetConfig())); yarnClient.Start(); string hostName = NetUtils.GetHostname(); bool verified = false; string errorMessage = string.Empty; while (!verified) { IList <ApplicationReport> apps = yarnClient.GetApplications(); if (apps.Count == 0) { Sharpen.Thread.Sleep(10); continue; } ApplicationReport appReport = apps[0]; if (appReport.GetHost().Equals("N/A")) { Sharpen.Thread.Sleep(10); continue; } errorMessage = "Expected host name to start with '" + hostName + "', was '" + appReport .GetHost() + "'. Expected rpc port to be '-1', was '" + appReport.GetRpcPort() + "'."; if (CheckHostname(appReport.GetHost()) && appReport.GetRpcPort() == -1) { verified = true; } if (appReport.GetYarnApplicationState() == YarnApplicationState.Finished) { break; } } NUnit.Framework.Assert.IsTrue(errorMessage, verified); t.Join(); Log.Info("Client run completed. Result=" + result); NUnit.Framework.Assert.IsTrue(result.Get()); TimelineDomain domain = null; if (haveDomain) { domain = yarnCluster.GetApplicationHistoryServer().GetTimelineStore().GetDomain("TEST_DOMAIN" ); NUnit.Framework.Assert.IsNotNull(domain); NUnit.Framework.Assert.AreEqual("reader_user reader_group", domain.GetReaders()); NUnit.Framework.Assert.AreEqual("writer_user writer_group", domain.GetWriters()); } TimelineEntities entitiesAttempts = yarnCluster.GetApplicationHistoryServer().GetTimelineStore ().GetEntities(ApplicationMaster.DSEntity.DsAppAttempt.ToString(), null, null, null , null, null, null, null, null, null); NUnit.Framework.Assert.IsNotNull(entitiesAttempts); NUnit.Framework.Assert.AreEqual(1, entitiesAttempts.GetEntities().Count); NUnit.Framework.Assert.AreEqual(2, entitiesAttempts.GetEntities()[0].GetEvents(). Count); NUnit.Framework.Assert.AreEqual(entitiesAttempts.GetEntities()[0].GetEntityType() .ToString(), ApplicationMaster.DSEntity.DsAppAttempt.ToString()); if (haveDomain) { NUnit.Framework.Assert.AreEqual(domain.GetId(), entitiesAttempts.GetEntities()[0] .GetDomainId()); } else { NUnit.Framework.Assert.AreEqual("DEFAULT", entitiesAttempts.GetEntities()[0].GetDomainId ()); } TimelineEntities entities = yarnCluster.GetApplicationHistoryServer().GetTimelineStore ().GetEntities(ApplicationMaster.DSEntity.DsContainer.ToString(), null, null, null , null, null, null, null, null, null); NUnit.Framework.Assert.IsNotNull(entities); NUnit.Framework.Assert.AreEqual(2, entities.GetEntities().Count); NUnit.Framework.Assert.AreEqual(entities.GetEntities()[0].GetEntityType().ToString (), ApplicationMaster.DSEntity.DsContainer.ToString()); if (haveDomain) { NUnit.Framework.Assert.AreEqual(domain.GetId(), entities.GetEntities()[0].GetDomainId ()); } else { NUnit.Framework.Assert.AreEqual("DEFAULT", entities.GetEntities()[0].GetDomainId( )); } }