Module handlers

Module handlers 

Source
Expand description

Top-level Axum handlers module.

mod.rs keeps:

  • request extractors (BearerToken, SiteName, RequestCtx, SiteHeader)
  • the ErrorResponse body type + error mappers (to_handler_error, serialize_or_500)
  • guard helpers (require_vault, require_k8s_url, validate_repo_list_lengths, parse_iso_datetime)
  • the cross-handler resolve_xnames_from_request helper
  • the health endpoint

Every other handler lives in a per-resource sub-module (mirroring the service/ layout) and is re-exported here so routes.rs and api_doc.rs can keep referencing handlers::X unchanged.

Structs§

AddHwComponentRequest
Request body for POST /api/v1/hardware-clusters/{target}/members.
AddKernelParametersRequest
Request body for POST /api/v1/kernel-parameters/add (append mode).
AddNodeRequest
Request body for POST /api/v1/nodes.
AddNodesToGroupRequest
Request body for POST /api/v1/groups/{name}/members.
AddNodesToGroupResponse
Response body for POST /api/v1/groups/{name}/members.
ApplyBootConfigRequest
Request body for POST /api/v1/boot-config.
ApplyHwConfigurationRequest
Request body for POST /api/v1/hardware-clusters/{target}/configuration.
ApplyKernelParametersRequest
Request body for POST /api/v1/kernel-parameters/apply.
BearerToken
Axum extractor that pulls the token from Authorization: Bearer <token>.
BootParametersQuery
Query parameters for GET /api/v1/boot-parameters.
ClusterQuery
Query parameters for GET /api/v1/groups/nodes (the renamed alias of the legacy GET /api/v1/clusters).
ConfigurationQuery
Query parameters for GET /api/v1/configurations.
ConsoleQuery
Query parameters for the WebSocket console endpoints (/nodes/{xname}/console, /sessions/{name}/console).
CreateEphemeralEnvRequest
Request body for POST /ephemeral-env.
CreateImageCfsSessionRequest
Request body for POST /api/v1/sat-file/images/cfs-session.
CreateSessionRequest
Request body for POST /api/v1/sessions.
DeleteBootParametersRequest
Body for DELETE /boot-parameters.
DeleteConfigurationsQuery
Query parameters for DELETE /api/v1/configurations.
DeleteGroupMembersRequest
Request body for DELETE /api/v1/groups/{name}/members.
DeleteGroupQuery
Query parameters for DELETE /api/v1/groups/{label}.
DeleteHwComponentRequest
Request body for DELETE /api/v1/hardware-clusters/{target}/members.
DeleteImagesQuery
Query parameters for DELETE /api/v1/images.
DeleteKernelParametersRequest
Request body for DELETE /api/v1/kernel-parameters.
DeleteSessionQuery
Query parameters for DELETE /api/v1/sessions/{name}.
ErrorResponse
Standard JSON error body returned by all failed endpoints.
GroupQuery
Query parameters for GET /api/v1/groups.
HardwareClusterQuery
Query parameters for GET /api/v1/groups/hardware (the renamed alias of the legacy GET /api/v1/hardware-clusters).
HardwareNodesListQuery
Query parameters for GET /api/v1/hardware-nodes-list.
ImageQuery
Query parameters for GET /api/v1/images.
KernelParametersQuery
Query parameters for GET /api/v1/kernel-parameters.
MigrateBackupRequest
Request body for POST /api/v1/migrate/backup.
MigrateNodesRequest
Request body for POST /api/v1/migrate/nodes.
MigrateRestoreRequest
Request body for POST /api/v1/migrate/restore.
NodesQuery
Query parameters for GET /api/v1/nodes.
PostSatConfigurationRequest
Request body for POST /api/v1/sat-file/configurations.
PostSatSessionTemplateRequest
Request body for POST /api/v1/sat-file/session-templates.
PostSatSessionTemplateResponse
Response body for POST /api/v1/sat-file/session-templates.
PostSatValidateRequest
Body for POST /api/v1/sat-file/validate.
PostTemplateSessionRequest
Request body for POST /api/v1/templates/{name}/sessions.
PowerRequest
Request body for POST /api/v1/power.
RedfishEndpointsQuery
Query parameters for GET /api/v1/redfish-endpoints.
RequestCtx
Bundled extractor for State<Arc<ServerState>> + BearerToken + SiteName. Use it in handler signatures instead of the three individual extractors when all three are needed (the typical case).
SessionLogsQuery
Query parameters for GET /api/v1/sessions/{name}/logs.
SessionQuery
Query parameters for GET /api/v1/sessions.
SiteHeader
Required header parameter present on every authenticated endpoint.
SiteName
Axum extractor that reads the target site name from X-Manta-Site.
StampImageFromSessionRequest
Request body for POST /api/v1/sat-file/images/stamp.
TemplateQuery
Query parameters for GET /api/v1/templates.

Enums§

BosOperation
BOS session operation to run against the template’s node list.
HwClusterMode
Whether the hw cluster operation moves nodes into the target (Pin) or releases them back (Unpin).
KernelParamOp
Which kernel-parameter mutation to perform on POST /api/v1/kernel-parameters/apply.
PowerAction
The power operation to apply to a list of xnames.
PowerTargetType
Whether the caller’s host_expression is a hosts expression (xnames / NIDs / hostlist) or a single HSM group name whose members should be targeted.

Functions§

add_boot_parameters
POST /boot-parameters — create a new BSS boot parameters entry.
add_hw_component
POST /api/v1/hardware-clusters/{target}/members — move nodes matching a hardware pattern into a cluster.
add_kernel_parameters
POST /api/v1/kernel-parameters/add — merge new kernel parameters into existing node BSS entries.
add_node
POST /nodes — register a new node in HSM and add it to a group.
add_nodes_to_group
POST /groups/{name}/members — replace a group’s member list from a host expression.
add_redfish_endpoint
POST /redfish-endpoints — register a new Redfish endpoint in HSM.
apply_boot_config
POST /api/v1/boot-config — apply BSS boot configuration to a set of nodes.
apply_hw_configuration
POST /api/v1/hardware-clusters/{target}/configuration — pin or unpin nodes between clusters by hardware pattern.
apply_kernel_parameters
POST /api/v1/kernel-parameters/apply — add, replace, or delete kernel parameters on nodes.
auth_token
POST /api/v1/auth/token — exchange username/password for a CSM token.
auth_validate
POST /api/v1/auth/validate — check whether a CSM token is still valid.
console_node_ws
WS /api/v1/nodes/{xname}/console — attach an interactive PTY console to a node via WebSocket.
console_session_ws
WS /api/v1/sessions/{name}/console — attach an interactive PTY console to a CFS session pod via WebSocket.
create_ephemeral_env
POST /api/v1/ephemeral-env — launch an ephemeral CFS environment from an IMS image.
create_group
POST /groups — create a new HSM group.
create_session
POST /api/v1/sessions — create a CFS session from one or more git repositories.
delete_boot_parameters
DELETE /boot-parameters — remove BSS boot parameter entries for specified hosts.
delete_configurations
DELETE /api/v1/configurations — delete CFS configurations and all derived artifacts.
delete_group
DELETE /groups/{label} — remove an HSM group.
delete_group_members
DELETE /api/v1/groups/{name}/members — remove nodes from an HSM group.
delete_hw_component
DELETE /api/v1/hardware-clusters/{target}/members — move nodes back to parent cluster by hardware pattern.
delete_images
DELETE /api/v1/images — delete IMS images by ID; validates only when dry_run=true.
delete_kernel_parameters
DELETE /api/v1/kernel-parameters — remove named kernel parameters from node BSS entries.
delete_node
DELETE /nodes/{id} — remove a node from HSM by xname or NID.
delete_redfish_endpoint
DELETE /redfish-endpoints/{id} — remove a Redfish endpoint from HSM.
delete_session
DELETE /sessions/{name} — cancel and delete a CFS session; ?dry_run=true previews.
get_available_groups
GET /groups/available — list HSM group names the token can access.
get_boot_parameters
GET /boot-parameters — fetch BSS boot parameters for a group or node list.
get_clusters_deprecated
DEPRECATED alias for GET /groups/nodes. Logs a server-side warning, then delegates to the canonical handler. Old path kept for one release.
get_configurations
GET /configurations — list CFS configurations with optional name/pattern/group filters. Every row carries the full CfsConfigurationResponse plus a safe_to_delete verdict derived from CFS components only (a configuration is unsafe iff some component lists it as desired_config).
get_groups
GET /groups — list HSM groups, optionally filtered by name.
get_groups_hardware
GET /groups/hardware — summarize hardware components per node for a group.
get_groups_nodes
GET /groups/nodes — list nodes in a group with optional status filter.
get_hardware_clusters_deprecated
DEPRECATED alias for GET /groups/hardware. Logs a server-side warning and delegates to the canonical handler. Old path kept for one release.
get_hardware_nodes_list
GET /hardware-nodes-list — hardware details for an explicit list of xnames.
get_image_analysis
GET /analysis/images — image-centric flat projection of every CFS configuration, CFS session, BOS session template, and IMS image visible to the caller. One row per IMS image; see BackendSummary for column semantics.
get_images
GET /images — list IMS images sorted by creation time.
get_kernel_parameters
GET /kernel-parameters — fetch BSS kernel parameters for a group or node list.
get_nodes
GET /nodes — fetch node details for a given xname expression.
get_power_transition
GET /api/v1/power/transitions/{id} — fetch the current snapshot of a PCS power transition (status, task counts, per-task detail). Called by the CLI’s poll loop after POST /power returns the id.
get_redfish_endpoints
GET /redfish-endpoints — list HSM Redfish endpoints with optional filters.
get_session_logs
GET /api/v1/sessions/{name}/logs — stream CFS session pod logs via Server-Sent Events.
get_sessions
GET /sessions — list CFS sessions with optional filters.
get_templates
GET /templates — list BOS session templates with optional filters.
health
GET /health — liveness probe; returns {"status":"ok"}.
migrate_backup
POST /api/v1/migrate/backup — export BOS session templates to backup files.
migrate_nodes
POST /api/v1/migrate/nodes — move nodes between HSM groups.
migrate_restore
POST /api/v1/migrate/restore — import BOS session templates and related artifacts from backup.
post_power
POST /api/v1/power — start a PCS power transition (on / off / reset) against nodes or all members of a cluster and return the transition id immediately. Does not block until the transition completes — the CLI is responsible for polling GET /power/transitions/{id} until the snapshot reports transitionStatus = "completed".
post_sat_configuration
POST /api/v1/sat-file/configurations — apply a single SAT configuration entry. Returns the created CfsConfigurationResponse.
post_sat_image_cfs_session
POST /api/v1/sat-file/images/cfs-session — translate one SAT images[] entry into a CFS session payload and create it. Returns the freshly-created [CfsSessionGetResponse] so the CLI can drive the monitor + stamp steps itself.
post_sat_image_stamp
POST /api/v1/sat-file/images/stamp — fetch the named CFS session, derive the provenance stamp, and PATCH the produced IMS image.
post_sat_session_template
POST /api/v1/sat-file/session-templates — apply a single SAT session_template entry. Returns the created BOS session template and (if create_bos_session was set and we’re not in dry-run) the BOS session that was created from the new template to boot the targeted nodes through it.
post_sat_validate
POST /api/v1/sat-file/validate — validate a SAT file against live CSM state without mutating anything. Used by manta apply sat-file as a pre-flight check.
post_template_session
POST /api/v1/templates/{name}/sessions — create a BOS session from a session template.
to_handler_error
Convert a BackendError into the best-fitting HTTP error response.
update_boot_parameters
PUT /boot-parameters — update boot image, kernel params, or runtime config for nodes.
update_redfish_endpoint
PUT /redfish-endpoints — update an existing Redfish endpoint’s properties.