Example #1
0
 public _PrivilegedExceptionAction_261(LogAggregationService _enclosing, ApplicationId
                                       appId, string user)
 {
     this._enclosing = _enclosing;
     this.appId      = appId;
     this.user       = user;
 }
Example #2
0
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (Uuid != null)
         {
             hashCode = hashCode * 59 + Uuid.GetHashCode();
         }
         if (Name != null)
         {
             hashCode = hashCode * 59 + Name.GetHashCode();
         }
         if (Description != null)
         {
             hashCode = hashCode * 59 + Description.GetHashCode();
         }
         if (ApplicationId != null)
         {
             hashCode = hashCode * 59 + ApplicationId.GetHashCode();
         }
         if (Permissions != null)
         {
             hashCode = hashCode * 59 + Permissions.GetHashCode();
         }
         return(hashCode);
     }
 }
Example #3
0
        /// <summary>
        /// Construct V3 recognizer options from the current dialog context.
        /// </summary>
        /// <param name="dialogContext">Context.</param>
        /// <returns>LUIS Recognizer options.</returns>
        public LuisRecognizerOptionsV3 RecognizerOptions(DialogContext dialogContext)
        {
            var options = PredictionOptions;

            if (DynamicLists != null)
            {
                options = new AI.LuisV3.LuisPredictionOptions(options);
                var list = new List <AI.LuisV3.DynamicList>();
                foreach (var listEntity in DynamicLists.GetValue(dialogContext.State))
                {
                    list.Add(new AI.LuisV3.DynamicList(listEntity.Entity, listEntity.List));
                }

                options.DynamicLists = list;
            }

            var application = new LuisApplication(ApplicationId.GetValue(dialogContext.State), EndpointKey.GetValue(dialogContext.State), Endpoint.GetValue(dialogContext.State));

            return(new LuisRecognizerOptionsV3(application)
            {
                ExternalEntityRecognizer = ExternalEntityRecognizer,
                PredictionOptions = options,
                TelemetryClient = TelemetryClient
            });
        }
        private void ConfigureRequestFiltering()
        {
            // MVC routing
            Environment.Host.RouteBuilder.MapWebApiRoute(Defines.Resource.Guid, $"{Defines.PATH}/{{id?}}", new { controller = "requestfiltering" });

            // Self
            Environment.Hal.ProvideLink(Defines.Resource.Guid, "self", rf => new { href = RequestFilteringHelper.GetLocation(rf.id) });


            // Web Server
            Environment.Hal.ProvideLink(WebServer.Defines.Resource.Guid, Defines.Resource.Name, _ => {
                var id = GetRequestFilteringId(null, null);
                return(new { href = RequestFilteringHelper.GetLocation(id.Uuid) });
            });

            // Site
            Environment.Hal.ProvideLink(Sites.Defines.Resource.Guid, Defines.Resource.Name, site => {
                var siteId = new SiteId((string)site.id);
                Site s     = SiteHelper.GetSite(siteId.Id);
                var id     = GetRequestFilteringId(s, "/");
                return(new { href = RequestFilteringHelper.GetLocation(id.Uuid) });
            });

            // Application
            Environment.Hal.ProvideLink(Applications.Defines.Resource.Guid, Defines.Resource.Name, app => {
                var appId = new ApplicationId((string)app.id);
                Site s    = SiteHelper.GetSite(appId.SiteId);
                var id    = GetRequestFilteringId(s, appId.Path);
                return(new { href = RequestFilteringHelper.GetLocation(id.Uuid) });
            });
        }
Example #5
0
        /// <exception cref="System.Exception"/>
        public virtual KillApplicationResponse KillApp(ApplicationId appId)
        {
            ApplicationClientProtocol client = GetClientRMService();
            KillApplicationRequest    req    = KillApplicationRequest.NewInstance(appId);

            return(client.ForceKillApplication(req));
        }
Example #6
0
        /// <summary>Test the AuditLog format for failure events.</summary>
        private void TestFailureLogFormatHelper(bool checkIP, ApplicationId appId, ApplicationAttemptId
                                                attemptId, ContainerId containerId)
        {
            string fLog = RMAuditLogger.CreateFailureLog(User, Operation, Perm, Target, Desc,
                                                         appId, attemptId, containerId);
            StringBuilder expLog = new StringBuilder();

            expLog.Append("USER=test\t");
            if (checkIP)
            {
                IPAddress ip = Org.Apache.Hadoop.Ipc.Server.GetRemoteIp();
                expLog.Append(RMAuditLogger.Keys.Ip.ToString() + "=" + ip.GetHostAddress() + "\t"
                              );
            }
            expLog.Append("OPERATION=oper\tTARGET=tgt\tRESULT=FAILURE\t");
            expLog.Append("DESCRIPTION=description of an audit log");
            expLog.Append("\tPERMISSIONS=admin group");
            if (appId != null)
            {
                expLog.Append("\tAPPID=app_1");
            }
            if (attemptId != null)
            {
                expLog.Append("\tAPPATTEMPTID=app_attempt_1");
            }
            if (containerId != null)
            {
                expLog.Append("\tCONTAINERID=container_1");
            }
            NUnit.Framework.Assert.AreEqual(expLog.ToString(), fLog);
        }
        private void ConfigureStaticContent()
        {
            // Provide mvc with route
            Environment.Host.RouteBuilder.MapWebApiRoute(Defines.Resource.Guid, $"{Defines.PATH}/{{id?}}", new { controller = "staticcontent" });

            // Register self hypermedia
            Environment.Hal.ProvideLink(Defines.Resource.Guid, "self", sc => new { href = StaticContentHelper.GetLocation(sc.id) });

            // Web Server
            Environment.Hal.ProvideLink(WebServer.Defines.Resource.Guid, Defines.Resource.Name, _ => {
                var id = GetStaticContentId(null, null);
                return(new { href = StaticContentHelper.GetLocation(id.Uuid) });
            });

            // Site
            Environment.Hal.ProvideLink(Sites.Defines.Resource.Guid, Defines.Resource.Name, site => {
                var siteId = new SiteId((string)site.id);
                Site s     = SiteHelper.GetSite(siteId.Id);
                var id     = GetStaticContentId(s, "/");
                return(new { href = StaticContentHelper.GetLocation(id.Uuid) });
            });

            // Application
            Environment.Hal.ProvideLink(Applications.Defines.Resource.Guid, Defines.Resource.Name, app => {
                var appId = new ApplicationId((string)app.id);
                Site s    = SiteHelper.GetSite(appId.SiteId);
                var id    = GetStaticContentId(s, appId.Path);
                return(new { href = StaticContentHelper.GetLocation(id.Uuid) });
            });
        }
Example #8
0
 /*
  * check to see if hit the limit for max # completed apps kept
  */
 protected internal virtual void CheckAppNumCompletedLimit()
 {
     lock (this)
     {
         // check apps kept in state store.
         while (completedAppsInStateStore > this.maxCompletedAppsInStateStore)
         {
             ApplicationId removeId = completedApps[completedApps.Count - completedAppsInStateStore
                                      ];
             RMApp removeApp = rmContext.GetRMApps()[removeId];
             Log.Info("Max number of completed apps kept in state store met:" + " maxCompletedAppsInStateStore = "
                      + maxCompletedAppsInStateStore + ", removing app " + removeApp.GetApplicationId
                          () + " from state store.");
             rmContext.GetStateStore().RemoveApplication(removeApp);
             completedAppsInStateStore--;
         }
         // check apps kept in memorty.
         while (completedApps.Count > this.maxCompletedAppsInMemory)
         {
             ApplicationId removeId = completedApps.Remove();
             Log.Info("Application should be expired, max number of completed apps" + " kept in memory met: maxCompletedAppsInMemory = "
                      + this.maxCompletedAppsInMemory + ", removing app " + removeId + " from memory: "
                      );
             Sharpen.Collections.Remove(rmContext.GetRMApps(), removeId);
             this.applicationACLsManager.RemoveApplication(removeId);
         }
     }
 }
        /// <exception cref="System.IO.IOException"/>
        public static FileInputStream OpenLogFileForRead(string containerIdStr, FilePath
                                                         logFile, Context context)
        {
            ContainerId   containerId   = ConverterUtils.ToContainerId(containerIdStr);
            ApplicationId applicationId = containerId.GetApplicationAttemptId().GetApplicationId
                                              ();
            string user = context.GetApplications()[applicationId].GetUser();

            try
            {
                return(SecureIOUtils.OpenForRead(logFile, user, null));
            }
            catch (IOException e)
            {
                if (e.Message.Contains("did not match expected owner '" + user + "'"))
                {
                    Log.Error("Exception reading log file " + logFile.GetAbsolutePath(), e);
                    throw new IOException("Exception reading log file. Application submitted by '" +
                                          user + "' doesn't own requested log file : " + logFile.GetName(), e);
                }
                else
                {
                    throw new IOException("Exception reading log file. It might be because log " + "file was aggregated : "
                                          + logFile.GetName(), e);
                }
            }
        }
        /// <exception cref="System.Exception"/>
        private void WriteLog(Configuration configuration, string user)
        {
            ApplicationId        appId        = ApplicationIdPBImpl.NewInstance(0, 1);
            ApplicationAttemptId appAttemptId = ApplicationAttemptIdPBImpl.NewInstance(appId,
                                                                                       1);
            ContainerId containerId = ContainerIdPBImpl.NewContainerId(appAttemptId, 1);
            string      path        = "target/logs/" + user + "/logs/application_0_0001/localhost_1234";
            FilePath    f           = new FilePath(path);

            if (!f.GetParentFile().Exists())
            {
                NUnit.Framework.Assert.IsTrue(f.GetParentFile().Mkdirs());
            }
            IList <string>       rootLogDirs = Arrays.AsList("target/logs/logs");
            UserGroupInformation ugi         = UserGroupInformation.GetCurrentUser();

            AggregatedLogFormat.LogWriter writer = new AggregatedLogFormat.LogWriter(configuration
                                                                                     , new Path(path), ugi);
            writer.WriteApplicationOwner(ugi.GetUserName());
            IDictionary <ApplicationAccessType, string> appAcls = new Dictionary <ApplicationAccessType
                                                                                  , string>();

            appAcls[ApplicationAccessType.ViewApp] = ugi.GetUserName();
            writer.WriteApplicationACLs(appAcls);
            writer.Append(new AggregatedLogFormat.LogKey("container_0_0001_01_000001"), new AggregatedLogFormat.LogValue
                              (rootLogDirs, containerId, UserGroupInformation.GetCurrentUser().GetShortUserName
                                  ()));
            writer.Close();
        }
Example #11
0
        public virtual void TestUpdateHeartbeatResponseForCleanup()
        {
            RMNodeImpl node   = GetRunningNode();
            NodeId     nodeId = node.GetNodeID();
            // Expire a container
            ContainerId completedContainerId = BuilderUtils.NewContainerId(BuilderUtils.NewApplicationAttemptId
                                                                               (BuilderUtils.NewApplicationId(0, 0), 0), 0);

            node.Handle(new RMNodeCleanContainerEvent(nodeId, completedContainerId));
            NUnit.Framework.Assert.AreEqual(1, node.GetContainersToCleanUp().Count);
            // Finish an application
            ApplicationId finishedAppId = BuilderUtils.NewApplicationId(0, 1);

            node.Handle(new RMNodeCleanAppEvent(nodeId, finishedAppId));
            NUnit.Framework.Assert.AreEqual(1, node.GetAppsToCleanup().Count);
            // Verify status update does not clear containers/apps to cleanup
            // but updating heartbeat response for cleanup does
            RMNodeStatusEvent statusEvent = GetMockRMNodeStatusEvent();

            node.Handle(statusEvent);
            NUnit.Framework.Assert.AreEqual(1, node.GetContainersToCleanUp().Count);
            NUnit.Framework.Assert.AreEqual(1, node.GetAppsToCleanup().Count);
            NodeHeartbeatResponse hbrsp = Org.Apache.Hadoop.Yarn.Util.Records.NewRecord <NodeHeartbeatResponse
                                                                                         >();

            node.UpdateNodeHeartbeatResponseForCleanup(hbrsp);
            NUnit.Framework.Assert.AreEqual(0, node.GetContainersToCleanUp().Count);
            NUnit.Framework.Assert.AreEqual(0, node.GetAppsToCleanup().Count);
            NUnit.Framework.Assert.AreEqual(1, hbrsp.GetContainersToCleanup().Count);
            NUnit.Framework.Assert.AreEqual(completedContainerId, hbrsp.GetContainersToCleanup
                                                ()[0]);
            NUnit.Framework.Assert.AreEqual(1, hbrsp.GetApplicationsToCleanup().Count);
            NUnit.Framework.Assert.AreEqual(finishedAppId, hbrsp.GetApplicationsToCleanup()[0
                                            ]);
        }
Example #12
0
        /// <exception cref="System.Exception"/>
        internal virtual ApplicationHistoryClientService MockApplicationHistoryClientService
            (int numApps, int numAppAttempts, int numContainers)
        {
            ApplicationHistoryManager ahManager = new TestAHSWebApp.MockApplicationHistoryManagerImpl
                                                      (this, store);
            ApplicationHistoryClientService historyClientService = new ApplicationHistoryClientService
                                                                       (ahManager);

            for (int i = 1; i <= numApps; ++i)
            {
                ApplicationId appId = ApplicationId.NewInstance(0, i);
                WriteApplicationStartData(appId);
                for (int j = 1; j <= numAppAttempts; ++j)
                {
                    ApplicationAttemptId appAttemptId = ApplicationAttemptId.NewInstance(appId, j);
                    WriteApplicationAttemptStartData(appAttemptId);
                    for (int k = 1; k <= numContainers; ++k)
                    {
                        ContainerId containerId = ContainerId.NewContainerId(appAttemptId, k);
                        WriteContainerStartData(containerId);
                        WriteContainerFinishData(containerId);
                    }
                    WriteApplicationAttemptFinishData(appAttemptId);
                }
                WriteApplicationFinishData(appId);
            }
            return(historyClientService);
        }
Example #13
0
        /// <exception cref="Org.Apache.Hadoop.Yarn.Exceptions.YarnException"/>
        private RMAppImpl CreateAndPopulateNewRMApp(ApplicationSubmissionContext submissionContext
                                                    , long submitTime, string user, bool isRecovery)
        {
            ApplicationId   applicationId = submissionContext.GetApplicationId();
            ResourceRequest amReq         = ValidateAndCreateResourceRequest(submissionContext, isRecovery
                                                                             );
            // Create RMApp
            RMAppImpl application = new RMAppImpl(applicationId, rmContext, this.conf, submissionContext
                                                  .GetApplicationName(), user, submissionContext.GetQueue(), submissionContext, this
                                                  .scheduler, this.masterService, submitTime, submissionContext.GetApplicationType
                                                      (), submissionContext.GetApplicationTags(), amReq);

            // Concurrent app submissions with same applicationId will fail here
            // Concurrent app submissions with different applicationIds will not
            // influence each other
            if (rmContext.GetRMApps().PutIfAbsent(applicationId, application) != null)
            {
                string message = "Application with id " + applicationId + " is already present! Cannot add a duplicate!";
                Log.Warn(message);
                throw new YarnException(message);
            }
            // Inform the ACLs Manager
            this.applicationACLsManager.AddApplication(applicationId, submissionContext.GetAMContainerSpec
                                                           ().GetApplicationACLs());
            string appViewACLs = submissionContext.GetAMContainerSpec().GetApplicationACLs()[
                ApplicationAccessType.ViewApp];

            rmContext.GetSystemMetricsPublisher().AppACLsUpdated(application, appViewACLs, Runtime
                                                                 .CurrentTimeMillis());
            return(application);
        }
        /// <exception cref="System.Exception"/>
        private ApplicationId SubmitAppAndGetAppId(AccessControlList viewACL, AccessControlList
                                                   modifyACL)
        {
            SubmitApplicationRequest submitRequest = recordFactory.NewRecordInstance <SubmitApplicationRequest
                                                                                      >();
            ApplicationSubmissionContext context = recordFactory.NewRecordInstance <ApplicationSubmissionContext
                                                                                    >();
            ApplicationId applicationId = rmClient.GetNewApplication(recordFactory.NewRecordInstance
                                                                     <GetNewApplicationRequest>()).GetApplicationId();

            context.SetApplicationId(applicationId);
            IDictionary <ApplicationAccessType, string> acls = new Dictionary <ApplicationAccessType
                                                                               , string>();

            acls[ApplicationAccessType.ViewApp]   = viewACL.GetAclString();
            acls[ApplicationAccessType.ModifyApp] = modifyACL.GetAclString();
            ContainerLaunchContext amContainer = recordFactory.NewRecordInstance <ContainerLaunchContext
                                                                                  >();
            Resource resource = BuilderUtils.NewResource(1024, 1);

            context.SetResource(resource);
            amContainer.SetApplicationACLs(acls);
            context.SetAMContainerSpec(amContainer);
            submitRequest.SetApplicationSubmissionContext(context);
            rmClient.SubmitApplication(submitRequest);
            resourceManager.WaitForState(applicationId, RMAppState.Accepted);
            return(applicationId);
        }
        /// <exception cref="System.Exception"/>
        private AList <RMApp> CreateAndStoreApps(RMStateStoreTestBase.RMStateStoreHelper stateStoreHelper
                                                 , RMStateStore store, int numApps)
        {
            AList <RMApp> appList = new AList <RMApp>();

            for (int i = 0; i < numApps; i++)
            {
                ApplicationId appId = ApplicationId.NewInstance(1383183338, i);
                RMApp         app   = StoreApp(store, appId, 123456789, 987654321);
                appList.AddItem(app);
            }
            NUnit.Framework.Assert.AreEqual(numApps, appList.Count);
            foreach (RMApp app_1 in appList)
            {
                // wait for app to be stored.
                while (true)
                {
                    if (stateStoreHelper.AppExists(app_1))
                    {
                        break;
                    }
                    else
                    {
                        Sharpen.Thread.Sleep(100);
                    }
                }
            }
            return(appList);
        }
        /// <exception cref="System.Exception"/>
        private void VerifyOwnerAccess()
        {
            AccessControlList viewACL = new AccessControlList(string.Empty);

            viewACL.AddGroup(FriendlyGroup);
            AccessControlList modifyACL = new AccessControlList(string.Empty);

            modifyACL.AddUser(Friend);
            ApplicationId applicationId = SubmitAppAndGetAppId(viewACL, modifyACL);
            GetApplicationReportRequest appReportRequest = recordFactory.NewRecordInstance <GetApplicationReportRequest
                                                                                            >();

            appReportRequest.SetApplicationId(applicationId);
            KillApplicationRequest finishAppRequest = recordFactory.NewRecordInstance <KillApplicationRequest
                                                                                       >();

            finishAppRequest.SetApplicationId(applicationId);
            // View as owner
            rmClient.GetApplicationReport(appReportRequest);
            // List apps as owner
            NUnit.Framework.Assert.AreEqual("App view by owner should list the apps!!", 1, rmClient
                                            .GetApplications(recordFactory.NewRecordInstance <GetApplicationsRequest>()).GetApplicationList
                                                ().Count);
            // Kill app as owner
            rmClient.ForceKillApplication(finishAppRequest);
            resourceManager.WaitForState(applicationId, RMAppState.Killed);
        }
Example #17
0
        public virtual AppInfo GetApp(HttpServletRequest req, HttpServletResponse res, string
                                      appId)
        {
            UserGroupInformation callerUGI = GetUser(req);
            ApplicationId        id        = ParseApplicationId(appId);
            ApplicationReport    app       = null;

            try
            {
                if (callerUGI == null)
                {
                    GetApplicationReportRequest request = GetApplicationReportRequest.NewInstance(id);
                    app = appBaseProt.GetApplicationReport(request).GetApplicationReport();
                }
                else
                {
                    app = callerUGI.DoAs(new _PrivilegedExceptionAction_228(this, id));
                }
            }
            catch (Exception e)
            {
                RewrapAndThrowException(e);
            }
            if (app == null)
            {
                throw new NotFoundException("app with id: " + appId + " not found");
            }
            return(new AppInfo(app));
        }
        /// <summary>Gets the URI to access the given application on MapReduce history server
        ///     </summary>
        /// <param name="id">the ID for which a URI is returned</param>
        /// <returns>the tracking URI</returns>
        /// <exception cref="Sharpen.URISyntaxException"/>
        public override URI GetTrackingUri(ApplicationId id)
        {
            string jobSuffix            = id.ToString().ReplaceFirst("^application_", "job_");
            string historyServerAddress = MRWebAppUtil.GetJHSWebappURLWithScheme(GetConf());

            return(new URI(historyServerAddress + "/jobhistory/job/" + jobSuffix));
        }
Example #19
0
        public virtual AppAttemptsInfo GetAppAttempts(HttpServletRequest req, HttpServletResponse
                                                      res, string appId)
        {
            UserGroupInformation callerUGI = GetUser(req);
            ApplicationId        id        = ParseApplicationId(appId);
            ICollection <ApplicationAttemptReport> appAttemptReports = null;

            try
            {
                if (callerUGI == null)
                {
                    GetApplicationAttemptsRequest request = GetApplicationAttemptsRequest.NewInstance
                                                                (id);
                    appAttemptReports = appBaseProt.GetApplicationAttempts(request).GetApplicationAttemptList
                                            ();
                }
                else
                {
                    appAttemptReports = callerUGI.DoAs(new _PrivilegedExceptionAction_260(this, id));
                }
            }
            catch (Exception e)
            {
                RewrapAndThrowException(e);
            }
            AppAttemptsInfo appAttemptsInfo = new AppAttemptsInfo();

            foreach (ApplicationAttemptReport appAttemptReport in appAttemptReports)
            {
                AppAttemptInfo appAttemptInfo = new AppAttemptInfo(appAttemptReport);
                appAttemptsInfo.Add(appAttemptInfo);
            }
            return(appAttemptsInfo);
        }
Example #20
0
        private void ConfigureHttpRequestTracing()
        {
            Environment.Host.RouteBuilder.MapWebApiRoute(Defines.Resource.Guid, $"{Defines.PATH}/{{id?}}", new { controller = "HttpRequestTracing" });

            // Self
            Environment.Hal.ProvideLink(Defines.Resource.Guid, "self", hrt => new { href = Helper.GetLocation(hrt.id) });

            // Web Server
            Environment.Hal.ProvideLink(WebServer.Defines.Resource.Guid, Defines.Resource.Name, _ => {
                var id = new HttpRequestTracingId(null, null, Helper.IsSectionLocal(null, null));
                return(new { href = Helper.GetLocation(id.Uuid) });
            });

            // Site
            Environment.Hal.ProvideLink(Sites.Defines.Resource.Guid, Defines.Resource.Name, site => {
                var siteId = new SiteId((string)site.id);
                Site s     = SiteHelper.GetSite(siteId.Id);
                var id     = new HttpRequestTracingId(siteId.Id, "/", Helper.IsSectionLocal(s, "/"));
                return(new { href = Helper.GetLocation(id.Uuid) });
            });

            // Application
            Environment.Hal.ProvideLink(Applications.Defines.Resource.Guid, Defines.Resource.Name, app => {
                var appId = new ApplicationId((string)app.id);
                Site s    = SiteHelper.GetSite(appId.SiteId);
                var id    = new HttpRequestTracingId(appId.SiteId, appId.Path, Helper.IsSectionLocal(s, appId.Path));
                return(new { href = Helper.GetLocation(id.Uuid) });
            });
        }
Example #21
0
        public virtual AppAttemptInfo GetAppAttempt(HttpServletRequest req, HttpServletResponse
                                                    res, string appId, string appAttemptId)
        {
            UserGroupInformation callerUGI = GetUser(req);
            ApplicationId        aid       = ParseApplicationId(appId);
            ApplicationAttemptId aaid      = ParseApplicationAttemptId(appAttemptId);

            ValidateIds(aid, aaid, null);
            ApplicationAttemptReport appAttempt = null;

            try
            {
                if (callerUGI == null)
                {
                    GetApplicationAttemptReportRequest request = GetApplicationAttemptReportRequest.NewInstance
                                                                     (aaid);
                    appAttempt = appBaseProt.GetApplicationAttemptReport(request).GetApplicationAttemptReport
                                     ();
                }
                else
                {
                    appAttempt = callerUGI.DoAs(new _PrivilegedExceptionAction_298(this, aaid));
                }
            }
            catch (Exception e)
            {
                RewrapAndThrowException(e);
            }
            if (appAttempt == null)
            {
                throw new NotFoundException("app attempt with id: " + appAttemptId + " not found"
                                            );
            }
            return(new AppAttemptInfo(appAttempt));
        }
Example #22
0
        /// <summary>Test the AuditLog format for successful events.</summary>
        private void TestSuccessLogFormatHelper(bool checkIP, ApplicationId appId, ApplicationAttemptId
                                                attemptId, ContainerId containerId)
        {
            string sLog = RMAuditLogger.CreateSuccessLog(User, Operation, Target, appId, attemptId
                                                         , containerId);
            StringBuilder expLog = new StringBuilder();

            expLog.Append("USER=test\t");
            if (checkIP)
            {
                IPAddress ip = Org.Apache.Hadoop.Ipc.Server.GetRemoteIp();
                expLog.Append(RMAuditLogger.Keys.Ip.ToString() + "=" + ip.GetHostAddress() + "\t"
                              );
            }
            expLog.Append("OPERATION=oper\tTARGET=tgt\tRESULT=SUCCESS");
            if (appId != null)
            {
                expLog.Append("\tAPPID=app_1");
            }
            if (attemptId != null)
            {
                expLog.Append("\tAPPATTEMPTID=app_attempt_1");
            }
            if (containerId != null)
            {
                expLog.Append("\tCONTAINERID=container_1");
            }
            NUnit.Framework.Assert.AreEqual(expLog.ToString(), sLog);
        }
Example #23
0
        public virtual ContainersInfo GetContainers(HttpServletRequest req, HttpServletResponse
                                                    res, string appId, string appAttemptId)
        {
            UserGroupInformation callerUGI = GetUser(req);
            ApplicationId        aid       = ParseApplicationId(appId);
            ApplicationAttemptId aaid      = ParseApplicationAttemptId(appAttemptId);

            ValidateIds(aid, aaid, null);
            ICollection <ContainerReport> containerReports = null;

            try
            {
                if (callerUGI == null)
                {
                    GetContainersRequest request = GetContainersRequest.NewInstance(aaid);
                    containerReports = appBaseProt.GetContainers(request).GetContainerList();
                }
                else
                {
                    containerReports = callerUGI.DoAs(new _PrivilegedExceptionAction_332(this, aaid));
                }
            }
            catch (Exception e)
            {
                RewrapAndThrowException(e);
            }
            ContainersInfo containersInfo = new ContainersInfo();

            foreach (ContainerReport containerReport in containerReports)
            {
                ContainerInfo containerInfo = new ContainerInfo(containerReport);
                containersInfo.Add(containerInfo);
            }
            return(containersInfo);
        }
        public override void Start()
        {
            var host = Environment.Host;
            var hal  = Environment.Hal;

            host.RouteBuilder.MapWebApiRoute(Defines.Resource.Guid, $"{Defines.PATH}/{{id?}}", new { controller = "compression" });

            // Self
            hal.ProvideLink(Defines.Resource.Guid, "self", comp => new { href = CompressionHelper.GetLocation(comp.id) });

            // Web Server
            hal.ProvideLink(WebServer.Defines.Resource.Guid, Defines.Resource.Name, _ => {
                var id = new CompressionId(null, null, CompressionHelper.IsSectionLocal(null, null));
                return(new { href = CompressionHelper.GetLocation(id.Uuid) });
            });

            // Site
            hal.ProvideLink(Sites.Defines.Resource.Guid, Defines.Resource.Name, site => {
                var siteId = new SiteId((string)site.id);
                Site s     = SiteHelper.GetSite(siteId.Id);
                var id     = new CompressionId(siteId.Id, "/", CompressionHelper.IsSectionLocal(s, "/"));
                return(new { href = CompressionHelper.GetLocation(id.Uuid) });
            });

            // Application
            hal.ProvideLink(Applications.Defines.Resource.Guid, Defines.Resource.Name, app => {
                var appId = new ApplicationId((string)app.id);
                Site s    = SiteHelper.GetSite(appId.SiteId);
                var id    = new CompressionId(appId.SiteId, appId.Path, CompressionHelper.IsSectionLocal(s, appId.Path));
                return(new { href = CompressionHelper.GetLocation(id.Uuid) });
            });
        }
Example #25
0
        public virtual ContainerInfo GetContainer(HttpServletRequest req, HttpServletResponse
                                                  res, string appId, string appAttemptId, string containerId)
        {
            UserGroupInformation callerUGI = GetUser(req);
            ApplicationId        aid       = ParseApplicationId(appId);
            ApplicationAttemptId aaid      = ParseApplicationAttemptId(appAttemptId);
            ContainerId          cid       = ParseContainerId(containerId);

            ValidateIds(aid, aaid, cid);
            ContainerReport container = null;

            try
            {
                if (callerUGI == null)
                {
                    GetContainerReportRequest request = GetContainerReportRequest.NewInstance(cid);
                    container = appBaseProt.GetContainerReport(request).GetContainerReport();
                }
                else
                {
                    container = callerUGI.DoAs(new _PrivilegedExceptionAction_368(this, cid));
                }
            }
            catch (Exception e)
            {
                RewrapAndThrowException(e);
            }
            if (container == null)
            {
                throw new NotFoundException("container with id: " + containerId + " not found");
            }
            return(new ContainerInfo(container));
        }
Example #26
0
 /// <exception cref="Org.Apache.Hadoop.Yarn.Exceptions.YarnException"/>
 /// <exception cref="System.IO.IOException"/>
 public override IList <ApplicationAttemptReport> GetApplicationAttempts(ApplicationId
                                                                         appId)
 {
     Org.Mockito.Mockito.When(mockAppAttemptsResponse.GetApplicationAttemptList()).ThenReturn
         (GetAttempts(appId));
     return(base.GetApplicationAttempts(appId));
 }
 public override bool Equals(object obj)
 {
     return(obj is InvocationTargetDescriptor descriptor &&
            ApplicationId.Equals(descriptor.ApplicationId) &&
            ConnectionId.Equals(descriptor.ConnectionId) &&
            ServiceAliasId.Equals(descriptor.ServiceAliasId));
 }
Example #28
0
        public virtual void SetUp()
        {
            AppContext context = Org.Mockito.Mockito.Mock <AppContext>();

            Org.Mockito.Mockito.When(context.GetApplicationID()).ThenReturn(ApplicationId.NewInstance
                                                                                (0, 0));
            Org.Mockito.Mockito.When(context.GetApplicationName()).ThenReturn("AppName");
            Org.Mockito.Mockito.When(context.GetUser()).ThenReturn("User");
            Org.Mockito.Mockito.When(context.GetStartTime()).ThenReturn(Runtime.CurrentTimeMillis
                                                                            ());
            job = Org.Mockito.Mockito.Mock <Org.Apache.Hadoop.Mapreduce.V2.App.Job.Job>();
            Task task = Org.Mockito.Mockito.Mock <Task>();

            Org.Mockito.Mockito.When(job.GetTask(Any <TaskId>())).ThenReturn(task);
            JobId jobID = MRApps.ToJobID("job_01_01");

            Org.Mockito.Mockito.When(context.GetJob(jobID)).ThenReturn(job);
            Org.Mockito.Mockito.When(job.CheckAccess(Any <UserGroupInformation>(), Any <JobACL>
                                                         ())).ThenReturn(true);
            Org.Apache.Hadoop.Mapreduce.V2.App.Webapp.App app = new Org.Apache.Hadoop.Mapreduce.V2.App.Webapp.App
                                                                    (context);
            Configuration configuration = new Configuration();

            ctx           = Org.Mockito.Mockito.Mock <Controller.RequestContext>();
            appController = new AppControllerForTest(app, configuration, ctx);
            appController.GetProperty()[AMParams.JobId]  = "job_01_01";
            appController.GetProperty()[AMParams.TaskId] = "task_01_01_m01_01";
        }
        /// <exception cref="System.Exception"/>
        private void VerifyAdministerQueueUserAccess()
        {
            isQueueUser = true;
            AccessControlList viewACL = new AccessControlList(string.Empty);

            viewACL.AddGroup(FriendlyGroup);
            AccessControlList modifyACL = new AccessControlList(string.Empty);

            modifyACL.AddUser(Friend);
            ApplicationId applicationId = SubmitAppAndGetAppId(viewACL, modifyACL);
            GetApplicationReportRequest appReportRequest = recordFactory.NewRecordInstance <GetApplicationReportRequest
                                                                                            >();

            appReportRequest.SetApplicationId(applicationId);
            KillApplicationRequest finishAppRequest = recordFactory.NewRecordInstance <KillApplicationRequest
                                                                                       >();

            finishAppRequest.SetApplicationId(applicationId);
            ApplicationClientProtocol administerQueueUserRmClient = GetRMClientForUser(QueueAdminUser
                                                                                       );

            // View as the administerQueueUserRmClient
            administerQueueUserRmClient.GetApplicationReport(appReportRequest);
            // List apps as administerQueueUserRmClient
            NUnit.Framework.Assert.AreEqual("App view by queue-admin-user should list the apps!!"
                                            , 5, administerQueueUserRmClient.GetApplications(recordFactory.NewRecordInstance
                                                                                             <GetApplicationsRequest>()).GetApplicationList().Count);
            // Kill app as the administerQueueUserRmClient
            administerQueueUserRmClient.ForceKillApplication(finishAppRequest);
            resourceManager.WaitForState(applicationId, RMAppState.Killed);
        }
Example #30
0
        /// <exception cref="Org.Apache.Hadoop.Yarn.Exceptions.YarnException"/>
        public override Path Use(ApplicationId applicationId, string resourceKey)
        {
            Path resourcePath = null;
            UseSharedCacheResourceRequest request = Org.Apache.Hadoop.Yarn.Util.Records.NewRecord
                                                    <UseSharedCacheResourceRequest>();

            request.SetAppId(applicationId);
            request.SetResourceKey(resourceKey);
            try
            {
                UseSharedCacheResourceResponse response = this.scmClient.Use(request);
                if (response != null && response.GetPath() != null)
                {
                    resourcePath = new Path(response.GetPath());
                }
            }
            catch (Exception e)
            {
                // Just catching IOException isn't enough.
                // RPC call can throw ConnectionException.
                // We don't handle different exceptions separately at this point.
                throw new YarnException(e);
            }
            return(resourcePath);
        }
	public void TestApplicationIdConstructor03()
	{
		try
		{
			ApplicationId id = new ApplicationId(null, "Test", new Version(), null, null);
			Fail("Test should have thrown an ArgumentNullException");
		}
		catch (ArgumentNullException)
		{
		}
	}
	public void TestApplicationIdPublicKeyToken01()
	{
		Byte[] publicKeyToken = {0, 1, 2, 3, 4};
		ApplicationId id = new ApplicationId(publicKeyToken, "Test", new Version(), null, null);
		AssertEquals("Index 0:", publicKeyToken[0], id.PublicKeyToken[0]);
		AssertEquals("Index 1:", publicKeyToken[1], id.PublicKeyToken[1]);
		AssertEquals("Index 2:", publicKeyToken[2], id.PublicKeyToken[2]);
		AssertEquals("Index 3:", publicKeyToken[3], id.PublicKeyToken[3]);
		AssertEquals("Index 4:", publicKeyToken[4], id.PublicKeyToken[4]);
	}
	public void TestApplicationIdConstructor06()
	{
		ApplicationId id = new ApplicationId(new Byte[0], "Test", new Version(), null, "Test");
	}
	public void TestApplicationIdToString03()
	{
		Byte[] publicKeyToken = {0, 1, 2, 3, 4};
		ApplicationId id = new ApplicationId(publicKeyToken, "Test", new Version(), null, "Invalid");
		AssertEquals("ToString 01:", "Test, culture=\"Invalid\", version=\"0.0\", publicKeyToken=\"0001020304\"", id.ToString());
	}
	public void TestApplicationIdPublicKeyToken03()
	{
		Byte[] publicKeyToken = {0, 1, 2, 3, 4};
		ApplicationId id = new ApplicationId(publicKeyToken, "Test", new Version(), null, null);
		id.PublicKeyToken[0] = (Byte)10;
		AssertEquals("Index 0:", 0, id.PublicKeyToken[0]);
	}