X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fdelta.py;h=b1eba233e73a0e91e641758ed65c5503b98a2654;hb=0d70179f2088da28e47bcad569366fb3dddd6e6d;hp=0b142ddf0141a4e29e13493f8b8538f2b55551ad;hpb=a56869a418a68b795817d4f14d4065d11784f09f;p=osm%2FN2VC.git diff --git a/juju/delta.py b/juju/delta.py index 0b142dd..b1eba23 100644 --- a/juju/delta.py +++ b/juju/delta.py @@ -2,27 +2,24 @@ from .client import client def get_entity_delta(d): - _delta_types = { - 'action': ActionDelta, - 'application': ApplicationDelta, - 'annotation': AnnotationDelta, - 'machine': MachineDelta, - 'unit': UnitDelta, - 'relation': RelationDelta, - } - 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 @@ -32,6 +29,7 @@ class ApplicationDelta(EntityDelta): def get_id(self): return self.data['name'] + @classmethod def get_entity_class(self): from .application import Application return Application @@ -41,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 @@ -56,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 RelationDelta(EntityDelta): + @classmethod def get_entity_class(self): from .relation import Relation return Relation + + +_delta_types = { + 'action': ActionDelta, + 'application': ApplicationDelta, + 'annotation': AnnotationDelta, + 'machine': MachineDelta, + 'unit': UnitDelta, + 'relation': RelationDelta, +}