Skip to content

Commit 2cc2acc

Browse files
committed
server CHANGE compile options for sysrepo timeout and wait
Refs sysrepo/sysrepo#1796
1 parent bac49b1 commit 2cc2acc

File tree

4 files changed

+19
-9
lines changed

4 files changed

+19
-9
lines changed

server/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,13 @@ set(DEFAULT_HOSTKEY "genkey" CACHE STRING "Name of the hostkey from the keystore
4444
set(THREAD_COUNT 5 CACHE STRING "Number of threads accepting new sessions and handling requests")
4545
set(MODULES_OWNER "$ENV{USER}" CACHE STRING "User that will become the owner of server modules")
4646
set(NACM_RECOVERY_UID 0 CACHE STRING "NACM recovery session UID that has unrestricted access")
47-
set(EDIT_CONFIG_TIMEOUT 0 CACHE STRING "Timeout in seconds of the <edit-config> RPC, 0 is the default sysrepo timeout")
47+
set(DATA_CHANGE_TIMEOUT 0 CACHE STRING "Timeout in seconds of any (sysrepo) data changes, 0 is the default sysrepo timeout")
48+
option(DATA_CHANGE_WAIT "Whether to wait for all events on any (sysrepo) data changes" OFF)
49+
if(DATA_CHANGE_WAIT)
50+
set(DATA_CHANGE_WAIT_BOOL 1)
51+
else()
52+
set(DATA_CHANGE_WAIT_BOOL 0)
53+
endif()
4854

4955
# set prefix for the PID file
5056
if(NOT PIDFILE_PREFIX)

server/config.h.in

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,13 @@
4040
*/
4141
#define NP2SRV_NACM_RECOVERY_UID @NACM_RECOVERY_UID@
4242

43-
/** @brief edit-config RPC timeout, 0 is the sysrepo default
43+
/** @brief timeout for sysrepo operations modifying data, 0 is the sysrepo default
4444
*/
45-
#define NP2SRV_EDIT_CONFIG_TIMEOUT @EDIT_CONFIG_TIMEOUT@
45+
#define NP2SRV_DATA_CHANGE_TIMEOUT @DATA_CHANGE_TIMEOUT@
46+
47+
/** @brief Whether to wait on sysrepo data change calls for all the events to be processed
48+
*/
49+
#define NP2SRV_DATA_CHANGE_WAIT @DATA_CHANGE_WAIT_BOOL@
4650

4751
/** @brief Starting allocated length for a message
4852
*/

server/netconf.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ np2srv_rpc_editconfig_cb(sr_session_ctx_t *session, const char *UNUSED(op_path),
244244
}
245245

246246
if (!strcmp(testop, "test-then-set")) {
247-
rc = sr_apply_changes(session, NP2SRV_EDIT_CONFIG_TIMEOUT, 0);
247+
rc = sr_apply_changes(session, NP2SRV_DATA_CHANGE_TIMEOUT, NP2SRV_DATA_CHANGE_WAIT);
248248
} else {
249249
assert(!strcmp(testop, "test-only"));
250250
rc = sr_validate(session, 0);
@@ -370,7 +370,7 @@ np2srv_rpc_copyconfig_cb(sr_session_ctx_t *session, const char *UNUSED(op_path),
370370
#endif
371371
{
372372
/* config is spent */
373-
rc = sr_replace_config(session, NULL, config, 0, 0);
373+
rc = sr_replace_config(session, NULL, config, NP2SRV_DATA_CHANGE_TIMEOUT, NP2SRV_DATA_CHANGE_WAIT);
374374
config = NULL;
375375
if (rc != SR_ERR_OK) {
376376
goto cleanup;
@@ -433,7 +433,7 @@ np2srv_rpc_deleteconfig_cb(sr_session_ctx_t *session, const char *UNUSED(op_path
433433
} else
434434
#endif
435435
{
436-
rc = sr_replace_config(session, NULL, NULL, 0, 0);
436+
rc = sr_replace_config(session, NULL, NULL, NP2SRV_DATA_CHANGE_TIMEOUT, NP2SRV_DATA_CHANGE_WAIT);
437437
if (rc != SR_ERR_OK) {
438438
goto cleanup;
439439
}
@@ -535,7 +535,7 @@ np2srv_rpc_commit_cb(sr_session_ctx_t *session, const char *UNUSED(op_path), con
535535
sr_session_switch_ds(session, SR_DS_RUNNING);
536536

537537
/* sysrepo API */
538-
rc = sr_copy_config(session, NULL, SR_DS_CANDIDATE, 0, 0);
538+
rc = sr_copy_config(session, NULL, SR_DS_CANDIDATE, NP2SRV_DATA_CHANGE_TIMEOUT, NP2SRV_DATA_CHANGE_WAIT);
539539
if (rc != SR_ERR_OK) {
540540
goto cleanup;
541541
}
@@ -556,7 +556,7 @@ np2srv_rpc_discard_cb(sr_session_ctx_t *session, const char *UNUSED(op_path), co
556556
sr_session_switch_ds(session, SR_DS_CANDIDATE);
557557

558558
/* sysrepo API */
559-
rc = sr_copy_config(session, NULL, SR_DS_RUNNING, 0, 0);
559+
rc = sr_copy_config(session, NULL, SR_DS_RUNNING, NP2SRV_DATA_CHANGE_TIMEOUT, NP2SRV_DATA_CHANGE_WAIT);
560560
if (rc != SR_ERR_OK) {
561561
goto cleanup;
562562
}

server/netconf_nmda.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ np2srv_rpc_editdata_cb(sr_session_ctx_t *session, const char *UNUSED(op_path), c
310310
goto cleanup;
311311
}
312312

313-
rc = sr_apply_changes(session, 0, 0);
313+
rc = sr_apply_changes(session, NP2SRV_DATA_CHANGE_TIMEOUT, NP2SRV_DATA_CHANGE_WAIT);
314314
if (rc != SR_ERR_OK) {
315315
sr_get_error(session, &err_info);
316316
sr_set_error(session, err_info->err[0].xpath, err_info->err[0].message);

0 commit comments

Comments
 (0)