-
Notifications
You must be signed in to change notification settings - Fork 15
hmon: fix Cargo build, small code changes #90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| // ******************************************************************************* | ||
| // Copyright (c) 2026 Contributors to the Eclipse Foundation | ||
| // | ||
| // See the NOTICE file(s) distributed with this work for additional | ||
| // information regarding copyright ownership. | ||
| // | ||
| // This program and the accompanying materials are made available under the | ||
| // terms of the Apache License Version 2.0 which is available at | ||
| // <https://www.apache.org/licenses/LICENSE-2.0> | ||
| // | ||
| // SPDX-License-Identifier: Apache-2.0 | ||
| // ******************************************************************************* | ||
|
|
||
| //! Module providing [`SupervisorAPIClient`] implementations. | ||
| //! Currently `ScoreSupervisorAPIClient` and `StubSupervisorAPIClient` are supported. | ||
| //! The latter is meant for testing purposes. | ||
|
|
||
| /// An abstraction over the API used to notify the supervisor about process liveness. | ||
| pub trait SupervisorAPIClient { | ||
| fn notify_alive(&self); | ||
| } | ||
|
|
||
| // NOTE: various implementations are not mutually exclusive. | ||
|
|
||
| #[cfg(feature = "score_supervisor_api_client")] | ||
| pub mod score_supervisor_api_client; | ||
| #[cfg(feature = "stub_supervisor_api_client")] | ||
| pub mod stub_supervisor_api_client; | ||
|
Comment on lines
+25
to
+28
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| // ******************************************************************************* | ||
| // Copyright (c) 2026 Contributors to the Eclipse Foundation | ||
| // | ||
| // See the NOTICE file(s) distributed with this work for additional | ||
| // information regarding copyright ownership. | ||
| // | ||
| // This program and the accompanying materials are made available under the | ||
| // terms of the Apache License Version 2.0 which is available at | ||
| // <https://www.apache.org/licenses/LICENSE-2.0> | ||
| // | ||
| // SPDX-License-Identifier: Apache-2.0 | ||
| // ******************************************************************************* | ||
|
|
||
| #![allow(dead_code)] | ||
|
|
||
| use crate::log::debug; | ||
| use crate::supervisor_api_client::SupervisorAPIClient; | ||
| use crate::worker::Checks; | ||
|
|
||
| pub struct ScoreSupervisorAPIClient { | ||
| supervisor_link: monitor_rs::Monitor<Checks>, | ||
| } | ||
|
|
||
| unsafe impl Send for ScoreSupervisorAPIClient {} // Just assuming it's safe to send across threads, this is a temporary solution | ||
|
|
||
| impl ScoreSupervisorAPIClient { | ||
| pub fn new() -> Self { | ||
arkjedrz marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| let value = std::env::var("IDENTIFIER").expect("IDENTIFIER env not set"); | ||
| debug!("ScoreSupervisorAPIClient: Creating with IDENTIFIER={}", value); | ||
| // This is only temporary usage so unwrap is fine here. | ||
| let supervisor_link = monitor_rs::Monitor::<Checks>::new(&value).expect("Failed to create supervisor_link"); | ||
| Self { supervisor_link } | ||
| } | ||
| } | ||
|
|
||
| impl SupervisorAPIClient for ScoreSupervisorAPIClient { | ||
| fn notify_alive(&self) { | ||
| self.supervisor_link.report_checkpoint(Checks::WorkerCheckpoint); | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| // ******************************************************************************* | ||
| // Copyright (c) 2026 Contributors to the Eclipse Foundation | ||
| // | ||
| // See the NOTICE file(s) distributed with this work for additional | ||
| // information regarding copyright ownership. | ||
| // | ||
| // This program and the accompanying materials are made available under the | ||
| // terms of the Apache License Version 2.0 which is available at | ||
| // <https://www.apache.org/licenses/LICENSE-2.0> | ||
| // | ||
| // SPDX-License-Identifier: Apache-2.0 | ||
| // ******************************************************************************* | ||
|
|
||
| #![allow(dead_code)] | ||
|
|
||
| use crate::log::warn; | ||
| use crate::supervisor_api_client::SupervisorAPIClient; | ||
|
|
||
| /// A stub implementation of the SupervisorAPIClient that logs alive notifications. | ||
| pub struct StubSupervisorAPIClient; | ||
|
|
||
| impl StubSupervisorAPIClient { | ||
| pub fn new() -> Self { | ||
| Self | ||
| } | ||
| } | ||
|
|
||
| impl SupervisorAPIClient for StubSupervisorAPIClient { | ||
| fn notify_alive(&self) { | ||
| warn!("StubSupervisorAPIClient: notify_alive called"); | ||
| } | ||
| } |
Uh oh!
There was an error while loading. Please reload this page.