X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fjuju_observer.py;h=10efa98b7f74e2169960d43cd91cf8ec222b383a;hp=ac40f34dcb122b43ed0de5580fdd7daefb25ee24;hb=02ee754cc2d2546013205d6f5cad68f06f184222;hpb=2911434d2a0e24292c73f640f5df4cac9c447867 diff --git a/n2vc/juju_observer.py b/n2vc/juju_observer.py index ac40f34..10efa98 100644 --- a/n2vc/juju_observer.py +++ b/n2vc/juju_observer.py @@ -52,7 +52,12 @@ class JujuModelObserver(ModelObserver): self.actions = dict() def register_machine(self, machine: Machine, db_dict: dict): - entity_id = machine.entity_id + try: + entity_id = machine.entity_id + except Exception as e: + # no entity_id aatribute, try machine attribute + entity_id = machine.machine + # self.n2vc.debug(msg='Registering machine for change notifications: {}'.format(entity_id)) entity = _Entity(entity_id=entity_id, entity_type='machine', obj=machine, db_dict=db_dict) self.machines[entity_id] = entity @@ -65,6 +70,7 @@ class JujuModelObserver(ModelObserver): def register_application(self, application: Application, db_dict: dict): entity_id = application.entity_id + # self.n2vc.debug(msg='Registering application for change notifications: {}'.format(entity_id)) entity = _Entity(entity_id=entity_id, entity_type='application', obj=application, db_dict=db_dict) self.applications[entity_id] = entity @@ -77,6 +83,7 @@ class JujuModelObserver(ModelObserver): def register_action(self, action: Action, db_dict: dict): entity_id = action.entity_id + # self.n2vc.debug(msg='Registering action for changes notifications: {}'.format(entity_id)) entity = _Entity(entity_id=entity_id, entity_type='action', obj=action, db_dict=db_dict) self.actions[entity_id] = entity @@ -96,6 +103,8 @@ class JujuModelObserver(ModelObserver): if not self.is_machine_registered(machine_id): return + self.n2vc.debug('Waiting for machine completed: {}'.format(machine_id)) + # wait for a final state entity = self.machines[machine_id] return await self._wait_for_entity( @@ -114,6 +123,8 @@ class JujuModelObserver(ModelObserver): if not self.is_application_registered(application_id): return + self.n2vc.debug('Waiting for application completed: {}'.format(application_id)) + # application statuses: unknown, active, waiting # wait for a final state entity = self.applications[application_id] @@ -133,6 +144,8 @@ class JujuModelObserver(ModelObserver): if not self.is_action_registered(action_id): return + self.n2vc.debug('Waiting for action completed: {}'.format(action_id)) + # action statuses: pending, running, completed, failed, cancelled # wait for a final state entity = self.actions[action_id] @@ -186,8 +199,8 @@ class JujuModelObserver(ModelObserver): .format(progress_timeout, entity.entity_type, entity.entity_id) self.n2vc.debug(message) raise N2VCTimeoutException(message=message, timeout='progress') - self.n2vc.debug('End of wait. Final state: {}, retries: {}' - .format(entity.obj.__getattribute__(field_to_check), retries)) + # self.n2vc.debug('End of wait. Final state: {}, retries: {}' + # .format(entity.obj.__getattribute__(field_to_check), retries)) return retries async def on_change(self, delta, old, new, model): @@ -196,8 +209,8 @@ class JujuModelObserver(ModelObserver): return # log - self.n2vc.debug('on_change(): type: {}, entity: {}, id: {}' - .format(delta.type, delta.entity, new.entity_id)) + # self.n2vc.debug('on_change(): type: {}, entity: {}, id: {}' + # .format(delta.type, delta.entity, new.entity_id)) if delta.entity == 'machine':