示例#1
0
func (db *SQLDB) completeTask(logger lager.Logger, task *models.Task, failed bool, failureReason, result string, tx *sql.Tx) error {
	now := db.clock.Now().UnixNano()
	_, err := db.update(logger, tx, tasksTable,
		SQLAttributes{
			"failed":             failed,
			"failure_reason":     failureReason,
			"result":             result,
			"state":              models.Task_Completed,
			"first_completed_at": now,
			"updated_at":         now,
			"cell_id":            "",
		},
		"guid = ?", task.TaskGuid,
	)
	if err != nil {
		logger.Error("failed-updating-tasks", err)
		return db.convertSQLError(err)
	}

	task.State = models.Task_Completed
	task.UpdatedAt = now
	task.FirstCompletedAt = now
	task.Failed = failed
	task.FailureReason = failureReason
	task.Result = result
	task.CellId = ""

	return nil
}
示例#2
0
func (db *ETCDDB) markTaskCompleted(task *models.Task, failed bool, failureReason, result string) {
	now := db.clock.Now().UnixNano()
	task.CellId = ""
	task.UpdatedAt = now
	task.FirstCompletedAt = now
	task.State = models.Task_Completed
	task.Failed = failed
	task.FailureReason = failureReason
	task.Result = result
}
示例#3
0
		BeforeEach(func() {
			expectedTask = model_helpers.NewValidTask("task-guid")
			err := sqlDB.DesireTask(logger, expectedTask.TaskDefinition, expectedTask.TaskGuid, expectedTask.Domain)
			Expect(err).NotTo(HaveOccurred())
		})

		JustBeforeEach(func() {
			var err error
			beforeTask, err = sqlDB.TaskByGuid(logger, expectedTask.TaskGuid)
			Expect(err).NotTo(HaveOccurred())
		})

		It("starts the task", func() {
			fakeClock.IncrementBySeconds(1)

			expectedTask.CellId = "expectedCellId"

			started, err := sqlDB.StartTask(logger, expectedTask.TaskGuid, expectedTask.CellId)
			Expect(err).NotTo(HaveOccurred())
			Expect(started).To(BeTrue())

			task, err := sqlDB.TaskByGuid(logger, expectedTask.TaskGuid)
			Expect(err).NotTo(HaveOccurred())

			Expect(task.TaskGuid).To(Equal(expectedTask.TaskGuid))
			Expect(task.State).To(Equal(models.Task_Running))
			Expect(task.CellId).To(Equal(expectedTask.CellId))
			Expect(task.TaskDefinition).To(BeEquivalentTo(expectedTask.TaskDefinition))
			Expect(task.UpdatedAt).To(Equal(fakeClock.Now().UnixNano()))
		})