This is an automated email from the ASF dual-hosted git repository.
mssun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave.git
The following commit(s) were added to refs/heads/master by this push:
new b02e44c Change the executor's payload type from String to Vec<u8>
(#503)
b02e44c is described below
commit b02e44cb7431203863a5117e9109878df07b336e
Author: Hongbo <[email protected]>
AuthorDate: Mon Jun 7 18:50:24 2021 -0400
Change the executor's payload type from String to Vec<u8> (#503)
---
executor/src/builtin.rs | 2 +-
executor/src/mesapy.rs | 14 +++++++++-----
services/execution/enclave/src/service.rs | 3 +--
types/src/staged_function.rs | 9 +++------
types/src/worker.rs | 2 +-
5 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/executor/src/builtin.rs b/executor/src/builtin.rs
index 070bd88..a327432 100644
--- a/executor/src/builtin.rs
+++ b/executor/src/builtin.rs
@@ -35,7 +35,7 @@ impl TeaclaveExecutor for BuiltinFunctionExecutor {
&self,
name: String,
arguments: FunctionArguments,
- _payload: String,
+ _payload: Vec<u8>,
runtime: FunctionRuntime,
) -> Result<String> {
match name.as_str() {
diff --git a/executor/src/mesapy.rs b/executor/src/mesapy.rs
index 825ae53..713149c 100644
--- a/executor/src/mesapy.rs
+++ b/executor/src/mesapy.rs
@@ -47,7 +47,7 @@ impl TeaclaveExecutor for MesaPy {
&self,
_name: String,
arguments: FunctionArguments,
- payload: String,
+ mut payload: Vec<u8>,
runtime: FunctionRuntime,
) -> anyhow::Result<String> {
let py_argv = arguments.into_vec();
@@ -56,8 +56,7 @@ impl TeaclaveExecutor for MesaPy {
.map(|arg| CString::new(arg.as_str()).unwrap())
.collect();
- let mut script_bytes = payload.into_bytes();
- script_bytes.push(0u8);
+ payload.push(0u8);
let mut p_argv: Vec<_> = cstr_argv
.iter() // do NOT into_iter()
@@ -72,7 +71,7 @@ impl TeaclaveExecutor for MesaPy {
let result = unsafe {
mesapy_exec(
- script_bytes.as_ptr(),
+ payload.as_ptr(),
p_argv.len() - 1,
p_argv.as_ptr(),
&mut py_result as *mut _ as *mut u8,
@@ -169,7 +168,12 @@ def entrypoint(argv):
let function = MesaPy::default();
let summary = function
- .execute("".to_string(), py_args, py_payload.to_string(), runtime)
+ .execute(
+ "".to_string(),
+ py_args,
+ py_payload.as_bytes().to_vec(),
+ runtime,
+ )
.unwrap();
assert_eq!(summary, "");
}
diff --git a/services/execution/enclave/src/service.rs
b/services/execution/enclave/src/service.rs
index 8d368c9..116e9af 100644
--- a/services/execution/enclave/src/service.rs
+++ b/services/execution/enclave/src/service.rs
@@ -156,14 +156,13 @@ impl TeaclaveExecutionService {
fn prepare_task(task: &StagedTask, file_mgr: &TaskFileManager) ->
Result<StagedFunction> {
let input_files = file_mgr.prepare_staged_inputs()?;
let output_files = file_mgr.prepare_staged_outputs()?;
- let function_payload =
String::from_utf8_lossy(&task.function_payload).to_string();
let staged_function = StagedFunction::new()
.executor_type(task.executor_type)
.executor(task.executor)
.name(&task.function_name)
.arguments(task.function_arguments.clone())
- .payload(function_payload)
+ .payload(task.function_payload.clone())
.input_files(input_files)
.output_files(output_files)
.runtime_name("default");
diff --git a/types/src/staged_function.rs b/types/src/staged_function.rs
index 284191a..a8133bc 100644
--- a/types/src/staged_function.rs
+++ b/types/src/staged_function.rs
@@ -108,7 +108,7 @@ impl FunctionArguments {
pub struct StagedFunction {
pub name: String,
pub arguments: FunctionArguments,
- pub payload: String,
+ pub payload: Vec<u8>,
pub input_files: StagedFiles,
pub output_files: StagedFiles,
pub executor_type: ExecutorType,
@@ -132,11 +132,8 @@ impl StagedFunction {
Self { executor, ..self }
}
- pub fn payload(self, payload: impl ToString) -> Self {
- Self {
- payload: payload.to_string(),
- ..self
- }
+ pub fn payload(self, payload: Vec<u8>) -> Self {
+ Self { payload, ..self }
}
pub fn arguments(self, arguments: FunctionArguments) -> Self {
diff --git a/types/src/worker.rs b/types/src/worker.rs
index aa9ced6..37c5991 100644
--- a/types/src/worker.rs
+++ b/types/src/worker.rs
@@ -32,7 +32,7 @@ pub trait TeaclaveExecutor {
&self,
name: String,
arguments: FunctionArguments,
- payload: String,
+ payload: Vec<u8>,
runtime: FunctionRuntime,
) -> anyhow::Result<String>;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]