X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fdelta.py;h=b1eba233e73a0e91e641758ed65c5503b98a2654;hb=acdcde3ec8aced7084d18698b04eac9b778cd0cb;hp=247c81d077532109ec57ca066bfc4cb52c3d3c9e;hpb=fe2d2f1a5ef2453359858481929a2526ea1a3c5c;p=osm%2FN2VC.git diff --git a/juju/delta.py b/juju/delta.py index 247c81d..b1eba23 100644 --- a/juju/delta.py +++ b/juju/delta.py @@ -2,34 +2,51 @@ from .client import client def get_entity_delta(d): - _delta_types = { - 'application': ApplicationDelta, - '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'] + 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'] + return self.data['name'] + @classmethod def get_entity_class(self): from .application import Application return Application +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 @@ -37,14 +54,26 @@ class MachineDelta(EntityDelta): class UnitDelta(EntityDelta): def get_id(self): - return self.data['Name'] + 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, +}