Example #1
0
 def _6_is(self, index):
     # Status - Discovery
     if index == "1":
         # Is discovery = Is managed and enable box
         return d_Q(**{"is_managed": True}) & d_Q(object_profile__enable_box_discovery=True)
     elif index == "2":
         # Not discovery = Is managed and disable box
         return d_Q(**{"is_managed": True}) & d_Q(object_profile__enable_box_discovery=False)
Example #2
0
 def _2_is(self, index):
     # Status - Monitoring
     if index == "1":
         # Is Monitoring = Is managed and not Generic Profile
         return d_Q(**{"is_managed": True}) & d_Q(object_profile__enable_ping=True)
     elif index == "2":
         # Is Not Monitoring = Is not managed + Is managed and not ping
         return set(ManagedObject.objects.filter(d_Q(**{"is_managed": False})).values_list(
             "id", flat=True)).union(set(ManagedObject.objects.filter(
                 d_Q(**{"is_managed": True}) &
                 d_Q(object_profile__enable_ping=False)).values_list("id", flat=True)))
Example #3
0
 def api_list(self, request):
     q = dict((str(k), v[0] if len(v) == 1 else v)
              for k, v in request.GET.lists())
     # find mac request select max(ts), managed_object, interface, vlan from mac
     # where like(MACNumToString(mac), 'A0:AB:1B%') group by managed_object, interface, vlan;
     query = q.get("__query")
     start = q.get("__start")
     limit = q.get("__limit")
     # page = q.get("__page")
     out = []
     if not query:
         return self.response(out, status=self.OK)
     try:
         mac = int(MAC(MACAddressParameter(accept_bin=False).clean(query)))
         out = self.api_macdb({"mac": mac}, limit=limit, offset=start)
     except ValueError:
         if self.mac_search_re.match(query):
             out = self.api_macdb({"mac__like": "%s%%" % str(query.upper())}, limit=limit, offset=start)
         elif self.mac_search_re_inv.match(query):
             out = self.api_macdb({"mac__like": "%%%s" % str(query.upper())}, limit=limit, offset=start)
         else:
             # Try MO search
             # @todo ManagedObject search
             self.logger.debug("MACDB ManagedObject search")
             mo_q = ManagedObject.get_search_Q(query)
             if not mo_q:
                 mo_q = d_Q(name__contains=query)
             mos = [mo.bi_id for mo in ManagedObject.objects.filter(mo_q)[:2]]
             if mos:
                 out = self.api_macdb({"managed_object__in": mos}, limit=limit, offset=start)
     # out = self.api_get_maclog(request, mac)
     return self.response(out, status=self.OK)
Example #4
0
File: views.py Project: nbashev/noc
 def queryset(self, request, query=None):
     """
     Filter records for lookup
     """
     self.logger.info("Queryset %s" % query)
     if self.managed_filter:
         q = d_Q(is_managed=True)
     else:
         q = d_Q()
     if not request.user.is_superuser:
         q &= UserAccess.Q(request.user)
     if query:
         sq = ManagedObject.get_search_Q(query)
         if sq:
             q &= sq
         else:
             q &= d_Q(name__contains=query)
     return self.model.objects.filter(q)
Example #5
0
    def f_attribute(self, num, value):
        """
        Islated object by atribute number
        :param num: Attribute number
        :param value: Attribute value
        :return:
        """
        # print "Attr a %s, %s" % (num, value)
        if "0" in num:
            # Cross link
            num1, num2 = num.split("0", 1)
            ff2 = [n.name for n in self.OP_ATTR_MAP[num]["model"]._meta.fields][int(num2)]
            field = "%s__%s" % (self.fields[int(num1)], ff2)
        else:
            field = self.fields[int(num)]

        if value in self.OP_ATTR_MAP[num].get("ne", []):
            return ~d_Q(**{field: self.OP_ATTR_MAP[num][value]})
        else:
            return d_Q(**{field: self.OP_ATTR_MAP[num][value]})
Example #6
0
    def _5_is(self, index):
        if index == "1":
            # Is topology, not mac
            return set(
                ManagedObject.objects.filter(
                    d_Q(**{"is_managed": True})
                    & d_Q(object_profile__enable_box_discovery_lldp=False)
                    & d_Q(object_profile__enable_box_discovery_lacp=False)
                    & d_Q(object_profile__enable_box_discovery_cdp=False)
                    & d_Q(object_profile__enable_box_discovery_stp=False)
                ).values_list("id", flat=True)
            )

        elif index == "2":
            # Is topology, not mac
            return set(
                ManagedObject.objects.filter(
                    d_Q(**{"is_managed": True})
                    & d_Q(object_profile__enable_box_discovery=True)
                    & (
                        d_Q(object_profile__enable_box_discovery_lldp=True)
                        | d_Q(object_profile__enable_box_discovery_lacp=True)
                        | d_Q(object_profile__enable_box_discovery_cdp=True)
                        | d_Q(object_profile__enable_box_discovery_stp=True)
                    )
                ).values_list("id", flat=True)
            )
Example #7
0
 def _1_is(self, index):
     # Status - Is Managed
     return d_Q(**{"is_managed": index == "2"})