Skip to main content

ServiceProfile

Enum ServiceProfile 

Source
#[non_exhaustive]
pub enum ServiceProfile { UpdateTracker, Agent, Scheduler, Unknown, }
Expand description

Behavioral profile derived from a service’s capability set.

ProfileKey capabilityServices
UpdateTrackerCapability::UpdateTrackingMQTT service
AgentCapability::SoftwareDiscoveryLocal agent, SSH agent
SchedulerCapability::SchedulerExternal task scheduler

Unknown is the fallback for unrecognized capability combinations. ServiceProfile is never persisted — it is always derived from capabilities.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

UpdateTracker

Update-tracking service (has UpdateTracking capability).

§

Agent

Agent service — local or SSH-backed (has SoftwareDiscovery capability).

§

Scheduler

External task scheduler service (has Scheduler capability).

§

Unknown

Unrecognized capability combination.

Implementations§

Source§

impl ServiceProfile

Source

pub fn from_capabilities(caps: &BTreeSet<Capability>) -> Self

Derive the behavioral profile from a capability set.

Precedence: UpdateTracker > Scheduler > Agent > Unknown.

Source

pub const fn default_ping_interval_secs(&self) -> u32

Default ping interval in seconds for this profile.

  • UpdateTracker: 15 seconds (MQTT lease heartbeat).
  • Scheduler: 60 seconds (less latency-sensitive).
  • Agent / Unknown: 300 seconds (5 minutes).
Source

pub const fn shutdown_timeout_secs(&self) -> Option<u32>

Shutdown timeout in seconds, if applicable.

  • UpdateTracker: None (no graceful shutdown timeout).
  • Scheduler: Some(30) (allow claim release).
  • Agent / Unknown: Some(120) (2 minutes).
Source

pub const fn service_label(&self, has_ssh_remote: bool) -> &'static str

Human-readable label for display in the API and UI.

For Agent profiles, pass has_ssh_remote = true to distinguish SSH-backed agents from local agents.

Trait Implementations§

Source§

impl Clone for ServiceProfile

Source§

fn clone(&self) -> ServiceProfile

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ServiceProfile

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for ServiceProfile

Source§

fn eq(&self, other: &ServiceProfile) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ServiceProfile

Source§

impl Eq for ServiceProfile

Source§

impl StructuralPartialEq for ServiceProfile

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more