From 8e9680ccdb377a65db7c94939c10a907a636d014 Mon Sep 17 00:00:00 2001 From: Sehyo Chang Date: Fri, 30 Sep 2022 17:30:56 -0700 Subject: [PATCH] support gzip coding in the controlplane meta --- Cargo.lock | 1 + crates/fluvio-cli/Cargo.toml | 1 + crates/fluvio-cli/src/client/smartmodule/create.rs | 12 ++++-------- .../src/smartmodule/spec.rs | 5 +---- crates/smdk/src/load.rs | 5 ++--- 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ca2dc4a33a..4c76974e73 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1608,6 +1608,7 @@ dependencies = [ "fluvio-cli-common", "fluvio-cluster", "fluvio-command", + "fluvio-controlplane-metadata", "fluvio-extension-common", "fluvio-future 0.4.2", "fluvio-package-index", diff --git a/crates/fluvio-cli/Cargo.toml b/crates/fluvio-cli/Cargo.toml index 8db7666859..6b56eb5ca3 100644 --- a/crates/fluvio-cli/Cargo.toml +++ b/crates/fluvio-cli/Cargo.toml @@ -90,6 +90,7 @@ fluvio-smartmodule-package = { path = "../fluvio-smartmodule-package" } fluvio-smartengine = { path = "../fluvio-smartengine", optional = true } fluvio-protocol = { path = "../fluvio-protocol", features=["record","api"] } fluvio-smartmodule = { path = "../fluvio-smartmodule", default-features = false } +fluvio-controlplane-metadata = { path = "../fluvio-controlplane-metadata", features = ["smartmodule"] } # Optional Fluvio dependencies fluvio-types = { path = "../fluvio-types", optional = true } diff --git a/crates/fluvio-cli/src/client/smartmodule/create.rs b/crates/fluvio-cli/src/client/smartmodule/create.rs index 7e78c0100c..a7be2c74b6 100644 --- a/crates/fluvio-cli/src/client/smartmodule/create.rs +++ b/crates/fluvio-cli/src/client/smartmodule/create.rs @@ -1,6 +1,5 @@ use std::collections::BTreeMap; use std::path::PathBuf; -use std::io::Read; use std::fmt::Debug; use std::sync::Arc; @@ -11,8 +10,7 @@ use tracing::debug; use clap::Parser; use fluvio::Fluvio; -use fluvio::metadata::smartmodule::{SmartModuleWasm, SmartModuleSpec}; -use flate2::{Compression, bufread::GzEncoder}; +use fluvio_controlplane_metadata::smartmodule::{SmartModuleWasm, SmartModuleSpec}; use fluvio_smartmodule_package::package::{SmartModuleMetadata, InitType}; use crate::Result; @@ -41,10 +39,6 @@ impl ClientCmd for CreateSmartModuleOpt { _out: Arc, fluvio: &Fluvio, ) -> Result<()> { - let raw = std::fs::read(self.wasm_file)?; - let mut encoder = GzEncoder::new(raw.as_slice(), Compression::default()); - let mut buffer = Vec::with_capacity(raw.len()); - encoder.read_to_end(&mut buffer)?; /* * TODO: Fix the CRD to work with this let buffer = vec!['a' as u8; self.size]; @@ -78,8 +72,10 @@ impl ClientCmd for CreateSmartModuleOpt { (None, BTreeMap::new()) }; + let raw = std::fs::read(self.wasm_file)?; + let spec: SmartModuleSpec = SmartModuleSpec { - wasm: SmartModuleWasm::from_compressed_gzip(buffer), + wasm: SmartModuleWasm::from_raw_wasm_bytes(&raw)?, package: package_opt.0, init_params: package_opt.1, ..Default::default() diff --git a/crates/fluvio-controlplane-metadata/src/smartmodule/spec.rs b/crates/fluvio-controlplane-metadata/src/smartmodule/spec.rs index 9d0342b670..9f476c2f79 100644 --- a/crates/fluvio-controlplane-metadata/src/smartmodule/spec.rs +++ b/crates/fluvio-controlplane-metadata/src/smartmodule/spec.rs @@ -134,7 +134,6 @@ impl std::fmt::Debug for SmartModuleWasm { } impl SmartModuleWasm { - /// Create SmartModule from compressed Gzip format pub fn from_compressed_gzip(payload: Vec) -> Self { SmartModuleWasm { @@ -143,10 +142,9 @@ impl SmartModuleWasm { } } - #[cfg(feature="smartmodule")] + #[cfg(feature = "smartmodule")] /// Create SmartModule from uncompressed Wasm format pub fn from_raw_wasm_bytes(raw_payload: &[u8]) -> std::io::Result { - use std::io::Read; use flate2::{Compression, bufread::GzEncoder}; @@ -158,7 +156,6 @@ impl SmartModuleWasm { } } - #[cfg(feature = "use_serde")] mod base64 { use serde::{Serialize, Deserialize}; diff --git a/crates/smdk/src/load.rs b/crates/smdk/src/load.rs index 8dd29cad73..65c108d629 100644 --- a/crates/smdk/src/load.rs +++ b/crates/smdk/src/load.rs @@ -16,8 +16,7 @@ pub struct LoadOpt { } impl LoadOpt { pub(crate) fn process(&self) -> Result<()> { - - /* + /* let mut encoder = GzEncoder::new(raw.as_slice(), Compression::default()); let mut buffer = Vec::with_capacity(raw.len()); encoder.read_to_end(&mut buffer)?; @@ -30,7 +29,7 @@ impl LoadOpt { }; let wasm = SmartModuleWasm::new(self.wasm.wasm_file.clone())?; */ - + Ok(()) } }