Ejemplo n.º 1
0
def get_vendor_id(sysobjectid):
    """Looks up the most likely vendorid based on a sysObjectID"""
    enterprise = get_enterprise_id(sysobjectid)
    cx = connection.cursor()
    cx.execute("SELECT vendorid FROM enterprise_number "
               "WHERE enterprise = %s LIMIT 1", (enterprise,))
    vendorid = cx.fetchone()
    return vendorid[0] if vendorid else make_new_vendor_id(sysobjectid)
Ejemplo n.º 2
0
def make_new_vendor_id(sysobjectid):
    """Makes up a new vendorid based on a sysObjectID"""
    enterprise = get_enterprise_id(sysobjectid)
    if enterprise in _enterprise_map:
        name = _enterprise_map[enterprise]
        name = name.replace(CONSTANT_PREFIX, '').replace('_', '').lower()[:15]
        return name
    else:
        return u'unknown'
Ejemplo n.º 3
0
 def _get_vendor(cls, sysobjectid):
     """Looks up the most likely vendor based on a sysObjectID"""
     enterprise_id = get_enterprise_id(sysobjectid)
     query = (
         "vendorid IN (SELECT vendorid FROM enterprise_number WHERE enterprise=%s)"
     )
     try:
         return manage.Vendor.objects.extra(where=[query], params=[enterprise_id])[0]
     except IndexError:
         return cls._make_new_vendor(sysobjectid)
Ejemplo n.º 4
0
    def _make_new_vendor(cls, sysobjectid):
        """Makes up a new Vendor based on a sysObjectID"""
        enterprise_id = get_enterprise_id(sysobjectid)
        if enterprise_id in _enterprise_map:
            name = _enterprise_map[enterprise_id]
            name = name.replace(CONSTANT_PREFIX, "").replace("_", "").lower()[:15]
        else:
            name = UNKNOWN_VENDOR_ID

        cls._logger.debug("Making new vendor %r from %r", name, sysobjectid)
        vendor, _created = manage.Vendor.objects.get_or_create(id=name)
        return vendor
Ejemplo n.º 5
0
    def mibfactory(self):
        """
        Returns a list of MibRetriever instances, as configured in
        ipdevpoll.conf, to use for retrieving sensors from this netbox.

        """
        vendor_id = None

        snmpv2_mib = Snmpv2Mib(self.agent)
        sysobjectid = yield snmpv2_mib.get_sysObjectID()
        if sysobjectid:
            vendor_id = get_enterprise_id(sysobjectid)
        elif self.netbox.type:
            vendor_id = self.netbox.type.get_enterprise_id()

        classes = self.mib_map.get(vendor_id, ()) or self.mib_map.get('*', ())
        mibs = [cls(self.agent) for cls in classes]
        defer.returnValue(mibs)