package controller

import (
	corev1 "k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/api/errors"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func (c *Controller) GetNamespace(name string) (*corev1.Namespace, error) {
	return c.kubeCli.CoreV1().Namespaces().Get(name, metav1.GetOptions{})
}

func (c *Controller) CreateNamespace(name string) error {
	namespace := &corev1.Namespace{
		ObjectMeta: metav1.ObjectMeta{
			Name: name,
		},
	}

	_, err := c.kubeCli.CoreV1().Namespaces().Create(namespace)
	if err != nil && !errors.IsAlreadyExists(err) {
		return err
	}
	return nil
}

func (c *Controller) DeleteNamespace(name string) error {
	err := c.kubeCli.CoreV1().Namespaces().Delete(name, &metav1.DeleteOptions{})
	return err
}
