summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-08-18 18:32:08 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-08-18 18:32:08 -0700
commita74f2a3ca4e26c451a002f9a89f3ba4ac4a083c4 (patch)
treea8a969846aac714b4199be1f5a3a6db7747eaf29
parent9ab034f8b0cb0946e1fdf44937cce58b53e7530b (diff)
downloadnova-a74f2a3ca4e26c451a002f9a89f3ba4ac4a083c4.tar.gz
nova-a74f2a3ca4e26c451a002f9a89f3ba4ac4a083c4.tar.xz
nova-a74f2a3ca4e26c451a002f9a89f3ba4ac4a083c4.zip
fix report state
-rw-r--r--nova/compute/service.py26
-rw-r--r--nova/models.py2
-rw-r--r--nova/service.py13
3 files changed, 8 insertions, 33 deletions
diff --git a/nova/compute/service.py b/nova/compute/service.py
index 708134072..3909c8245 100644
--- a/nova/compute/service.py
+++ b/nova/compute/service.py
@@ -82,22 +82,6 @@ class ComputeService(service.Service):
return defer.succeed(len(self._instances))
@defer.inlineCallbacks
- def report_state(self, nodename, daemon):
- # TODO(termie): make this pattern be more elegant. -todd
- try:
- record = model.Daemon(nodename, daemon)
- record.heartbeat()
- if getattr(self, "model_disconnected", False):
- self.model_disconnected = False
- logging.error("Recovered model server connection!")
-
- except model.ConnectionError, ex:
- if not getattr(self, "model_disconnected", False):
- self.model_disconnected = True
- logging.exception("model server went away")
- yield
-
- @defer.inlineCallbacks
@exception.wrap_exception
def run_instance(self, instance_id, **_kwargs):
""" launch a new instance with specified options """
@@ -214,13 +198,3 @@ class ComputeService(service.Service):
"sudo virsh detach-disk %s %s " % (instance_id, target))
volume.finish_detach()
defer.returnValue(True)
-
-
-class Group(object):
- def __init__(self, group_id):
- self.group_id = group_id
-
-
-class ProductCode(object):
- def __init__(self, product_code):
- self.product_code = product_code
diff --git a/nova/models.py b/nova/models.py
index 70010eab1..d0b66d9b7 100644
--- a/nova/models.py
+++ b/nova/models.py
@@ -143,7 +143,7 @@ class Daemon(Base, NovaBase):
id = Column(Integer, primary_key=True)
node_name = Column(String(255)) #, ForeignKey('physical_node.id'))
binary = Column(String(255))
- report_count = Column(Integer)
+ report_count = Column(Integer, nullable=False, default=0)
@classmethod
def find_by_args(cls, node_name, binary):
diff --git a/nova/service.py b/nova/service.py
index 4c35bdefa..29f47e833 100644
--- a/nova/service.py
+++ b/nova/service.py
@@ -93,12 +93,13 @@ class Service(object, service.Service):
try:
try:
#FIXME abstract this
- daemon = models.find_by_args(node_name, binary)
- except exception.NotFound():
+ daemon = models.Daemon.find_by_args(node_name, binary)
+ except exception.NotFound:
daemon = models.Daemon(node_name=node_name,
- binary=binary)
- self._update_daemon()
- self.commit()
+ binary=binary,
+ report_count=0)
+ self._update_daemon(daemon)
+ daemon.save()
if getattr(self, "model_disconnected", False):
self.model_disconnected = False
logging.error("Recovered model server connection!")
@@ -109,6 +110,6 @@ class Service(object, service.Service):
logging.exception("model server went away")
yield
- def _update_daemon(daemon):
+ def _update_daemon(self, daemon):
"""Set any extra daemon data here"""
daemon.report_count = daemon.report_count + 1