summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-01-24 22:48:00 +0000
committerGerrit Code Review <review@openstack.org>2012-01-24 22:48:00 +0000
commit57cf8312b88852f2e1de883c4bda28f873fcde47 (patch)
treed1ba6c28a20c9be9ae9d83bddf80b87def6360cd
parent06ba4a2c2c37b464fb14a963dd97364cf71f1456 (diff)
parent4110addd4d450954aa32aa9045b99de8205543d0 (diff)
Merge "usage: Fix time filtering"
-rw-r--r--nova/db/sqlalchemy/api.py32
1 files changed, 16 insertions, 16 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 258d6e1f0..43b386945 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1581,36 +1581,36 @@ def instance_get_all_by_filters(context, filters):
@require_context
def instance_get_active_by_window(context, begin, end=None, project_id=None):
- """Return instances that were continuously active over window."""
+ """Return instances that were active during window."""
session = get_session()
- query = session.query(models.Instance).\
- filter(models.Instance.launched_at < begin)
+ query = session.query(models.Instance)
+
+ query = query.filter(or_(models.Instance.terminated_at == None,
+ models.Instance.terminated_at > begin))
if end:
- query = query.filter(or_(models.Instance.terminated_at == None,
- models.Instance.terminated_at > end))
- else:
- query = query.filter(models.Instance.terminated_at == None)
+ query = query.filter(models.Instance.launched_at < end)
if project_id:
query = query.filter_by(project_id=project_id)
+
return query.all()
@require_admin_context
def instance_get_active_by_window_joined(context, begin, end=None,
project_id=None):
- """Return instances and joins that were continuously active over window."""
+ """Return instances and joins that were active during window."""
session = get_session()
- query = session.query(models.Instance).\
- options(joinedload('security_groups')).\
- options(joinedload('instance_type')).\
- filter(models.Instance.launched_at < begin)
+ query = session.query(models.Instance)
+
+ query = query.options(joinedload('security_groups')).\
+ options(joinedload('instance_type')).\
+ filter(or_(models.Instance.terminated_at == None,
+ models.Instance.terminated_at > begin))
if end:
- query = query.filter(or_(models.Instance.terminated_at == None,
- models.Instance.terminated_at > end))
- else:
- query = query.filter(models.Instance.terminated_at == None)
+ query = query.filter(models.Instance.launched_at < end)
if project_id:
query = query.filter_by(project_id=project_id)
+
return query.all()