8 Star 1 Fork 11

src-openEuler/lib-shim-v2

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
0001-lib-shim-v2-add-support-for-loongarch64.patch
0002-simplify-Store-api-remove-unnecessary-validation.patch
0003-Check-if-a-path-is-abstract-before-connection.patch
0004-Add-vsock-support.patch
0005-sandbox-sandbox-api-update.patch
0006-add-adapter-for-runc-sandboxer.patch
0007-update-dependent-protobuf-and-ttrpc-version.patch
0008-support-stats-cmd.patch
0009-add-riscv-support.patch
README.en.md
README.md
lib-shim-v2-0.0.1.tar.gz
lib-shim-v2.spec
lib-shim-v2.yaml
libc.tar.gz
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0002-simplify-Store-api-remove-unnecessary-validation.patch 12.91 KB
一键复制 编辑 原始数据 按行查看 历史
钟佳炜1 提交于 5个月前 . lib-shim-v2:sync some patches
From 442dd4ecbccdec2a84dd3f5c91dc947d560bcc37 Mon Sep 17 00:00:00 2001
From: suoxiaocong <suoxiaocong@kylinos.cn>
Date: Tue, 10 May 2022 16:21:32 +0800
Subject: [PATCH 1/4] simplify Store api, remove unnecessary validation
move container_id into struct Store, makes api more readable
---
src/client/client.rs | 62 +++++++++++++++++---------------------------
src/lib.rs | 22 +++++++---------
2 files changed, 34 insertions(+), 50 deletions(-)
diff --git a/src/client/client.rs b/src/client/client.rs
index 3f231f2..aa1c7c1 100644
--- a/src/client/client.rs
+++ b/src/client/client.rs
@@ -25,6 +25,7 @@ use ttrpc::client::Client;
#[derive(Clone)]
pub struct Store {
conn: Client,
+ container_id: String,
timeout: i64,
}
@@ -101,6 +102,7 @@ pub fn new_conn(container_id: &String, addr: &String) -> Result<()> {
container_id.clone(),
Store {
conn: Client::new(fd),
+ container_id: container_id.clone(),
timeout: 0,
},
);
@@ -140,19 +142,18 @@ impl ValidateTool {
impl Store {
pub fn create(
&self,
- container_id: &String,
bundle: &String,
terminal: bool,
stdin: &String,
stdout: &String,
stderr: &String,
) -> Result<i32> {
- ValidateTool {}.str_empty(container_id)?.str_empty(bundle)?;
+ ValidateTool {}.str_empty(bundle)?;
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::CreateTaskRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
req.set_bundle(bundle.clone());
req.set_terminal(terminal);
req.set_stdin(stdin.clone());
@@ -166,13 +167,12 @@ impl Store {
Ok(resp.pid as i32)
}
- pub fn start(&self, container_id: &String, exec_id: &String) -> Result<i32> {
- ValidateTool {}.str_empty(container_id)?;
+ pub fn start(&self, exec_id: &String) -> Result<i32> {
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::StartRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
req.set_exec_id(exec_id.clone());
let resp = client
@@ -185,18 +185,14 @@ impl Store {
#[allow(unused)]
pub fn kill(
&self,
- container_id: &String,
- exec_id: &String,
signal: u32,
all: bool,
) -> Result<()> {
- ValidateTool {}.str_empty(container_id)?;
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::KillRequest::new();
- req.set_id(container_id.clone());
- // unused variable: exec_id
+ req.set_id(self.container_id.clone());
req.set_signal(signal);
req.set_all(all);
@@ -207,13 +203,12 @@ impl Store {
Ok(())
}
- pub fn delete(&self, container_id: &String, exec_id: &String) -> Result<DeleteResponse> {
- ValidateTool {}.str_empty(container_id)?;
+ pub fn delete(&self, exec_id: &String) -> Result<DeleteResponse> {
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::DeleteRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
req.set_exec_id(exec_id.clone());
let resp = client
@@ -226,13 +221,12 @@ impl Store {
})
}
- pub fn shutdown(&self, container_id: &String) -> Result<()> {
- ValidateTool {}.str_empty(container_id)?;
+ pub fn shutdown(&self) -> Result<()> {
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::ShutdownRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
client
.shutdown(&req, self.timeout)
@@ -243,7 +237,6 @@ impl Store {
pub fn exec(
&self,
- container_id: &String,
exec_id: &String,
terminal: bool,
stdin: &String,
@@ -252,13 +245,12 @@ impl Store {
spec: &[u8],
) -> Result<()> {
ValidateTool {}
- .str_empty(container_id)?
.str_empty(exec_id)?;
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::ExecProcessRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
req.set_exec_id(exec_id.clone());
req.set_terminal(terminal);
req.set_stdin(stdin.clone());
@@ -281,17 +273,15 @@ impl Store {
pub fn resize_pty(
&self,
- container_id: &String,
exec_id: &String,
height: u32,
width: u32,
) -> Result<()> {
- ValidateTool {}.str_empty(container_id)?;
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::ResizePtyRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
req.set_exec_id(exec_id.clone());
req.set_height(height);
req.set_width(width);
@@ -303,13 +293,12 @@ impl Store {
Ok(())
}
- pub fn pause(&self, container_id: &String) -> Result<()> {
- ValidateTool {}.str_empty(container_id)?;
+ pub fn pause(&self) -> Result<()> {
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::PauseRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
client
.pause(&req, self.timeout)
@@ -318,13 +307,12 @@ impl Store {
Ok(())
}
- pub fn resume(&self, container_id: &String) -> Result<()> {
- ValidateTool {}.str_empty(container_id)?;
+ pub fn resume(&self) -> Result<()> {
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::ResumeRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
client
.resume(&req, self.timeout)
@@ -333,20 +321,19 @@ impl Store {
Ok(())
}
- pub fn state(&self, container_id: &String) -> Result<State> {
- ValidateTool {}.str_empty(container_id)?;
+ pub fn state(&self) -> Result<State> {
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::StateRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
let resp = client
.state(&req, self.timeout)
.map_err(shim_error!(e, "ttrpc call state failed"))?;
Ok(State {
- id: container_id.clone(),
+ id: self.container_id.clone(),
pid: resp.pid,
status: match resp.status {
shim_v2_status::CREATED => Status::CreatedStatus,
@@ -364,11 +351,11 @@ impl Store {
})
}
- pub fn pids(&self, container_id: &String) -> Result<i32> {
+ pub fn pids(&self) -> Result<i32> {
let c = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::PidsRequest::new();
- req.id = container_id.clone();
+ req.id = self.container_id.clone();
let resp = c
.pids(&req, self.timeout)
@@ -378,13 +365,12 @@ impl Store {
Ok(process.pid as i32)
}
- pub fn wait(&self, container_id: &String, exec_id: &String) -> Result<i32> {
- ValidateTool {}.str_empty(container_id)?;
+ pub fn wait(&self, exec_id: &String) -> Result<i32> {
let client = protocols::shim_ttrpc::TaskClient::new(self.conn.clone());
let mut req = protocols::shim::WaitRequest::new();
- req.set_id(container_id.clone());
+ req.set_id(self.container_id.clone());
req.set_exec_id(exec_id.clone());
let resp = client
diff --git a/src/lib.rs b/src/lib.rs
index 7a7d453..b46d800 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -80,7 +80,6 @@ pub extern "C" fn shim_v2_create(
.and_then(|client| {
client
.create(
- &r_container_id,
&r_bundle,
terminal,
&r_stdin,
@@ -110,7 +109,7 @@ pub extern "C" fn shim_v2_start(
get_conn(&r_container_id)
.and_then(|client| {
client
- .start(&r_container_id, &r_exec_id)
+ .start(&r_exec_id)
.map(|process_pid| {
*pid = process_pid;
println!("lib-shim-v2::start::{}:: done.", r_container_id);
@@ -135,7 +134,7 @@ pub extern "C" fn shim_v2_kill(
get_conn(&r_container_id)
.and_then(|client| {
client
- .kill(&r_container_id, &r_exec_id, signal, all)
+ .kill(signal, all)
.map(|_| {
println!("lib-shim-v2::kill::{}:: done.", r_container_id);
0
@@ -163,7 +162,7 @@ pub extern "C" fn shim_v2_delete(
println!("lib-shim-v2::delete::{}:: [{}]", r_container_id, r_exec_id);
get_conn(&r_container_id)
.and_then(|client| {
- client.delete(&r_container_id, &r_exec_id).map(|response| {
+ client.delete(&r_exec_id).map(|response| {
resp.exit_status = response.exit_status;
resp.pid = response.pid;
println!("lib-shim-v2::delete::{}:: done.", r_container_id);
@@ -182,7 +181,7 @@ pub extern "C" fn shim_v2_shutdown(container_id: *const c_char) -> c_int {
println!("lib-shim-v2::shutdown::{}::", r_container_id);
get_conn(&r_container_id)
.and_then(|client| {
- client.shutdown(&r_container_id).map(|_| {
+ client.shutdown().map(|_| {
println!("lib-shim-v2::shutdown::{}:: done.", r_container_id);
0
})
@@ -222,7 +221,6 @@ pub extern "C" fn shim_v2_exec(
.and_then(|client| {
client
.exec(
- &r_container_id,
&r_exec_id,
terminal,
&r_stdin,
@@ -256,7 +254,7 @@ pub extern "C" fn shim_v2_resize_pty(
get_conn(&r_container_id)
.and_then(|client| {
client
- .resize_pty(&r_container_id, &r_exec_id, height, width)
+ .resize_pty(&r_exec_id, height, width)
.map(|_| {
println!("lib-shim-v2::resize_pty::{}:: done.", r_container_id);
0
@@ -277,7 +275,7 @@ pub extern "C" fn shim_v2_pause(container_id: *const c_char) -> c_int {
println!("lib-shim-v2::pause::{}::", r_container_id);
get_conn(&r_container_id)
.and_then(|client| {
- client.pause(&r_container_id).map(|_| {
+ client.pause().map(|_| {
println!("lib-shim-v2::pause::{}:: done.", r_container_id);
0
})
@@ -294,7 +292,7 @@ pub extern "C" fn shim_v2_resume(container_id: *const c_char) -> c_int {
println!("lib-shim-v2::resume::{}::", r_container_id);
get_conn(&r_container_id)
.and_then(|client| {
- client.resume(&r_container_id).map(|_| {
+ client.resume().map(|_| {
println!("lib-shim-v2::resume::{}:: done.", r_container_id);
0
})
@@ -361,7 +359,7 @@ pub extern "C" fn shim_v2_state(container_id: *const c_char, state: &mut State)
println!("lib-shim-v2::state::{}::", r_container_id);
get_conn(&r_container_id)
.and_then(|client| {
- client.state(&r_container_id).map(|container_state| {
+ client.state().map(|container_state| {
state.copy(container_state);
println!("lib-shim-v2::state::{}:: done.", r_container_id);
0
@@ -379,7 +377,7 @@ pub extern "C" fn shim_v2_pids(container_id: *const c_char, pid: &mut c_int) ->
println!("in rutst::shim_v2_pids::{}:: start.", r_container_id);
get_conn(&r_container_id)
.and_then(|client| {
- client.pids(&r_container_id).map(|process_pid| {
+ client.pids().map(|process_pid| {
*pid = process_pid;
println!("in rust::shim_v2_pids::{}:: done", r_container_id);
0
@@ -401,7 +399,7 @@ pub extern "C" fn shim_v2_wait(
println!("lib-shim-v2::wait::{}:: [{}]", r_container_id, r_exec_id);
get_conn(&r_container_id)
.and_then(|client| {
- client.wait(&r_container_id, &r_exec_id).map(|exit_code| {
+ client.wait(&r_exec_id).map(|exit_code| {
*exit_status = exit_code;
println!("lib-shim-v2::wait::{}:: done.", r_container_id);
0
--
2.40.1
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/src-openeuler/lib-shim-v2.git
git@gitee.com:src-openeuler/lib-shim-v2.git
src-openeuler
lib-shim-v2
lib-shim-v2
master

搜索帮助