/// <summary> /// Lists the Tasks matching the specified filter options /// </summary> /// <param name="options">The options to use when querying for Tasks</param> /// <returns>The Tasks matching the specified filter options</returns> public IEnumerable <PSCloudTask> ListTasks(ListTaskOptions options) { if (options == null) { throw new ArgumentNullException("options"); } if ((string.IsNullOrEmpty(options.WorkItemName) || string.IsNullOrEmpty(options.JobName)) && options.Job == null) { throw new ArgumentNullException(Resources.GBT_NoJob); } // Get the single Task matching the specified name if (!string.IsNullOrEmpty(options.TaskName)) { WriteVerbose(string.Format(Resources.GBT_GetByName, options.TaskName, options.JobName, options.WorkItemName)); using (IWorkItemManager wiManager = options.Context.BatchOMClient.OpenWorkItemManager()) { ICloudTask task = wiManager.GetTask(options.WorkItemName, options.JobName, options.TaskName, additionalBehaviors: options.AdditionalBehaviors); PSCloudTask psTask = new PSCloudTask(task); return(new PSCloudTask[] { psTask }); } } // List Tasks using the specified filter else { if (options.MaxCount <= 0) { options.MaxCount = Int32.MaxValue; } string jName = options.Job == null ? options.JobName : options.Job.Name; ODATADetailLevel odata = null; if (!string.IsNullOrEmpty(options.Filter)) { WriteVerbose(string.Format(Resources.GBT_GetByOData, jName, options.MaxCount)); odata = new ODATADetailLevel(filterClause: options.Filter); } else { WriteVerbose(string.Format(Resources.GBT_GetNoFilter, jName, options.MaxCount)); } IEnumerableAsyncExtended <ICloudTask> tasks = null; if (options.Job != null) { tasks = options.Job.omObject.ListTasks(odata, options.AdditionalBehaviors); } else { using (IWorkItemManager wiManager = options.Context.BatchOMClient.OpenWorkItemManager()) { tasks = wiManager.ListTasks(options.WorkItemName, options.JobName, odata, options.AdditionalBehaviors); } } Func <ICloudTask, PSCloudTask> mappingFunction = t => { return(new PSCloudTask(t)); }; return(new PSAsyncEnumerable <PSCloudTask, ICloudTask>(tasks, mappingFunction).Take(options.MaxCount)); } }
public NewBulkTaskParameters(BatchAccountContext context, string jobId, PSCloudJob job, PSCloudTask[] tasks, IEnumerable<BatchClientBehavior> additionalBehaviors = null) : base(context, jobId, job, additionalBehaviors) { if (tasks == null) { throw new ArgumentNullException("taskCollection"); } this.Tasks = tasks; }
/// <summary> /// Commits changes to a PSCloudTask object to the Batch Service. /// </summary> /// <param name="context">The account to use.</param> /// <param name="task">The PSCloudTask object representing the task to update.</param> /// <param name="additionBehaviors">Additional client behaviors to perform.</param> public void UpdateTask(BatchAccountContext context, PSCloudTask task, IEnumerable <BatchClientBehavior> additionBehaviors = null) { if (task == null) { throw new ArgumentNullException("task"); } WriteVerbose(string.Format(Resources.UpdatingTask, task.Id)); task.omObject.Commit(additionBehaviors); }
public TaskOperationParameters(BatchAccountContext context, string jobId, string taskId, PSCloudTask task, IEnumerable<BatchClientBehavior> additionalBehaviors = null) : base(context, additionalBehaviors) { if ((string.IsNullOrWhiteSpace(jobId) || string.IsNullOrWhiteSpace(taskId)) && task == null) { throw new ArgumentNullException(Resources.NoTask); } this.JobId = jobId; this.TaskId = taskId; this.Task = task; }
/// <summary> /// Lists the tasks matching the specified filter options /// </summary> /// <param name="options">The options to use when querying for tasks</param> /// <returns>The tasks matching the specified filter options</returns> public IEnumerable<PSCloudTask> ListTasks(ListTaskOptions options) { if (options == null) { throw new ArgumentNullException("options"); } // Get the single task matching the specified name if (!string.IsNullOrEmpty(options.TaskName)) { WriteVerbose(string.Format(Resources.GBT_GetByName, options.TaskName, options.JobName, options.WorkItemName)); using (IWorkItemManager wiManager = options.Context.BatchOMClient.OpenWorkItemManager()) { ICloudTask task = wiManager.GetTask(options.WorkItemName, options.JobName, options.TaskName, additionalBehaviors: options.AdditionalBehaviors); PSCloudTask psTask = new PSCloudTask(task); return new PSCloudTask[] { psTask }; } } // List tasks using the specified filter else { string jName = options.Job == null ? options.JobName : options.Job.Name; ODATADetailLevel odata = null; string verboseLogString = null; if (!string.IsNullOrEmpty(options.Filter)) { verboseLogString = string.Format(Resources.GBT_GetByOData, jName); odata = new ODATADetailLevel(filterClause: options.Filter); } else { verboseLogString = string.Format(Resources.GBT_GetNoFilter, jName); } WriteVerbose(verboseLogString); IEnumerableAsyncExtended<ICloudTask> tasks = null; if (options.Job != null) { tasks = options.Job.omObject.ListTasks(odata, options.AdditionalBehaviors); } else { using (IWorkItemManager wiManager = options.Context.BatchOMClient.OpenWorkItemManager()) { tasks = wiManager.ListTasks(options.WorkItemName, options.JobName, odata, options.AdditionalBehaviors); } } Func<ICloudTask, PSCloudTask> mappingFunction = t => { return new PSCloudTask(t); }; return PSAsyncEnumerable<PSCloudTask, ICloudTask>.CreateWithMaxCount( tasks, mappingFunction, options.MaxCount, () => WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount))); } }
/// <summary> /// Lists the tasks matching the specified filter options. /// </summary> /// <param name="options">The options to use when querying for tasks.</param> /// <returns>The tasks matching the specified filter options.</returns> public IEnumerable<PSCloudTask> ListTasks(ListTaskOptions options) { if (options == null) { throw new ArgumentNullException("options"); } // Get the single task matching the specified id if (!string.IsNullOrEmpty(options.TaskId)) { WriteVerbose(string.Format(Resources.GetTaskById, options.TaskId, options.JobId)); JobOperations jobOperations = options.Context.BatchOMClient.JobOperations; ODATADetailLevel getDetailLevel = new ODATADetailLevel(selectClause: options.Select, expandClause: options.Expand); CloudTask task = jobOperations.GetTask(options.JobId, options.TaskId, detailLevel: getDetailLevel, additionalBehaviors: options.AdditionalBehaviors); PSCloudTask psTask = new PSCloudTask(task); return new PSCloudTask[] { psTask }; } // List tasks using the specified filter else { string jobId = options.Job == null ? options.JobId : options.Job.Id; string verboseLogString = null; ODATADetailLevel listDetailLevel = new ODATADetailLevel(selectClause: options.Select, expandClause: options.Expand); if (!string.IsNullOrEmpty(options.Filter)) { verboseLogString = string.Format(Resources.GetTaskByOData, jobId); listDetailLevel.FilterClause = options.Filter; } else { verboseLogString = string.Format(Resources.GetTaskNoFilter, jobId); } WriteVerbose(verboseLogString); IPagedEnumerable<CloudTask> tasks = null; if (options.Job != null) { tasks = options.Job.omObject.ListTasks(listDetailLevel, options.AdditionalBehaviors); } else { JobOperations jobOperations = options.Context.BatchOMClient.JobOperations; tasks = jobOperations.ListTasks(options.JobId, listDetailLevel, options.AdditionalBehaviors); } Func<CloudTask, PSCloudTask> mappingFunction = t => { return new PSCloudTask(t); }; return PSPagedEnumerable<PSCloudTask, CloudTask>.CreateWithMaxCount( tasks, mappingFunction, options.MaxCount, () => WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount))); } }
/// <summary> /// Lists the tasks matching the specified filter options. /// </summary> /// <param name="options">The options to use when querying for tasks.</param> /// <returns>The tasks matching the specified filter options.</returns> public IEnumerable <PSCloudTask> ListTasks(ListTaskOptions options) { if (options == null) { throw new ArgumentNullException("options"); } // Get the single task matching the specified id if (!string.IsNullOrEmpty(options.TaskId)) { WriteVerbose(string.Format(Resources.GetTaskById, options.TaskId, options.JobId)); JobOperations jobOperations = options.Context.BatchOMClient.JobOperations; ODATADetailLevel getDetailLevel = new ODATADetailLevel(selectClause: options.Select, expandClause: options.Expand); CloudTask task = jobOperations.GetTask(options.JobId, options.TaskId, detailLevel: getDetailLevel, additionalBehaviors: options.AdditionalBehaviors); PSCloudTask psTask = new PSCloudTask(task); return(new PSCloudTask[] { psTask }); } // List tasks using the specified filter else { string jobId = options.Job == null ? options.JobId : options.Job.Id; string verboseLogString = null; ODATADetailLevel listDetailLevel = new ODATADetailLevel(selectClause: options.Select, expandClause: options.Expand); if (!string.IsNullOrEmpty(options.Filter)) { verboseLogString = string.Format(Resources.GetTaskByOData, jobId); listDetailLevel.FilterClause = options.Filter; } else { verboseLogString = string.Format(Resources.GetTaskNoFilter, jobId); } WriteVerbose(verboseLogString); IPagedEnumerable <CloudTask> tasks = null; if (options.Job != null) { tasks = options.Job.omObject.ListTasks(listDetailLevel, options.AdditionalBehaviors); } else { JobOperations jobOperations = options.Context.BatchOMClient.JobOperations; tasks = jobOperations.ListTasks(options.JobId, listDetailLevel, options.AdditionalBehaviors); } Func <CloudTask, PSCloudTask> mappingFunction = t => { return(new PSCloudTask(t)); }; return(PSPagedEnumerable <PSCloudTask, CloudTask> .CreateWithMaxCount( tasks, mappingFunction, options.MaxCount, () => WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount)))); } }
public ListNodeFileOptions(BatchAccountContext context, string jobId, string taskId, PSCloudTask task, string poolId, string computeNodeId, PSComputeNode computeNode, IEnumerable<BatchClientBehavior> additionalBehaviors = null) : base(context, additionalBehaviors) { if ((!string.IsNullOrWhiteSpace(jobId) && !string.IsNullOrWhiteSpace(taskId)) || task != null) { this.NodeFileType = PSNodeFileType.Task; } else if ((!string.IsNullOrWhiteSpace(poolId) && !string.IsNullOrWhiteSpace(computeNodeId)) || computeNode != null) { this.NodeFileType = PSNodeFileType.ComputeNode; } else { throw new ArgumentException(Resources.NoNodeFileParent); } this.JobId = jobId; this.TaskId = taskId; this.Task = task; this.PoolId = poolId; this.ComputeNodeId = computeNodeId; this.ComputeNode = computeNode; }
public ListSubtaskOptions(BatchAccountContext context, string jobId, string taskId, PSCloudTask task, IEnumerable <BatchClientBehavior> additionalBehaviors = null) : base(context, jobId, taskId, task, additionalBehaviors) { }
/// <summary> /// Commits changes to a PSCloudTask object to the Batch Service. /// </summary> /// <param name="context">The account to use.</param> /// <param name="task">The PSCloudTask object representing the task to update.</param> /// <param name="additionBehaviors">Additional client behaviors to perform.</param> public void UpdateTask(BatchAccountContext context, PSCloudTask task, IEnumerable<BatchClientBehavior> additionBehaviors = null) { if (task == null) { throw new ArgumentNullException("task"); } WriteVerbose(string.Format(Resources.UpdatingTask, task.Id)); task.omObject.Commit(additionBehaviors); }
public ListNodeFileOptions(BatchAccountContext context, string jobId, string taskId, PSCloudTask task, string poolId, string computeNodeId, PSComputeNode computeNode, IEnumerable <BatchClientBehavior> additionalBehaviors = null) : base(context, additionalBehaviors) { if ((!string.IsNullOrWhiteSpace(jobId) && !string.IsNullOrWhiteSpace(taskId)) || task != null) { this.NodeFileType = PSNodeFileType.Task; } else if ((!string.IsNullOrWhiteSpace(poolId) && !string.IsNullOrWhiteSpace(computeNodeId)) || computeNode != null) { this.NodeFileType = PSNodeFileType.ComputeNode; } else { throw new ArgumentException(Resources.NoNodeFileParent); } this.JobId = jobId; this.TaskId = taskId; this.Task = task; this.PoolId = poolId; this.ComputeNodeId = computeNodeId; this.ComputeNode = computeNode; }
public TaskOperationParameters(BatchAccountContext context, string workItemName, string jobName, string taskName, PSCloudTask task, IEnumerable <BatchClientBehavior> additionalBehaviors = null) : base(context, additionalBehaviors) { if ((string.IsNullOrWhiteSpace(workItemName) || string.IsNullOrWhiteSpace(jobName) || string.IsNullOrWhiteSpace(taskName)) && task == null) { throw new ArgumentNullException(Resources.NoTask); } this.WorkItemName = workItemName; this.JobName = jobName; this.TaskName = taskName; this.Task = task; }
public ListTaskFileOptions(BatchAccountContext context, string workItemName, string jobName, string taskName, PSCloudTask task, IEnumerable<BatchClientBehavior> additionalBehaviors = null) : base(context, workItemName, jobName, taskName, task, additionalBehaviors) { }
public ListSubtaskOptions(BatchAccountContext context, string jobId, string taskId, PSCloudTask task, IEnumerable<BatchClientBehavior> additionalBehaviors = null) : base(context, jobId, taskId, task, additionalBehaviors) { }
public void NewBatchTaskCollectionParametersTest() { string commandLine = "cmd /c dir /s"; // Setup cmdlet without the required parameters BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); cmdlet.BatchContext = context; Assert.Throws<ArgumentNullException>(() => cmdlet.ExecuteCmdlet()); cmdlet.JobId = "job-collection"; Assert.Throws<ArgumentNullException>(() => cmdlet.ExecuteCmdlet()); string[] taskIds = new[] {"simple1", "simple2"}; PSCloudTask expected1 = new PSCloudTask(taskIds[0], commandLine); PSCloudTask expected2 = new PSCloudTask(taskIds[1], commandLine); cmdlet.Tasks = new PSCloudTask[] {expected1, expected2}; IList<TaskAddParameter> requestCollection = null; Action<BatchRequest< IList<TaskAddParameter>, TaskAddCollectionOptions, AzureOperationResponse<TaskAddCollectionResult, TaskAddCollectionHeaders>>> extractCollection = (request) => { requestCollection = request.Parameters; }; // Don't go to the service on an Add Task Collection call AzureOperationResponse<TaskAddCollectionResult, TaskAddCollectionHeaders> response = BatchTestHelpers.CreateTaskCollectionResponse(cmdlet.Tasks); RequestInterceptor interceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor(responseToUse: response, requestAction: extractCollection); cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor }; // Verify no exceptions when required parameters are set cmdlet.ExecuteCmdlet(); Assert.Equal(2, requestCollection.Count); foreach (var task in requestCollection) { Assert.True(taskIds.Contains(task.Id)); } }
public ListTaskFileOptions(BatchAccountContext context, string workItemName, string jobName, string taskName, PSCloudTask task, IEnumerable <BatchClientBehavior> additionalBehaviors = null) : base(context, workItemName, jobName, taskName, task, additionalBehaviors) { }