summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Kearney <josh.kearney@rackspace.com>2010-12-22 17:09:46 -0600
committerJosh Kearney <josh.kearney@rackspace.com>2010-12-22 17:09:46 -0600
commit749af384c0b7ca36bdd8c511f02b819a65e5dae0 (patch)
treeff777280d28cb59c303eeef895e4abbf5dc1c995
parent876e01a7efb669e76b011e04178b662677de3fc2 (diff)
Modified InstanceDiagnostics and truncate action
-rw-r--r--nova/api/openstack/__init__.py1
-rw-r--r--nova/api/openstack/servers.py4
-rw-r--r--nova/db/sqlalchemy/models.py10
-rw-r--r--nova/virt/xenapi_conn.py2
4 files changed, 8 insertions, 9 deletions
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py
index de95ee548..d8cd86116 100644
--- a/nova/api/openstack/__init__.py
+++ b/nova/api/openstack/__init__.py
@@ -176,6 +176,7 @@ class APIRouter(wsgi.Router):
logging.debug("Including admin operations in API.")
server_members['pause'] = 'POST'
server_members['unpause'] = 'POST'
+ server_members["diagnostics"] = "GET"
mapper.resource("server", "servers", controller=servers.Controller(),
collection={'detail': 'GET'},
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index 5c3322f7c..65e371a90 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -195,3 +195,7 @@ class Controller(wsgi.Controller):
logging.error("Compute.api::unpause %s", readable)
return faults.Fault(exc.HTTPUnprocessableEntity())
return exc.HTTPAccepted()
+
+ def diagnostics(self, req, id):
+ """Permit Admins to retrieve server diagnostics."""
+ return {}
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py
index eac6a304e..600943005 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -22,7 +22,7 @@ SQLAlchemy models for nova data.
import datetime
from sqlalchemy.orm import relationship, backref, object_mapper
-from sqlalchemy import Column, Integer, Float, String, schema
+from sqlalchemy import Column, Integer, String, schema
from sqlalchemy import ForeignKey, DateTime, Boolean, Text
from sqlalchemy.exc import IntegrityError
from sqlalchemy.ext.declarative import declarative_base
@@ -232,13 +232,7 @@ class InstanceDiagnostics(BASE, NovaBase):
id = Column(Integer, primary_key=True)
instance_id = Column(Integer, ForeignKey('instances.id'))
- memory_available = Column(Float)
- memory_free = Column(Float)
- cpu_load = Column(Float)
- disk_read = Column(Float)
- disk_write = Column(Float)
- net_tx = Column(Float)
- net_rx = Column(Float)
+ diagnostics = Column(Text)
class InstanceActions(BASE, NovaBase):
diff --git a/nova/virt/xenapi_conn.py b/nova/virt/xenapi_conn.py
index 146e2f153..7870a21ac 100644
--- a/nova/virt/xenapi_conn.py
+++ b/nova/virt/xenapi_conn.py
@@ -204,7 +204,7 @@ class XenAPISession(object):
status = self._session.xenapi.task.get_status(task)
action = dict(
instance_id=int(instance_id),
- action=name,
+ action=name[0:255], # Ensure action is never > 255
error=None)
if status == "pending":
return