コード例 #1
0
 public virtual void Handle(RMContainerEvent @event)
 {
     Log.Debug("Processing " + @event.GetContainerId() + " of type " + @event.GetType(
                   ));
     try
     {
         writeLock.Lock();
         RMContainerState oldState = GetState();
         try
         {
             stateMachine.DoTransition(@event.GetType(), @event);
         }
         catch (InvalidStateTransitonException e)
         {
             Log.Error("Can't handle this event at current state", e);
             Log.Error("Invalid event " + @event.GetType() + " on container " + this.containerId
                       );
         }
         if (oldState != GetState())
         {
             Log.Info(@event.GetContainerId() + " Container Transitioned from " + oldState + " to "
                      + GetState());
         }
     }
     finally
     {
         writeLock.Unlock();
     }
 }
コード例 #2
0
ファイル: MockRM.cs プロジェクト: orf53975/hadoop.net
        /// <exception cref="System.Exception"/>
        public virtual bool WaitForState(MockNM nm, ContainerId containerId, RMContainerState
                                         containerState, int timeoutMillisecs)
        {
            RMContainer container   = GetResourceScheduler().GetRMContainer(containerId);
            int         timeoutSecs = 0;

            while (container == null && timeoutSecs++ < timeoutMillisecs / 100)
            {
                nm.NodeHeartbeat(true);
                container = GetResourceScheduler().GetRMContainer(containerId);
                System.Console.Out.WriteLine("Waiting for container " + containerId + " to be allocated."
                                             );
                Sharpen.Thread.Sleep(100);
                if (timeoutMillisecs <= timeoutSecs * 100)
                {
                    return(false);
                }
            }
            NUnit.Framework.Assert.IsNotNull("Container shouldn't be null", container);
            while (!containerState.Equals(container.GetState()) && timeoutSecs++ < timeoutMillisecs
                   / 100)
            {
                System.Console.Out.WriteLine("Container : " + containerId + " State is : " + container
                                             .GetState() + " Waiting for state : " + containerState);
                nm.NodeHeartbeat(true);
                Sharpen.Thread.Sleep(100);
                if (timeoutMillisecs <= timeoutSecs * 100)
                {
                    return(false);
                }
            }
            System.Console.Out.WriteLine("Container State is : " + container.GetState());
            NUnit.Framework.Assert.AreEqual("Container state is not correct (timedout)", containerState
                                            , container.GetState());
            return(true);
        }
コード例 #3
0
ファイル: MockRM.cs プロジェクト: orf53975/hadoop.net
 /// <exception cref="System.Exception"/>
 public virtual bool WaitForState(MockNM nm, ContainerId containerId, RMContainerState
                                  containerState)
 {
     // default is wait for 30,000 ms
     return(WaitForState(nm, containerId, containerState, 30 * 1000));
 }