generated from dogmatiq/template-go
-
Notifications
You must be signed in to change notification settings - Fork 1
/
advertise.go
160 lines (146 loc) · 4.36 KB
/
advertise.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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package crd
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/manager"
)
// ConditionTypeAdvertised is a condition that indicates whether or not the
// service instance has been advertised via a provider.
const ConditionTypeAdvertised = "Advertised"
// DNSRecordsCreated records an event indicating that new DNS records were
// created.
func DNSRecordsCreated(m manager.Manager, res *DNSSDServiceInstance) {
m.
GetEventRecorderFor("proclaim-"+res.Status.Provider).
Event(
res,
"Normal",
"RecordsCreated",
"created new DNS records",
)
}
// DNSRecordsCreatedCondition returns a condition indicating that the
// instance's DNS records have been created.
func DNSRecordsCreatedCondition() metav1.Condition {
return metav1.Condition{
Type: ConditionTypeAdvertised,
Status: metav1.ConditionTrue,
Reason: "RecordsCreated",
Message: "created new DNS records",
}
}
// DNSRecordsUpdated records an event indicating that existing DNS records were
// updated.
func DNSRecordsUpdated(m manager.Manager, res *DNSSDServiceInstance) {
m.
GetEventRecorderFor("proclaim-"+res.Status.Provider).
Event(
res,
"Normal",
"RecordsUpdated",
"updated existing DNS records",
)
}
// DNSRecordsUpdatedCondition returns a condition indicating that the instance's
// DNS records have been updated.
func DNSRecordsUpdatedCondition() metav1.Condition {
return metav1.Condition{
Type: ConditionTypeAdvertised,
Status: metav1.ConditionTrue,
Reason: "RecordsUpdated",
Message: "updating existing DNS records",
}
}
// DNSRecordsVerified records an event indicating that existing DNS records were
// verified to match the service instance spec.
func DNSRecordsVerified(m manager.Manager, res *DNSSDServiceInstance) {
m.
GetEventRecorderFor("proclaim-"+res.Status.Provider).
Event(
res,
"Normal",
"RecordsVerified",
"verified that existing DNS records have expected values",
)
}
// DNSRecordsObservedCondition returns a condition indicating that the
// instance's DNS records have been observed to already exist.
func DNSRecordsObservedCondition() metav1.Condition {
return metav1.Condition{
Type: ConditionTypeAdvertised,
Status: metav1.ConditionTrue,
Reason: "RecordsObserved",
Message: "found existing DNS records",
}
}
// DNSRecordsDeleted records an event indicating that existing DNS records were
// deleted.
func DNSRecordsDeleted(m manager.Manager, res *DNSSDServiceInstance) {
m.
GetEventRecorderFor("proclaim-"+res.Status.Provider).
Event(
res,
"Normal",
"RecordsDeleted",
"deleted existing DNS records",
)
}
// DNSRecordsDeletedCondition returns a condition indicating that the instance's
// DNS records have been removed.
func DNSRecordsDeletedCondition() metav1.Condition {
return metav1.Condition{
Type: ConditionTypeAdvertised,
Status: metav1.ConditionFalse,
Reason: "RecordsDeleted",
Message: "deleted existing DNS records",
}
}
// DNSRecordsDoNotExistCondition returns a condition indicating that the
// instance's DNS records do not exist, either because they never did or they
// have already been removed.
func DNSRecordsDoNotExistCondition() metav1.Condition {
return metav1.Condition{
Type: ConditionTypeAdvertised,
Status: metav1.ConditionFalse,
Reason: "RecordsDoNotExist",
Message: "DNS records do not exist",
}
}
// ProviderError records an event indicating that an error occurred while
// interacting with a DNS provider.
func ProviderError(
m manager.Manager,
res *DNSSDServiceInstance,
id, desc string,
err error,
) {
m.
GetEventRecorderFor("proclaim-"+id).
Eventf(
res,
"Warning",
"ProviderError",
"%s: %s",
desc,
err.Error(),
)
}
// AdvertiseErrorCondition returns a condition indicating that an attempt to
// advertise the instance failed with the given error.
func AdvertiseErrorCondition(err error) metav1.Condition {
return metav1.Condition{
Type: ConditionTypeAdvertised,
Status: metav1.ConditionUnknown,
Reason: "AdvertiseError",
Message: err.Error(),
}
}
// UnadvertiseErrorCondition returns a condition indicating that an attempt to
// unadvertise the instance failed with the given error.
func UnadvertiseErrorCondition(err error) metav1.Condition {
return metav1.Condition{
Type: ConditionTypeAdvertised,
Status: metav1.ConditionUnknown,
Reason: "UnadvertiseError",
Message: err.Error(),
}
}