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)
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)))
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)
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)
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]})
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) )
def _1_is(self, index): # Status - Is Managed return d_Q(**{"is_managed": index == "2"})