private void SetStandardProperties(ClientJobRequest request, JobCreateParameters details) { foreach (var jobRequestParameter in request.Resources) { details.Files.Add(jobRequestParameter.Value.ToString()); } }
private JobCreationResults CreateJobSuccessResult(JobCreateParameters details, string jobName) { return this.CreateJobSuccessResult(new JobDetails() { StatusDirectory = details.StatusFolder }, jobName); }
public string SerializeJobCreationDetails(JobCreateParameters job) { if (job.IsNull()) { throw new ArgumentNullException("job"); } if (job.StatusFolder.IsNullOrEmpty()) { job.StatusFolder = "(ignore)"; } var asHiveJob = job as HiveJobCreateParameters; var asMapReduceJob = job as MapReduceJobCreateParameters; var jobType = asHiveJob.IsNotNull() ? "Hive" : "MapReduce"; if (asHiveJob.IsNull() && asMapReduceJob.IsNull()) { throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Unsupported job type :{0}", job.GetType().FullName)); } var jobName = asHiveJob == null ? asMapReduceJob.JobName : asHiveJob.JobName; if (jobName.IsNullOrEmpty()) { throw new ArgumentException("A jobDetails name is required when submitting a jobDetails.", "job"); } dynamic dynaXml = DynaXmlBuilder.Create(); dynaXml.b .xmlns("http://schemas.datacontract.org/2004/07/Microsoft.ClusterServices.RDFEProvider.ResourceExtensions.JobSubmission.Models") .xmlns.i("http://www.w3.org/2001/XMLSchema-instance") .xmlns.a("http://schemas.microsoft.com/2003/10/Serialization/Arrays") .xmlns.s("http://www.w3.org/2001/XMLSchema") .ClientJobRequest .b .End(); if (asMapReduceJob.IsNotNull() && asMapReduceJob.ClassName.IsNotNullOrEmpty()) { dynaXml.ApplicationName(asMapReduceJob.ClassName); } else { dynaXml.ApplicationName.End(); } dynaXml.Arguments .b .sp("arguments") .d .End(); if (asMapReduceJob.IsNotNull() && asMapReduceJob.JarFile.IsNotNullOrEmpty()) { dynaXml.JarFile(asMapReduceJob.JarFile); } else { dynaXml.JarFile.End(); } dynaXml.JobName(jobName) .JobType(jobType.ToString()) .OutputStorageLocation(job.StatusFolder) .Parameters .b .sp("parameters") .d .Query .b .sp("query") .d .Resources .b .sp("resources") .d .End(); dynaXml.d.d.End(); if (asHiveJob.IsNotNull() && asHiveJob.Query.IsNotNull()) { dynaXml.rp("query") .text(asHiveJob.Query); if (asHiveJob.Defines.IsNotNull()) { foreach (var parameter in asHiveJob.Defines) { dynaXml.rp("parameters") .JobRequestParameter .b .Key(parameter.Key) .Value .b .at.xmlns.i.type("s:string") .text(parameter.Value) .d .d .End(); } } } if (asMapReduceJob.IsNotNull() && asMapReduceJob.Arguments.IsNotNull()) { foreach (var argument in asMapReduceJob.Arguments) { dynaXml.rp("arguments").xmlns.a.@string(argument); } if (asMapReduceJob.Defines.IsNotNull()) { foreach (var parameter in asMapReduceJob.Defines) { dynaXml.rp("parameters") .JobRequestParameter .b .Key(parameter.Key) .Value .b .at.xmlns.i.type("s:string") .text(parameter.Value) .d .d .End(); } } } if (job.Files.IsNotNull()) { foreach (var resource in job.Files) { dynaXml.rp("resources") .JobRequestParameter .b .Key(resource) .Value .b .at.xmlns.i.type("s:string") .text(resource) .d .d .End(); } } return dynaXml.ToString(); }