This commit is contained in:
Aiden McClelland
2023-06-09 16:22:33 -06:00
committed by Matt Hill
parent 3ccbc626ff
commit df88a55784
8 changed files with 101 additions and 5 deletions

2
backend/Cargo.lock generated
View File

@@ -1354,7 +1354,7 @@ dependencies = [
[[package]] [[package]]
name = "embassy-os" name = "embassy-os"
version = "0.3.4-rev.2" version = "0.3.4-rev.3"
dependencies = [ dependencies = [
"aes", "aes",
"async-compression", "async-compression",

View File

@@ -14,7 +14,7 @@ keywords = [
name = "embassy-os" name = "embassy-os"
readme = "README.md" readme = "README.md"
repository = "https://github.com/Start9Labs/start-os" repository = "https://github.com/Start9Labs/start-os"
version = "0.3.4-rev.2" version = "0.3.4-rev.3"
[lib] [lib]
name = "embassy" name = "embassy"

View File

@@ -690,3 +690,49 @@ async fn js_rsync() {
.unwrap() .unwrap()
.unwrap(); .unwrap();
} }
#[tokio::test]
async fn js_disk_usage() {
let js_action = JsProcedure { args: vec![] };
let path: PathBuf = "test/js_action_execute/"
.parse::<PathBuf>()
.unwrap()
.canonicalize()
.unwrap();
let package_id = "test-package".parse().unwrap();
let package_version: Version = "0.3.0.3".parse().unwrap();
let name = ProcedureName::Action("test-disk-usage".parse().unwrap());
let volumes: Volumes = serde_json::from_value(serde_json::json!({
"main": {
"type": "data"
},
"compat": {
"type": "assets"
},
"filebrowser" :{
"package-id": "filebrowser",
"path": "data",
"readonly": true,
"type": "pointer",
"volume-id": "main",
}
}))
.unwrap();
let input: Option<serde_json::Value> = None;
let timeout = Some(Duration::from_secs(10));
dbg!(js_action
.execute::<serde_json::Value, serde_json::Value>(
&path,
&package_id,
&package_version,
name,
&volumes,
input,
timeout,
ProcessGroupId(0),
None,
)
.await
.unwrap()
.unwrap());
}

View File

@@ -32,7 +32,7 @@ pub async fn experimental() -> Result<(), Error> {
#[command(display(display_none))] #[command(display(display_none))]
pub async fn zram(#[context] ctx: RpcContext, #[arg] enable: bool) -> Result<(), Error> { pub async fn zram(#[context] ctx: RpcContext, #[arg] enable: bool) -> Result<(), Error> {
let mut db = ctx.db.handle(); let mut db = ctx.db.handle();
let zram = crate::db::DatabaseModel::new() let mut zram = crate::db::DatabaseModel::new()
.server_info() .server_info()
.zram() .zram()
.get_mut(&mut db) .get_mut(&mut db)
@@ -74,6 +74,7 @@ pub async fn zram(#[context] ctx: RpcContext, #[arg] enable: bool) -> Result<(),
.await .await
.with_kind(ErrorKind::Zram)?; .with_kind(ErrorKind::Zram)?;
} }
zram.save(&mut db).await?;
Ok(()) Ok(())
} }

View File

@@ -22,8 +22,9 @@ mod v0_3_3;
mod v0_3_4; mod v0_3_4;
mod v0_3_4_1; mod v0_3_4_1;
mod v0_3_4_2; mod v0_3_4_2;
mod v0_3_4_3;
pub type Current = v0_3_4_2::Version; pub type Current = v0_3_4_3::Version;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone)] #[derive(serde::Serialize, serde::Deserialize, Debug, Clone)]
#[serde(untagged)] #[serde(untagged)]
@@ -41,6 +42,7 @@ enum Version {
V0_3_4(Wrapper<v0_3_4::Version>), V0_3_4(Wrapper<v0_3_4::Version>),
V0_3_4_1(Wrapper<v0_3_4_1::Version>), V0_3_4_1(Wrapper<v0_3_4_1::Version>),
V0_3_4_2(Wrapper<v0_3_4_2::Version>), V0_3_4_2(Wrapper<v0_3_4_2::Version>),
V0_3_4_3(Wrapper<v0_3_4_3::Version>),
Other(emver::Version), Other(emver::Version),
} }
@@ -69,6 +71,7 @@ impl Version {
Version::V0_3_4(Wrapper(x)) => x.semver(), Version::V0_3_4(Wrapper(x)) => x.semver(),
Version::V0_3_4_1(Wrapper(x)) => x.semver(), Version::V0_3_4_1(Wrapper(x)) => x.semver(),
Version::V0_3_4_2(Wrapper(x)) => x.semver(), Version::V0_3_4_2(Wrapper(x)) => x.semver(),
Version::V0_3_4_3(Wrapper(x)) => x.semver(),
Version::Other(x) => x.clone(), Version::Other(x) => x.clone(),
} }
} }
@@ -258,6 +261,10 @@ pub async fn init<Db: DbHandle>(
v.0.migrate_to(&Current::new(), db, secrets, receipts) v.0.migrate_to(&Current::new(), db, secrets, receipts)
.await? .await?
} }
Version::V0_3_4_3(v) => {
v.0.migrate_to(&Current::new(), db, secrets, receipts)
.await?
}
Version::Other(_) => { Version::Other(_) => {
return Err(Error::new( return Err(Error::new(
eyre!("Cannot downgrade"), eyre!("Cannot downgrade"),
@@ -303,6 +310,7 @@ mod tests {
Just(Version::V0_3_4(Wrapper(v0_3_4::Version::new()))), Just(Version::V0_3_4(Wrapper(v0_3_4::Version::new()))),
Just(Version::V0_3_4_1(Wrapper(v0_3_4_1::Version::new()))), Just(Version::V0_3_4_1(Wrapper(v0_3_4_1::Version::new()))),
Just(Version::V0_3_4_2(Wrapper(v0_3_4_2::Version::new()))), Just(Version::V0_3_4_2(Wrapper(v0_3_4_2::Version::new()))),
Just(Version::V0_3_4_3(Wrapper(v0_3_4_3::Version::new()))),
em_version().prop_map(Version::Other), em_version().prop_map(Version::Other),
] ]
} }

View File

@@ -0,0 +1,36 @@
use async_trait::async_trait;
use emver::VersionRange;
use super::v0_3_0::V0_3_0_COMPAT;
use super::*;
const V0_3_4_3: emver::Version = emver::Version::new(0, 3, 4, 3);
#[derive(Clone, Debug)]
pub struct Version;
#[async_trait]
impl VersionT for Version {
type Previous = v0_3_4_2::Version;
fn new() -> Self {
Version
}
fn semver(&self) -> emver::Version {
V0_3_4_3
}
fn compat(&self) -> &'static VersionRange {
&*V0_3_0_COMPAT
}
async fn up<Db: DbHandle>(&self, db: &mut Db, _secrets: &PgPool) -> Result<(), Error> {
crate::db::DatabaseModel::new()
.server_info()
.get_mut(db)
.await?
.save(db)
.await?;
Ok(())
}
async fn down<Db: DbHandle>(&self, _db: &mut Db, _secrets: &PgPool) -> Result<(), Error> {
Ok(())
}
}

View File

@@ -1039,4 +1039,9 @@ export const action = {
} }
}, },
async "test-disk-usage"(effects, _input) {
const usage = await effects.diskUsage()
return usage
}
}; };

View File

@@ -1171,7 +1171,7 @@ dependencies = [
[[package]] [[package]]
name = "embassy-os" name = "embassy-os"
version = "0.3.4-rev.2" version = "0.3.4-rev.3"
dependencies = [ dependencies = [
"aes", "aes",
"async-compression", "async-compression",