@@ -5,8 +5,7 @@ use crate::controller::definitions::epsilon_instance::{
5
5
use crate :: controller:: definitions:: epsilon_queue:: EpsilonQueue ;
6
6
use crate :: epsilon:: epsilon_error:: EpsilonError ;
7
7
use crate :: epsilon:: server:: instances:: common:: state:: EpsilonState ;
8
- use crate :: { EResult , TemplateProvider } ;
9
- use anyhow:: format_err;
8
+ use crate :: TemplateProvider ;
10
9
use futures:: stream:: StreamExt ;
11
10
use k8s_openapi:: api:: core:: v1:: {
12
11
ConfigMapEnvSource , Container , EnvFromSource , ExecAction , Pod , PodSpec , Probe ,
@@ -19,6 +18,7 @@ use kube::runtime::Controller;
19
18
use kube:: { Api , Client , Config } ;
20
19
use kube:: { Error , Resource } ;
21
20
use serde_json:: json;
21
+ use std:: borrow:: BorrowMut ;
22
22
use std:: collections:: BTreeMap ;
23
23
use std:: env;
24
24
use std:: sync:: Arc ;
@@ -83,14 +83,13 @@ impl EpsilonController {
83
83
let mut instance_owner_reference = epsilon_instance. controller_owner_ref ( & ( ) ) . unwrap ( ) ;
84
84
instance_owner_reference. block_owner_deletion = Some ( true ) ;
85
85
86
- let instance_metadata = & epsilon_instance. metadata ;
87
86
let instance_spec = & epsilon_instance. spec ;
88
87
let instance_status = epsilon_instance. status . clone ( ) ;
89
88
90
- let instance_name = instance_metadata . name . as_ref ( ) . unwrap ( ) ;
89
+ let instance_name = epsilon_instance . get_name ( ) ;
91
90
let template_name = & instance_spec. template ;
92
91
93
- if let Ok ( pod_option) = pod_api. get_opt ( instance_name) . await {
92
+ if let Ok ( pod_option) = pod_api. get_opt ( & instance_name) . await {
94
93
match pod_option {
95
94
None => {
96
95
let template = template_provider. get_template ( template_name) . await . unwrap ( ) ;
@@ -106,7 +105,7 @@ impl EpsilonController {
106
105
107
106
let pod = Pod {
108
107
metadata : ObjectMeta {
109
- name : Some ( instance_name. clone ( ) ) ,
108
+ name : Some ( instance_name) ,
110
109
owner_references : Some ( vec ! [ instance_owner_reference] ) ,
111
110
labels : Some ( labels) ,
112
111
..Default :: default ( )
@@ -164,7 +163,7 @@ impl EpsilonController {
164
163
Some ( pod) => {
165
164
let pod_status = pod. status . as_ref ( ) . unwrap ( ) ;
166
165
167
- let pod_ip = pod_status. pod_ip . as_ref ( ) ;
166
+ let pod_ip = pod_status. pod_ip . as_ref ( ) . cloned ( ) ;
168
167
169
168
if let Some ( pod_conditions) = pod_status. conditions . as_ref ( ) {
170
169
let pod_phase = pod_status. phase . as_ref ( ) . unwrap ( ) ;
@@ -191,13 +190,13 @@ impl EpsilonController {
191
190
let template =
192
191
template_provider. get_template ( template_name) . await . unwrap ( ) ;
193
192
194
- let instance_type = & template. t ;
193
+ let template_type = template. t . clone ( ) ;
195
194
196
195
EpsilonInstanceStatus {
197
- ip : pod_ip. cloned ( ) ,
196
+ ip : pod_ip,
198
197
199
- template : String :: from ( template_name) ,
200
- t : instance_type . clone ( ) ,
198
+ template : template_name. to_owned ( ) ,
199
+ t : template_type ,
201
200
202
201
hub : template_provider. is_hub ( & template) ,
203
202
@@ -211,7 +210,7 @@ impl EpsilonController {
211
210
}
212
211
}
213
212
Some ( mut status) => {
214
- status. ip = pod_ip. cloned ( ) ;
213
+ status. ip = pod_ip;
215
214
status. state = state;
216
215
217
216
status
@@ -220,7 +219,7 @@ impl EpsilonController {
220
219
221
220
epsilon_instance_api
222
221
. patch_status (
223
- instance_name,
222
+ & instance_name,
224
223
& PatchParams :: default ( ) ,
225
224
& Patch :: Merge ( json ! ( { "status" : new_status } ) ) ,
226
225
)
@@ -234,14 +233,14 @@ impl EpsilonController {
234
233
235
234
epsilon_instance_api
236
235
. patch_status (
237
- instance_name,
236
+ & instance_name,
238
237
& PatchParams :: default ( ) ,
239
238
& Patch :: Merge ( json ! ( { "status" : new_status } ) ) ,
240
239
)
241
240
. await ?;
242
241
243
242
epsilon_instance_api
244
- . delete ( instance_name, & DeleteParams :: default ( ) )
243
+ . delete ( & instance_name, & DeleteParams :: default ( ) )
245
244
. await ?;
246
245
}
247
246
}
@@ -277,15 +276,15 @@ impl EpsilonController {
277
276
..Default :: default ( )
278
277
} ,
279
278
spec : EpsilonInstanceSpec {
280
- template : String :: from ( template_name) ,
279
+ template : template_name. to_owned ( ) ,
281
280
} ,
282
281
status : None ,
283
282
} ;
284
283
285
284
let instance_result = epsilon_instance_api
286
285
. create ( & PostParams :: default ( ) , & epsilon_instance)
287
286
. await
288
- . map_err ( |_| EpsilonError :: CreateInstanceError ( String :: from ( template_name) ) ) ;
287
+ . map_err ( |_| EpsilonError :: CreateInstanceError ( template_name. to_owned ( ) ) ) ;
289
288
290
289
Ok ( instance_result?)
291
290
}
@@ -310,14 +309,14 @@ impl EpsilonController {
310
309
& Patch :: Merge ( json ! ( { "status" : instance_status } ) ) ,
311
310
)
312
311
. await
313
- . map_err ( |_| EpsilonError :: RemoveInstanceError ( String :: from ( instance_name) ) ) ?;
312
+ . map_err ( |_| EpsilonError :: RemoveInstanceError ( instance_name. to_owned ( ) ) ) ?;
314
313
}
315
314
316
315
Ok ( ( ) )
317
316
}
318
317
319
- pub fn get_epsilon_instance_api ( & self ) -> & Api < EpsilonInstance > {
320
- & self . context . epsilon_instance_api
318
+ pub fn get_epsilon_instance_api ( & self ) -> Api < EpsilonInstance > {
319
+ self . context . epsilon_instance_api . clone ( )
321
320
}
322
321
323
322
pub fn get_epsilon_instance_store ( & self ) -> & Store < EpsilonInstance > {
0 commit comments