diff options
| author | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-08-18 18:32:08 -0700 |
|---|---|---|
| committer | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-08-18 18:32:08 -0700 |
| commit | a74f2a3ca4e26c451a002f9a89f3ba4ac4a083c4 (patch) | |
| tree | a8a969846aac714b4199be1f5a3a6db7747eaf29 | |
| parent | 9ab034f8b0cb0946e1fdf44937cce58b53e7530b (diff) | |
| download | nova-a74f2a3ca4e26c451a002f9a89f3ba4ac4a083c4.tar.gz nova-a74f2a3ca4e26c451a002f9a89f3ba4ac4a083c4.tar.xz nova-a74f2a3ca4e26c451a002f9a89f3ba4ac4a083c4.zip | |
fix report state
| -rw-r--r-- | nova/compute/service.py | 26 | ||||
| -rw-r--r-- | nova/models.py | 2 | ||||
| -rw-r--r-- | nova/service.py | 13 |
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 |
