mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2025-12-10 07:44:39 +01:00
- Transaction APIs removed - Use different save dirs per proto - In process instance update notifier - Use event based refresh timer - Commit changes from main daemon for default proto - For add request commit changes without reload for default proto - extend bbf.config to monitor based on input - extend bbf.config to reload/commit based on input - extend bb.config to provide list of service changes based on proto
202 lines
9.8 KiB
Markdown
202 lines
9.8 KiB
Markdown
# API guide and usages
|
|
|
|
`libbbfdm-api` provides API to define datamodel objects as well as it also provides APIs to traverse the datamodel definitions.
|
|
|
|
Most used datamodel APIs described in [libbbfdm_api.h](../../libbbfdm-api/include/libbbfdm_api.h)
|
|
|
|
Following is the list of APIs used by bbfdmd for tree traversal:
|
|
|
|
### bbf_entry_method
|
|
|
|
used to read the data model based on the input given
|
|
|
|
```
|
|
int bbf_entry_method(struct dmctx *ctx, int cmd)
|
|
|
|
inputs
|
|
struct dmctx *ctx
|
|
pointer to struct dmctx strunture. The list of parameter will be updated in ctx.list_parameter. each node in the list is of type
|
|
struct dm_parameter which contains char *name, char *data, char *type and char *additional_data;
|
|
the content of fields are updated based on the cmd and are as follows-
|
|
cmd | Name | Type | Data | Addtional Data |
|
|
|------------- |------------- |------------- |------------ |--------------------- |
|
|
|BBF_GET_VALUE |Parameter |$ref(type) |Value | NA |
|
|
|BBF_GET_NAME |Parameter |$ref(type) |writable(0/1) | NA |
|
|
|BBF_SET_VALUE |path | NA | NA | NA |
|
|
|BBF_ADD_OBJECT |path | NA | NA | NA |
|
|
|BBF_DEL_OBJECT |path | NA | NA | NA |
|
|
|BBF_OPERATE |path | NA | NA | NA |
|
|
|BBF_SCHEMA |paramter ||$ref(type) |writable(0/1) |unique keys |
|
|
|BBF_INSTANCES |parameter | NA |NA |NA |
|
|
|BBF_EVENT |path | NA | NA | NA |
|
|
|
|
int cmd
|
|
command to API to tell how the data model is to be read, possible values are
|
|
BBF_GET_VALUE - Read the values of the parameters from data model
|
|
BBF_GET_NAME - Read the names of the parameters from data model
|
|
BBF_SET_VALUE - Set value of specified parameters in the data model
|
|
BBF_ADD_OBJECT - Add object in a multi instance parameter in the data model
|
|
BBF_DEL_OBJECT - Delete object from a multi instance parameter in the data model
|
|
BBF_OPERATE - execute the specified command
|
|
BBF_SCHEMA - Read all the parameter type parameter from data model.
|
|
BBF_INSTANCES - Read all the instance of multi instance parameter from data model.
|
|
BBF_EVENT - execute the specified event
|
|
|
|
return
|
|
int fault
|
|
contains the fault code if API is not able to read the data model. returns 0 on success.
|
|
```
|
|
|
|
### bbf_ctx_init
|
|
|
|
This method is used to initialize the dmctx structure object to read the data model.
|
|
|
|
```
|
|
void bbf_ctx_init(struct dmctx *ctx, DMOBJ *tEntryObj);
|
|
inputs
|
|
struct dmctx *ctx
|
|
pointer to struct dmctx strunture to be initialized.
|
|
|
|
return
|
|
None
|
|
```
|
|
|
|
### bbf_ctx_init_sub
|
|
|
|
This method is an extension of bbf_ctx_init method. only difference it only intializes dmctx structure object and does not intializes other resources used in reading data model
|
|
|
|
```
|
|
void bbf_ctx_init_sub(struct dmctx *ctx, DMOBJ *tEntryObj)
|
|
inputs
|
|
struct dmctx *ctx
|
|
pointer to struct dmctx strunture to be initialized.
|
|
|
|
return
|
|
None
|
|
```
|
|
|
|
|
|
### bbf_ctx_clean
|
|
|
|
This method is used to free the dmctx structure object and other resources post reading the data model.
|
|
|
|
```
|
|
void bbf_ctx_clean(struct dmctx *ctx)
|
|
|
|
input
|
|
struct dmctx *ctx
|
|
pointer to struct dmctx strunture to be freed.
|
|
|
|
return
|
|
None
|
|
```
|
|
|
|
### bbf_ctx_clean_sub
|
|
|
|
This method is an extension of bbf_ctx_clean method. only difference is it frees the dmctx structure and does not free other resources used in reading data model
|
|
|
|
```
|
|
void bbf_ctx_clean_sub(struct dmctx *ctx)
|
|
|
|
input
|
|
struct dmctx *ctx
|
|
pointer to struct dmctx strunture to be freed.
|
|
|
|
return
|
|
None
|
|
```
|
|
|
|
### bbf_entry_restart_services
|
|
|
|
This method is used to restart the state of data model whenever its state is changed
|
|
|
|
```
|
|
void bbf_entry_restart_services(struct blob_buf *bb, bool restart_services)
|
|
|
|
input
|
|
struct blob_buf *bb
|
|
pointer to the struct blob_buf object. contains all the packages updated.
|
|
|
|
bool restart_services
|
|
if true packages will be updated through ubus call bbf.config internally.
|
|
if false packages will be updated through ubus call bbf.config externally.
|
|
|
|
return
|
|
None
|
|
```
|
|
### bbf_entry_revert_changes
|
|
|
|
This method is used to revert the changes whenever its state is changed
|
|
|
|
```
|
|
void bbf_entry_revert_changes(struct blob_buf *bb, bool revert_changes)
|
|
|
|
input
|
|
struct blob_buf *bb
|
|
pointer to the struct blob_buf object. contains all the packages updated.
|
|
|
|
bool revert_changes
|
|
if true changes will be reverted through ubus call bbf.config internally.
|
|
if false changes will be reverted through ubus call bbf.config externally.
|
|
|
|
return
|
|
None
|
|
```
|
|
|
|
# Deprecated/removed APIs and user defined datatypes
|
|
|
|
To support new feature sometimes old APIs provided by libbbfdm-api library needs to be updated, this guide provides a better context to the migration.
|
|
|
|
Following table has APIs/datatypes which are now deprecated:
|
|
|
|
| Type | Deprecated API | New API | Comment |
|
|
| -------- | ------------------------- | ---------------------------- | ------- |
|
|
| function | `bbf_get_reference_param` | `bbfdm_get_references` | Replaced with a generic API that is accessible for both internal (bbfdm core) and external (microservices) data models |
|
|
| function | `bbf_get_reference_args` | `bbfdm_get_reference_linker` | Replaced with a generic API that is accessible for both internal (bbfdm core) and external (microservices) data models |
|
|
| stucture | `dmmap_dup` | `dm_data` | Replaced to support the extension for Obj/Param/Operate using JSON plugin |
|
|
|
|
|
|
Following table has list of APIs/datatypes which no longer exists in libbbfdm-api, along with new revised APIs replacement:
|
|
|
|
| Type | Removed API | New API | Comment |
|
|
| -------- | ---------------------------------- | ------------------------------------ | -------------------------------------- |
|
|
| function | `dm_validate_string` | `bbfdm_validate_string` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_string` | `bbfdm_validate_string` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_boolean` | `bbfdm_validate_boolean` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_unsignedInt` | `bbfdm_validate_unsignedInt` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_int` | `bbfdm_validate_int` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_unsignedLong` | `bbfdm_validate_unsignedLong` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_long` | `bbfdm_validate_long` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_dateTime` | `bbfdm_validate_dateTime` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_hexBinary` | `bbfdm_validate_hexBinary` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_string_list` | `bbfdm_validate_string_list` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_unsignedInt_list` | `bbfdm_validate_unsignedInt_list` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_int_list` | `bbfdm_validate_int_list` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_unsignedLong_list` | `bbfdm_validate_unsignedLong_list` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_long_list` | `bbfdm_validate_long_list` | To support fault_msg in case of errors |
|
|
| function | `bbf_validate_hexBinary_list` | `bbfdm_validate_hexBinary_list` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_boolean` | `bbfdm_validate_boolean` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_unsignedInt` | `bbfdm_validate_unsignedInt` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_int` | `bbfdm_validate_int` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_unsignedLong` | `bbfdm_validate_unsignedLong` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_long` | `bbfdm_validate_long` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_dateTime` | `bbfdm_validate_dateTime` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_hexBinary` | `bbfdm_validate_hexBinary` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_string_list` | `bbfdm_validate_string_list` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_unsignedInt_list` | `bbfdm_validate_unsignedInt_list` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_int_list` | `bbfdm_validate_int_list` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_unsignedLong_list` | `bbfdm_validate_unsignedLong_list` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_long_list` | `bbfdm_validate_long_list` | To support fault_msg in case of errors |
|
|
| function | `dm_validate_hexBinary_list` | `bbfdm_validate_hexBinary_list` | To support fault_msg in case of errors |
|
|
| function | `dm_entry_validate_allowed_objects`| `dm_validate_allowed_objects` | Replaced with a generic API that is accessible for both internal (bbfdm core) and external (microservices) data models |
|
|
| function | `dm_entry_validate_external_linker_allowed_objects` | `dm_validate_allowed_objects` | Replaced with a generic API that is accessible for both internal (bbfdm core) and external (microservices) data models |
|
|
| function | `add_list_parameter` | | Removed, no more required |
|
|
| function | `free_all_list_parameter` | | Removed, no more required |
|
|
| function | `adm_entry_get_linker_param` | | Removed, no more required |
|
|
| function | `adm_entry_get_linker_value` | | Removed, no more required |
|
|
| enum | `CMD_SUCCESS` | | Removed, no more required |
|
|
| enum | `CMD_INVALID_ARGUMENTS` | | Removed, no more required |
|
|
| enum | `CMD_FAIL` | | Removed, no more required |
|
|
| enum | `CMD_NOT_FOUND` | | Removed, no more required |
|
|
| enum | `__STATUS_MAX` | | Removed, no more required |
|
|
|