This repository has been archived by the owner on Oct 11, 2023. It is now read-only.
/
binding-template.go
143 lines (119 loc) · 4.47 KB
/
binding-template.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
package servicecatalogtempltesdk
import (
"fmt"
templates "github.com/Azure/service-catalog-templates/pkg/apis/templates/experimental"
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func (sdk *SDK) GetBindingTemplates(ns string, cluster, broker bool, serviceType string) ([]templates.BindingTemplateInterface, error) {
var t []templates.BindingTemplateInterface
if broker {
bbndts, err := sdk.GetBrokerBindingTemplatesByServiceType(serviceType)
if err != nil {
return nil, err
}
for _, bbndt := range bbndts.Items {
t = append(t, &bbndt)
}
return t, err
}
if cluster {
cbndt, err := sdk.GetClusterBindingTemplateByServiceType(serviceType)
if err != nil {
return nil, err
}
if cbndt != nil {
t = append(t, cbndt)
}
return t, err
}
bndt, err := sdk.GetBindingTemplateByServiceType(serviceType, ns)
if err != nil {
return nil, err
}
if bndt != nil {
t = append(t, bndt)
}
return t, err
}
func (sdk *SDK) GetBindingTemplate(ns string, cluster, broker bool, name string) (t templates.BindingTemplateInterface, err error) {
if broker {
return sdk.RetrieveBrokerBindingTemplate(name)
}
if cluster {
return sdk.RetrieveClusterBindingTemplate(name)
}
return sdk.RetrieveBindingTemplate(ns, name)
}
func (sdk *SDK) GetBindingTemplateByServiceType(serviceType, namespace string) (*templates.BindingTemplate, error) {
results, err := sdk.Templates().BindingTemplates(namespace).List(filterByServiceTypeLabel(serviceType))
if err != nil {
return nil, err
}
if len(results.Items) == 0 {
return nil, nil
}
return &results.Items[0], nil
}
func (sdk *SDK) GetClusterBindingTemplateByServiceType(serviceType string) (*templates.ClusterBindingTemplate, error) {
results, err := sdk.Templates().ClusterBindingTemplates().List(filterByServiceTypeLabel(serviceType))
if err != nil {
return nil, err
}
if len(results.Items) == 0 {
return nil, nil
}
return &results.Items[0], nil
}
func (sdk *SDK) GetBrokerBindingTemplatesByServiceType(serviceType string) (*templates.BrokerBindingTemplateList, error) {
return sdk.Templates().BrokerBindingTemplates().List(filterByServiceTypeLabel(serviceType))
}
// RetrieveBindingTemplates lists all binding templates in a namespace.
func (sdk *SDK) RetrieveBindingTemplates(ns, serviceType string) (*templates.BindingTemplateList, error) {
bndts, err := sdk.Templates().BindingTemplates(ns).List(meta.ListOptions{})
if err != nil {
return nil, fmt.Errorf("unable to list binding templates in %q (%s)", ns, err)
}
return bndts, nil
}
// RetrieveClusterBindingTemplates lists all binding templates in a namespace.
func (sdk *SDK) RetrieveClusterBindingTemplates() (*templates.ClusterBindingTemplateList, error) {
cbndts, err := sdk.Templates().ClusterBindingTemplates().List(meta.ListOptions{})
if err != nil {
return nil, fmt.Errorf("unable to list cluster binding templates (%s)", err)
}
return cbndts, nil
}
// RetrieveBrokerBindingTemplates lists all binding templates in a namespace.
func (sdk *SDK) RetrieveBrokerBindingTemplates() (*templates.BrokerBindingTemplateList, error) {
bbndts, err := sdk.Templates().BrokerBindingTemplates().List(meta.ListOptions{})
if err != nil {
return nil, fmt.Errorf("unable to list broker binding templates (%s)", err)
}
return bbndts, nil
}
// RetrieveTemplatedInstance gets an binding template by its name.
func (sdk *SDK) RetrieveBindingTemplate(ns, name string) (*templates.BindingTemplate, error) {
bndt, err := sdk.Templates().BindingTemplates(ns).Get(name, meta.GetOptions{})
if err != nil {
return nil, fmt.Errorf("unable to get binding template '%s.%s' (%s)", ns, name, err)
}
return bndt, nil
}
// RetrieveClusterBindingTemplate gets a cluster binding template by its name.
func (sdk *SDK) RetrieveClusterBindingTemplate(name string) (*templates.ClusterBindingTemplate, error) {
cbndt, err := sdk.Templates().ClusterBindingTemplates().Get(name, meta.GetOptions{})
if err != nil {
return nil, fmt.Errorf("unable to get cluster binding template %q (%s)", name, err)
}
return cbndt, nil
}
// RetrieveBrokerBindingTemplate gets a cluster binding template by its name.
func (sdk *SDK) RetrieveBrokerBindingTemplate(name string) (*templates.BrokerBindingTemplate, error) {
bbndt, err := sdk.Templates().BrokerBindingTemplates().Get(name, meta.GetOptions{})
if err != nil {
return nil, fmt.Errorf("unable to get broker binding template %q (%s)", name, err)
}
return bbndt, nil
}