KubeOS/0017-fix-clippy-warnings-and-fmt-code.patch
Yuhang Wei f2256bb8f5 sync branch to openEuler-22.03-LTS-SP1
Signed-off-by: Yuhang Wei <weiyuhang3@huawei.com>
(cherry picked from commit 9186039f774168dfbacef04dac8ee56356149736)
2024-03-13 17:11:26 +08:00

918 lines
38 KiB
Diff

From 79f0f59f967be0bcb05d60461af5417141cbe5ab Mon Sep 17 00:00:00 2001
From: Yuhang Wei <weiyuhang3@huawei.com>
Date: Tue, 30 Jan 2024 16:05:56 +0800
Subject: [PATCH 4/4] fix: clippy warnings and fmt code
fix some clippy warnings and fmt code
Signed-off-by: Yuhang Wei <weiyuhang3@huawei.com>
---
KubeOS-Rust/agent/src/rpc/agent_impl.rs | 8 +-
KubeOS-Rust/cli/src/client.rs | 2 +-
KubeOS-Rust/manager/src/sys_mgmt/config.rs | 21 ++---
.../manager/src/sys_mgmt/containerd_image.rs | 9 +-
.../manager/src/sys_mgmt/docker_image.rs | 4 +-
.../proxy/src/controller/apiserver_mock.rs | 67 +++++++++------
.../proxy/src/controller/controller.rs | 75 ++++++++--------
KubeOS-Rust/proxy/src/controller/mod.rs | 2 +-
KubeOS-Rust/proxy/src/controller/utils.rs | 12 +--
KubeOS-Rust/proxy/src/drain.rs | 86 +++++++++----------
KubeOS-Rust/proxy/src/main.rs | 2 +-
11 files changed, 148 insertions(+), 140 deletions(-)
diff --git a/KubeOS-Rust/agent/src/rpc/agent_impl.rs b/KubeOS-Rust/agent/src/rpc/agent_impl.rs
index 8aef414..5f3a325 100644
--- a/KubeOS-Rust/agent/src/rpc/agent_impl.rs
+++ b/KubeOS-Rust/agent/src/rpc/agent_impl.rs
@@ -56,7 +56,7 @@ impl Default for AgentImpl {
}
impl AgentImpl {
- pub fn prepare_upgrade_impl(&self, req: UpgradeRequest) -> Result<Response> {
+ fn prepare_upgrade_impl(&self, req: UpgradeRequest) -> Result<Response> {
let _lock = self.mutex.lock().unwrap();
debug!("Received an 'prepare upgrade' request: {:?}", req);
info!("Start preparing for upgrading to version: {}", req.version);
@@ -75,7 +75,7 @@ impl AgentImpl {
Ok(Response { status: AgentStatus::UpgradeReady })
}
- pub fn upgrade_impl(&self) -> Result<Response> {
+ fn upgrade_impl(&self) -> Result<Response> {
let _lock = self.mutex.lock().unwrap();
info!("Start to upgrade");
let command_executor = RealCommandExecutor {};
@@ -90,7 +90,7 @@ impl AgentImpl {
Ok(Response { status: AgentStatus::Upgraded })
}
- pub fn configure_impl(&self, mut req: ConfigureRequest) -> Result<Response> {
+ fn configure_impl(&self, mut req: ConfigureRequest) -> Result<Response> {
let _lock = self.mutex.lock().unwrap();
debug!("Received a 'configure' request: {:?}", req);
info!("Start to configure");
@@ -107,7 +107,7 @@ impl AgentImpl {
Ok(Response { status: AgentStatus::Configured })
}
- pub fn rollback_impl(&self) -> Result<Response> {
+ fn rollback_impl(&self) -> Result<Response> {
let _lock = self.mutex.lock().unwrap();
info!("Start to rollback");
let command_executor = RealCommandExecutor {};
diff --git a/KubeOS-Rust/cli/src/client.rs b/KubeOS-Rust/cli/src/client.rs
index 9765a42..37518bd 100644
--- a/KubeOS-Rust/cli/src/client.rs
+++ b/KubeOS-Rust/cli/src/client.rs
@@ -30,7 +30,7 @@ impl Client {
Client { json_rpc_client: JsonRPCClient::with_transport(UdsTransport::new(socket_path)) }
}
- pub fn build_request<'a>(&self, command: &'a str, params: &'a Vec<Box<RawValue>>) -> Request<'a> {
+ pub fn build_request<'a>(&self, command: &'a str, params: &'a [Box<RawValue>]) -> Request<'a> {
let json_rpc_request = self.json_rpc_client.build_request(command, params);
let request = Request(json_rpc_request);
request
diff --git a/KubeOS-Rust/manager/src/sys_mgmt/config.rs b/KubeOS-Rust/manager/src/sys_mgmt/config.rs
index 33efdca..138df9d 100644
--- a/KubeOS-Rust/manager/src/sys_mgmt/config.rs
+++ b/KubeOS-Rust/manager/src/sys_mgmt/config.rs
@@ -105,10 +105,10 @@ impl Configuration for KernelSysctlPersist {
config_path = &config.config_path;
}
debug!("kernel.sysctl.persist config_path: \"{}\"", config_path);
- create_config_file(config_path).with_context(|| format!("Failed to find config path"))?;
+ create_config_file(config_path).with_context(|| format!("Failed to find config path \"{}\"", config_path))?;
let configs = get_and_set_configs(&mut config.contents, config_path)
- .with_context(|| format!("Failed to set persist kernel configs"))?;
- write_configs_to_file(config_path, &configs).with_context(|| format!("Failed to write configs to file"))?;
+ .with_context(|| format!("Failed to set persist kernel configs \"{}\"", config_path))?;
+ write_configs_to_file(config_path, &configs).with_context(|| "Failed to write configs to file".to_string())?;
Ok(())
}
}
@@ -125,7 +125,7 @@ fn create_config_file(config_path: &str) -> Result<()> {
}
fn get_and_set_configs(expect_configs: &mut HashMap<String, KeyInfo>, config_path: &str) -> Result<Vec<String>> {
- let f = File::open(config_path)?;
+ let f = File::open(config_path).with_context(|| format!("Failed to open config path \"{}\"", config_path))?;
let mut configs_write = Vec::new();
for line in io::BufReader::new(f).lines() {
let line = line?;
@@ -169,7 +169,7 @@ fn write_configs_to_file(config_path: &str, configs: &Vec<String>) -> Result<()>
Ok(())
}
-fn handle_delete_key(config_kv: &Vec<&str>, new_config_info: &KeyInfo) -> String {
+fn handle_delete_key(config_kv: &[&str], new_config_info: &KeyInfo) -> String {
let key = config_kv[0];
if config_kv.len() == 1 && new_config_info.value.is_empty() {
info!("Delete configuration key: \"{}\"", key);
@@ -190,7 +190,7 @@ fn handle_delete_key(config_kv: &Vec<&str>, new_config_info: &KeyInfo) -> String
String::new()
}
-fn handle_update_key(config_kv: &Vec<&str>, new_config_info: &KeyInfo) -> String {
+fn handle_update_key(config_kv: &[&str], new_config_info: &KeyInfo) -> String {
let key = config_kv[0];
if !new_config_info.operation.is_empty() {
warn!(
@@ -259,12 +259,13 @@ impl Configuration for GrubCmdline {
self.is_cur_partition
} else {
self.get_config_partition(RealCommandExecutor {})
- .with_context(|| format!("Failed to get config partition"))?
+ .with_context(|| "Failed to get config partition".to_string())?
};
debug!("Config_partition: {} (false means partition A, true means partition B)", config_partition);
let configs = get_and_set_grubcfg(&mut config.contents, &self.grub_path, config_partition)
- .with_context(|| format!("Failed to set grub configs"))?;
- write_configs_to_file(&self.grub_path, &configs)?;
+ .with_context(|| "Failed to set grub configs".to_string())?;
+ write_configs_to_file(&self.grub_path, &configs)
+ .with_context(|| "Failed to write configs to file".to_string())?;
Ok(())
}
}
@@ -286,7 +287,7 @@ fn get_and_set_grubcfg(
grub_path: &str,
config_partition: bool,
) -> Result<Vec<String>> {
- let f = File::open(grub_path)?;
+ let f = File::open(grub_path).with_context(|| format!("Failed to open grub.cfg \"{}\"", grub_path))?;
let re_find_cur_linux = r"^\s*linux.*root=.*";
let re = Regex::new(re_find_cur_linux)?;
let mut configs_write = Vec::new();
diff --git a/KubeOS-Rust/manager/src/sys_mgmt/containerd_image.rs b/KubeOS-Rust/manager/src/sys_mgmt/containerd_image.rs
index 727949b..80caf29 100644
--- a/KubeOS-Rust/manager/src/sys_mgmt/containerd_image.rs
+++ b/KubeOS-Rust/manager/src/sys_mgmt/containerd_image.rs
@@ -73,12 +73,12 @@ impl<T: CommandExecutor> CtrImageHandler<T> {
.to_str()
.ok_or_else(|| anyhow!("Failed to get mount path: {}", self.paths.mount_path.display()))?;
info!("Start getting rootfs {}", image_name);
- self.check_and_unmount(mount_path).with_context(|| format!("Failed to clean containerd environment"))?;
+ self.check_and_unmount(mount_path).with_context(|| "Failed to clean containerd environment".to_string())?;
self.executor
.run_command("ctr", &["-n", DEFAULT_NAMESPACE, "images", "mount", "--rw", image_name, mount_path])?;
// copy os.tar from mount_path to its partent dir
self.copy_file(self.paths.mount_path.join(&self.paths.rootfs_file), &self.paths.tar_path, permission)?;
- self.check_and_unmount(mount_path).with_context(|| format!("Failed to clean containerd environment"))?;
+ self.check_and_unmount(mount_path).with_context(|| "Failed to clean containerd environment".to_string())?;
Ok(())
}
@@ -103,10 +103,7 @@ impl<T: CommandExecutor> CtrImageHandler<T> {
#[cfg(test)]
mod tests {
- use std::{
- io::Write,
- path::{Path, PathBuf},
- };
+ use std::{io::Write, path::PathBuf};
use mockall::mock;
use tempfile::NamedTempFile;
diff --git a/KubeOS-Rust/manager/src/sys_mgmt/docker_image.rs b/KubeOS-Rust/manager/src/sys_mgmt/docker_image.rs
index f697142..4d97552 100644
--- a/KubeOS-Rust/manager/src/sys_mgmt/docker_image.rs
+++ b/KubeOS-Rust/manager/src/sys_mgmt/docker_image.rs
@@ -52,7 +52,7 @@ impl<T: CommandExecutor> DockerImageHandler<T> {
fn get_rootfs_archive(&self, req: &UpgradeRequest) -> Result<()> {
let image_name = &req.container_image;
info!("Start getting rootfs {}", image_name);
- self.check_and_rm_container().with_context(|| format!("Failed to remove kubeos-temp container"))?;
+ self.check_and_rm_container().with_context(|| "Failed to remove kubeos-temp container".to_string())?;
debug!("Create container {}", self.container_name);
let container_id =
self.executor.run_command_with_output("docker", &["create", "--name", &self.container_name, image_name])?;
@@ -65,7 +65,7 @@ impl<T: CommandExecutor> DockerImageHandler<T> {
self.paths.update_path.to_str().unwrap(),
],
)?;
- self.check_and_rm_container().with_context(|| format!("Failed to remove kubeos-temp container"))?;
+ self.check_and_rm_container().with_context(|| "Failed to remove kubeos-temp container".to_string())?;
Ok(())
}
diff --git a/KubeOS-Rust/proxy/src/controller/apiserver_mock.rs b/KubeOS-Rust/proxy/src/controller/apiserver_mock.rs
index ef5977c..2b182ca 100644
--- a/KubeOS-Rust/proxy/src/controller/apiserver_mock.rs
+++ b/KubeOS-Rust/proxy/src/controller/apiserver_mock.rs
@@ -1,3 +1,35 @@
+/*
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * KubeOS is licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ */
+
+use std::collections::BTreeMap;
+
+use anyhow::Result;
+use cli::{
+ client::Client,
+ method::{
+ callable_method::RpcMethod, configure::ConfigureMethod, prepare_upgrade::PrepareUpgradeMethod,
+ rollback::RollbackMethod, upgrade::UpgradeMethod,
+ },
+};
+use http::{Request, Response};
+use hyper::{body::to_bytes, Body};
+use k8s_openapi::api::core::v1::{Node, NodeSpec, NodeStatus, NodeSystemInfo, Pod};
+use kube::{
+ api::ObjectMeta,
+ core::{ListMeta, ObjectList},
+ Client as KubeClient, Resource, ResourceExt,
+};
+use mockall::mock;
+
use self::mock_error::Error;
use super::{
agentclient::*,
@@ -10,23 +42,6 @@ use crate::controller::{
values::{LABEL_OSINSTANCE, LABEL_UPGRADING, NODE_STATUS_IDLE},
ProxyController,
};
-use anyhow::Result;
-use cli::client::Client;
-use cli::method::{
- callable_method::RpcMethod, configure::ConfigureMethod, prepare_upgrade::PrepareUpgradeMethod,
- rollback::RollbackMethod, upgrade::UpgradeMethod,
-};
-use http::{Request, Response};
-use hyper::{body::to_bytes, Body};
-use k8s_openapi::api::core::v1::Pod;
-use k8s_openapi::api::core::v1::{Node, NodeSpec, NodeStatus, NodeSystemInfo};
-use kube::{
- api::ObjectMeta,
- core::{ListMeta, ObjectList},
-};
-use kube::{Client as KubeClient, Resource, ResourceExt};
-use mockall::mock;
-use std::collections::BTreeMap;
type ApiServerHandle = tower_test::mock::Handle<Request<Body>, Response<Body>>;
pub struct ApiServerVerifier(ApiServerHandle);
@@ -66,7 +81,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_node_get(osi)
.await
- }
+ },
Testcases::UpgradeNormal(osi) => {
self.handler_osinstance_get_exist(osi.clone())
.await
@@ -85,7 +100,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_node_pod_list_get(osi)
.await
- }
+ },
Testcases::UpgradeUpgradeconfigsVersionMismatch(osi) => {
self.handler_osinstance_get_exist(osi.clone())
.await
@@ -104,7 +119,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_osinstance_patch_nodestatus_idle(osi)
.await
- }
+ },
Testcases::UpgradeOSInstaceNodestatusConfig(osi) => {
self.handler_osinstance_get_exist(osi.clone())
.await
@@ -114,7 +129,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_node_get_with_label(osi.clone())
.await
- }
+ },
Testcases::UpgradeOSInstaceNodestatusIdle(osi) => {
self.handler_osinstance_get_exist(osi.clone())
.await
@@ -130,7 +145,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_node_uncordon(osi)
.await
- }
+ },
Testcases::ConfigNormal(osi) => {
self.handler_osinstance_get_exist(osi.clone())
.await
@@ -146,7 +161,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_osinstance_patch_nodestatus_idle(osi)
.await
- }
+ },
Testcases::ConfigVersionMismatchReassign(osi) => {
self.handler_osinstance_get_exist(osi.clone())
.await
@@ -159,7 +174,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_osinstance_patch_nodestatus_idle(osi)
.await
- }
+ },
Testcases::ConfigVersionMismatchUpdate(osi) => {
self.handler_osinstance_get_exist(osi.clone())
.await
@@ -172,7 +187,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_osinstance_patch_spec_sysconfig_v2(osi)
.await
- }
+ },
Testcases::Rollback(osi) => {
self.handler_osinstance_get_exist(osi.clone())
.await
@@ -191,7 +206,7 @@ impl ApiServerVerifier {
.unwrap()
.handler_node_pod_list_get(osi)
.await
- }
+ },
}
.expect("Case completed without errors");
})
diff --git a/KubeOS-Rust/proxy/src/controller/controller.rs b/KubeOS-Rust/proxy/src/controller/controller.rs
index ad44380..80a85d1 100644
--- a/KubeOS-Rust/proxy/src/controller/controller.rs
+++ b/KubeOS-Rust/proxy/src/controller/controller.rs
@@ -72,7 +72,7 @@ pub async fn reconcile<T: ApplyApi, U: AgentCall>(
)
.await?;
return Ok(REQUEUE_NORMAL);
- }
+ },
ConfigOperation::UpdateConfig => {
debug!("start update config");
osinstance.spec.sysconfigs = os_cr.spec.sysconfigs.clone();
@@ -81,8 +81,8 @@ pub async fn reconcile<T: ApplyApi, U: AgentCall>(
.update_osinstance_spec(&osinstance.name(), &namespace, &osinstance.spec)
.await?;
return Ok(REQUEUE_ERROR);
- }
- _ => {}
+ },
+ _ => {},
}
proxy_controller.set_config(&mut osinstance, ConfigType::SysConfig).await?;
proxy_controller
@@ -92,17 +92,17 @@ pub async fn reconcile<T: ApplyApi, U: AgentCall>(
if os_cr.spec.opstype == NODE_STATUS_CONFIG {
return Err(Error::UpgradeBeforeConfig);
}
- if let ConfigOperation::Reassign = ConfigType::UpgradeConfig.check_config_version(&os, &osinstance) {
- debug!("start reassign");
- proxy_controller
- .refresh_node(
- node,
- osinstance,
- &get_config_version(os_cr.spec.upgradeconfigs.as_ref()),
- ConfigType::UpgradeConfig,
- )
- .await?;
- return Ok(REQUEUE_NORMAL);
+ if let ConfigOperation::Reassign = ConfigType::UpgradeConfig.check_config_version(&os, &osinstance) {
+ debug!("start reassign");
+ proxy_controller
+ .refresh_node(
+ node,
+ osinstance,
+ &get_config_version(os_cr.spec.upgradeconfigs.as_ref()),
+ ConfigType::UpgradeConfig,
+ )
+ .await?;
+ return Ok(REQUEUE_NORMAL);
}
if node.labels().contains_key(LABEL_UPGRADING) {
if osinstance.spec.nodestatus == NODE_STATUS_IDLE {
@@ -157,12 +157,12 @@ impl<T: ApplyApi, U: AgentCall> ProxyController<T, U> {
Ok(osi) => {
debug!("osinstance is exist {:?}", osi.name());
Ok(())
- }
+ },
Err(kube::Error::Api(ErrorResponse { reason, .. })) if &reason == "NotFound" => {
info!("Create OSInstance {}", node_name);
self.controller_client.create_osinstance(node_name, namespace).await?;
Ok(())
- }
+ },
Err(err) => Err(Error::KubeClient { source: err }),
}
}
@@ -251,15 +251,15 @@ impl<T: ApplyApi, U: AgentCall> ProxyController<T, U> {
match config_info.configs.and_then(convert_to_agent_config) {
Some(agent_configs) => {
match self.agent_client.configure_method(ConfigInfo { configs: agent_configs }) {
- Ok(_resp) => {}
+ Ok(_resp) => {},
Err(e) => {
return Err(Error::Agent { source: e });
- }
+ },
}
- }
+ },
None => {
info!("config is none, No content can be configured.");
- }
+ },
};
self.update_osi_status(osinstance, config_type).await?;
}
@@ -284,32 +284,32 @@ impl<T: ApplyApi, U: AgentCall> ProxyController<T, U> {
};
match self.agent_client.prepare_upgrade_method(upgrade_info) {
- Ok(_resp) => {}
+ Ok(_resp) => {},
Err(e) => {
return Err(Error::Agent { source: e });
- }
+ },
}
self.evict_node(&node.name(), os_cr.spec.evictpodforce).await?;
match self.agent_client.upgrade_method() {
- Ok(_resp) => {}
+ Ok(_resp) => {},
Err(e) => {
return Err(Error::Agent { source: e });
- }
+ },
}
- }
+ },
OPERATION_TYPE_ROLLBACK => {
self.evict_node(&node.name(), os_cr.spec.evictpodforce).await?;
match self.agent_client.rollback_method() {
- Ok(_resp) => {}
+ Ok(_resp) => {},
Err(e) => {
return Err(Error::Agent { source: e });
- }
+ },
}
- }
+ },
_ => {
return Err(Error::Operation { value: os_cr.spec.opstype.clone() });
- }
+ },
}
Ok(())
}
@@ -320,12 +320,12 @@ impl<T: ApplyApi, U: AgentCall> ProxyController<T, U> {
node_api.cordon(node_name).await?;
info!("Cordon node Successfully{}, start drain nodes", node_name);
match self.drain_node(node_name, evict_pod_force).await {
- Ok(()) => {}
+ Ok(()) => {},
Err(e) => {
node_api.uncordon(node_name).await?;
info!("Drain node {} error, uncordon node successfully", node_name);
return Err(e);
- }
+ },
}
Ok(())
}
@@ -351,7 +351,7 @@ fn convert_to_agent_config(configs: Configs) -> Option<Vec<Sysconfig>> {
contents: contents_tmp,
};
agent_configs.push(config_tmp)
- }
+ },
None => {
info!(
"model {} which has configpath {} do not has any contents no need to configure",
@@ -359,7 +359,7 @@ fn convert_to_agent_config(configs: Configs) -> Option<Vec<Sysconfig>> {
config.configpath.unwrap_or_default()
);
continue;
- }
+ },
};
}
if agent_configs.is_empty() {
@@ -427,11 +427,14 @@ pub mod reconciler_error {
#[cfg(test)]
mod test {
- use super::{error_policy, reconcile, Context, OSInstance, ProxyController, OS};
- use crate::controller::apiserver_mock::{timeout_after_5s, MockAgentCallClient, Testcases};
- use crate::controller::ControllerClient;
use std::env;
+ use super::{error_policy, reconcile, Context, OSInstance, ProxyController, OS};
+ use crate::controller::{
+ apiserver_mock::{timeout_after_5s, MockAgentCallClient, Testcases},
+ ControllerClient,
+ };
+
#[tokio::test]
async fn test_create_osinstance_with_no_upgrade_or_configuration() {
let (test_proxy_controller, fakeserver) = ProxyController::<ControllerClient, MockAgentCallClient>::test();
diff --git a/KubeOS-Rust/proxy/src/controller/mod.rs b/KubeOS-Rust/proxy/src/controller/mod.rs
index e30c8df..b8a4e6e 100644
--- a/KubeOS-Rust/proxy/src/controller/mod.rs
+++ b/KubeOS-Rust/proxy/src/controller/mod.rs
@@ -21,6 +21,6 @@ mod values;
pub use agentclient::{AgentCallClient, AgentClient};
pub use apiclient::ControllerClient;
-pub use controller::{error_policy, reconcile, reconciler_error::Error, ProxyController};
+pub use controller::{error_policy, reconcile, ProxyController};
pub use crd::OS;
pub use values::SOCK_PATH;
diff --git a/KubeOS-Rust/proxy/src/controller/utils.rs b/KubeOS-Rust/proxy/src/controller/utils.rs
index 82d960b..148ca24 100644
--- a/KubeOS-Rust/proxy/src/controller/utils.rs
+++ b/KubeOS-Rust/proxy/src/controller/utils.rs
@@ -56,7 +56,7 @@ impl ConfigType {
);
return ConfigOperation::Reassign;
}
- }
+ },
ConfigType::SysConfig => {
let os_config_version = get_config_version(os.spec.sysconfigs.as_ref());
let osi_config_version = get_config_version(osinstance.spec.sysconfigs.as_ref());
@@ -78,7 +78,7 @@ impl ConfigType {
return ConfigOperation::UpdateConfig;
}
}
- }
+ },
};
ConfigOperation::DoNothing
}
@@ -96,7 +96,7 @@ impl ConfigType {
status_config_version = get_config_version(None);
}
configs = osinstance.spec.upgradeconfigs.clone();
- }
+ },
ConfigType::SysConfig => {
spec_config_version = get_config_version(osinstance.spec.sysconfigs.as_ref());
if let Some(osinstance_status) = osinstance.status.as_ref() {
@@ -105,7 +105,7 @@ impl ConfigType {
status_config_version = get_config_version(None);
}
configs = osinstance.spec.sysconfigs.clone();
- }
+ },
}
debug!(
"osinstance soec config version is {},status config version is {}",
@@ -127,7 +127,7 @@ impl ConfigType {
sysconfigs: None,
})
}
- }
+ },
ConfigType::SysConfig => {
if let Some(osi_status) = &mut osinstance.status {
osi_status.sysconfigs = osinstance.spec.sysconfigs.clone();
@@ -135,7 +135,7 @@ impl ConfigType {
osinstance.status =
Some(OSInstanceStatus { upgradeconfigs: None, sysconfigs: osinstance.spec.sysconfigs.clone() })
}
- }
+ },
}
}
}
diff --git a/KubeOS-Rust/proxy/src/drain.rs b/KubeOS-Rust/proxy/src/drain.rs
index 72836f9..64417df 100644
--- a/KubeOS-Rust/proxy/src/drain.rs
+++ b/KubeOS-Rust/proxy/src/drain.rs
@@ -66,7 +66,7 @@ async fn get_pods_deleted(
Ok(pods @ ObjectList { .. }) => pods,
Err(err) => {
return Err(GetPodListsError { source: err, node_name: node_name.to_string() });
- }
+ },
};
let mut filterd_pods_list: Vec<Pod> = Vec::new();
let mut filterd_err: Vec<String> = Vec::new();
@@ -81,7 +81,7 @@ async fn get_pods_deleted(
filterd_pods_list.push(pod);
}
}
- if filterd_err.len() > 0 {
+ if !filterd_err.is_empty() {
return Err(DeletePodsError { errors: filterd_err });
}
Ok(filterd_pods_list.into_iter())
@@ -189,14 +189,14 @@ async fn wait_for_deletion(k8s_client: &kube::Client, pod: &Pod) -> Result<(), e
let name = (&p).name_any();
info!("Pod {} deleted.", name);
break;
- }
+ },
Ok(_) => {
info!("Pod '{}' is not yet deleted. Waiting {}s.", pod.name_any(), EVERY_DELETION_CHECK.as_secs_f64());
- }
+ },
Err(kube::Error::Api(e)) if e.code == response_error_not_found => {
info!("Pod {} is deleted.", pod.name_any());
break;
- }
+ },
Err(e) => {
error!(
"Get pod {} reported error: '{}', whether pod is deleted cannot be determined, waiting {}s.",
@@ -204,7 +204,7 @@ async fn wait_for_deletion(k8s_client: &kube::Client, pod: &Pod) -> Result<(), e
e,
EVERY_DELETION_CHECK.as_secs_f64()
);
- }
+ },
}
if start_time.elapsed() > TIMEOUT {
return Err(WaitDeletionError { pod_name: pod.name_any(), max_wait: TIMEOUT });
@@ -223,25 +223,25 @@ fn get_pod_api_with_namespace(client: &kube::Client, pod: &Pod) -> Api<Pod> {
}
trait NameAny {
- fn name_any(self: &Self) -> String;
+ fn name_any(&self) -> String;
}
impl NameAny for &Pod {
- fn name_any(self: &Self) -> String {
+ fn name_any(&self) -> String {
self.metadata.name.clone().or_else(|| self.metadata.generate_name.clone()).unwrap_or_default()
}
}
trait PodFilter {
- fn filter(self: &Self, pod: &Pod) -> Box<FilterResult>;
+ fn filter(&self, pod: &Pod) -> Box<FilterResult>;
}
struct FinishedOrFailedFilter {}
impl PodFilter for FinishedOrFailedFilter {
- fn filter(self: &Self, pod: &Pod) -> Box<FilterResult> {
+ fn filter(&self, pod: &Pod) -> Box<FilterResult> {
return match pod.status.as_ref() {
Some(PodStatus { phase: Some(phase), .. }) if phase == "Failed" || phase == "Succeeded" => {
FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay)
- }
+ },
_ => FilterResult::create_filter_result(false, "", PodDeleteStatus::Okay),
};
}
@@ -251,7 +251,7 @@ struct DaemonFilter {
force: bool,
}
impl PodFilter for DaemonFilter {
- fn filter(self: &Self, pod: &Pod) -> Box<FilterResult> {
+ fn filter(&self, pod: &Pod) -> Box<FilterResult> {
if let FilterResult { result: true, .. } = self.finished_or_failed_filter.filter(pod).as_ref() {
return FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay);
}
@@ -269,25 +269,25 @@ impl PodFilter for DaemonFilter {
let description = format!("Cannot drain Pod '{}': Pod is member of a DaemonSet", pod.name_any());
Box::new(FilterResult { result: false, desc: description, status: PodDeleteStatus::Error })
}
- }
+ },
_ => FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay),
};
}
}
impl DaemonFilter {
fn new(force: bool) -> DaemonFilter {
- return DaemonFilter { finished_or_failed_filter: FinishedOrFailedFilter {}, force: force };
+ DaemonFilter { finished_or_failed_filter: FinishedOrFailedFilter {}, force }
}
}
struct MirrorFilter {}
impl PodFilter for MirrorFilter {
- fn filter(self: &Self, pod: &Pod) -> Box<FilterResult> {
+ fn filter(&self, pod: &Pod) -> Box<FilterResult> {
return match pod.metadata.annotations.as_ref() {
Some(annotations) if annotations.contains_key("kubernetes.io/config.mirror") => {
let description = format!("Ignore Pod '{}': Pod is a static Mirror Pod", pod.name_any());
FilterResult::create_filter_result(false, &description.to_string(), PodDeleteStatus::Warning)
- }
+ },
_ => FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay),
};
}
@@ -298,7 +298,7 @@ struct LocalStorageFilter {
force: bool,
}
impl PodFilter for LocalStorageFilter {
- fn filter(self: &Self, pod: &Pod) -> Box<FilterResult> {
+ fn filter(&self, pod: &Pod) -> Box<FilterResult> {
if let FilterResult { result: true, .. } = self.finished_or_failed_filter.filter(pod).as_ref() {
return FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay);
}
@@ -312,14 +312,14 @@ impl PodFilter for LocalStorageFilter {
let description = format!("Cannot drain Pod '{}': Pod has local Storage", pod.name_any());
Box::new(FilterResult { result: false, desc: description, status: PodDeleteStatus::Error })
}
- }
+ },
_ => FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay),
};
}
}
impl LocalStorageFilter {
fn new(force: bool) -> LocalStorageFilter {
- return LocalStorageFilter { finished_or_failed_filter: FinishedOrFailedFilter {}, force: force };
+ LocalStorageFilter { finished_or_failed_filter: FinishedOrFailedFilter {}, force }
}
}
struct UnreplicatedFilter {
@@ -327,7 +327,7 @@ struct UnreplicatedFilter {
force: bool,
}
impl PodFilter for UnreplicatedFilter {
- fn filter(self: &Self, pod: &Pod) -> Box<FilterResult> {
+ fn filter(&self, pod: &Pod) -> Box<FilterResult> {
if let FilterResult { result: true, .. } = self.finished_or_failed_filter.filter(pod).as_ref() {
return FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay);
}
@@ -338,18 +338,18 @@ impl PodFilter for UnreplicatedFilter {
return FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay);
}
- return if !is_replicated && self.force {
+ if !is_replicated && self.force {
let description = format!("Force drain Pod '{}': Pod is unreplicated", pod.name_any());
Box::new(FilterResult { result: true, desc: description, status: PodDeleteStatus::Warning })
} else {
let description = format!("Cannot drain Pod '{}': Pod is unreplicated", pod.name_any());
Box::new(FilterResult { result: false, desc: description, status: PodDeleteStatus::Error })
- };
+ }
}
}
impl UnreplicatedFilter {
fn new(force: bool) -> UnreplicatedFilter {
- return UnreplicatedFilter { finished_or_failed_filter: FinishedOrFailedFilter {}, force: force };
+ UnreplicatedFilter { finished_or_failed_filter: FinishedOrFailedFilter {}, force }
}
}
@@ -357,7 +357,7 @@ struct DeletedFilter {
delete_wait_timeout: Duration,
}
impl PodFilter for DeletedFilter {
- fn filter(self: &Self, pod: &Pod) -> Box<FilterResult> {
+ fn filter(&self, pod: &Pod) -> Box<FilterResult> {
let now = Instant::now().elapsed();
return match pod.metadata.deletion_timestamp.as_ref() {
Some(time)
@@ -365,7 +365,7 @@ impl PodFilter for DeletedFilter {
&& now - Duration::from_secs(time.0.timestamp() as u64) >= self.delete_wait_timeout =>
{
FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay)
- }
+ },
_ => FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay),
};
}
@@ -379,14 +379,14 @@ struct CombinedFilter {
unreplicated_filter: UnreplicatedFilter,
}
impl PodFilter for CombinedFilter {
- fn filter(self: &Self, pod: &Pod) -> Box<FilterResult> {
+ fn filter(&self, pod: &Pod) -> Box<FilterResult> {
let mut filter_res = self.deleted_filter.filter(pod);
if !filter_res.result {
info!("{}", filter_res.desc);
return Box::new(FilterResult {
result: filter_res.result,
desc: filter_res.desc.clone(),
- status: filter_res.status.clone(),
+ status: filter_res.status,
});
}
filter_res = self.daemon_filter.filter(pod);
@@ -395,7 +395,7 @@ impl PodFilter for CombinedFilter {
return Box::new(FilterResult {
result: filter_res.result,
desc: filter_res.desc.clone(),
- status: filter_res.status.clone(),
+ status: filter_res.status,
});
}
filter_res = self.mirror_filter.filter(pod);
@@ -404,7 +404,7 @@ impl PodFilter for CombinedFilter {
return Box::new(FilterResult {
result: filter_res.result,
desc: filter_res.desc.clone(),
- status: filter_res.status.clone(),
+ status: filter_res.status,
});
}
filter_res = self.local_storage_filter.filter(pod);
@@ -413,7 +413,7 @@ impl PodFilter for CombinedFilter {
return Box::new(FilterResult {
result: filter_res.result,
desc: filter_res.desc.clone(),
- status: filter_res.status.clone(),
+ status: filter_res.status,
});
}
filter_res = self.unreplicated_filter.filter(pod);
@@ -422,22 +422,22 @@ impl PodFilter for CombinedFilter {
return Box::new(FilterResult {
result: filter_res.result,
desc: filter_res.desc.clone(),
- status: filter_res.status.clone(),
+ status: filter_res.status,
});
}
- return FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay);
+ FilterResult::create_filter_result(true, "", PodDeleteStatus::Okay)
}
}
impl CombinedFilter {
fn new(force: bool) -> CombinedFilter {
- return CombinedFilter {
+ CombinedFilter {
deleted_filter: DeletedFilter { delete_wait_timeout: TIMEOUT },
daemon_filter: DaemonFilter::new(force),
mirror_filter: MirrorFilter {},
local_storage_filter: LocalStorageFilter::new(force),
unreplicated_filter: UnreplicatedFilter::new(force),
- };
+ }
}
}
@@ -454,7 +454,7 @@ struct FilterResult {
}
impl FilterResult {
fn create_filter_result(result: bool, desc: &str, status: PodDeleteStatus) -> Box<FilterResult> {
- Box::new(FilterResult { result: result, desc: desc.to_string(), status: status })
+ Box::new(FilterResult { result, desc: desc.to_string(), status })
}
}
@@ -468,13 +468,11 @@ impl ErrorHandleStrategy {
let backoff =
ExponentialBackoff::from_millis(RETRY_BASE_DELAY.as_millis() as u64).max_delay(RETRY_MAX_DELAY).map(jitter);
- return match self {
- Self::TolerateStrategy => {
- return backoff.take(0);
- }
+ match self {
+ Self::TolerateStrategy => backoff.take(0),
Self::RetryStrategy => backoff.take(MAX_RETRIES_TIMES),
- };
+ }
}
}
@@ -482,13 +480,7 @@ impl tokio_retry::Condition<error::EvictionError> for ErrorHandleStrategy {
fn should_retry(&mut self, error: &error::EvictionError) -> bool {
match self {
Self::TolerateStrategy => false,
- Self::RetryStrategy => {
- if let error::EvictionError::EvictionErrorRetry { .. } = error {
- true
- } else {
- false
- }
- }
+ Self::RetryStrategy => matches!(error, error::EvictionError::EvictionErrorRetry { .. }),
}
}
}
diff --git a/KubeOS-Rust/proxy/src/main.rs b/KubeOS-Rust/proxy/src/main.rs
index ad36b64..5c122ba 100644
--- a/KubeOS-Rust/proxy/src/main.rs
+++ b/KubeOS-Rust/proxy/src/main.rs
@@ -39,7 +39,7 @@ async fn main() -> Result<()> {
.run(reconcile, error_policy, Context::new(proxy_controller))
.for_each(|res| async move {
match res {
- Ok(_o) => {}
+ Ok(_o) => {},
Err(e) => error!("reconcile failed: {}", e.to_string()),
}
})
--
2.34.1