Ejemplo n.º 1
0
        /// <exception cref="System.IO.IOException"/>
        public virtual FailTaskAttemptResponse FailTaskAttempt(FailTaskAttemptRequest request
                                                               )
        {
            FailTaskAttemptResponse resp = recordFactory.NewRecordInstance <FailTaskAttemptResponse
                                                                            >();

            return(resp);
        }
Ejemplo n.º 2
0
 /// <exception cref="System.IO.IOException"/>
 public virtual FailTaskAttemptResponse FailTaskAttempt(FailTaskAttemptRequest request
                                                        )
 {
     MRServiceProtos.FailTaskAttemptRequestProto requestProto = ((FailTaskAttemptRequestPBImpl
                                                                  )request).GetProto();
     try
     {
         return(new FailTaskAttemptResponsePBImpl(proxy.FailTaskAttempt(null, requestProto
                                                                        )));
     }
     catch (ServiceException e)
     {
         throw UnwrapAndThrowException(e);
     }
 }
Ejemplo n.º 3
0
            /// <exception cref="System.IO.IOException"/>
            public virtual FailTaskAttemptResponse FailTaskAttempt(FailTaskAttemptRequest request
                                                                   )
            {
                TaskAttemptId        taskAttemptId = request.GetTaskAttemptId();
                UserGroupInformation callerUGI     = UserGroupInformation.GetCurrentUser();
                string message = "Fail task attempt " + taskAttemptId + " received from " + callerUGI
                                 + " at " + Server.GetRemoteAddress();

                MRClientService.Log.Info(message);
                this.VerifyAndGetAttempt(taskAttemptId, JobACL.ModifyJob);
                this._enclosing.appContext.GetEventHandler().Handle(new TaskAttemptDiagnosticsUpdateEvent
                                                                        (taskAttemptId, message));
                this._enclosing.appContext.GetEventHandler().Handle(new TaskAttemptEvent(taskAttemptId
                                                                                         , TaskAttemptEventType.TaFailmsg));
                FailTaskAttemptResponse response = this.recordFactory.NewRecordInstance <FailTaskAttemptResponse
                                                                                         >();

                return(response);
            }
Ejemplo n.º 4
0
        /// <exception cref="System.IO.IOException"/>
        public virtual bool KillTask(TaskAttemptID taskAttemptID, bool fail)
        {
            TaskAttemptId attemptID = TypeConverter.ToYarn(taskAttemptID);

            if (fail)
            {
                FailTaskAttemptRequest failRequest = recordFactory.NewRecordInstance <FailTaskAttemptRequest
                                                                                      >();
                failRequest.SetTaskAttemptId(attemptID);
                Invoke("failTaskAttempt", typeof(FailTaskAttemptRequest), failRequest);
            }
            else
            {
                KillTaskAttemptRequest killRequest = recordFactory.NewRecordInstance <KillTaskAttemptRequest
                                                                                      >();
                killRequest.SetTaskAttemptId(attemptID);
                Invoke("killTaskAttempt", typeof(KillTaskAttemptRequest), killRequest);
            }
            return(true);
        }
Ejemplo n.º 5
0
        public virtual void TestViewAclOnlyCannotModify()
        {
            TestMRClientService.MRAppWithClientService app = new TestMRClientService.MRAppWithClientService
                                                                 (this, 1, 0, false);
            Configuration conf = new Configuration();

            conf.SetBoolean(MRConfig.MrAclsEnabled, true);
            conf.Set(MRJobConfig.JobAclViewJob, "viewonlyuser");
            Org.Apache.Hadoop.Mapreduce.V2.App.Job.Job job = app.Submit(conf);
            app.WaitForState(job, JobState.Running);
            NUnit.Framework.Assert.AreEqual("Num tasks not correct", 1, job.GetTasks().Count);
            IEnumerator <Task> it = job.GetTasks().Values.GetEnumerator();
            Task task             = it.Next();

            app.WaitForState(task, TaskState.Running);
            TaskAttempt attempt = task.GetAttempts().Values.GetEnumerator().Next();

            app.WaitForState(attempt, TaskAttemptState.Running);
            UserGroupInformation viewOnlyUser = UserGroupInformation.CreateUserForTesting("viewonlyuser"
                                                                                          , new string[] {  });

            NUnit.Framework.Assert.IsTrue("viewonlyuser cannot view job", job.CheckAccess(viewOnlyUser
                                                                                          , JobACL.ViewJob));
            NUnit.Framework.Assert.IsFalse("viewonlyuser can modify job", job.CheckAccess(viewOnlyUser
                                                                                          , JobACL.ModifyJob));
            MRClientProtocol client = viewOnlyUser.DoAs(new _PrivilegedExceptionAction_223(conf
                                                                                           , app));
            KillJobRequest killJobRequest = recordFactory.NewRecordInstance <KillJobRequest>();

            killJobRequest.SetJobId(app.GetJobId());
            try
            {
                client.KillJob(killJobRequest);
                NUnit.Framework.Assert.Fail("viewonlyuser killed job");
            }
            catch (AccessControlException)
            {
            }
            // pass
            KillTaskRequest killTaskRequest = recordFactory.NewRecordInstance <KillTaskRequest
                                                                               >();

            killTaskRequest.SetTaskId(task.GetID());
            try
            {
                client.KillTask(killTaskRequest);
                NUnit.Framework.Assert.Fail("viewonlyuser killed task");
            }
            catch (AccessControlException)
            {
            }
            // pass
            KillTaskAttemptRequest killTaskAttemptRequest = recordFactory.NewRecordInstance <KillTaskAttemptRequest
                                                                                             >();

            killTaskAttemptRequest.SetTaskAttemptId(attempt.GetID());
            try
            {
                client.KillTaskAttempt(killTaskAttemptRequest);
                NUnit.Framework.Assert.Fail("viewonlyuser killed task attempt");
            }
            catch (AccessControlException)
            {
            }
            // pass
            FailTaskAttemptRequest failTaskAttemptRequest = recordFactory.NewRecordInstance <FailTaskAttemptRequest
                                                                                             >();

            failTaskAttemptRequest.SetTaskAttemptId(attempt.GetID());
            try
            {
                client.FailTaskAttempt(failTaskAttemptRequest);
                NUnit.Framework.Assert.Fail("viewonlyuser killed task attempt");
            }
            catch (AccessControlException)
            {
            }
        }
Ejemplo n.º 6
0
 /// <exception cref="System.IO.IOException"/>
 public virtual FailTaskAttemptResponse FailTaskAttempt(FailTaskAttemptRequest request
                                                        )
 {
     throw new IOException("Invalid operation on completed job");
 }
Ejemplo n.º 7
0
 /// <exception cref="System.IO.IOException"/>
 public virtual FailTaskAttemptResponse FailTaskAttempt(FailTaskAttemptRequest request
                                                        )
 {
     return(null);
 }