oracle/controllers/cronanythingcontroller/operations.go (36 lines of code) (raw):
package cronanythingcontroller
import (
"context"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
commonv1alpha1 "github.com/GoogleCloudPlatform/elcarro-oracle-operator/common/api/v1alpha1"
"github.com/GoogleCloudPlatform/elcarro-oracle-operator/oracle/api/v1alpha1"
)
type RealCronAnythingControl struct {
client.Client
}
func (r *RealCronAnythingControl) Get(key client.ObjectKey) (commonv1alpha1.CronAnything, error) {
ca := &v1alpha1.CronAnything{}
err := r.Client.Get(context.TODO(), key, ca)
return ca, err
}
func (r *RealCronAnythingControl) UpdateStatus(ca commonv1alpha1.CronAnything) error {
return r.Client.Status().Update(context.TODO(), ca.(*v1alpha1.CronAnything))
}
func (r *RealCronAnythingControl) Create(ns string, name string, cas commonv1alpha1.CronAnythingSpec, owner commonv1alpha1.BackupSchedule) error {
ca := &v1alpha1.CronAnything{
ObjectMeta: metav1.ObjectMeta{
Namespace: ns,
Name: name,
},
Spec: v1alpha1.CronAnythingSpec{
CronAnythingSpec: cas,
},
}
err := controllerutil.SetControllerReference(owner, ca, r.Scheme())
if err != nil {
return err
}
return r.Client.Create(context.TODO(), ca)
}