package v1

import (
	"fmt"
	"net/url"

	"k8s.io/apimachinery/pkg/types"
	"k8s.io/apimachinery/pkg/util/validation/field"
)

func (b *Backup) GetClusterRef() types.NamespacedName {
	return types.NamespacedName{
		Namespace: b.Namespace,
		Name:      b.Spec.ClusterName,
	}
}

func validateStorage(providerType string, storage string) *field.Error {
	uri, err := url.Parse(storage)
	if err != nil {

		return field.Invalid(field.NewPath("backup").Child("spec").Child("storage"), storage,
			fmt.Sprintf("parameter stroage %s parse failed: %s", storage, err))

	}

	if len(uri.Host) == 0 || (providerType == ProviderGCP && uri.Scheme != "gs") {
		return field.Invalid(field.NewPath("backup").Child("spec").Child("storage"), storage,
			fmt.Sprintf("parameter stroage %s invalid in provider %s", storage, providerType))
	}
	return nil
}
