uci¶
Salt execution module for OpenWrt configuration via local ubus.
For devices with Python3 and ubusd running, managed via salt-ssh.
Calls ubus call directly via subprocess – no proxy module needed.
The JSON output is identical to what the JSON-RPC and SSH adapters return, so the state module works unchanged.
UCI metadata fields are returned with underscore prefixes to avoid collision with UCI option names:
.type -> _type, .name -> _name, .anonymous -> _anonymous, .index -> _index
- saltext.uci_ubus.modules.uci_local.get(config, section=None, option=None)[source]¶
Read UCI configuration via local
ubus call uci get.Returns the full config, a single section, or a single option value. UCI metadata fields (.type, .name, .anonymous, .index) are returned with underscore prefixes (_type, _name, _anonymous, _index).
CLI Example:
salt device uci.get network salt device uci.get network lan salt device uci.get network lan proto
- saltext.uci_ubus.modules.uci_local.configs()[source]¶
List available UCI configuration packages.
CLI Example:
salt device uci.configs
- saltext.uci_ubus.modules.uci_local.changes(config)[source]¶
Show uncommitted changes for a UCI package.
CLI Example:
salt device uci.changes network
- saltext.uci_ubus.modules.uci_local.config_export(config, format='json')[source]¶
Export live UCI config as a grouped sections dict.
Transforms the device config into the format consumed by
uci.managed(). Anonymous sections are emitted as singleton (_<type>) or multi-instance (_<type>swith_matchand_items).Use
format=pillarto redact sensitive values with Jinja2 pillar references, orformat=json(default) for plaintext.CLI Example:
salt device uci.config_export network salt device uci.config_export network format=pillar
- saltext.uci_ubus.modules.uci_local.config_export_all(format='json')[source]¶
Export all UCI config packages as a grouped dict.
CLI Example:
salt device uci.config_export_all salt device uci.config_export_all format=pillar
- saltext.uci_ubus.modules.uci_local.config_diff(config, sections)[source]¶
Compare live UCI config against declared sections and return drift.
Read-only – no writes are issued. Returns a categorized dict with
changed,new,removed,reordered, andsummary.CLI Example:
salt device uci.config_diff network sections='{"lan": {"ipaddr": "10.0.0.2"}}'
- saltext.uci_ubus.modules.uci_local.set_(config, section, values)[source]¶
Set UCI option values on an existing section.
CLI Example:
salt device uci.set network lan '{"proto": "static"}'
- saltext.uci_ubus.modules.uci_local.add(config, type_, name=None, values=None)[source]¶
Add a new UCI section.
CLI Example:
salt device uci.add network interface name=wan2
- saltext.uci_ubus.modules.uci_local.delete(config, section, option=None)[source]¶
Delete a UCI section or option.
CLI Example:
salt device uci.delete network wan2 salt device uci.delete network lan dns
- saltext.uci_ubus.modules.uci_local.apply_(rollback=90)[source]¶
Commit and apply UCI changes with rollback safety.
CLI Example:
salt device uci.apply salt device uci.apply rollback=120
- saltext.uci_ubus.modules.uci_local.confirm()[source]¶
Confirm a pending apply, locking in the changes.
CLI Example:
salt device uci.confirm
- saltext.uci_ubus.modules.uci_local.rollback()[source]¶
Manually trigger a rollback of the last apply.
CLI Example:
salt device uci.rollback
- saltext.uci_ubus.modules.uci_local.revert(config)[source]¶
Discard staged (uncommitted) changes for a UCI package.
CLI Example:
salt device uci.revert network
- saltext.uci_ubus.modules.uci_local.commit(config)[source]¶
Commit staged changes to /etc/config without reloading daemons.
CLI Example:
salt device uci.commit network
- saltext.uci_ubus.modules.uci_local.state(config, section=None)[source]¶
Return runtime-merged UCI state (defaults + config + overrides).
CLI Example:
salt device uci.state network salt device uci.state network lan
- saltext.uci_ubus.modules.uci_local.system_board()[source]¶
Return system board information.
CLI Example:
salt device uci.system_board
- saltext.uci_ubus.modules.uci_local.system_info()[source]¶
Return system info (memory, uptime, load).
CLI Example:
salt device uci.system_info