configure after respawn
Change-Id: Idbc302119440081c48e7e7893220cad365efa4fc
This commit is contained in:
parent
40746a7174
commit
1f2cb05d67
|
@ -235,6 +235,8 @@ class RespawnHeat(FailurePolicy):
|
|||
device_id = device_dict['id']
|
||||
LOG.error(_('device %s dead'), device_id)
|
||||
attributes = device_dict['attributes']
|
||||
config = attributes.get('config')
|
||||
LOG.debug(_('device config %s dead'), config)
|
||||
failure_count = int(attributes.get('failure_count', '0')) + 1
|
||||
failure_count_str = str(failure_count)
|
||||
attributes['failure_count'] = failure_count_str
|
||||
|
@ -285,6 +287,8 @@ class RespawnHeat(FailurePolicy):
|
|||
plugin.rename_device_id(context, new_device_id, device_id)
|
||||
plugin.delete_device(context, dead_device_id)
|
||||
new_device_dict['id'] = device_id
|
||||
if config:
|
||||
new_device_dict.setdefault('attributes', {})['config'] = config
|
||||
plugin.config_device(context, new_device_dict)
|
||||
|
||||
plugin.add_device_to_monitor(new_device_dict)
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
# under the License.
|
||||
#
|
||||
# @author: Isaku Yamahata, Intel Corporation.
|
||||
import copy
|
||||
|
||||
import eventlet
|
||||
import inspect
|
||||
|
||||
|
@ -29,6 +29,7 @@ from sqlalchemy.orm import exc as orm_exc
|
|||
from tacker.api.v1 import attributes
|
||||
from tacker.common import driver_manager
|
||||
from tacker.common import topics
|
||||
from tacker import context as t_context
|
||||
from tacker.db.vm import proxy_db # noqa
|
||||
from tacker.db.vm import vm_db
|
||||
from tacker.extensions import servicevm
|
||||
|
@ -218,16 +219,16 @@ class ServiceVMPlugin(vm_db.ServiceResourcePluginDb, ServiceVMMgmtMixin):
|
|||
device_id = device_dict['id']
|
||||
dev_attrs = device_dict['attributes']
|
||||
if dev_attrs.get('monitoring_policy') == 'ping':
|
||||
device_dict_copy = copy.deepcopy(device_dict)
|
||||
|
||||
def down_cb(hosting_device_):
|
||||
if self._mark_device_dead(device_id):
|
||||
self._device_status.mark_dead(device_id)
|
||||
device_dict_ = self.get_device(
|
||||
t_context.get_admin_context(), device_id)
|
||||
failure_cls = monitor.FailurePolicy.get_policy(
|
||||
device_dict_copy['attributes'].get('failure_policy'),
|
||||
device_dict_copy)
|
||||
device_dict_['attributes'].get('failure_policy'),
|
||||
device_dict_)
|
||||
if failure_cls:
|
||||
failure_cls.on_failure(self, device_dict_copy)
|
||||
failure_cls.on_failure(self, device_dict_)
|
||||
|
||||
hosting_device = self._device_status.to_hosting_device(
|
||||
device_dict, down_cb)
|
||||
|
|
Loading…
Reference in New Issue