X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fdelta.py;h=b1eba233e73a0e91e641758ed65c5503b98a2654;hb=c8d7bcea7e1fd4b174e3be2a29e382df66e88b66;hp=ea15f2493e2c95b20dff3f500b02f2416a4a28ef;hpb=2ed7314a9ea1240883655bc521b6e27f149aa485;p=osm%2FN2VC.git diff --git a/juju/delta.py b/juju/delta.py index ea15f24..b1eba23 100644 --- a/juju/delta.py +++ b/juju/delta.py @@ -2,29 +2,34 @@ from .client import client def get_entity_delta(d): - _delta_types = { - 'application': ApplicationDelta, - 'annotation': AnnotationDelta, - 'machine': MachineDelta, - 'unit': UnitDelta, - 'action': ActionDelta, - } - return _delta_types[d.entity](d.deltas) +def get_entity_class(entity_type): + return _delta_types[entity_type].get_entity_class() + + class EntityDelta(client.Delta): def get_id(self): return self.data['id'] + @classmethod def get_entity_class(self): return None +class ActionDelta(EntityDelta): + @classmethod + def get_entity_class(self): + from .action import Action + return Action + + class ApplicationDelta(EntityDelta): def get_id(self): return self.data['name'] + @classmethod def get_entity_class(self): from .application import Application return Application @@ -34,12 +39,14 @@ class AnnotationDelta(EntityDelta): def get_id(self): return self.data['tag'] + @classmethod def get_entity_class(self): from .annotation import Annotation return Annotation class MachineDelta(EntityDelta): + @classmethod def get_entity_class(self): from .machine import Machine return Machine @@ -49,12 +56,24 @@ class UnitDelta(EntityDelta): def get_id(self): return self.data['name'] + @classmethod def get_entity_class(self): from .unit import Unit return Unit -class ActionDelta(EntityDelta): +class RelationDelta(EntityDelta): + @classmethod def get_entity_class(self): - from .action import Action - return Action + from .relation import Relation + return Relation + + +_delta_types = { + 'action': ActionDelta, + 'application': ApplicationDelta, + 'annotation': AnnotationDelta, + 'machine': MachineDelta, + 'unit': UnitDelta, + 'relation': RelationDelta, +}