package eks

import (
	"context"

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

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

func NewMasterNodePool(ctx *task.Context) *MasterNodePool {
	nodePoolTask := &MasterNodePool{
		BaseNodePool: NewBaseNodePool(ctx, "master-node-pool", ctx.DMMasterSpec, nil),
	}
	nodePoolTask.BaseNodePool.nodeLabels = nodePoolTask.GetMasterNodeLabels()
	return nodePoolTask
}

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