diff --git a/aaa/models/group.py b/aaa/models/group.py index 7493a731b7b6b4c1b15eef40087db4f706f67d89..57b09dd8d1ad8e0de0b841847ea7c7b53de1a9df 100644 --- a/aaa/models/group.py +++ b/aaa/models/group.py @@ -11,17 +11,18 @@ import operator # Third-party modules import cachetools +from django.db.models.base import Model from django.db import models + # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check id_lock = Lock() @on_delete_check(check=[("sa.GroupAccess", "group")]) -class Group(NOCModel): +class Group(Model): class Meta(object): verbose_name = "Group" verbose_name_plural = "Groups" diff --git a/aaa/models/permission.py b/aaa/models/permission.py index 0e1666fdabd398319ef63ca8706cb2f36b84a543..41b50d41fda142534390be263d35efaecb6ccb6e 100644 --- a/aaa/models/permission.py +++ b/aaa/models/permission.py @@ -10,11 +10,11 @@ from threading import Lock import operator # Third-party modules +from django.db.models.base import Model from django.db.models import CharField, ManyToManyField import cachetools # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User from noc.aaa.models.group import Group @@ -22,7 +22,7 @@ perm_lock = Lock() id_lock = Lock() -class Permission(NOCModel): +class Permission(Model): """ Permissions. diff --git a/aaa/models/user.py b/aaa/models/user.py index fdd14a0e3782da2f6fec78d9010c33d717f1a379..c4634f6e3fd21b44990c16fef56158e567156c00 100644 --- a/aaa/models/user.py +++ b/aaa/models/user.py @@ -13,13 +13,13 @@ from typing import Optional # Third-party modules import cachetools +from django.db.models.base import Model from django.db import models from django.core import validators from django.contrib.auth.hashers import check_password, make_password # NOC modules from noc.config import config -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check from noc.core.translation import ugettext as _ from noc.settings import LANGUAGES @@ -45,7 +45,7 @@ id_lock = Lock() ("bi.Dashboard", "owner"), ] ) -class User(NOCModel): +class User(Model): class Meta(object): verbose_name = "User" verbose_name_plural = "Users" diff --git a/aaa/models/usercontact.py b/aaa/models/usercontact.py index d012c9d1d01d72f9e5af78415e2f5980489a998e..29c0366049df22f1cbedf89300a39fdc546d3daa 100644 --- a/aaa/models/usercontact.py +++ b/aaa/models/usercontact.py @@ -6,16 +6,16 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.main.models.timepattern import TimePattern from noc.main.models.notificationgroup import USER_NOTIFICATION_METHOD_CHOICES from .user import User -class UserContact(NOCModel): +class UserContact(Model): class Meta(object): verbose_name = "User Profile Contact" verbose_name_plural = "User Profile Contacts" diff --git a/cm/models/objectnotify.py b/cm/models/objectnotify.py index 1b0b604d66313e357f18c9e8e0d9496989428c98..437f32006162e9feda396edb9c141a478b9e78db 100644 --- a/cm/models/objectnotify.py +++ b/cm/models/objectnotify.py @@ -6,10 +6,10 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.main.models.notificationgroup import NotificationGroup from noc.sa.models.administrativedomain import AdministrativeDomain @@ -17,7 +17,7 @@ OBJECT_TYPES = ["config", "dns", "prefix-list", "rpsl"] OBJECT_TYPE_CHOICES = [(x, x) for x in OBJECT_TYPES if x != "config"] -class ObjectNotify(NOCModel): +class ObjectNotify(Model): class Meta(object): app_label = "cm" db_table = "cm_objectnotify" diff --git a/dns/models/dnsserver.py b/dns/models/dnsserver.py index 8dfd378833e0cd74c00d801395f7a2aa913548f0..165fb1b378feb93aeec4412006d83f61a375838f 100644 --- a/dns/models/dnsserver.py +++ b/dns/models/dnsserver.py @@ -6,20 +6,20 @@ # --------------------------------------------------------------------- # Third-party modules modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_init from noc.config import config from noc.core.model.fields import INETField from noc.core.change.decorator import change +from noc.core.translation import ugettext as _ @on_init @change -class DNSServer(NOCModel): +class DNSServer(Model): """ DNS Server is an database object representing real DNS server. diff --git a/dns/models/dnszone.py b/dns/models/dnszone.py index 78ae1d5fd05e0d2763e7383ac9aed8afe9a1ffc1..99a1d8d3dd1f7aff57c9d32028f96f8a7860d53f 100644 --- a/dns/models/dnszone.py +++ b/dns/models/dnszone.py @@ -13,6 +13,7 @@ from threading import Lock import operator # Third-party modules +from django.db.models.base import Model from django.db import models from django.contrib.postgres.fields import ArrayField import cachetools @@ -20,7 +21,6 @@ import cachetools # NOC modules from noc.core.model.decorator import on_init from noc.config import config -from noc.core.model.base import NOCModel from noc.main.models.notificationgroup import NotificationGroup from noc.main.models.systemnotification import SystemNotification from noc.main.models.label import Label @@ -47,7 +47,7 @@ ZONE_REVERSE_IPV6 = "6" @on_init @change @on_delete_check(check=[("dns.DNSZoneRecord", "zone")]) -class DNSZone(NOCModel): +class DNSZone(Model): """ DNS Zone """ diff --git a/dns/models/dnszoneprofile.py b/dns/models/dnszoneprofile.py index 6102503d59e74521a9d8f112d56492752cdaf0e6..2e98e1893802be01b3e5b296f4642c0297e7657e 100644 --- a/dns/models/dnszoneprofile.py +++ b/dns/models/dnszoneprofile.py @@ -10,12 +10,12 @@ from threading import Lock import operator # Third-party modules +from django.db.models.base import Model from django.db import models import cachetools # NOC modules from noc.config import config -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_init from noc.main.models.notificationgroup import NotificationGroup from noc.core.change.decorator import change @@ -29,7 +29,7 @@ id_lock = Lock() @on_init @change @on_delete_check(check=[("dns.DNSZone", "profile")]) -class DNSZoneProfile(NOCModel): +class DNSZoneProfile(Model): """ DNS Zone profile is a set of common parameters, shared between zones. diff --git a/dns/models/dnszonerecord.py b/dns/models/dnszonerecord.py index cf3ebe45819f8b69c7fbdae9cbee8ecdf84c9103..b3fbdb2571615d64604361b36c396cc9b6fa3bcb 100644 --- a/dns/models/dnszonerecord.py +++ b/dns/models/dnszonerecord.py @@ -9,11 +9,11 @@ from typing import Optional # Third-party modules +from django.db.models.base import Model from django.db import models from django.contrib.postgres.fields import ArrayField # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_init from noc.core.change.decorator import change from noc.core.translation import ugettext as _ @@ -24,7 +24,7 @@ from .dnszone import DNSZone @Label.model @on_init @change -class DNSZoneRecord(NOCModel): +class DNSZoneRecord(Model): """ Zone RRs """ diff --git a/fm/models/alarmtrigger.py b/fm/models/alarmtrigger.py index b7855aa3c6a8ccb6385a98a2b93ee05a1086fbcc..1818d8c6634d706ea04dec8d90a18d613be69bda 100644 --- a/fm/models/alarmtrigger.py +++ b/fm/models/alarmtrigger.py @@ -6,10 +6,10 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.fields import DocumentReferenceField from noc.main.models.timepattern import TimePattern from noc.main.models.notificationgroup import NotificationGroup @@ -17,7 +17,7 @@ from noc.main.models.template import Template from noc.inv.models.resourcegroup import ResourceGroup -class AlarmTrigger(NOCModel): +class AlarmTrigger(Model): class Meta(object): db_table = "fm_alarmtrigger" app_label = "fm" diff --git a/fm/models/eventtrigger.py b/fm/models/eventtrigger.py index 4349f1b844a97839d99b07dd1e216507e4b5b5bd..366d70630293b7cacf01030b7104853ff4dbd8a0 100644 --- a/fm/models/eventtrigger.py +++ b/fm/models/eventtrigger.py @@ -6,10 +6,10 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.fields import DocumentReferenceField from noc.main.models.timepattern import TimePattern from noc.main.models.notificationgroup import NotificationGroup @@ -17,7 +17,7 @@ from noc.main.models.template import Template from noc.inv.models.resourcegroup import ResourceGroup -class EventTrigger(NOCModel): +class EventTrigger(Model): class Meta(object): db_table = "fm_eventtrigger" app_label = "fm" diff --git a/fm/models/ignoreeventrules.py b/fm/models/ignoreeventrules.py index 61a16349cf1811198a7017b69c7b7c35b27e6bf4..e7444bafe231b860afa442c7572a4b480032df47 100644 --- a/fm/models/ignoreeventrules.py +++ b/fm/models/ignoreeventrules.py @@ -6,13 +6,11 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models -# NOC modules -from noc.core.model.base import NOCModel - -class IgnoreEventRules(NOCModel): +class IgnoreEventRules(Model): class Meta(object): app_label = "fm" db_table = "fm_ignoreeventrules" diff --git a/ip/models/address.py b/ip/models/address.py index 3029e6204ca907c36f55c3a4d195321a27974392..a5ccd7cf6827ba0c6739099f08e4beaea3a29c30 100644 --- a/ip/models/address.py +++ b/ip/models/address.py @@ -7,13 +7,13 @@ # Third-party modules from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models from django.contrib.postgres.fields import ArrayField # NOC modules from noc.config import config from noc.core.model.decorator import on_init -from noc.core.model.base import NOCModel from noc.project.models.project import Project from noc.sa.models.managedobject import ManagedObject from noc.core.model.fields import INETField, MACField @@ -36,7 +36,7 @@ from .addressprofile import AddressProfile @full_text_search @workflow @on_delete_check(check=[("ip.Address", "ipv6_transition")]) -class Address(NOCModel): +class Address(Model): class Meta(object): verbose_name = _("Address") verbose_name_plural = _("Addresses") diff --git a/ip/models/addressrange.py b/ip/models/addressrange.py index 63866baff0be36beeaa44b1a4cc6a078e15e5c41..35be63cf4a1e5618751b67bce6a94a5e723f0891 100644 --- a/ip/models/addressrange.py +++ b/ip/models/addressrange.py @@ -7,12 +7,12 @@ # Third-party modules from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models from django.contrib.postgres.fields import ArrayField from django.template import Template, Context # NOC modules -from noc.core.model.base import NOCModel from noc.config import config from noc.core.model.fields import CIDRField from noc.core.ip import IP @@ -25,7 +25,7 @@ from .vrf import VRF @Label.model @change -class AddressRange(NOCModel): +class AddressRange(Model): class Meta(object): verbose_name = _("Address Range") db_table = "ip_addressrange" diff --git a/ip/models/prefix.py b/ip/models/prefix.py index 2bf6da9e23576388b1cf36057bf801093cfcae25..a4fc2ed55db4e865c7139b3246f50bd7585f90e2 100644 --- a/ip/models/prefix.py +++ b/ip/models/prefix.py @@ -11,13 +11,13 @@ from threading import Lock from collections import defaultdict # Third-party modules +from django.db.models.base import Model from django.db import models, connection from django.contrib.postgres.fields import ArrayField import cachetools # NOC modules from noc.config import config -from noc.core.model.base import NOCModel from noc.aaa.models.user import User from noc.project.models.project import Project from noc.peer.models.asn import AS @@ -51,7 +51,7 @@ id_lock = Lock() ("ip.Address", "prefix"), ] ) -class Prefix(NOCModel): +class Prefix(Model): """ Allocated prefix """ diff --git a/ip/models/prefixaccess.py b/ip/models/prefixaccess.py index 9fb0a47f2a6a1e07ebaab970ad816c06c64a4fd3..b4d24571e06adbcee606cedcde189c50af147f74 100644 --- a/ip/models/prefixaccess.py +++ b/ip/models/prefixaccess.py @@ -10,21 +10,21 @@ from functools import reduce from collections import defaultdict # Third-party modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models from django.db.models import Q # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User from noc.core.model.fields import CIDRField from noc.core.validators import check_ipv4_prefix, check_ipv6_prefix from noc.core.model.sql import SQL +from noc.core.translation import ugettext as _ from .afi import AFI_CHOICES from .vrf import VRF -class PrefixAccess(NOCModel): +class PrefixAccess(Model): class Meta(object): verbose_name = _("Prefix Access") verbose_name_plural = _("Prefix Access") diff --git a/ip/models/prefixbookmark.py b/ip/models/prefixbookmark.py index eef61f0ec267c486dcf2d127b88dc4c6acef565a..443bbcce11e69b724c5d98637e09ce22fe93d830 100644 --- a/ip/models/prefixbookmark.py +++ b/ip/models/prefixbookmark.py @@ -9,17 +9,17 @@ from operator import attrgetter # Third-party modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models from django.db.models import Q # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User +from noc.core.translation import ugettext as _ from .prefix import Prefix -class PrefixBookmark(NOCModel): +class PrefixBookmark(Model): """ User Bookmarks """ diff --git a/ip/models/vrf.py b/ip/models/vrf.py index 45d71ca87b46c5d47b60c8dcf19b71f301d3f0e5..6cee6e3c30fc44f61cdb571648009a5bd9d77cc1 100644 --- a/ip/models/vrf.py +++ b/ip/models/vrf.py @@ -10,14 +10,14 @@ import operator from threading import Lock # Third-party modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models from django.contrib.postgres.fields import ArrayField import cachetools # NOC modules +from .vrfgroup import VRFGroup from noc.config import config -from noc.core.model.base import NOCModel from noc.project.models.project import Project from noc.core.validators import check_rd from noc.core.model.fields import DocumentReferenceField @@ -26,10 +26,10 @@ from noc.main.models.label import Label from noc.core.model.decorator import on_delete_check, on_init from noc.vc.models.vpnprofile import VPNProfile from noc.wf.models.state import State -from .vrfgroup import VRFGroup from noc.core.wf.decorator import workflow from noc.core.vpn import get_vpn_id from noc.core.change.decorator import change +from noc.core.translation import ugettext as _ id_lock = Lock() @@ -54,7 +54,7 @@ id_lock = Lock() ], clean_lazy_labels="ipvrf", ) -class VRF(NOCModel): +class VRF(Model): """ VRF """ diff --git a/ip/models/vrfgroup.py b/ip/models/vrfgroup.py index 71d5cb1716549a776def6d4fd530ccd08e78574c..df6745daf848f3ab49417ff683435c044d340deb 100644 --- a/ip/models/vrfgroup.py +++ b/ip/models/vrfgroup.py @@ -6,12 +6,12 @@ # --------------------------------------------------------------------- # Third-party modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models from django.contrib.postgres.fields import ArrayField # NOC modules -from noc.core.model.base import NOCModel +from noc.core.translation import ugettext as _ from noc.core.model.decorator import on_delete_check from noc.core.comp import smart_text from noc.main.models.label import Label @@ -19,7 +19,7 @@ from noc.main.models.label import Label @Label.model @on_delete_check(check=[("ip.VRF", "vrf_group")]) -class VRFGroup(NOCModel): +class VRFGroup(Model): """ Group of VRFs with common properties """ diff --git a/kb/models/kbentry.py b/kb/models/kbentry.py index 18755ac0d5cf78810944a2ea752a884258ba3fbf..0402f62311234f77bf877ec9334567ac5745b6a8 100644 --- a/kb/models/kbentry.py +++ b/kb/models/kbentry.py @@ -10,11 +10,11 @@ import datetime import difflib # Third-party modules +from django.db.models.base import Model from django.db import models from django.contrib.postgres.fields import ArrayField # NOC modules -from noc.core.model.base import NOCModel from noc.main.models.language import Language from noc.main.models.label import Label from noc.services.web.apps.kb.parsers.loader import loader @@ -31,7 +31,7 @@ from noc.core.model.decorator import on_delete_check ("kb.KBEntryAttachment", "kb_entry"), ] ) -class KBEntry(NOCModel): +class KBEntry(Model): """ KB Entry """ diff --git a/kb/models/kbentryattachment.py b/kb/models/kbentryattachment.py index 9201d4baf5a81a91e009ff88adc19d0d9f6f20e2..d006073afac851fc5ed1a8bad379b4e9b9b88d9d 100644 --- a/kb/models/kbentryattachment.py +++ b/kb/models/kbentryattachment.py @@ -6,15 +6,15 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.main.models.databasestorage import database_storage from noc.kb.models.kbentry import KBEntry -class KBEntryAttachment(NOCModel): +class KBEntryAttachment(Model): """ Attachments """ diff --git a/kb/models/kbentryhistory.py b/kb/models/kbentryhistory.py index 8a58000c6e079dd89c5bef4793a413c25d5c9ab7..d74594dfd4a9aceba0bfcaefba713d3d48d638ab 100644 --- a/kb/models/kbentryhistory.py +++ b/kb/models/kbentryhistory.py @@ -6,15 +6,15 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User from noc.kb.models.kbentry import KBEntry -class KBEntryHistory(NOCModel): +class KBEntryHistory(Model): """ Modification History """ diff --git a/kb/models/kbentrypreviewlog.py b/kb/models/kbentrypreviewlog.py index 5c5ab999d688295ffe73fdd5d8e6d1313179aca5..7c48db4b7b21c905ed7500c836c3a6dc8a3a3ded 100644 --- a/kb/models/kbentrypreviewlog.py +++ b/kb/models/kbentrypreviewlog.py @@ -6,15 +6,15 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User from noc.kb.models.kbentry import KBEntry -class KBEntryPreviewLog(NOCModel): +class KBEntryPreviewLog(Model): """ Preview Log """ diff --git a/kb/models/kbentrytemplate.py b/kb/models/kbentrytemplate.py index 2a07bdd90298ce15c5812729fec4aa41c4811431..09bb12424d1e274b3665f43ca9d26160f9aef954 100644 --- a/kb/models/kbentrytemplate.py +++ b/kb/models/kbentrytemplate.py @@ -9,16 +9,16 @@ import re # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.fields import AutoCompleteTagsField from noc.main.models.language import Language from noc.services.web.apps.kb.parsers.loader import loader -class KBEntryTemplate(NOCModel): +class KBEntryTemplate(Model): """ KB Entry Template """ diff --git a/kb/models/kbglobalbookmark.py b/kb/models/kbglobalbookmark.py index 556394f0facb10e16fd6920afd362c06a864b42b..0b170584e811a9f5a9d5a61349831901da3479e8 100644 --- a/kb/models/kbglobalbookmark.py +++ b/kb/models/kbglobalbookmark.py @@ -6,15 +6,15 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.kb.models.kbentry import KBEntry from noc.core.comp import smart_text -class KBGlobalBookmark(NOCModel): +class KBGlobalBookmark(Model): """ Global Bookmarks @todo: Replace with boolean flag in KBEntry diff --git a/kb/models/kbuserbookmark.py b/kb/models/kbuserbookmark.py index 97b63aaefd13a160d7814874c37907c1219aefc1..102557ab4a60f5fefce5b0e8a20489c42d550b25 100644 --- a/kb/models/kbuserbookmark.py +++ b/kb/models/kbuserbookmark.py @@ -6,16 +6,16 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User from noc.kb.models.kbentry import KBEntry from noc.core.comp import smart_text -class KBUserBookmark(NOCModel): +class KBUserBookmark(Model): """ User Bookmarks """ diff --git a/main/models/checkpoint.py b/main/models/checkpoint.py index adc3631cad35cc12b82ab58b8a172d4668174330..3a6bc505699ac9e755cc0ebfc92764a148715c47 100644 --- a/main/models/checkpoint.py +++ b/main/models/checkpoint.py @@ -9,14 +9,14 @@ import datetime # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User -class Checkpoint(NOCModel): +class Checkpoint(Model): """ Checkpoint is a marked moment in time """ diff --git a/main/models/customfield.py b/main/models/customfield.py index 7ea5eb82afa234a48bc2a20f3ba48c4831e102cb..323d1fe8dabb0d60ecdde9d2f3b9d1db0a7cff11 100644 --- a/main/models/customfield.py +++ b/main/models/customfield.py @@ -11,6 +11,7 @@ from functools import reduce import threading # Third-party modules +from django.db.models.base import Model from django.db import models, connection from django.db.models import signals as django_signals from django.apps import apps @@ -19,7 +20,6 @@ from mongoengine import fields import mongoengine.signals # NOC modules -from noc.core.model.base import NOCModel from noc.core.validators import is_int from noc.core.comp import smart_text from .customfieldenumgroup import CustomFieldEnumGroup @@ -28,7 +28,7 @@ logger = logging.getLogger(__name__) id_lock = threading.Lock() -class CustomField(NOCModel): +class CustomField(Model): """ Custom field description """ diff --git a/main/models/customfieldenumgroup.py b/main/models/customfieldenumgroup.py index 326816f7d19af21ae1da60ca5eac4191e7de4032..130e9f559cdf9c592a703e5b52fa16bcd7ff2fa4 100644 --- a/main/models/customfieldenumgroup.py +++ b/main/models/customfieldenumgroup.py @@ -6,17 +6,17 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check @on_delete_check( check=[("main.CustomField", "enum_group"), ("main.CustomFieldEnumValue", "enum_group")] ) -class CustomFieldEnumGroup(NOCModel): +class CustomFieldEnumGroup(Model): """ Enumeration groups for custom fields """ diff --git a/main/models/customfieldenumvalue.py b/main/models/customfieldenumvalue.py index 2e3d8bb04554e70a7523e6dfb2b99fbde0bb0313..41dd3fec9ccf3f0b4fc79730978a078ee96abcbb 100644 --- a/main/models/customfieldenumvalue.py +++ b/main/models/customfieldenumvalue.py @@ -6,14 +6,14 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from .customfieldenumgroup import CustomFieldEnumGroup -class CustomFieldEnumValue(NOCModel): +class CustomFieldEnumValue(Model): """ Enumeration groups values """ diff --git a/main/models/databasestorage.py b/main/models/databasestorage.py index fc01b952d737f0acec5b2111191e5650e69a5970..9d254a86c33033132005cbf70500160862768bd0 100644 --- a/main/models/databasestorage.py +++ b/main/models/databasestorage.py @@ -6,15 +6,15 @@ # --------------------------------------------------------------------- # Third-party models +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.fields import BinaryField from noc.lib.database_storage import DatabaseStorage as DBS -class DatabaseStorage(NOCModel): +class DatabaseStorage(Model): """ Database Storage """ diff --git a/main/models/language.py b/main/models/language.py index 4d5720a70c52a3eb6461aa35dfcc979dcbf8273d..05488802b701184e17f12fd0f014aa9217bae1ed 100644 --- a/main/models/language.py +++ b/main/models/language.py @@ -6,10 +6,10 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check @@ -20,7 +20,7 @@ from noc.core.model.decorator import on_delete_check ("kb.KBEntryTemplate", "language"), ] ) -class Language(NOCModel): +class Language(Model): """ Language """ diff --git a/main/models/mimetype.py b/main/models/mimetype.py index c96afa65092e929d6b401707b90edf8596d7e9d9..d4d98a78968ec0a49e62d83c460ce491197220bf 100644 --- a/main/models/mimetype.py +++ b/main/models/mimetype.py @@ -9,14 +9,14 @@ import os # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.validators import check_extension, check_mimetype -class MIMEType(NOCModel): +class MIMEType(Model): """ MIME Type mapping """ diff --git a/main/models/notificationgroup.py b/main/models/notificationgroup.py index 4280bc6f2d76f70bcee2dc094f7cc66a4e5aa9ba..e0be51af65b4b68853cf47e22e9bff862ec268fb 100644 --- a/main/models/notificationgroup.py +++ b/main/models/notificationgroup.py @@ -13,11 +13,11 @@ from threading import Lock from typing import Tuple, Dict, Iterator # Third-party modules +from django.db.models.base import Model from django.db import models import cachetools # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User from noc.settings import LANGUAGE_CODE from noc.core.timepattern import TimePatternList @@ -56,7 +56,7 @@ USER_NOTIFICATION_METHOD_CHOICES = NOTIFICATION_METHOD_CHOICES ("peer.PeeringPoint", "prefix_list_notification_group"), ] ) -class NotificationGroup(NOCModel): +class NotificationGroup(Model): """ Notification Groups """ @@ -223,7 +223,7 @@ class NotificationGroup(NOCModel): yield MX_STREAMS[method], {"To": smart_bytes(param)} -class NotificationGroupUser(NOCModel): +class NotificationGroupUser(Model): class Meta(object): verbose_name = "Notification Group User" verbose_name_plural = "Notification Group Users" @@ -247,7 +247,7 @@ class NotificationGroupUser(NOCModel): ) -class NotificationGroupOther(NOCModel): +class NotificationGroupOther(Model): class Meta(object): verbose_name = "Notification Group Other" verbose_name_plural = "Notification Group Others" diff --git a/main/models/prefixtable.py b/main/models/prefixtable.py index 11e94748ff67a6256f5af2e671ddbe7993cc5684..e21f54d8f2f8786eab2a8bc790a1dd416a79e3e2 100644 --- a/main/models/prefixtable.py +++ b/main/models/prefixtable.py @@ -7,10 +7,10 @@ # Third-party modules from typing import Union, List, Tuple, Iterable +from django.db.models.base import Model from django.db import models # NOC Modules -from noc.core.model.base import NOCModel from noc.core.ip import IP from noc.core.model.fields import CIDRField from noc.core.model.decorator import on_delete_check @@ -25,7 +25,7 @@ from noc.core.translation import ugettext as _ ], clean_lazy_labels="prefixfilter", ) -class PrefixTable(NOCModel): +class PrefixTable(Model): class Meta(object): verbose_name = _("Prefix Table") verbose_name_plural = _("Prefix Tables") @@ -80,7 +80,7 @@ class PrefixTable(NOCModel): yield f"noc::prefixfilter::{pt.name}::{condition}" -class PrefixTablePrefix(NOCModel): +class PrefixTablePrefix(Model): class Meta(object): verbose_name = _("Prefix") verbose_name_plural = _("Prefixes") diff --git a/main/models/refbook.py b/main/models/refbook.py index 1e1683f463e677237275c027958511b5eda57b00..08511c06478e8d424b0c4360c37b138c86f44f66 100644 --- a/main/models/refbook.py +++ b/main/models/refbook.py @@ -9,17 +9,17 @@ import datetime # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check from noc.main.refbooks.downloaders.loader import loader from .language import Language @on_delete_check(check=[("main.RefBookField", "ref_book"), ("main.RefBookData", "ref_book")]) -class RefBook(NOCModel): +class RefBook(Model): """ Reference Books """ diff --git a/main/models/refbookdata.py b/main/models/refbookdata.py index ab8fc19bc24bdf93313936139396062351777e3d..37192b45714b731db7fb244a373882e19efca3c1 100644 --- a/main/models/refbookdata.py +++ b/main/models/refbookdata.py @@ -6,10 +6,10 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.fields import TextArrayField from .refbook import RefBook @@ -24,7 +24,7 @@ class RBDManader(models.Manager): return super().get_queryset().extra(order_by=["main_refbookdata.value[1]"]) -class RefBookData(NOCModel): +class RefBookData(Model): """ Ref. Book Data """ diff --git a/main/models/refbookfield.py b/main/models/refbookfield.py index be6befe95327321353b84eca2e4371f1beb5b8be..d891df8da9ae3fdfd0da348ee28d09fe48847e60 100644 --- a/main/models/refbookfield.py +++ b/main/models/refbookfield.py @@ -9,14 +9,14 @@ import re # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from .refbook import RefBook -class RefBookField(NOCModel): +class RefBookField(Model): """ Refbook fields """ diff --git a/main/models/resourcestate.py b/main/models/resourcestate.py index 5f728b0ad10f13e78cb45f6450a7c3eda49f63df..8bcfe7d4563b6680e4abf60992b34b2848d1095e 100644 --- a/main/models/resourcestate.py +++ b/main/models/resourcestate.py @@ -6,17 +6,17 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check @on_delete_check( check=[("inv.Interface", "state"), ("vc.VC", "state"), ("main.ResourceState", "step_to")] ) -class ResourceState(NOCModel): +class ResourceState(Model): class Meta(object): verbose_name = "Resource State" verbose_name_plural = "Resource States" diff --git a/main/models/style.py b/main/models/style.py index 9b5e1a3d8e8b519d84745d2d2b3ccf3be5f2f971..8cf8c77434dd3989af44a06f1b3d61f45960bcf4 100644 --- a/main/models/style.py +++ b/main/models/style.py @@ -10,11 +10,11 @@ from threading import Lock import operator # Third-party modules +from django.db.models.base import Model from django.db import models import cachetools # NOC models -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check id_lock = Lock() @@ -46,7 +46,7 @@ id_lock = Lock() ("vc.L2DomainProfile", "style"), ] ) -class Style(NOCModel): +class Style(Model): """ CSS Style """ diff --git a/main/models/systemnotification.py b/main/models/systemnotification.py index 67cfd5ae13e69785aa011a7a50e520f93fccb439..6dfbb96f78d3dcd05c6084c48fc7b2fc64e3a5ad 100644 --- a/main/models/systemnotification.py +++ b/main/models/systemnotification.py @@ -6,14 +6,14 @@ # ---------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from .notificationgroup import NotificationGroup -class SystemNotification(NOCModel): +class SystemNotification(Model): """ System Notifications """ diff --git a/main/models/systemtemplate.py b/main/models/systemtemplate.py index 439c7b8f3d85c2d3681faf9b8e66c05bae8b9f18..0c49557e6924c78a6e9469416657d74d335cfbe3 100644 --- a/main/models/systemtemplate.py +++ b/main/models/systemtemplate.py @@ -6,15 +6,15 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.user import User from .template import Template -class SystemTemplate(NOCModel): +class SystemTemplate(Model): class Meta(object): app_label = "main" db_table = "main_systemtemplate" diff --git a/main/models/template.py b/main/models/template.py index 3e9ce9617588f0d8e392b08e180b236ebc8ecce1..d061a65f82a0c3ea22d115f8754c506f664c22bb 100644 --- a/main/models/template.py +++ b/main/models/template.py @@ -10,13 +10,13 @@ from threading import Lock import operator # Third-party modules +from django.db.models.base import Model from django.db import models from django.core.exceptions import ValidationError import jinja2 import cachetools # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check id_lock = Lock() @@ -49,7 +49,7 @@ def template_validator(value): ("maintenance.Maintenance", "template"), ] ) -class Template(NOCModel): +class Template(Model): class Meta(object): app_label = "main" db_table = "main_template" diff --git a/main/models/timepattern.py b/main/models/timepattern.py index a4b03868b85bb757c83774f99ef13153ada5a45a..a6856e978382c205e32854648f1383b666d965a0 100644 --- a/main/models/timepattern.py +++ b/main/models/timepattern.py @@ -11,10 +11,10 @@ import operator # Third-party modules import cachetools +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.timepattern import TimePattern as TP from noc.core.model.decorator import on_delete_check @@ -34,7 +34,7 @@ id_lock = Lock() ("sa.ManagedObject", "time_pattern"), ] ) -class TimePattern(NOCModel): +class TimePattern(Model): """ Time Patterns """ diff --git a/main/models/timepatternterm.py b/main/models/timepatternterm.py index 555942481096b0fef87bce883e18fe2060adb571..ff21f766c155975a46aba1ae16ce8e9ef4502c8e 100644 --- a/main/models/timepatternterm.py +++ b/main/models/timepatternterm.py @@ -6,10 +6,10 @@ # --------------------------------------------------------------------- # Third-party modules +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.core.timepattern import TimePattern as TP from noc.core.model.decorator import on_init from noc.core.change.decorator import change @@ -18,7 +18,7 @@ from .timepattern import TimePattern @on_init @change -class TimePatternTerm(NOCModel): +class TimePatternTerm(Model): """ Time pattern terms """ diff --git a/project/models/project.py b/project/models/project.py index 1c31ca05aefdd7ae97611e51466681ff81e8955e..816e26298ee3fdb867f32de4be9dada10fc1bf88 100644 --- a/project/models/project.py +++ b/project/models/project.py @@ -10,11 +10,11 @@ import operator from threading import Lock # Third-party modules +from django.db.models.base import Model from django.db import models import cachetools # NOC modules -from noc.core.model.base import NOCModel from noc.core.model.decorator import on_delete_check from noc.core.model.fields import DocumentReferenceField from noc.main.models.glyph import Glyph @@ -47,7 +47,7 @@ id_lock = Lock() ("vc.VLAN", "project"), ] ) -class Project(NOCModel): +class Project(Model): """ Projects are used to track investment projects expenses and profits """ diff --git a/sa/models/administrativedomain.py b/sa/models/administrativedomain.py index 4c7d61c2c03f8ccfb5ed241cecfba71b3c7c5ced..77fed70fd727d57ca58122e6193c499a513dfc04 100644 --- a/sa/models/administrativedomain.py +++ b/sa/models/administrativedomain.py @@ -11,14 +11,19 @@ import operator from typing import Optional, TYPE_CHECKING # Third-party modules -from noc.core.translation import ugettext as _ from django.contrib.postgres.fields import ArrayField -from django.db import models +from django.db.models import Model +from django.db.models import ( + CharField, + TextField, + ForeignKey, + BigIntegerField, + CASCADE, +) import cachetools # NOC modules from noc.config import config -from noc.core.model.base import NOCModel from noc.main.models.pool import Pool from noc.main.models.template import Template from noc.main.models.remotesystem import RemoteSystem @@ -27,6 +32,7 @@ from noc.core.model.fields import DocumentReferenceField from noc.core.model.decorator import on_delete_check, on_init, tree from noc.core.bi.decorator import bi_sync from noc.core.change.decorator import change +from noc.core.translation import ugettext as _ id_lock = Lock() _path_cache = cachetools.TTLCache(maxsize=1000, ttl=60) @@ -53,7 +59,7 @@ _path_cache = cachetools.TTLCache(maxsize=1000, ttl=60) ], clean_lazy_labels="adm_domain", ) -class AdministrativeDomain(NOCModel): +class AdministrativeDomain(Model): """ Administrative Domain """ @@ -65,16 +71,12 @@ class AdministrativeDomain(NOCModel): app_label = "sa" ordering = ["name"] - name = models.CharField(_("Name"), max_length=255, unique=True) - parent = models.ForeignKey( - "self", verbose_name="Parent", null=True, blank=True, on_delete=models.CASCADE - ) - description = models.TextField(_("Description"), null=True, blank=True) + name = CharField(_("Name"), max_length=255, unique=True) + parent = ForeignKey("self", verbose_name="Parent", null=True, blank=True, on_delete=CASCADE) + description = TextField(_("Description"), null=True, blank=True) default_pool = DocumentReferenceField(Pool, null=True, blank=True) # Biosegmentation settings - bioseg_floating_name_template = models.ForeignKey( - Template, null=True, blank=True, on_delete=models.CASCADE - ) + bioseg_floating_name_template = ForeignKey(Template, null=True, blank=True, on_delete=CASCADE) bioseg_floating_parent_segment = DocumentReferenceField( "inv.NetworkSegment", null=True, blank=True ) @@ -82,14 +84,12 @@ class AdministrativeDomain(NOCModel): # Reference to remote system object has been imported from remote_system = DocumentReferenceField(RemoteSystem, null=True, blank=True) # Object id in remote system - remote_id = models.CharField(max_length=64, null=True, blank=True) + remote_id = CharField(max_length=64, null=True, blank=True) # Object id in BI - bi_id = models.BigIntegerField(unique=True) + bi_id = BigIntegerField(unique=True) - labels = ArrayField(models.CharField(max_length=250), blank=True, null=True, default=list) - effective_labels = ArrayField( - models.CharField(max_length=250), blank=True, null=True, default=list - ) + labels = ArrayField(CharField(max_length=250), blank=True, null=True, default=list) + effective_labels = ArrayField(CharField(max_length=250), blank=True, null=True, default=list) _id_cache = cachetools.TTLCache(maxsize=1000, ttl=60) _bi_id_cache = cachetools.TTLCache(maxsize=1000, ttl=60) diff --git a/sa/models/authprofile.py b/sa/models/authprofile.py index 6d0ea087087a43540e1e60dbd3f1ce905e170c5d..21841dbd715a9d9bb560e4dff3e15af78a524dcd 100644 --- a/sa/models/authprofile.py +++ b/sa/models/authprofile.py @@ -10,12 +10,18 @@ import operator from threading import Lock # Third-party modules +from django.db.models.base import Model from django.contrib.postgres.fields import ArrayField -from django.db import models +from django.db.models import ( + CharField, + TextField, + ForeignKey, + BigIntegerField, + CASCADE, +) import cachetools # NOC modules -from noc.core.model.base import NOCModel from noc.main.models.remotesystem import RemoteSystem from noc.main.models.label import Label from noc.core.model.decorator import on_save @@ -38,7 +44,7 @@ id_lock = Lock() ("sa.ManagedObjectProfile", "cpe_auth_profile"), ] ) -class AuthProfile(NOCModel): +class AuthProfile(Model): class Meta(object): verbose_name = "Auth Profile" verbose_name_plural = "Auth Profiles" @@ -46,9 +52,9 @@ class AuthProfile(NOCModel): app_label = "sa" ordering = ["name"] - name = models.CharField("Name", max_length=64, unique=True) - description = models.TextField("Description", null=True, blank=True) - type = models.CharField( + name = CharField("Name", max_length=64, unique=True) + description = TextField("Description", null=True, blank=True) + type = CharField( "Name", max_length=1, choices=[ @@ -59,23 +65,21 @@ class AuthProfile(NOCModel): ("S", "Suggest"), ], ) - user = models.CharField("User", max_length=32, blank=True, null=True) - password = models.CharField("Password", max_length=32, blank=True, null=True) - super_password = models.CharField("Super Password", max_length=32, blank=True, null=True) - snmp_ro = models.CharField("RO Community", blank=True, null=True, max_length=64) - snmp_rw = models.CharField("RW Community", blank=True, null=True, max_length=64) + user = CharField("User", max_length=32, blank=True, null=True) + password = CharField("Password", max_length=32, blank=True, null=True) + super_password = CharField("Super Password", max_length=32, blank=True, null=True) + snmp_ro = CharField("RO Community", blank=True, null=True, max_length=64) + snmp_rw = CharField("RW Community", blank=True, null=True, max_length=64) # Integration with external NRI systems # Reference to remote system object has been imported from remote_system = DocumentReferenceField(RemoteSystem, null=True, blank=True) # Object id in remote system - remote_id = models.CharField(max_length=64, null=True, blank=True) + remote_id = CharField(max_length=64, null=True, blank=True) # Object id in BI - bi_id = models.BigIntegerField(unique=True) + bi_id = BigIntegerField(unique=True) - labels = ArrayField(models.CharField(max_length=250), blank=True, null=True, default=list) - effective_labels = ArrayField( - models.CharField(max_length=250), blank=True, null=True, default=list - ) + labels = ArrayField(CharField(max_length=250), blank=True, null=True, default=list) + effective_labels = ArrayField(CharField(max_length=250), blank=True, null=True, default=list) _id_cache = cachetools.TTLCache(maxsize=100, ttl=60) @@ -126,36 +130,32 @@ class AuthProfile(NOCModel): return Label.get_effective_setting(label, setting="enable_authprofile") -class AuthProfileSuggestSNMP(NOCModel): +class AuthProfileSuggestSNMP(Model): class Meta(object): verbose_name = "Auth Profile Suggest SNMP" verbose_name_plural = "Auth Profile Suggest SNMP" db_table = "sa_authprofilesuggestsnmp" app_label = "sa" - auth_profile = models.ForeignKey( - AuthProfile, verbose_name="Auth Profile", on_delete=models.CASCADE - ) - snmp_ro = models.CharField("RO Community", blank=True, null=True, max_length=64) - snmp_rw = models.CharField("RW Community", blank=True, null=True, max_length=64) + auth_profile = ForeignKey(AuthProfile, verbose_name="Auth Profile", on_delete=CASCADE) + snmp_ro = CharField("RO Community", blank=True, null=True, max_length=64) + snmp_rw = CharField("RW Community", blank=True, null=True, max_length=64) def __str__(self): return self.auth_profile.name -class AuthProfileSuggestCLI(NOCModel): +class AuthProfileSuggestCLI(Model): class Meta(object): verbose_name = "Auth Profile Suggest CLI" verbose_name_plural = "Auth Profile Suggest CLI" db_table = "sa_authprofilesuggestcli" app_label = "sa" - auth_profile = models.ForeignKey( - AuthProfile, verbose_name="Auth Profile", on_delete=models.CASCADE - ) - user = models.CharField("User", max_length=32, blank=True, null=True) - password = models.CharField("Password", max_length=32, blank=True, null=True) - super_password = models.CharField("Super Password", max_length=32, blank=True, null=True) + auth_profile = ForeignKey(AuthProfile, verbose_name="Auth Profile", on_delete=CASCADE) + user = CharField("User", max_length=32, blank=True, null=True) + password = CharField("Password", max_length=32, blank=True, null=True) + super_password = CharField("Super Password", max_length=32, blank=True, null=True) def __str__(self): return self.auth_profile.name diff --git a/sa/models/commandsnippet.py b/sa/models/commandsnippet.py index 078f54ba536698a5e00ccb70d3f3285bbfd7da99..7766431fa18b04a29690506418c0e257069690eb 100644 --- a/sa/models/commandsnippet.py +++ b/sa/models/commandsnippet.py @@ -10,21 +10,21 @@ import re import shlex # Third-party modules -from noc.core.translation import ugettext as _ -from noc.core.model.fields import DocumentReferenceField from django.contrib.postgres.fields import ArrayField +from django.db.models.base import Model from django.db import models from django.template import Template, Context # NOC modules -from noc.core.model.base import NOCModel +from noc.core.translation import ugettext as _ +from noc.core.model.fields import DocumentReferenceField from noc.aaa.models.permission import Permission from noc.main.models.label import Label from noc.inv.models.resourcegroup import ResourceGroup @Label.model -class CommandSnippet(NOCModel): +class CommandSnippet(Model): """ Command snippet """ diff --git a/sa/models/groupaccess.py b/sa/models/groupaccess.py index ff732b417a9fbf0bd730d00929a7ee2097499ecd..309f9b64122349a7ca1043ca3b961298de315211 100644 --- a/sa/models/groupaccess.py +++ b/sa/models/groupaccess.py @@ -6,16 +6,16 @@ # ---------------------------------------------------------------------- # Third-party modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel from noc.aaa.models.group import Group +from noc.core.translation import ugettext as _ from .administrativedomain import AdministrativeDomain -class GroupAccess(NOCModel): +class GroupAccess(Model): class Meta(object): verbose_name = _("Group Access") verbose_name_plural = _("Group Access") diff --git a/sa/models/managedobject.py b/sa/models/managedobject.py index ec2bde95c16f114b317d60b08add58fdd8589ba1..b35a171c08cf646ebd8c1676060142b39003dc6a 100644 --- a/sa/models/managedobject.py +++ b/sa/models/managedobject.py @@ -21,6 +21,7 @@ from typing import Tuple, Iterable, List, Any, Dict, Set # Third-party modules import orjson from django.contrib.postgres.fields import ArrayField +from django.db.models.base import Model from django.db.models import ( Q, CharField, @@ -38,7 +39,6 @@ from typing import Optional from pydantic import BaseModel # NOC modules -from noc.core.model.base import NOCModel from noc.config import config from noc.aaa.models.user import User from noc.aaa.models.group import Group @@ -175,7 +175,7 @@ logger = logging.getLogger(__name__) ], clean=[("ip.Address", "managed_object"), ("sa.Service", "managed_object")], ) -class ManagedObject(NOCModel): +class ManagedObject(Model): """ Managed Object """ @@ -2176,7 +2176,7 @@ class ManagedObject(NOCModel): @on_save -class ManagedObjectAttribute(NOCModel): +class ManagedObjectAttribute(Model): class Meta(object): verbose_name = "Managed Object Attribute" verbose_name_plural = "Managed Object Attributes" diff --git a/sa/models/managedobjectprofile.py b/sa/models/managedobjectprofile.py index b2e3bb23dc678e86f693fee22197f0901d06a0fb..62c8393ba5c569d18bcecb957f4b623da269ea91 100644 --- a/sa/models/managedobjectprofile.py +++ b/sa/models/managedobjectprofile.py @@ -13,14 +13,13 @@ from dataclasses import dataclass from typing import Optional, List, Dict # Third-party modules +import cachetools from django.contrib.postgres.fields import ArrayField from django.db import models -import cachetools +from django.db.models.base import Model from pydantic import BaseModel, validator # NOC modules -from noc.core.translation import ugettext as _ -from noc.core.model.base import NOCModel from noc.config import config from noc.main.models.style import Style from noc.core.stencil import stencil_registry @@ -50,6 +49,7 @@ from noc.pm.models.thresholdprofile import ThresholdProfile from .authprofile import AuthProfile from .capsprofile import CapsProfile from noc.vc.models.vlanfilter import VLANFilter +from noc.core.translation import ugettext as _ metrics_lock = Lock() @@ -127,7 +127,7 @@ id_lock = Lock() ], clean_lazy_labels="managedobjectprofile", ) -class ManagedObjectProfile(NOCModel): +class ManagedObjectProfile(Model): class Meta(object): verbose_name = _("Managed Object Profile") verbose_name_plural = _("Managed Object Profiles") diff --git a/sa/models/managedobjectselector.py b/sa/models/managedobjectselector.py index 7c50f50796920f8c5948dd93b06e329d34b89640..0001fe22980fe6ef686107e1477e72d793ef8f31 100644 --- a/sa/models/managedobjectselector.py +++ b/sa/models/managedobjectselector.py @@ -10,7 +10,7 @@ import operator from threading import Lock # Third-party modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models from django.contrib.postgres.fields import ArrayField from django.db.models import Q @@ -18,7 +18,7 @@ import cachetools from psycopg2.extensions import adapt # NOC modules -from noc.core.model.base import NOCModel +from noc.core.translation import ugettext as _ from noc.inv.models.vendor import Vendor from noc.inv.models.platform import Platform from noc.inv.models.firmware import Firmware @@ -49,7 +49,7 @@ id_lock = Lock() ("sa.ManagedObjectSelectorByAttribute", "selector"), ] ) -class ManagedObjectSelector(NOCModel): +class ManagedObjectSelector(Model): class Meta(object): verbose_name = _("Managed Object Selector") verbose_name_plural = _("Managed Object Selectors") @@ -488,7 +488,7 @@ class ManagedObjectSelector(NOCModel): return " and ".join(query) -class ManagedObjectSelectorByAttribute(NOCModel): +class ManagedObjectSelectorByAttribute(Model): class Meta(object): verbose_name = _("Managed Object Selector by Attribute") db_table = "sa_managedobjectselectorbyattribute" diff --git a/sa/models/objectnotification.py b/sa/models/objectnotification.py index 3e89f29fbe6fdb97bfb2611a12bf56bf1cb727ce..3e51a57ec43b759c8aefae117d4cf9514b9b1dab 100644 --- a/sa/models/objectnotification.py +++ b/sa/models/objectnotification.py @@ -6,18 +6,18 @@ # ---------------------------------------------------------------------- # Third-party modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models # NOC modules -from noc.core.model.base import NOCModel +from noc.core.translation import ugettext as _ from noc.core.model.fields import DocumentReferenceField from noc.main.models.notificationgroup import NotificationGroup from noc.inv.models.resourcegroup import ResourceGroup from noc.lib.template import render_message -class ObjectNotification(NOCModel): +class ObjectNotification(Model): class Meta(object): verbose_name = _("Managed Object Notification") db_table = "sa_objectnotification" diff --git a/sa/models/useraccess.py b/sa/models/useraccess.py index 2195db028ea75900906ab99e2d72ccf90af36790..b19db88335d74314318688e8de036908bbd54ef6 100644 --- a/sa/models/useraccess.py +++ b/sa/models/useraccess.py @@ -9,18 +9,18 @@ from functools import reduce # Third-party modules -from noc.core.translation import ugettext as _ +from django.db.models.base import Model from django.db import models from django.db.models import Q # NOC modules -from noc.core.model.base import NOCModel +from noc.core.translation import ugettext as _ from noc.aaa.models.user import User from .groupaccess import GroupAccess from .administrativedomain import AdministrativeDomain -class UserAccess(NOCModel): +class UserAccess(Model): class Meta(object): verbose_name = _("User Access") verbose_name_plural = _("User Access") diff --git a/tests/models/test_0004_models.py b/tests/models/test_0004_models.py index 06dc32028ab162f1d4c4d1cdaac2d69062eef8fe..1993495d683714f62835d3e43374b30d9ca4da1c 100644 --- a/tests/models/test_0004_models.py +++ b/tests/models/test_0004_models.py @@ -34,6 +34,6 @@ def test_boolean_defaults(model_id, field_name, field): ), "BooleanField default must be set to either True or False" -@pytest.mark.parametrize("model", get_models()) -def test_tucked_pants(model): - assert hasattr(model, "_tucked_pants"), "Model must be subclass of NOCModel" +# @pytest.mark.parametrize("model", get_models()) +# def test_tucked_pants(model): +# assert hasattr(model, "_tucked_pants"), "Model must be subclass of NOCModel"