Example #1
0
 def handler(self):
     # Get configured probes
     self.logger.info("Checking SLA Probes")
     new_probes = {}
     for p in self.object.scripts.get_sla_probes():
         new_probes[p.get("group", ""), p["name"]] = p
     # Check existing probes
     for p in SLAProbe.objects.filter(managed_object=self.object.id):
         group = p.group or ""
         new_data = new_probes.get((group, p.name))
         if not new_data:
             # Remove stale probe
             self.logger.info("[%s|%s] Removing probe", group, p.name)
             p.fire_event("missed")
             continue
         self.update_if_changed(
             p,
             {
                 "description":
                 new_data.get("description"),
                 "type":
                 new_data["type"],
                 "target":
                 new_data["target"],
                 "hw_timestamp":
                 new_data.get("hw_timestamp", False),
                 "labels": [
                     ll for ll in new_data.get("tags", [])
                     if Label.get_effective_setting(ll, "enable_slaprobe")
                 ],
             },
         )
         p.fire_event("seen")
         if not new_data["status"]:
             p.fire_event("down")
         else:
             p.fire_event("up")
         p.touch()
         del new_probes[group, p.name]
     # Add remaining probes
     for group, name in new_probes:
         self.logger.info("[%s|%s] Creating probe", group, name)
         new_data = new_probes.get((group, name))
         probe = SLAProbe(
             managed_object=self.object,
             name=name,
             profile=SLAProfile.get_default_profile(),
             group=group,
             description=new_data.get("description"),
             type=new_data["type"],
             target=new_data["target"],
             hw_timestamp=new_data.get("hw_timestamp", False),
             labels=new_data.get("tags", []),
         )
         probe.save()
         if not new_data["status"]:
             probe.fire_event("down")
Example #2
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label, setting="enable_sensor")
Example #3
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label,
                                        setting="enable_subscriberprofile")
Example #4
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label, setting="enable_commandsnippet")
Example #5
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label,
                                        setting="enable_ipaddressrange")
Example #6
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label,
                                        setting="enable_allocationgroup")
Example #7
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label, "enable_objectmodel")
Example #8
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label, setting="enable_dnszonerecord")
Example #9
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label, "enable_vc")
Example #10
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label,
                                        setting="enable_resourcegroup")
Example #11
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label, setting="enable_prefixprofile")
Example #12
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label, setting="enable_administrativedomain")
Example #13
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(
         label, setting="enable_managedobjectprofile")
Example #14
0
 def can_set_label(cls, label):
     return Label.get_effective_setting(label, "enable_serviceprofile")