コード例 #1
0
        static public Uri UploadResourceIfNeeded(DfsClient dfs, string localPath, Uri dfsDirectory,
                                                 out long modificationTime, out long size, ILogger logger = null)
        {
            ConsoleLogger.EnsureLogger(ref logger);

            string suffix        = MakeHash(localPath);
            string localFileName = Path.GetFileName(localPath);
            string dfsFileName   = localFileName + "." + suffix;
            Uri    dfsPath       = dfs.Combine(dfsDirectory, dfsFileName);

            if (dfs.GetFileStatus(dfsPath, out modificationTime, out size))
            {
                return(dfsPath);
            }

            logger.Log("Uploading " + dfsPath.AbsoluteUri);
            dfs.PutDfsFile(dfsPath, localPath);

            if (dfs.GetFileStatus(dfsPath, out modificationTime, out size))
            {
                return(dfsPath);
            }

            throw new ApplicationException("Failed to upload resource " + localPath + " to " + dfsPath);
        }
コード例 #2
0
        public static XElement MakePeloponneseWorkerResourceGroup(DfsClient dfsClient, Uri stagingRoot, string ppmHome, ILogger logger = null)
        {
            ConsoleLogger.EnsureLogger(ref logger);

            if (!IsValidPpmLocation(ppmHome))
            {
                throw new ApplicationException("Specified Peloponnese location " + ppmHome + " is missing some required files");
            }

            IEnumerable<string> ppmResourcePaths = EnumeratePeloponneseWorkerFiles(ppmHome);
            return MakeResourceGroup(dfsClient, dfsClient.Combine(stagingRoot, "peloponnese"), true, ppmResourcePaths, logger);
        }