@@ -31,38 +31,38 @@ type backend struct {
31
31
repository RepositoryFacade
32
32
assembler * ConfigurationAssembler
33
33
initialNamespace string
34
- heartbeatHandler backendapi. HeartbeatHandler
34
+ heartbeatHandler * SynchronousHandler
35
35
}
36
36
37
37
func NewBackend (repository RepositoryFacade , assembler * ConfigurationAssembler ,
38
- logger * zap.SugaredLogger , initialNamespace string , recorder record.EventRecorder ) backendapi.Backend {
38
+ logger * zap.SugaredLogger , initialNamespace string , recorder record.EventRecorder ) backendapi.EdgeDeviceBackend {
39
39
return & backend {repository : repository ,
40
40
assembler : assembler ,
41
41
logger : logger ,
42
42
initialNamespace : initialNamespace ,
43
43
heartbeatHandler : NewSynchronousHandler (repository , recorder , logger )}
44
44
}
45
45
46
- func (b * backend ) ShouldEdgeDeviceBeUnregistered (ctx context.Context , name , namespace string ) (bool , error ) {
46
+ func (b * backend ) GetRegistrationStatus (ctx context.Context , name , namespace string ) (backendapi. RegistrationStatus , error ) {
47
47
edgeDevice , err := b .repository .GetEdgeDevice (ctx , name , namespace )
48
48
if err != nil {
49
- return false , err
49
+ return backendapi . Unknown , err
50
50
}
51
51
52
52
if edgeDevice .DeletionTimestamp == nil || utils .HasFinalizer (& edgeDevice .ObjectMeta , YggdrasilWorkloadFinalizer ) {
53
- return false , nil
53
+ return backendapi . Registered , nil
54
54
}
55
55
56
56
if utils .HasFinalizer (& edgeDevice .ObjectMeta , YggdrasilConnectionFinalizer ) {
57
57
err = b .repository .RemoveEdgeDeviceFinalizer (ctx , edgeDevice , YggdrasilConnectionFinalizer )
58
58
if err != nil {
59
- return false , err
59
+ return backendapi . Registered , err
60
60
}
61
61
}
62
- return true , nil
62
+ return backendapi . Unregistered , nil
63
63
}
64
64
65
- func (b * backend ) GetDeviceConfiguration (ctx context.Context , name , namespace string ) (* models.DeviceConfigurationMessage , error ) {
65
+ func (b * backend ) GetConfiguration (ctx context.Context , name , namespace string ) (* models.DeviceConfigurationMessage , error ) {
66
66
logger := b .logger .With ("DeviceID" , name )
67
67
edgeDevice , err := b .repository .GetEdgeDevice (ctx , name , namespace )
68
68
if err != nil {
@@ -80,7 +80,7 @@ func (b *backend) GetDeviceConfiguration(ctx context.Context, name, namespace st
80
80
return b .assembler .GetDeviceConfiguration (ctx , edgeDevice , logger )
81
81
}
82
82
83
- func (b * backend ) EnrolEdgeDevice (ctx context.Context , name string , enrolmentInfo * models.EnrolmentInfo ) (bool , error ) {
83
+ func (b * backend ) Enrol (ctx context.Context , name string , enrolmentInfo * models.EnrolmentInfo ) (bool , error ) {
84
84
targetNamespace := b .initialNamespace
85
85
if enrolmentInfo .TargetNamespace != nil {
86
86
targetNamespace = * enrolmentInfo .TargetNamespace
@@ -122,14 +122,14 @@ func (b *backend) EnrolEdgeDevice(ctx context.Context, name string, enrolmentInf
122
122
return false , b .repository .CreateEdgeDeviceSignedRequest (ctx , edsr )
123
123
}
124
124
125
- func (b * backend ) InitializeEdgeDeviceRegistration (ctx context.Context , name , identityNamespace string , matchesCertificate bool ) (bool , string , error ) {
125
+ func (b * backend ) GetTargetNamespace (ctx context.Context , name , identityNamespace string , matchesCertificate bool ) (string , error ) {
126
126
logger := b .logger .With ("DeviceID" , name )
127
127
namespace := identityNamespace
128
128
if identityNamespace == b .initialNamespace && ! matchesCertificate {
129
129
// check if it's a valid device, shouldn't match
130
130
esdr , err := b .repository .GetEdgeDeviceSignedRequest (ctx , name , b .initialNamespace )
131
131
if err != nil {
132
- return false , "" , err
132
+ return "" , err
133
133
}
134
134
if esdr .Spec .TargetNamespace != "" {
135
135
namespace = esdr .Spec .TargetNamespace
@@ -138,13 +138,13 @@ func (b *backend) InitializeEdgeDeviceRegistration(ctx context.Context, name, id
138
138
dvc , err := b .repository .GetEdgeDevice (ctx , name , namespace )
139
139
if err != nil {
140
140
if errors .IsNotFound (err ) {
141
- return false , "" , backendapi .NewNotApproved (err )
141
+ return "" , backendapi .NewNotApproved (err )
142
142
}
143
- return false , "" , err
143
+ return "" , err
144
144
}
145
145
146
146
if dvc == nil {
147
- return false , "" , fmt .Errorf ("device not found" )
147
+ return "" , fmt .Errorf ("device not found" )
148
148
}
149
149
150
150
isInit := false
@@ -159,13 +159,18 @@ func (b *backend) InitializeEdgeDeviceRegistration(ctx context.Context, name, id
159
159
// At this moment, the registration certificate it's no longer valid,
160
160
// because the CR is already created, and need to be a device
161
161
// certificate.
162
- return false , "" , fmt .Errorf ("forbidden" )
162
+ return "" , fmt .Errorf ("forbidden" )
163
163
}
164
164
165
- return isInit , namespace , nil
165
+ if isInit {
166
+ logger .Info ("EdgeDevice registered correctly for first time" )
167
+ } else {
168
+ logger .Info ("EdgeDevice renew registration correctly" )
169
+ }
170
+ return namespace , nil
166
171
}
167
172
168
- func (b * backend ) FinalizeEdgeDeviceRegistration (ctx context.Context , name , namespace string , registrationInfo * models.RegistrationInfo ) error {
173
+ func (b * backend ) FinalizeRegistration (ctx context.Context , name , namespace string , registrationInfo * models.RegistrationInfo ) error {
169
174
logger := b .logger .With ("DeviceID" , name )
170
175
dvc , err := b .repository .GetEdgeDevice (ctx , name , namespace )
171
176
deviceCopy := dvc .DeepCopy ()
@@ -187,8 +192,8 @@ func (b *backend) FinalizeEdgeDeviceRegistration(ctx context.Context, name, name
187
192
return err
188
193
}
189
194
190
- func (b * backend ) GetHeartbeatHandler () backendapi.HeartbeatHandler {
191
- return b .heartbeatHandler
195
+ func (b * backend ) UpdateStatus ( ctx context. Context , notification backendapi.Notification ) ( bool , error ) {
196
+ return b .heartbeatHandler . Process ( ctx , notification )
192
197
}
193
198
194
199
func (b * backend ) updateDeviceStatus (ctx context.Context , device * v1alpha1.EdgeDevice , updateFunc func (d * v1alpha1.EdgeDevice )) error {
0 commit comments