Repository navigation
Change Management
POST /config-jobs/{jobId}/rollback undoes a job with a new write job built from its snapshots, in reverse order. If the values have changed since, the answer is 409 CONFIG_CHANGED_SINCE unless force; dryRun returns the plan. 422 ROLLBACK_NOT_POSSIBLE says why a job can't be undone (for example purged snapshots). GET /managed-entities/{ref}/config-history/diff compares two snapshots; POST /config-history/purge applies retention (RAN_NF_OAM_CM_SNAPSHOT_RETENTION_DAYS, 0 = keep for ever).
POST /config-jobs takes waveSize, wavePauseSeconds, gateMaxNewAlarms and onGateFailure (halt or revert). After each wave a health gate checks rejected sub-changes and new critical/major alarms. A failed gate halts the job or reverts the applied waves. Drive a halted job with /continue, /halt, /abort. Since 0.3.0 the ran-nf-oam-worker service advances jobs whose pause has elapsed by itself (POST /config-jobs/advance-due is still there). A job can carry a kpiGuard (kpi, baselineMinutes, observationMinutes, maxRegressionPercent, direction, revert) that checks the KPI after the job and, if asked, rolls back the regressed elements.
-
PUT /kpi-definitions/{name}: a formula over PM counters (parsed, never evaluated by Python).GET /kpis/{name}computes it per cell, element, sector group, incident zone or overall. -
POST /kpi-definitions/standardseeds six KPIs over this build's counters:dl_prb_utilization,rrc_connected_ues_mean,dl_ue_throughput,handover_failure_rate,handover_success_rate,handover_ping_pong_rate. An operator-edited definition is kept. These are not the TS 28.554 definitions. -
POST /kpis/{name}/publishdelivers a KPI as DME records of typeRAN.KPI.<name>, so an rApp reads it like any other data. Since 0.3.0 a KPI schedule (PUT /kpi-schedules/{id}:kpi,intervalSeconds,lookbackSeconds,groupBy) publishes it on a timer; theran-nf-oam-workerservice runs the schedules. -
POST /config-jobs/{jobId}/kpi-checkcompares a KPI before and after a job and can roll back the regressed elements.
GET /topology/links classifies neighbour relations (INTRA_ELEMENT, INTER_ELEMENT, AMBIGUOUS, EXTERNAL); GET /topology/relation?a=&b= says how two managed objects stand in the containment tree. Names are this build's own, not the TEIV model.
Since 0.3.0 the GUI covers change management: the config-job drawer shows a staged job's waves and why it halted, an operator can continue, halt or abort it, and roll it back after a preview that names any value changed since (a forced rollback is a separate, explicit choice); the KPI guard's result is shown on the job. KPI definitions and schedules are edited under KPIs, and the Safeguards page shows each rApp instance's limits, usage and stop state, with Stop and Lift buttons.
AI-RAN SMO Reference Implementation · Copyright 2026 Radisys · Licensed under the Apache License 2.0
This is a reference implementation for learning, integration testing and demos. It is not hardened or audited for production; do not expose it to an untrusted network or a live RAN.