From cdb1975530e0aa078d2b09bf27ae415c20192bdd Mon Sep 17 00:00:00 2001 From: Hidekazu Nakamura Date: Thu, 10 May 2018 14:21:23 +0900 Subject: [PATCH] Fix to reuse RabbitMQ connection Currently RabbitMQ connection gradually increases by CONTINUOUS audit with auto-trigger option. This patch fixes watcher to reuse RabbitMQ connection. Change-Id: I818fc1ce982f67bac08c815821f1ad67f8f3c893 --- watcher/api/controllers/v1/action_plan.py | 11 +++++------ watcher/api/controllers/v1/audit.py | 4 ++-- watcher/decision_engine/audit/base.py | 6 +++--- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/watcher/api/controllers/v1/action_plan.py b/watcher/api/controllers/v1/action_plan.py index d5d08c447..1f9bdc2db 100644 --- a/watcher/api/controllers/v1/action_plan.py +++ b/watcher/api/controllers/v1/action_plan.py @@ -320,6 +320,7 @@ class ActionPlansController(rest.RestController): def __init__(self): super(ActionPlansController, self).__init__() + self.applier_client = rpcapi.ApplierAPI() from_actionsPlans = False """A flag to indicate if the requests to this controller are coming @@ -553,9 +554,8 @@ class ActionPlansController(rest.RestController): a.save() if launch_action_plan: - applier_client = rpcapi.ApplierAPI() - applier_client.launch_action_plan(pecan.request.context, - action_plan.uuid) + self.applier_client.launch_action_plan(pecan.request.context, + action_plan.uuid) action_plan_to_update = objects.ActionPlan.get_by_uuid( pecan.request.context, @@ -584,9 +584,8 @@ class ActionPlansController(rest.RestController): action_plan_to_start['state'] = objects.action_plan.State.PENDING action_plan_to_start.save() - applier_client = rpcapi.ApplierAPI() - applier_client.launch_action_plan(pecan.request.context, - action_plan_uuid) + self.applier_client.launch_action_plan(pecan.request.context, + action_plan_uuid) action_plan_to_start = objects.ActionPlan.get_by_uuid( pecan.request.context, action_plan_uuid) diff --git a/watcher/api/controllers/v1/audit.py b/watcher/api/controllers/v1/audit.py index 41c5ad40c..95818a792 100644 --- a/watcher/api/controllers/v1/audit.py +++ b/watcher/api/controllers/v1/audit.py @@ -403,6 +403,7 @@ class AuditsController(rest.RestController): """REST controller for Audits.""" def __init__(self): super(AuditsController, self).__init__() + self.dc_client = rpcapi.DecisionEngineAPI() from_audits = False """A flag to indicate if the requests to this controller are coming @@ -575,8 +576,7 @@ class AuditsController(rest.RestController): # trigger decision-engine to run the audit if new_audit.audit_type == objects.audit.AuditType.ONESHOT.value: - dc_client = rpcapi.DecisionEngineAPI() - dc_client.trigger_audit(context, new_audit.uuid) + self.dc_client.trigger_audit(context, new_audit.uuid) return Audit.convert_with_links(new_audit) diff --git a/watcher/decision_engine/audit/base.py b/watcher/decision_engine/audit/base.py index 9b5ad3c43..a2cfd3603 100644 --- a/watcher/decision_engine/audit/base.py +++ b/watcher/decision_engine/audit/base.py @@ -63,6 +63,7 @@ class AuditHandler(BaseAuditHandler): self._strategy_context = default_context.DefaultStrategyContext() self._planner_manager = planner_manager.PlannerManager() self._planner = None + self.applier_client = rpcapi.ApplierAPI() @property def planner(self): @@ -125,9 +126,8 @@ class AuditHandler(BaseAuditHandler): def post_execute(self, audit, solution, request_context): action_plan = self.do_schedule(request_context, audit, solution) if audit.auto_trigger: - applier_client = rpcapi.ApplierAPI() - applier_client.launch_action_plan(request_context, - action_plan.uuid) + self.applier_client.launch_action_plan(request_context, + action_plan.uuid) def execute(self, audit, request_context): try: