def test_GenericIPAddressField(self): lazy_func = lazy(lambda: '127.0.0.1', six.text_type) self.assertIsInstance( GenericIPAddressField().get_prep_value(lazy_func()), six.text_type) lazy_func = lazy(lambda: 0, int) self.assertIsInstance( GenericIPAddressField().get_prep_value(lazy_func()), six.text_type)
class NetworkDevice(Model): """Network Device""" display_name = CharField(max_length=100, verbose_name='Display Name') dns_name = CharField(max_length=75, verbose_name='DNS Name', null=True, blank=True) ip_address = GenericIPAddressField(protocol='IPv4', verbose_name='IP Address', null=True, blank=True) mac_address = MACAddressField(verbose_name='MAC Address', null=True, blank=True) upstream_device = ForeignKey('NetworkDevice', related_name='downstream_devices', null=True, blank=True, on_delete=CASCADE) room = ForeignKey(Room, verbose_name='Room', null=True, blank=True, on_delete=CASCADE) airwaves_id = IntegerField(null=True, blank=True) airwaves_is_up = NullBooleanField() def __str__(self): return self.display_name @cached_property def building(self): try: return self.room.building except AttributeError: return None @cached_property def community(self): try: return self.room.building.community except AttributeError: return None
class Proxy(Model): id = BigAutoField(verbose_name='ID', primary_key=True) ip = GenericIPAddressField(verbose_name='IPv4') port = IntegerField(verbose_name='端口') anonymity = CharField( verbose_name='匿名度', max_length=1, choices=(('h', '高匿'), ('l', '透明')), null=False, blank=True, default='h' ) proxy_type = CharField( verbose_name='类型', max_length=8, null=False, blank=True, default='http' ) location = CharField( verbose_name='位置', max_length=32, null=True, blank=True, default=None ) deleted = BooleanField( null=False, blank=True, default=False, verbose_name='已经删除' )
class ClearPassLoginAttempt(Model): ACCEPT_RESULT = 0 REJECT_RESULT = 1 TIMEOUT_RESULT = 2 RESULT_CHOICES = ( (ACCEPT_RESULT, 'ACCEPT'), (REJECT_RESULT, 'REJECT'), (TIMEOUT_RESULT, 'TIMEOUT'), ) username = CharField(max_length=50, blank=True, null=True, db_index=True) time = DateTimeField() service = CharField(max_length=100) roles = ArrayField(CharField(max_length=50)) client_mac_address = MACAddressField(db_index=True) enforcement_profiles = ArrayField(CharField(max_length=100)) result = PositiveSmallIntegerField(choices=RESULT_CHOICES) clearpass_ip = GenericIPAddressField() alerts = TextField(null=True, blank=True) def __str__(self): return ('Username: '******', Service: ' + str(self.service) + ', Roles: ' + str(self.roles) + '\n') @cached_property def client_mac_address_formatted(self): from .utils import mac_address_with_colons # noqa return mac_address_with_colons(self.client_mac_address) class Meta: verbose_name = 'ClearPass Login Attempt'
class GitServer(models.Model): name = models.CharField(_('Name'), max_length=255) ip = GenericIPAddressField(_('IP')) git_name = models.CharField(_('Git Name'), max_length=255) class Meta: verbose_name = _("Git Server") verbose_name_plural = _("Git Servers") def __str__(self): return self.name
class DomainName(Model): """Domain Names.""" ip_address = GenericIPAddressField(protocol='IPv4', verbose_name='IP Address') domain_name = CharField(max_length=100, verbose_name='Domain Name') sr_number = IntegerField(null=True, verbose_name='SR Number', db_column='ticket_id') def __str__(self): return 'DNS Record: ' + str(self.ip_address) @property def domain_name_request(self): if self.sr_number: # TODO: Update to use updated srsconnector # return DomainNameRequest.objects.get(ticket_id=self.sr_number) return None return None class Meta: verbose_name = 'Domain Name'
class Pinhole(Model): """Firewall Pinholes.""" ip_address = GenericIPAddressField(protocol='IPv4', verbose_name='IP Address') service_name = CharField(max_length=50, verbose_name='Service Name') inner_fw = BooleanField(default=None, verbose_name='Inner Firewall') border_fw = BooleanField(default=None, verbose_name='Border Firewall') tcp_ports = ListField(verbose_name='TCP Ports') udp_ports = ListField(verbose_name='UDP Ports') sr_number = IntegerField(null=True, verbose_name='SR Number', db_column='ticket_id') def __str__(self): return 'Pinhole: ' + str(self.ip_address) @property def pinhole_request(self): if self.sr_number: # TODO: Update to use updated srsconnector # return PinholeRequest.objects.get(ticket_id=self.sr_number) return None return None
class Usuario(models.Model): nombre = CharField(max_length=255, null=True, blank=True) mac = CharField(max_length=17, unique=True, validators=[ validate_MAC, ], null=True, blank=True) fecha_registro = DateTimeField(null=True, blank=True) responsable = models.ForeignKey(Responsable, null=True, blank=True) telefono = CharField(max_length=255, null=True, blank=True) zona = models.ForeignKey(Zona, null=True, blank=True) tipo = models.ForeignKey(TipoDeEquipo, null=True, blank=True) ip = GenericIPAddressField(unique=True) ip_int = BigIntegerField(default=0) def __str__(self): if self.nombre: return self.nombre + '(' + self.ip + ')' else: return self.ip
def test_GenericIPAddressField(self): self.assertIsInstance( GenericIPAddressField().get_prep_value('127.0.0.1'), six.text_type) self.assertIsInstance(GenericIPAddressField().get_prep_value(0), six.text_type)
class Message(models.Model): msg = TextField(max_length=250) ip_addr = GenericIPAddressField(blank=True, null=True) timestamp = DateTimeField(auto_now_add=True, blank=True, null=True)