Add relate example
[osm/N2VC.git] / juju / delta.py
index 247c81d..0b142dd 100644 (file)
@@ -3,10 +3,12 @@ from .client import client
 
 def get_entity_delta(d):
     _delta_types = {
+        'action': ActionDelta,
         'application': ApplicationDelta,
+        'annotation': AnnotationDelta,
         'machine': MachineDelta,
         'unit': UnitDelta,
-        'action': ActionDelta,
+        'relation': RelationDelta,
     }
 
     return _delta_types[d.entity](d.deltas)
@@ -14,21 +16,36 @@ def get_entity_delta(d):
 
 class EntityDelta(client.Delta):
     def get_id(self):
-        return self.data['Id']
+        return self.data['id']
 
     def get_entity_class(self):
         return None
 
 
+class ActionDelta(EntityDelta):
+    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']
 
     def get_entity_class(self):
         from .application import Application
         return Application
 
 
+class AnnotationDelta(EntityDelta):
+    def get_id(self):
+        return self.data['tag']
+
+    def get_entity_class(self):
+        from .annotation import Annotation
+        return Annotation
+
+
 class MachineDelta(EntityDelta):
     def get_entity_class(self):
         from .machine import Machine
@@ -37,14 +54,14 @@ class MachineDelta(EntityDelta):
 
 class UnitDelta(EntityDelta):
     def get_id(self):
-        return self.data['Name']
+        return self.data['name']
 
     def get_entity_class(self):
         from .unit import Unit
         return Unit
 
 
-class ActionDelta(EntityDelta):
+class RelationDelta(EntityDelta):
     def get_entity_class(self):
-        from .action import Action
-        return Action
+        from .relation import Relation
+        return Relation