kubelatte-ce

Форк
2
Форк от sbertech/kubelatte-ce
113 строк · 3.7 Кб
1
package clientset
2

3
import (
4
	"context"
5
	"gitverse.ru/synapse/kubelatte/pkg/api/v1alpha1"
6
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7
	"k8s.io/apimachinery/pkg/watch"
8
	"k8s.io/client-go/kubernetes/scheme"
9
	"k8s.io/client-go/rest"
10
)
11

12
//go:generate go run github.com/vektra/mockery/v2@v2.20.2 --name=TriggerInstanceInterface
13
type TriggerInstanceInterface interface {
14
	List(ctx context.Context, ns string, opts metav1.ListOptions) (*v1alpha1.TriggerInstanceList, error)
15
	Get(ctx context.Context, ns string, name string, options metav1.GetOptions) (*v1alpha1.TriggerInstance, error)
16
	Update(ctx context.Context, ns string, triggerInstance *v1alpha1.TriggerInstance, opts metav1.UpdateOptions) (result *v1alpha1.TriggerInstance, err error)
17
	UpdateStatus(ctx context.Context, ns string, hostEntry *v1alpha1.TriggerInstance, opts metav1.UpdateOptions) (*v1alpha1.TriggerInstance, error)
18
	Create(ctx context.Context, ns string, triggerInstance *v1alpha1.TriggerInstance) (*v1alpha1.TriggerInstance, error)
19
	Delete(ctx context.Context, ns string, name string, opts metav1.DeleteOptions) error
20
	Watch(ctx context.Context, ns string, opts metav1.ListOptions) (watch.Interface, error)
21
}
22

23
type triggerInstanceClient struct {
24
	restClient rest.Interface
25
}
26

27
func (c *triggerInstanceClient) List(ctx context.Context, ns string, opts metav1.ListOptions) (*v1alpha1.TriggerInstanceList, error) {
28
	result := v1alpha1.TriggerInstanceList{}
29
	err := c.restClient.
30
		Get().
31
		Namespace(ns).
32
		Resource("triggerInstances").
33
		VersionedParams(&opts, scheme.ParameterCodec).
34
		Do(ctx).
35
		Into(&result)
36

37
	return &result, err
38
}
39

40
func (c *triggerInstanceClient) Get(ctx context.Context, ns string, name string, opts metav1.GetOptions) (*v1alpha1.TriggerInstance, error) {
41
	result := v1alpha1.TriggerInstance{}
42
	err := c.restClient.
43
		Get().
44
		Namespace(ns).
45
		Resource("triggerInstances").
46
		Name(name).
47
		VersionedParams(&opts, scheme.ParameterCodec).
48
		Do(ctx).
49
		Into(&result)
50

51
	return &result, err
52
}
53

54
func (c *triggerInstanceClient) Update(ctx context.Context, ns string, triggerInstance *v1alpha1.TriggerInstance, opts metav1.UpdateOptions) (result *v1alpha1.TriggerInstance, err error) {
55
	result = &v1alpha1.TriggerInstance{}
56
	err = c.restClient.Put().
57
		Namespace(ns).
58
		Resource("triggerInstances").
59
		Name(triggerInstance.Name).
60
		VersionedParams(&opts, scheme.ParameterCodec).
61
		Body(triggerInstance).
62
		Do(ctx).
63
		Into(result)
64
	return
65
}
66

67
func (c *triggerInstanceClient) UpdateStatus(ctx context.Context, ns string, hostEntry *v1alpha1.TriggerInstance, opts metav1.UpdateOptions) (result *v1alpha1.TriggerInstance, err error) {
68
	result = &v1alpha1.TriggerInstance{}
69
	err = c.restClient.Put().
70
		Namespace(ns).
71
		Resource("triggerInstances").
72
		Name(hostEntry.Name).
73
		SubResource("status").
74
		VersionedParams(&opts, scheme.ParameterCodec).
75
		Body(hostEntry).
76
		Do(ctx).
77
		Into(result)
78
	return
79
}
80

81
func (c *triggerInstanceClient) Create(ctx context.Context, ns string, triggerInstance *v1alpha1.TriggerInstance) (*v1alpha1.TriggerInstance, error) {
82
	result := v1alpha1.TriggerInstance{}
83
	err := c.restClient.
84
		Post().
85
		Namespace(ns).
86
		Resource("triggerInstances").
87
		Body(triggerInstance).
88
		Do(ctx).
89
		Into(&result)
90

91
	return &result, err
92
}
93

94
func (c *triggerInstanceClient) Delete(ctx context.Context, ns string, name string, opts metav1.DeleteOptions) error {
95
	return c.restClient.
96
		Delete().
97
		Namespace(ns).
98
		Resource("triggerInstances").
99
		Name(name).
100
		Body(&opts).
101
		Do(ctx).
102
		Error()
103
}
104

105
func (c *triggerInstanceClient) Watch(ctx context.Context, ns string, opts metav1.ListOptions) (watch.Interface, error) {
106
	opts.Watch = true
107
	return c.restClient.
108
		Get().
109
		Namespace(ns).
110
		Resource("triggerInstance").
111
		VersionedParams(&opts, scheme.ParameterCodec).
112
		Watch(ctx)
113
}
114

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.