Merge branch 'integration/new-container-runtime' of github.com:Start9Labs/start-os into integration/new-container-runtime

This commit is contained in:
J H
2024-03-23 09:13:00 -06:00
48 changed files with 309 additions and 836 deletions

View File

@@ -0,0 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AllowedStatuses } from "./AllowedStatuses";
export interface ActionMetadata { name: string, description: string, warning: string | null, disabled: boolean, input: {[key: string]: any}, allowedStatuses: AllowedStatuses, group: string | null, }

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type AllowedStatuses = "only-running" | "only-stopped" | "any" | "disabled";
export type AllowedStatuses = "only-running" | "only-stopped" | "any";

View File

@@ -1,4 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AllowedStatuses } from "./AllowedStatuses";
import type { ActionMetadata } from "./ActionMetadata";
export interface ExportActionParams { name: string, description: string, id: string, input: {[key: string]: any}, allowedStatuses: AllowedStatuses, group: string | null, }
export interface ExportActionParams { id: string, metadata: ActionMetadata, }

View File

@@ -385,6 +385,10 @@ impl NetService {
))
}
}
pub fn get_ip(&self) -> Ipv4Addr {
self.ip.to_owned()
}
}
impl Drop for NetService {

View File

@@ -260,16 +260,24 @@ enum AllowedStatuses {
OnlyRunning, // onlyRunning
OnlyStopped,
Any,
Disabled,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, TS)]
#[ts(export)]
#[serde(rename_all = "camelCase")]
struct ExportActionParams {
#[ts(type = "string")]
id: ActionId,
metadata: ActionMetadata
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, TS)]
#[ts(export)]
#[serde(rename_all = "camelCase")]
struct ActionMetadata {
name: String,
description: String,
id: String,
warning: Option<String>,
disabled: bool,
#[ts(type = "{[key: string]: any}")]
input: Value,
allowed_statuses: AllowedStatuses,
@@ -337,7 +345,18 @@ async fn get_system_smtp(
todo!()
}
async fn get_container_ip(context: EffectContext, _: Empty) -> Result<Ipv4Addr, Error> {
todo!()
match context.0.upgrade() {
Some(c) => {
let net_service = c.persistent_container.net_service.lock().await;
Ok(net_service.get_ip())
},
None => {
Err(Error::new(
eyre!("Upgrade on Weak<ServiceActorSeed> resulted in a None variant"),
crate::ErrorKind::NotFound
))
}
}
}
async fn get_service_port_forward(
context: EffectContext,