Skip to main content

Crate ferroclass

Crate ferroclass 

Source
Expand description

Ferroclass — hierarchical inventory management compatible with Python reclass.

Ferroclass reads a directory tree of YAML class and node definitions, resolves class inheritance and variable interpolation ($[...] references and inventory queries), merges parameters, and produces structured output for Ansible, Salt, or plain reclass-compatible formats.

§Quick start

use ferroclass::{Inventory, Options, StorageOptions, StorageType};

let options = Options::default();
// Load from a YAML filesystem layout (requires a real directory):
// let inventory = ferroclass::load(&options.storage_options).unwrap();
// Merge a single node:
// let merged = inventory.merge_node("web01.example.com").unwrap();

§Crate layout

  • inventory — core domain types, loading, and merging
  • output — formatting to Ansible, Salt, and reclass YAML/JSON
  • configuration — loading reclass-config.yml configuration files
  • storage — filesystem backends for reading YAML classes and nodes
  • cli — CLI argument definitions shared by the binaries

Re-exports§

pub use inventory::Inventory;
pub use inventory::load;
pub use inventory::load_from_yaml_string;
pub use inventory::load_from_yaml_string_with_uri;
pub use inventory::options::Options;
pub use inventory::options::MergeConfig;
pub use inventory::options::OutputFormat;
pub use inventory::options::OutputOptions;
pub use inventory::options::ParameterKeyStyle;
pub use inventory::options::StorageOptions;
pub use inventory::options::StorageOptionsTrait;
pub use inventory::options::StorageType;
pub use inventory::options::YamlFileStorageOptions;
pub use inventory::options::YamlFsStorageOptions;

Modules§

cli
CLI argument definitions for each binary.
configuration
Configuration file loading and resolution.
inventory
Core inventory types, loading, and merging.
output
Output formatting — the format layer of the three-layer architecture.
storage
Storage backends for reading YAML class and node definitions from disk.