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, display_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 /hardware-clusters/{target}/members.
AddKernelParametersRequest
Request body for POST /kernel-parameters/add.
AddNodeRequest
Body for POST /nodes.
AddNodesToGroupRequest
Body for POST /groups/{name}/members.
AddNodesToGroupResponse
Response for POST /groups/{name}/members.
ApplyBootConfigRequest
Request body for POST /boot-config.
ApplyHwConfigurationRequest
Request body for POST /hardware-clusters/{target}/configuration.
ApplyKernelParametersRequest
Request body for POST /kernel-parameters/apply.
BearerToken
Axum extractor that pulls the token from Authorization: Bearer <token>.
BootParametersQuery
Query parameters for GET /boot-parameters.
ClusterQuery
Query parameters for GET /groups/nodes.
ConfigurationQuery
Query parameters for GET /configurations.
ConsoleQuery
Query parameters for WebSocket console endpoints (initial terminal size).
CreateEphemeralEnvRequest
Request body for POST /ephemeral-env.
CreateSessionRequest
Request body for POST /sessions.
DeleteBootParametersRequest
Body for DELETE /boot-parameters.
DeleteConfigurationsQuery
Query parameters for DELETE /configurations.
DeleteGroupMembersRequest
Request body for DELETE /groups/{name}/members.
DeleteGroupQuery
Query parameters for DELETE /groups/{label}.
DeleteHwComponentRequest
Request body for DELETE /hardware-clusters/{target}/members.
DeleteImagesQuery
Query parameters for DELETE /images.
DeleteKernelParametersRequest
Request body for DELETE /kernel-parameters.
DeleteSessionQuery
Query parameters for DELETE /sessions/{name}.
ErrorResponse
Standard JSON error body returned by all failed endpoints.
GroupQuery
Query parameters for GET /groups.
HardwareClusterQuery
Query parameters for GET /groups/hardware.
HardwareNodesListQuery
Query parameters for GET /hardware-nodes-list.
ImageEntry
Wrapper so the image tuple serializes to named fields.
ImageQuery
Query parameters for GET /images.
KernelParametersQuery
Query parameters for GET /kernel-parameters.
MigrateBackupRequest
Request body for POST /migrate/backup.
MigrateNodesRequest
Request body for POST /migrate/nodes.
MigrateRestoreRequest
Request body for POST /migrate/restore.
NodesQuery
Query parameters for GET /nodes.
PostSatFileRequest
Request body for POST /sat-file.
PostSatFileResponse
Response body for POST /sat-file. Each field is the list of objects the backend produced (or would produce, in dry_run mode) while realising the SAT file.
PostTemplateSessionRequest
Request body for POST /templates/{name}/sessions.
PowerRequest
Request body for POST /power.
RedfishEndpointsQuery
Query parameters for GET /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 /sessions/{name}/logs.
SessionQuery
Query parameters for GET /sessions.
SiteHeader
Required header parameter present on every authenticated endpoint.
SiteName
Axum extractor that reads the target site name from X-Manta-Site.
TemplateQuery
Query parameters for GET /templates.

Enums§

BosOperation
BOS session operation to run against the template’s node list.
HwClusterMode
Whether to pin nodes to the target cluster or unpin them back to the parent.
KernelParamOp
Which kernel-parameter mutation to perform (add, apply, or delete).
PowerAction
Power action to apply to the target nodes or cluster.
PowerTargetType
Whether targets contains xnames (nodes) or a single cluster name (cluster).

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_all_groups
GET /groups/all — list every HSM group in the system.
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 /clusters. 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.
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 /hardware-clusters. 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_images
GET /images — list IMS images with their associated CFS configuration names.
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_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 — power on, off, or reset nodes or all members of a cluster.
post_sat_file
POST /api/v1/sat-file — apply a pre-rendered SAT file (images, session templates, and CFS sessions).
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.