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); }
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); }