Exemple #1
0
    def append(self, related):
        if self.is_source():
            args = [self.obj, related, self.relation.name]
        else:
            args = [related, self.obj, self.relation.name]

        ObjectMap.default().connect(*args)
Exemple #2
0
 def save(self):
     """
     Overload model's save()
     """
     # Get previous version
     if self.id:
         old = ManagedObject.objects.get(id=self.id)
     else:
         old = None
     # Save
     super(ManagedObject, self).save()
     # IPAM sync
     if self.object_profile.sync_ipam:
         self.sync_ipam()
     # Notify changes
     if ((old is None and self.trap_source_ip) or
         (old and self.trap_source_ip != old.trap_source_ip) or
         (old and self.activator.id != old.activator.id)):
         self.sae_refresh_event_filter()
     # Notify new object
     if old is None:
         SelectorCache.rebuild_for_object(self)
         self.event(self.EV_NEW, {"object": self})
     if not self.collector or not self.trap_source_ip:
         # Remove from object mappings
         ObjectMap.delete_map(self)
     else:
         # Add to object mappings
         ObjectMap.update_map(
             self, self.collector, self.trap_source_ip)
Exemple #3
0
    def _clear(self):
        if self.is_source():
            ids = ObjectMap.default().targets(self.obj, self.relation.name)
        else:
            ids = ObjectMap.default().sources(self.obj, self.relation.name)

        for objid in list(ids):
            ObjectMap.default().disconnect(self.obj, objid, self.relation.name)
Exemple #4
0
 def __init__(self, name):
     self.name = name
     ObjectMap.default().add(self)
     self.db[self.__objectid__] = self
Exemple #5
0
 def __iter__(self):
     if self.is_source():
         return ObjectMap.default().targets(self.obj, self.relation.name)
     else:
         return ObjectMap.default().sources(self.obj, self.relation.name)