in agentendpoint/agentendpoint.go [233:267]
func (c *Client) runTask(ctx context.Context) {
clog.Debugf(ctx, "Beginning run task loop.")
for {
res, err := c.startNextTask(ctx)
if err != nil {
clog.Errorf(ctx, "Error running StartNextTask, cannot continue: %v", err)
return
}
task := res.GetTask()
if task == nil {
clog.Debugf(ctx, "No task to run, ending run task loop.")
return
}
clog.Debugf(ctx, "Received task: %s.", task.GetTaskType())
ctx := clog.WithLabels(ctx, map[string]string{"task_type": task.GetTaskType().String()})
switch task.GetTaskType() {
case agentendpointpb.TaskType_APPLY_PATCHES:
if err := c.RunApplyPatches(ctx, task); err != nil {
clog.Errorf(ctx, "Error running TaskType_APPLY_PATCHES: %v", err)
}
case agentendpointpb.TaskType_EXEC_STEP_TASK:
if err := c.RunExecStep(ctx, task); err != nil {
clog.Errorf(ctx, "Error running TaskType_EXEC_STEP_TASK: %v", err)
}
case agentendpointpb.TaskType_APPLY_CONFIG_TASK:
if err := c.RunApplyConfig(ctx, task); err != nil {
clog.Errorf(ctx, "Error running TaskType_APPLY_CONFIG_TASK: %v", err)
}
default:
clog.Errorf(ctx, "Unknown task type: %v", task.GetTaskType())
}
}
}