[Asterisk-code-review] app_queue: Don't reset queue stats on reload (asterisk[16])
George Joseph
asteriskteam at digium.com
Mon Aug 30 07:26:58 CDT 2021
George Joseph has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/16370 )
Change subject: app_queue: Don't reset queue stats on reload
......................................................................
app_queue: Don't reset queue stats on reload
Prevents reloads of app_queue from also resetting
queue statistics.
Also preserves individual queue agent statistics
if we're just reloading members.
ASTERISK-28701
Change-Id: Ib5d4cdec175e44de38ef0f6ede4a7701751766f1
---
M apps/app_queue.c
A doc/CHANGES-staging/app_queue_stats.txt
2 files changed, 14 insertions(+), 3 deletions(-)
Approvals:
Kevin Harwell: Looks good to me, approved
George Joseph: Looks good to me, but someone else must approve; Approved for Submit
diff --git a/apps/app_queue.c b/apps/app_queue.c
index f5550bb..4d908a5 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -9335,9 +9335,13 @@
if ((newm = create_queue_member(interface, membername, penalty, cur ? cur->paused : 0, state_interface, ringinuse, wrapuptime))) {
newm->wrapuptime = wrapuptime;
if (cur) {
- /* Round Robin Queue Position must be copied if this is replacing an existing member */
ao2_lock(q->members);
+ /* Round Robin Queue Position must be copied if this is replacing an existing member */
newm->queuepos = cur->queuepos;
+ /* Don't reset agent stats either */
+ newm->calls = cur->calls;
+ newm->lastcall = cur->lastcall;
+
ao2_link(q->members, newm);
ao2_unlink(q->members, cur);
ao2_unlock(q->members);
@@ -10402,7 +10406,7 @@
}
if (!header_found) {
- ast_set_flag(&mask, AST_FLAGS_ALL);
+ ast_set_flag(&mask, AST_FLAGS_ALL & ~QUEUE_RESET_STATS);
}
if (!reload_handler(1, &mask, queuename)) {
@@ -11141,7 +11145,7 @@
} else if (!strcasecmp(a->argv[2], "parameters")) {
ast_set_flag(&mask, QUEUE_RELOAD_PARAMETERS);
} else if (!strcasecmp(a->argv[2], "all")) {
- ast_set_flag(&mask, AST_FLAGS_ALL);
+ ast_set_flag(&mask, AST_FLAGS_ALL & ~QUEUE_RESET_STATS);
}
if (a->argc == 3) {
diff --git a/doc/CHANGES-staging/app_queue_stats.txt b/doc/CHANGES-staging/app_queue_stats.txt
new file mode 100644
index 0000000..36c0c3d
--- /dev/null
+++ b/doc/CHANGES-staging/app_queue_stats.txt
@@ -0,0 +1,7 @@
+Subject: app_queue
+
+Reload behavior in app_queue has been changed so
+queue and agent stats are not reset during full
+app_queue module reloads. The queue reset stats
+CLI command may still be used to reset stats while
+Asterisk is running.
--
To view, visit https://gerrit.asterisk.org/c/asterisk/+/16370
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 16
Gerrit-Change-Id: Ib5d4cdec175e44de38ef0f6ede4a7701751766f1
Gerrit-Change-Number: 16370
Gerrit-PatchSet: 2
Gerrit-Owner: N A <mail at interlinked.x10host.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Kevin Harwell <kharwell at digium.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20210830/ecaa7bda/attachment.html>
More information about the asterisk-code-review
mailing list