Ejemplo n.º 1
0
        public static ResourceLocalizationSpec NewResourceLocalizationSpec(LocalResource
                                                                           rsrc, Path path)
        {
            URL local = ConverterUtils.GetYarnUrlFromPath(path);
            ResourceLocalizationSpec resourceLocalizationSpec = Org.Apache.Hadoop.Yarn.Util.Records
                                                                .NewRecord <ResourceLocalizationSpec>();

            resourceLocalizationSpec.SetDestinationDirectory(local);
            resourceLocalizationSpec.SetResource(rsrc);
            return(resourceLocalizationSpec);
        }
Ejemplo n.º 2
0
        /// <exception cref="Sharpen.URISyntaxException"/>
        internal static LocalizerHeartbeatResponse CreateLocalizerHeartbeatResponse()
        {
            LocalizerHeartbeatResponse ret = recordFactory.NewRecordInstance <LocalizerHeartbeatResponse
                                                                              >();

            NUnit.Framework.Assert.IsTrue(ret is LocalizerHeartbeatResponsePBImpl);
            ret.SetLocalizerAction(LocalizerAction.Live);
            LocalResource rsrc = CreateResource();
            AList <ResourceLocalizationSpec> rsrcs    = new AList <ResourceLocalizationSpec>();
            ResourceLocalizationSpec         resource = recordFactory.NewRecordInstance <ResourceLocalizationSpec
                                                                                         >();

            resource.SetResource(rsrc);
            resource.SetDestinationDirectory(ConverterUtils.GetYarnUrlFromPath(new Path("/tmp"
                                                                                        + Runtime.CurrentTimeMillis())));
            rsrcs.AddItem(resource);
            ret.SetResourceSpecs(rsrcs);
            System.Console.Out.WriteLine(resource);
            return(ret);
        }
Ejemplo n.º 3
0
        internal static ResourceLocalizationSpec GetMockRsrc(Random r, LocalResourceVisibility
                                                             vis, Path p)
        {
            ResourceLocalizationSpec resourceLocalizationSpec = Org.Mockito.Mockito.Mock <ResourceLocalizationSpec
                                                                                          >();
            LocalResource rsrc = Org.Mockito.Mockito.Mock <LocalResource>();
            string        name = long.ToHexString(r.NextLong());
            URL           uri  = Org.Mockito.Mockito.Mock <URL>();

            Org.Mockito.Mockito.When(uri.GetScheme()).ThenReturn("file");
            Org.Mockito.Mockito.When(uri.GetHost()).ThenReturn(null);
            Org.Mockito.Mockito.When(uri.GetFile()).ThenReturn("/local/" + vis + "/" + name);
            Org.Mockito.Mockito.When(rsrc.GetResource()).ThenReturn(uri);
            Org.Mockito.Mockito.When(rsrc.GetSize()).ThenReturn(r.Next(1024) + 1024L);
            Org.Mockito.Mockito.When(rsrc.GetTimestamp()).ThenReturn(r.Next(1024) + 2048L);
            Org.Mockito.Mockito.When(rsrc.GetType()).ThenReturn(LocalResourceType.File);
            Org.Mockito.Mockito.When(rsrc.GetVisibility()).ThenReturn(vis);
            Org.Mockito.Mockito.When(resourceLocalizationSpec.GetResource()).ThenReturn(rsrc);
            Org.Mockito.Mockito.When(resourceLocalizationSpec.GetDestinationDirectory()).ThenReturn
                (ConverterUtils.GetYarnUrlFromPath(p));
            return(resourceLocalizationSpec);
        }
Ejemplo n.º 4
0
        public virtual void TestContainerLocalizerMain()
        {
            FileContext fs = FileContext.GetLocalFSFileContext();

            spylfs = Org.Mockito.Mockito.Spy(fs.GetDefaultFileSystem());
            ContainerLocalizer localizer = SetupContainerLocalizerForTest();
            // verify created cache
            IList <Path> privCacheList = new AList <Path>();
            IList <Path> appCacheList  = new AList <Path>();

            foreach (Path p in localDirs)
            {
                Path @base     = new Path(new Path(p, ContainerLocalizer.Usercache), appUser);
                Path privcache = new Path(@base, ContainerLocalizer.Filecache);
                privCacheList.AddItem(privcache);
                Path appDir   = new Path(@base, new Path(ContainerLocalizer.Appcache, appId));
                Path appcache = new Path(appDir, ContainerLocalizer.Filecache);
                appCacheList.AddItem(appcache);
            }
            // mock heartbeat responses from NM
            ResourceLocalizationSpec rsrcA = GetMockRsrc(random, LocalResourceVisibility.Private
                                                         , privCacheList[0]);
            ResourceLocalizationSpec rsrcB = GetMockRsrc(random, LocalResourceVisibility.Private
                                                         , privCacheList[0]);
            ResourceLocalizationSpec rsrcC = GetMockRsrc(random, LocalResourceVisibility.Application
                                                         , appCacheList[0]);
            ResourceLocalizationSpec rsrcD = GetMockRsrc(random, LocalResourceVisibility.Private
                                                         , privCacheList[0]);

            Org.Mockito.Mockito.When(nmProxy.Heartbeat(Matchers.IsA <LocalizerStatus>())).ThenReturn
                (new MockLocalizerHeartbeatResponse(LocalizerAction.Live, Sharpen.Collections.SingletonList
                                                        (rsrcA))).ThenReturn(new MockLocalizerHeartbeatResponse(LocalizerAction.Live, Sharpen.Collections
                                                                                                                .SingletonList(rsrcB))).ThenReturn(new MockLocalizerHeartbeatResponse(LocalizerAction
                                                                                                                                                                                      .Live, Sharpen.Collections.SingletonList(rsrcC))).ThenReturn(new MockLocalizerHeartbeatResponse
                                                                                                                                                                                                                                                       (LocalizerAction.Live, Sharpen.Collections.SingletonList(rsrcD))).ThenReturn(new
                                                                                                                                                                                                                                                                                                                                    MockLocalizerHeartbeatResponse(LocalizerAction.Live, Sharpen.Collections.EmptyList
                                                                                                                                                                                                                                                                                                                                                                   <ResourceLocalizationSpec>())).ThenReturn(new MockLocalizerHeartbeatResponse(LocalizerAction
                                                                                                                                                                                                                                                                                                                                                                                                                                                .Die, null));
            LocalResource tRsrcA = rsrcA.GetResource();
            LocalResource tRsrcB = rsrcB.GetResource();
            LocalResource tRsrcC = rsrcC.GetResource();
            LocalResource tRsrcD = rsrcD.GetResource();

            Org.Mockito.Mockito.DoReturn(new TestContainerLocalizer.FakeDownload(rsrcA.GetResource
                                                                                     ().GetResource().GetFile(), true)).When(localizer).Download(Matchers.IsA <Path>()
                                                                                                                                                 , Matchers.Eq(tRsrcA), Matchers.IsA <UserGroupInformation>());
            Org.Mockito.Mockito.DoReturn(new TestContainerLocalizer.FakeDownload(rsrcB.GetResource
                                                                                     ().GetResource().GetFile(), true)).When(localizer).Download(Matchers.IsA <Path>()
                                                                                                                                                 , Matchers.Eq(tRsrcB), Matchers.IsA <UserGroupInformation>());
            Org.Mockito.Mockito.DoReturn(new TestContainerLocalizer.FakeDownload(rsrcC.GetResource
                                                                                     ().GetResource().GetFile(), true)).When(localizer).Download(Matchers.IsA <Path>()
                                                                                                                                                 , Matchers.Eq(tRsrcC), Matchers.IsA <UserGroupInformation>());
            Org.Mockito.Mockito.DoReturn(new TestContainerLocalizer.FakeDownload(rsrcD.GetResource
                                                                                     ().GetResource().GetFile(), true)).When(localizer).Download(Matchers.IsA <Path>()
                                                                                                                                                 , Matchers.Eq(tRsrcD), Matchers.IsA <UserGroupInformation>());
            // run localization
            NUnit.Framework.Assert.AreEqual(0, localizer.RunLocalization(nmAddr));
            foreach (Path p_1 in localDirs)
            {
                Path @base     = new Path(new Path(p_1, ContainerLocalizer.Usercache), appUser);
                Path privcache = new Path(@base, ContainerLocalizer.Filecache);
                // $x/usercache/$user/filecache
                Org.Mockito.Mockito.Verify(spylfs).Mkdir(Matchers.Eq(privcache), Matchers.Eq(CacheDirPerm
                                                                                             ), Matchers.Eq(false));
                Path appDir = new Path(@base, new Path(ContainerLocalizer.Appcache, appId));
                // $x/usercache/$user/appcache/$appId/filecache
                Path appcache = new Path(appDir, ContainerLocalizer.Filecache);
                Org.Mockito.Mockito.Verify(spylfs).Mkdir(Matchers.Eq(appcache), Matchers.Eq(CacheDirPerm
                                                                                            ), Matchers.Eq(false));
            }
            // verify tokens read at expected location
            Org.Mockito.Mockito.Verify(spylfs).Open(tokenPath);
            // verify downloaded resources reported to NM
            Org.Mockito.Mockito.Verify(nmProxy).Heartbeat(Matchers.ArgThat(new TestContainerLocalizer.HBMatches
                                                                               (rsrcA.GetResource())));
            Org.Mockito.Mockito.Verify(nmProxy).Heartbeat(Matchers.ArgThat(new TestContainerLocalizer.HBMatches
                                                                               (rsrcB.GetResource())));
            Org.Mockito.Mockito.Verify(nmProxy).Heartbeat(Matchers.ArgThat(new TestContainerLocalizer.HBMatches
                                                                               (rsrcC.GetResource())));
            Org.Mockito.Mockito.Verify(nmProxy).Heartbeat(Matchers.ArgThat(new TestContainerLocalizer.HBMatches
                                                                               (rsrcD.GetResource())));
            // verify all HB use localizerID provided
            Org.Mockito.Mockito.Verify(nmProxy, Org.Mockito.Mockito.Never()).Heartbeat(Matchers.ArgThat
                                                                                           (new _ArgumentMatcher_193()));
        }
Ejemplo n.º 5
0
                Next()
                {
                    ResourceLocalizationSpec resource = this.iter.Next();

                    return(((ResourceLocalizationSpecPBImpl)resource).GetProto());
                }