Skip to content

Commit a3fa59f

Browse files
committed
Clear bad clone() and String::from()
1 parent a77e3b9 commit a3fa59f

File tree

9 files changed

+35
-42
lines changed

9 files changed

+35
-42
lines changed

src/controller/definitions/epsilon_instance.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ use crate::epsilon::server::instances::common::instance_type::InstanceType;
55
use crate::epsilon::server::instances::common::state::EpsilonState;
66

77
use crate::epsilon::epsilon_error::EpsilonError;
8-
use anyhow::format_err;
98
use async_minecraft_ping::{ConnectionConfig, StatusResponse};
109
use kube::CustomResource;
1110
use schemars::JsonSchema;
@@ -50,7 +49,7 @@ impl EpsilonInstance {
5049
Ok(InstanceJson {
5150
name: self.get_name(),
5251
template: self.spec.template.clone(),
53-
state: *self.get_state(),
52+
state: self.get_state(),
5453

5554
slots: self
5655
.status
@@ -66,10 +65,10 @@ impl EpsilonInstance {
6665
self.metadata.name.as_ref().unwrap().to_owned()
6766
}
6867

69-
pub fn get_state(&self) -> &EpsilonState {
68+
pub fn get_state(&self) -> EpsilonState {
7069
match &self.status {
71-
None => &EpsilonState::Starting,
72-
Some(status) => &status.state,
70+
None => EpsilonState::Starting,
71+
Some(status) => status.state,
7372
}
7473
}
7574

src/controller/epsilon_controller.rs

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ use crate::controller::definitions::epsilon_instance::{
55
use crate::controller::definitions::epsilon_queue::EpsilonQueue;
66
use crate::epsilon::epsilon_error::EpsilonError;
77
use crate::epsilon::server::instances::common::state::EpsilonState;
8-
use crate::{EResult, TemplateProvider};
9-
use anyhow::format_err;
8+
use crate::TemplateProvider;
109
use futures::stream::StreamExt;
1110
use k8s_openapi::api::core::v1::{
1211
ConfigMapEnvSource, Container, EnvFromSource, ExecAction, Pod, PodSpec, Probe,
@@ -19,6 +18,7 @@ use kube::runtime::Controller;
1918
use kube::{Api, Client, Config};
2019
use kube::{Error, Resource};
2120
use serde_json::json;
21+
use std::borrow::BorrowMut;
2222
use std::collections::BTreeMap;
2323
use std::env;
2424
use std::sync::Arc;
@@ -83,14 +83,13 @@ impl EpsilonController {
8383
let mut instance_owner_reference = epsilon_instance.controller_owner_ref(&()).unwrap();
8484
instance_owner_reference.block_owner_deletion = Some(true);
8585

86-
let instance_metadata = &epsilon_instance.metadata;
8786
let instance_spec = &epsilon_instance.spec;
8887
let instance_status = epsilon_instance.status.clone();
8988

90-
let instance_name = instance_metadata.name.as_ref().unwrap();
89+
let instance_name = epsilon_instance.get_name();
9190
let template_name = &instance_spec.template;
9291

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 {
9493
match pod_option {
9594
None => {
9695
let template = template_provider.get_template(template_name).await.unwrap();
@@ -106,7 +105,7 @@ impl EpsilonController {
106105

107106
let pod = Pod {
108107
metadata: ObjectMeta {
109-
name: Some(instance_name.clone()),
108+
name: Some(instance_name),
110109
owner_references: Some(vec![instance_owner_reference]),
111110
labels: Some(labels),
112111
..Default::default()
@@ -164,7 +163,7 @@ impl EpsilonController {
164163
Some(pod) => {
165164
let pod_status = pod.status.as_ref().unwrap();
166165

167-
let pod_ip = pod_status.pod_ip.as_ref();
166+
let pod_ip = pod_status.pod_ip.as_ref().cloned();
168167

169168
if let Some(pod_conditions) = pod_status.conditions.as_ref() {
170169
let pod_phase = pod_status.phase.as_ref().unwrap();
@@ -191,13 +190,13 @@ impl EpsilonController {
191190
let template =
192191
template_provider.get_template(template_name).await.unwrap();
193192

194-
let instance_type = &template.t;
193+
let template_type = template.t.clone();
195194

196195
EpsilonInstanceStatus {
197-
ip: pod_ip.cloned(),
196+
ip: pod_ip,
198197

199-
template: String::from(template_name),
200-
t: instance_type.clone(),
198+
template: template_name.to_owned(),
199+
t: template_type,
201200

202201
hub: template_provider.is_hub(&template),
203202

@@ -211,7 +210,7 @@ impl EpsilonController {
211210
}
212211
}
213212
Some(mut status) => {
214-
status.ip = pod_ip.cloned();
213+
status.ip = pod_ip;
215214
status.state = state;
216215

217216
status
@@ -220,7 +219,7 @@ impl EpsilonController {
220219

221220
epsilon_instance_api
222221
.patch_status(
223-
instance_name,
222+
&instance_name,
224223
&PatchParams::default(),
225224
&Patch::Merge(json!({ "status": new_status })),
226225
)
@@ -234,14 +233,14 @@ impl EpsilonController {
234233

235234
epsilon_instance_api
236235
.patch_status(
237-
instance_name,
236+
&instance_name,
238237
&PatchParams::default(),
239238
&Patch::Merge(json!({ "status": new_status })),
240239
)
241240
.await?;
242241

243242
epsilon_instance_api
244-
.delete(instance_name, &DeleteParams::default())
243+
.delete(&instance_name, &DeleteParams::default())
245244
.await?;
246245
}
247246
}
@@ -277,15 +276,15 @@ impl EpsilonController {
277276
..Default::default()
278277
},
279278
spec: EpsilonInstanceSpec {
280-
template: String::from(template_name),
279+
template: template_name.to_owned(),
281280
},
282281
status: None,
283282
};
284283

285284
let instance_result = epsilon_instance_api
286285
.create(&PostParams::default(), &epsilon_instance)
287286
.await
288-
.map_err(|_| EpsilonError::CreateInstanceError(String::from(template_name)));
287+
.map_err(|_| EpsilonError::CreateInstanceError(template_name.to_owned()));
289288

290289
Ok(instance_result?)
291290
}
@@ -310,14 +309,14 @@ impl EpsilonController {
310309
&Patch::Merge(json!({ "status": instance_status })),
311310
)
312311
.await
313-
.map_err(|_| EpsilonError::RemoveInstanceError(String::from(instance_name)))?;
312+
.map_err(|_| EpsilonError::RemoveInstanceError(instance_name.to_owned()))?;
314313
}
315314

316315
Ok(())
317316
}
318317

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()
321320
}
322321

323322
pub fn get_epsilon_instance_store(&self) -> &Store<EpsilonInstance> {

src/epsilon/api/common/epsilon_events.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ pub enum EpsilonEvent {
77

88
impl ToString for EpsilonEvent {
99
fn to_string(&self) -> String {
10-
String::from(match self {
10+
match self {
1111
EpsilonEvent::SendToServer(_, _) => "SendToServer",
12-
})
12+
}
13+
.to_owned()
1314
}
1415
}

src/epsilon/epsilon_error.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use rocket::http::Status;
2-
use rocket::http::StatusClass::ServerError;
32
use rocket::response::Responder;
43
use rocket::{response, Request, Response};
54
use thiserror::Error;
@@ -35,7 +34,7 @@ pub enum EpsilonError {
3534
}
3635

3736
impl<'r> Responder<'r, 'static> for EpsilonError {
38-
fn respond_to(self, req: &'r Request<'_>) -> response::Result<'static> {
37+
fn respond_to(self, _req: &'r Request<'_>) -> response::Result<'static> {
3938
Response::build().status(Status::InternalServerError).ok()
4039
}
4140
}

src/epsilon/queue/queue_provider.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ impl QueueProvider {
1919
let mut map = HashMap::new();
2020

2121
for template in template_provider.get_templates().await? {
22-
map.insert(String::from(&template.name), RwLock::new(Queue::new()));
22+
map.insert(template.name.to_owned(), RwLock::new(Queue::new()));
2323
}
2424

2525
Ok(QueueProvider { queue_map: map })

src/epsilon/server/instances/common/instance_type.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ impl FromStr for InstanceType {
4242
type Err = io::Error;
4343

4444
fn from_str(input: &str) -> Result<InstanceType, Self::Err> {
45-
match String::from(input).to_lowercase().as_str() {
45+
match input.to_lowercase().as_str() {
4646
"server" => Ok(InstanceType::Server),
4747
"proxy" => Ok(InstanceType::Proxy),
4848
_ => Err(io::Error::new(
@@ -55,9 +55,10 @@ impl FromStr for InstanceType {
5555

5656
impl ToString for InstanceType {
5757
fn to_string(&self) -> String {
58-
String::from(match self {
58+
match self {
5959
InstanceType::Server => "server",
6060
InstanceType::Proxy => "proxy",
61-
})
61+
}
62+
.to_owned()
6263
}
6364
}

src/epsilon/server/instances/instance_provider.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use futures::TryFutureExt;
21
use std::sync::Arc;
32

43
use kube::api::DeleteParams;
@@ -38,7 +37,7 @@ impl InstanceProvider {
3837
.get_epsilon_instance_api()
3938
.delete(name, &DeleteParams::default())
4039
.await
41-
.map_err(|_| EpsilonError::RemoveInstanceError(String::from(name)))?;
40+
.map_err(|_| EpsilonError::RemoveInstanceError(name.to_owned()))?;
4241

4342
Ok(())
4443
}
@@ -64,7 +63,7 @@ impl InstanceProvider {
6463
let name = instance.get_name();
6564

6665
let condition = await_condition(
67-
self.epsilon_controller.get_epsilon_instance_api().clone(),
66+
self.epsilon_controller.get_epsilon_instance_api(),
6867
&name,
6968
move |object: Option<&EpsilonInstance>| {
7069
object.map_or(false, |instance| instance.status.is_some())

src/epsilon/server/templates/template_provider.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
use std::env;
22
use std::sync::Arc;
33

4-
use anyhow::format_err;
5-
64
use crate::epsilon::epsilon_error::EpsilonError;
75
use crate::epsilon::server::templates::template::Template;
86
use crate::EpsilonConfig;

src/tasks/queue_task.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,7 @@ impl Task for QueueTask {
6464
if group_size <= available_slots {
6565
available_slots -= group_size;
6666

67-
epsilon_api.send(SendToServer(
68-
group,
69-
instance.metadata.name.as_ref().unwrap().clone(),
70-
));
67+
epsilon_api.send(SendToServer(group, instance.get_name()));
7168
}
7269
}
7370
}

0 commit comments

Comments
 (0)