summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTodd Willey <todd@ansolabs.com>2011-01-10 10:57:13 -0500
committerTodd Willey <todd@ansolabs.com>2011-01-10 10:57:13 -0500
commitec8e7773b79ed52aa2950db185ead881c77632f7 (patch)
tree3cdc42181c8680a1876ae3113351911c83dbc7e3
parentd9d334bb5520bbbc4af6760cabb9bfd022ec13ef (diff)
Fix describe_availablity_zones versobse.
-rw-r--r--nova/api/ec2/cloud.py3
-rw-r--r--nova/db/api.py5
-rw-r--r--nova/db/sqlalchemy/api.py12
3 files changed, 19 insertions, 1 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 5360f2de7..359498d11 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -44,6 +44,7 @@ from nova.compute import instance_types
FLAGS = flags.FLAGS
+flags.DECLARE('service_down_time', 'nova.scheduler.driver')
LOG = logging.getLogger("nova.api.cloud")
@@ -200,7 +201,7 @@ class CloudController(object):
'zoneState': 'available'}]}
services = db.service_get_all(context)
- now = db.get_time()
+ now = datetime.datetime.utcnow()
hosts = []
for host in [service['host'] for service in services]:
if not host in hosts:
diff --git a/nova/db/api.py b/nova/db/api.py
index 8b0242c9a..a4d26ec85 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -81,6 +81,11 @@ def service_get(context, service_id):
return IMPL.service_get(context, service_id)
+def service_get_all(context):
+ """Get a list of all services on any machine on any topic of any type"""
+ return IMPL.service_get_all(context)
+
+
def service_get_all_by_topic(context, topic):
"""Get all compute services for a given topic."""
return IMPL.service_get_all_by_topic(context, topic)
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index eb87355b6..e475b4d8c 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -135,6 +135,18 @@ def service_get(context, service_id, session=None):
@require_admin_context
+def service_get_all(context, session=None):
+ if not session:
+ session = get_session()
+
+ result = session.query(models.Service).\
+ filter_by(deleted=can_read_deleted(context)).\
+ all()
+
+ return result
+
+
+@require_admin_context
def service_get_all_by_topic(context, topic):
session = get_session()
return session.query(models.Service).\