daexim – datastore export import
OpenDaylight Wiki page on daexim
Data Export/Import (daexim) is a project introduced in the OpenDaylight Carbon release. However, daexim has been back ported to FRINX distributions and is available from Beryllium 1.4.6 and Boron 2.3.0 and subsequent releases.
The purpose of the project is to export/import data from files. Here are the key functions of the project:
- Export of CONF and OPER DS
- Export files in JSON format
- Component is controlled via RPC API see here
- Data can be excluded from export based on yang module and datastore type
- Datastore can be cleared before data is imported
- Export can be scheduled
Export data from datastore
This is a sequence diagram of data export functionality:
RPC result is returned immediately after a task for export is scheduled. State of export can be shown via the RPC API.
When RPC schedule-export is invoked, the scheduled export is stored to OPER DS. Therefore, the scheduled export is replicated on other nodes in a cluster deployment.
DataExportImportAppProvider, on each cluster node, receives a modification event about the scheduled export and schedules ExportTask which executes datastore export. Therefore, RPC for schedule export can be invoked on any cluster node and datastore is exported on each cluster node.
Import data to datastore
Data import is done by calling RPC immediate-import. Data is imported from JSON files to CONF and OPER datastore in one transaction. In a cluster deployment, data import is executed only on a cluster node where RPC is invoked and data is replicated to other nodes within the transaction.