fmd-adm 0.3.0

Idiomatic Rust bindings for illumos libfmd_adm
Documentation

fmd-adm

Idiomatic Rust bindings for illumos libfmd_adm, the Fault Management Daemon administrative library.

This crate provides a safe wrapper around the raw FFI bindings in fmd-adm-sys.

Usage

use fmd_adm::FmdAdm;

let adm = FmdAdm::open().expect("failed to connect to fmd");

for module in adm.modules().unwrap() {
    println!("{} v{} - {}", module.name, module.version, module.description);
}

for case in adm.cases(None).unwrap() {
    println!("{} - {}", case.uuid, case.code);
}

API overview

All operations go through the FmdAdm handle, which connects to the local fault management daemon on construction and disconnects on drop.

  • Modules: modules()
  • Resources: resources(), resource_count(), resource_repaired(), resource_replaced(), resource_acquit()
  • Cases: cases(), case_acquit()
  • SERD engines: serd_engines()
  • Transports: transports()
  • Statistics: stats()

Privileges

Opening a handle does not require elevated privileges, but most query and mutation operations do. Run with pfexec or appropriate RBAC profiles to access fmd data.