/// <summary> /// Creates the driver folder structure in this given folder as the root /// </summary> /// <param name="appParameters">Job submission information</param> /// <param name="driverFolderPath">Driver folder path</param> internal void CreateDefaultFolderStructure(AppParameters appParameters, string driverFolderPath) { Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetReefFolderName())); Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetLocalFolderPath())); Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetGlobalFolderPath())); var resourceHelper = new ResourceHelper(typeof(DriverFolderPreparationHelper).Assembly); foreach (var fileResources in ResourceHelper.FileResources) { var fileName = resourceHelper.GetString(fileResources.Key); if (ResourceHelper.ClrDriverFullName == fileResources.Key) { fileName = Path.Combine(driverFolderPath, _fileNames.GetBridgeExePath()); } if (!File.Exists(fileName)) { File.WriteAllBytes(fileName, resourceHelper.GetBytes(fileResources.Value)); } } // generate .config file for bridge executable var config = DefaultDriverConfigurationFileContents; if (!string.IsNullOrEmpty(appParameters.DriverConfigurationFileContents)) { config = appParameters.DriverConfigurationFileContents; } File.WriteAllText(Path.Combine(driverFolderPath, _fileNames.GetBridgeExeConfigPath()), config); // generate .config file for Evaluator executable File.WriteAllText(Path.Combine(driverFolderPath, _fileNames.GetGlobalFolderPath(), EvaluatorExecutable), DefaultDriverConfigurationFileContents); }
/// <summary> /// Creates the driver folder structure in this given folder as the root /// </summary> /// <param name="jobSubmission">Job submission information</param> /// <param name="driverFolderPath">Driver folder path</param> internal void CreateDefaultFolderStructure(IJobSubmission jobSubmission, string driverFolderPath) { Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetReefFolderName())); Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetLocalFolderPath())); Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetGlobalFolderPath())); var resourceHelper = new ResourceHelper(typeof(DriverFolderPreparationHelper).Assembly); foreach (var fileResources in clientFileResources) { var fileName = resourceHelper.GetString(fileResources.Item1); if (ClrDriverFullName == fileResources.Item1) { fileName = Path.Combine(driverFolderPath, _fileNames.GetBridgeExePath()); } File.WriteAllBytes(fileName, resourceHelper.GetBytes(fileResources.Item2)); } var config = DefaultDriverConfigurationFileContents; if (!string.IsNullOrEmpty(jobSubmission.DriverConfigurationFileContents)) { config = jobSubmission.DriverConfigurationFileContents; } File.WriteAllText(Path.Combine(driverFolderPath, _fileNames.GetBridgeExeConfigPath()), config); }
/// <summary> /// Copies the files captured to the right places, given that driverFolderPath points to the root folder of the driver. /// </summary> /// <param name="driverFolderPath"></param> internal void CopyToDriverFolder(string driverFolderPath) { var localFolderPath = Path.Combine(driverFolderPath, _fileNames.GetLocalFolderPath()); CopyAllToFolder(_localFileSet, localFolderPath); var globalFolderPath = Path.Combine(driverFolderPath, _fileNames.GetGlobalFolderPath()); CopyAllToFolder(_globalFileSet, globalFolderPath); }
/// <summary> /// Serializes the application parameters to reef/local/app-submission-params.json. /// </summary> internal void SerializeAppFile(AppParameters appParameters, IInjector paramInjector, string localDriverFolderPath) { var serializedArgs = SerializeAppArgsToBytes(appParameters, paramInjector, localDriverFolderPath); var submissionAppArgsFilePath = Path.Combine( localDriverFolderPath, _fileNames.GetLocalFolderPath(), _fileNames.GetAppSubmissionParametersFile()); using (var jobArgsFileStream = new FileStream(submissionAppArgsFilePath, FileMode.CreateNew)) { jobArgsFileStream.Write(serializedArgs, 0, serializedArgs.Length); } }
/// <summary> /// Creates the driver folder structure in this given folder as the root /// </summary> /// <param name="driverFolderPath"></param> internal void CreateDefaultFolderStructure(string driverFolderPath) { Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetReefFolderName())); Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetLocalFolderPath())); Directory.CreateDirectory(Path.Combine(driverFolderPath, _fileNames.GetGlobalFolderPath())); }