You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ch...@apache.org on 2016/03/29 19:39:03 UTC

qpid-dispatch git commit: Tidy up policyRuleset redefinition. Current connections stay alive across ruleset updates. Statistics live forever.

Repository: qpid-dispatch
Updated Branches:
  refs/heads/crolke-DISPATCH-188-1 e349218c9 -> 3f42fa4fb


Tidy up policyRuleset redefinition.
Current connections stay alive across ruleset updates.
Statistics live forever.


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/3f42fa4f
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/3f42fa4f
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/3f42fa4f

Branch: refs/heads/crolke-DISPATCH-188-1
Commit: 3f42fa4fb5280e41f04c53b1e644695571b50d85
Parents: e349218
Author: Chuck Rolke <cr...@redhat.com>
Authored: Tue Mar 29 13:36:49 2016 -0400
Committer: Chuck Rolke <cr...@redhat.com>
Committed: Tue Mar 29 13:36:49 2016 -0400

----------------------------------------------------------------------
 .../qpid_dispatch_internal/policy/policy_local.py  | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3f42fa4f/python/qpid_dispatch_internal/policy/policy_local.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/policy/policy_local.py b/python/qpid_dispatch_internal/policy/policy_local.py
index ea965c7..5d94e21 100644
--- a/python/qpid_dispatch_internal/policy/policy_local.py
+++ b/python/qpid_dispatch_internal/policy/policy_local.py
@@ -389,7 +389,6 @@ class AppStats(object):
     def __init__(self, id, manager, ruleset):
         self.my_id = id
         self._manager = manager
-        self._ruleset = ruleset
         self.conn_mgr = PolicyAppConnectionMgr(
                 ruleset[PolicyKeys.KW_MAXCONN],
                 ruleset[PolicyKeys.KW_MAXCONNPERHOST],
@@ -397,6 +396,12 @@ class AppStats(object):
         self._cstats = self._manager.get_agent().qd.qd_dispatch_policy_c_counts_alloc()
         self._manager.get_agent().add_implementation(self, "policyStats")
 
+    def update_ruleset(self, ruleset):
+        self.conn_mgr.update(
+            ruleset[PolicyKeys.KW_MAXCONN],
+            ruleset[PolicyKeys.KW_MAXCONNPERHOST],
+            ruleset[PolicyKeys.KW_MAXCONNPERUSER])
+
     def refresh_entity(self, attributes):
         """Refresh management attributes"""
         entitymap = {}
@@ -493,11 +498,15 @@ class PolicyLocal(object):
             raise PolicyError( "Policy '%s' is invalid: %s" % (name, diag[0]) )
         if len(warnings) > 0:
             for warning in warnings:
-                self._manager.log_debug(warning)
+                self._manager.log_warning(warning)
+        if name not in self.rulesetdb:
+            self.statsdb[name] = AppStats(name, self._manager, candidate)
+            self._manager.log_info("Created policy rules for application %s" % name)
+        else:
+            self.statsdb[name].update_ruleset(candidate)
+            self._manager.log_info("Updated policy rules for application %s" % name)
         self.rulesetdb[name] = {}
         self.rulesetdb[name].update(candidate)
-        self.statsdb[name] = AppStats(name, self._manager, candidate)
-        self._manager.log_info("Created policy rules for application %s" % name)
 
     def policy_read(self, name):
         """


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org