mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-04-04 06:19:44 +00:00
fix: Making the daemons keep up the status. (#2617)
* complete get_primary_url fn * complete clear_network_interfaces fn * formatting * complete remove_address fn * get_system_smtp wip * complete get_system_smtp and set_system_smtp * add SetSystemSmtpParams struct * add set_system_smtp subcommand * Remove 'Copy' implementation from `HostAddress` Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> * Refactor `get_host_primary` fn and clone resulting `HostAddress` Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> * misc fixes and debug info * seed hosts with a tor address * fix: Making the daemons keep up the status. * wipFix: Making a service start * fix: Both the start + stop of the service. * fix: Weird edge case of failure and kids --------- Co-authored-by: Shadowy Super Coder <musashidisciple@proton.me> Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> Co-authored-by: Aiden McClelland <me@drbonez.dev>
This commit is contained in:
@@ -581,10 +581,28 @@ struct GetHostInfoParams {
|
||||
callback: Callback,
|
||||
}
|
||||
async fn get_host_info(
|
||||
_: EffectContext,
|
||||
ctx: EffectContext,
|
||||
GetHostInfoParams { .. }: GetHostInfoParams,
|
||||
) -> Result<Value, Error> {
|
||||
todo!()
|
||||
let ctx = ctx.deref()?;
|
||||
Ok(json!({
|
||||
"id": "fakeId1",
|
||||
"kind": "multi",
|
||||
"hostnames": [{
|
||||
"kind": "ip",
|
||||
"networkInterfaceId": "fakeNetworkInterfaceId1",
|
||||
"public": true,
|
||||
"hostname":{
|
||||
"kind": "domain",
|
||||
"domain": format!("{}", ctx.id),
|
||||
"subdomain": (),
|
||||
"port": (),
|
||||
"sslPort": ()
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
}))
|
||||
}
|
||||
|
||||
async fn clear_bindings(context: EffectContext, _: Empty) -> Result<Value, Error> {
|
||||
@@ -1011,21 +1029,23 @@ async fn set_configured(context: EffectContext, params: SetConfigured) -> Result
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export)]
|
||||
enum Status {
|
||||
enum SetMainStatusStatus {
|
||||
Running,
|
||||
Stopped,
|
||||
Starting,
|
||||
}
|
||||
impl FromStr for Status {
|
||||
impl FromStr for SetMainStatusStatus {
|
||||
type Err = color_eyre::eyre::Report;
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
match s {
|
||||
"running" => Ok(Self::Running),
|
||||
"stopped" => Ok(Self::Stopped),
|
||||
"starting" => Ok(Self::Starting),
|
||||
_ => Err(eyre!("unknown status {s}")),
|
||||
}
|
||||
}
|
||||
}
|
||||
impl ValueParserFactory for Status {
|
||||
impl ValueParserFactory for SetMainStatusStatus {
|
||||
type Parser = FromStrParser<Self>;
|
||||
fn value_parser() -> Self::Parser {
|
||||
FromStrParser::new()
|
||||
@@ -1037,14 +1057,15 @@ impl ValueParserFactory for Status {
|
||||
#[command(rename_all = "camelCase")]
|
||||
#[ts(export)]
|
||||
struct SetMainStatus {
|
||||
status: Status,
|
||||
status: SetMainStatusStatus,
|
||||
}
|
||||
async fn set_main_status(context: EffectContext, params: SetMainStatus) -> Result<Value, Error> {
|
||||
dbg!(format!("Status for main will be is {params:?}"));
|
||||
let context = context.deref()?;
|
||||
match params.status {
|
||||
Status::Running => context.started(),
|
||||
Status::Stopped => context.stopped(),
|
||||
SetMainStatusStatus::Running => context.started(),
|
||||
SetMainStatusStatus::Stopped => context.stopped(),
|
||||
SetMainStatusStatus::Starting => context.stopped(),
|
||||
}
|
||||
Ok(Value::Null)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user