Volver a la wiki

CustomMib · Modelo network

CustomMib · Modelo network

Propósito

CustomMib registra archivos MIB ASN.1 subidos manualmente por el usuario para enriquecer el Deep Discovery SNMP de un VendorProfile. Almacena el fuente ASN.1 como backup persistente para recompilar si el contenedor pierde /app/mib_cache/custom/. Flujo: subida → extracción nombre de módulo → compilación pysmi → extracción OIDs → almacenamiento. Los OIDs se pueden clasificar con Gemini Flash via mib_assistant y aplicar a VendorProfile.deep_discovery_oids.

Contrato

Campos:

CampoTipoNullableDefaultDescripción
vendor_profileFK(VendorProfile, CASCADE)No—Vendor propietario; related_name custom_mibs
module_nameCharField(100)No—Nombre ASN.1 extraído (VENDOR-AP-MIB)
original_filenameCharField(255)No—Nombre archivo subido
source_contentTextFieldBlank""Fuente ASN.1 completa (backup)
file_sizeIntegerFieldNo0Bytes
compiledBooleanFieldNoFalseIndica compilación exitosa
compile_errorTextFieldBlank""Error si falló
extracted_oidsJSONFieldBlank[][{name, oid, type, access, syntax}]
uploaded_byFK(core.User, SET_NULL)Null—Usuario
uploaded_atDateTimeField(auto_now_add)No—Timestamp
organizationFK(core.Organization, CASCADE)No—Tenant (RLS)

Meta:

Dependencias entrantes

CallerArchivoUso
upload_mibnetwork/api/vendor.pyupdate_or_create tras compilar pysmi
list_custom_mibsnetwork/api/vendor.pyLista por vendor
delete_custom_mibnetwork/api/vendor.pyElimina + limpia archivos + OIDs
apply_custom_oidsnetwork/api/vendor.pyValida antes de añadir OIDs
mib_assistant_analyzenetwork/api/vendor.pyAgrega extracted_oids para enviar a Gemini
TestRLSCustomMibIsolationtests/test_rls.pyTests aislamiento multi-tenant

Dependencias salientes

Ejemplos

# Subir MIB
POST /api/network/vendor-profiles/ubiquiti/upload-mib
Content-Type: multipart/form-data
file=@UBNT-UniFi-MIB.mib
# → CustomMibOut con compiled: true, extracted_oids: [...]

# Aplicar OIDs al vendor
POST /api/network/vendor-profiles/ubiquiti/custom-mibs/3/apply-oids
{"category": "wireless", "oids": [{"name": "unifiVapNumStations", "oid": "1.3.6.1.4.1.41112.1.6.1.2.1.8", "type": "walk"}]}

Límite MAX_DEEP_DISCOVERY_OIDS total por vendor; rechaza si se supera.

Véase también

Subir