package eks

import (
	"context"

	"github.com/tidbcloud/eks-provider/controllers/dm/task"
	"github.com/tidbcloud/infra-provider/pkg/deploy"
)

// WorkerNodePool manage lifecycle node pool for eks.
type WorkerNodePool struct {
	*BaseNodePool
}

func NewWorkerNodePool(ctx *task.Context) *WorkerNodePool {
	nodePoolTask := &WorkerNodePool{
		BaseNodePool: NewBaseNodePool(ctx, "worker-node-pool", ctx.DMWorkerSpec, nil),
	}
	nodePoolTask.BaseNodePool.nodeLabels = nodePoolTask.GetWorkerNodeLabels()
	return nodePoolTask
}

func (t *WorkerNodePool) PostCreate(ctx context.Context) deploy.Result {
	result := t.BaseNodePool.PostCreate(ctx)
	if result.IsDoneState() {
		t.WorkerNodePoolReady = true
	}
	return result
}
