From b40d770864e0d7ee8923f77a82c2145d84a07c42 Mon Sep 17 00:00:00 2001 From: Ian Main Date: Mon, 18 Jun 2012 09:47:34 -0700 Subject: [PATCH] Add more per-user stack support (2). This finishes up the API calls with per-user returns of stacks and events. Change-Id: Iab6118f35978a6f62ad4d3454842cb7f3d686bc8 Signed-off-by: Ian Main --- heat/db/api.py | 4 ++++ heat/db/sqlalchemy/api.py | 11 +++++++++++ heat/engine/manager.py | 4 ++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/heat/db/api.py b/heat/db/api.py index d784e8c8..66d611b8 100644 --- a/heat/db/api.py +++ b/heat/db/api.py @@ -140,6 +140,10 @@ def event_get_all(context): return IMPL.event_get_all(context) +def event_get_all_by_user(context): + return IMPL.event_get_all_by_user(context) + + def event_get_all_by_stack(context, stack_id): return IMPL.event_get_all_by_stack(context, stack_id) diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py index f31b08d4..5ed3a299 100644 --- a/heat/db/sqlalchemy/api.py +++ b/heat/db/sqlalchemy/api.py @@ -226,6 +226,17 @@ def event_get_all(context): return results +def event_get_all_by_user(context): + stacks = model_query(context, models.Stack).\ + filter_by(username=context.username).all() + results = [] + for stack in stacks: + results.extend(model_query(context, models.Event).\ + filter_by(stack_id=stack.id).all()) + + return results + + def event_get_all_by_stack(context, stack_id): results = model_query(context, models.Event).\ filter_by(stack_id=stack_id).all() diff --git a/heat/engine/manager.py b/heat/engine/manager.py index fb5d284a..05bba3f2 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -299,7 +299,7 @@ class EngineManager(manager.Manager): arg3 -> Dict of http request parameters passed in from API side. """ self._authenticate(context) - s = db_api.stack_get_by_name(None, stack_name) + s = db_api.stack_get_by_name(context, stack_name) if s: return s.raw_template.template return None @@ -357,7 +357,7 @@ class EngineManager(manager.Manager): events = db_api.event_get_all_by_stack(context, st.id) else: - events = db_api.event_get_all(context) + events = db_api.event_get_all_by_user(context) return {'events': [self.parse_event(e) for e in events]} -- 2.45.2