func CheckAvailableMigration()

in ec/ecresource/deploymentresource/elasticsearch/v2/elasticsearch_payload.go [100:132]


func CheckAvailableMigration(ctx context.Context, plan types.Object, state types.Object) (bool, diag.Diagnostics) {
	esPlan, diags := objectToElasticsearch(ctx, plan)
	if diags.HasError() {
		return false, diags
	}

	esState, diags := objectToElasticsearch(ctx, state)
	if diags.HasError() {
		return false, diags
	}

	if esPlan == nil || esState == nil {
		return false, nil
	}

	planTiers, diags := esPlan.topologies(ctx)
	if diags.HasError() {
		return false, diags
	}

	stateTiers, diags := esState.topologies(ctx)
	if diags.HasError() {
		return false, diags
	}

	for topologyId, tier := range planTiers {
		if tier != nil && stateTiers[topologyId] != nil && tier.checkAvailableMigration(stateTiers[topologyId]) {
			return true, nil
		}
	}

	return false, nil
}