Ejemplo n.º 1
0
class Backend(models.Model):
    address = models.GenericIPAddressField(protocol='IPv4')
    port = models.PositiveIntegerField(
        default='80',
        validators=[MinValueValidator(1), MaxValueValidator(65535)]
    )
    weight = models.PositiveIntegerField(
        default='1',
        choices=[(x, x) for x in range(0, 101)]
    )
    dc = models.ForeignKey(Dc, on_delete=models.PROTECT)
    max_connections = models.PositiveIntegerField(
        default='5',
        choices=[(x, x) for x in range(1, 101)]
    )
    connect_timeout = NormalizedDecimalField(
        default='0.30',
        decimal_places=2,
        max_digits=4,
        choices=generate_choices(1, 101, 100),
        verbose_name=u'Connect timeout (s)'
    )
    first_byte_timeout = NormalizedDecimalField(
        default='5',
        decimal_places=2,
        max_digits=5,
        choices=generate_choices(1, 8001, 100),
        verbose_name=u'First byte timeout (s)'
    )
    between_bytes_timeout = NormalizedDecimalField(
        default='1',
        decimal_places=2,
        max_digits=5,
        choices=generate_choices(1, 8001, 100),
        verbose_name=u'Between bytes timeout (s)'
    )
    director = models.ForeignKey(
        Director,
        related_name='backends',
        on_delete=models.PROTECT
    )
    enabled = models.BooleanField(default=True)
    tags = TaggableManager(blank=True)
    inherit_time_profile = models.BooleanField(default=False)

    def __unicode__(self):
        return make_backend_name(self)

    class Meta:
        unique_together = (('address', 'port', 'director'),)
Ejemplo n.º 2
0
class Probe(models.Model):
    name = models.CharField(max_length=30,
                            validators=[name_validator],
                            unique=True)
    url = models.CharField(max_length=50)
    expected_response = models.PositiveIntegerField(default='200')
    interval = models.PositiveIntegerField(default='3',
                                           choices=[(x, x)
                                                    for x in range(1, 301)],
                                           verbose_name='Interval (s)')
    timeout = NormalizedDecimalField(default='1',
                                     decimal_places=1,
                                     max_digits=4,
                                     choices=generate_choices(1, 51, 10, 1),
                                     verbose_name='Timeout (s)')
    window = models.PositiveIntegerField(default='5',
                                         choices=[(x, x) for x in range(1, 6)],
                                         verbose_name='Window (s)')
    threshold = models.PositiveIntegerField(default='3',
                                            choices=[(x, x)
                                                     for x in range(1, 301)])
    start_as_healthy = models.BooleanField(
        'Start backend as healthy',
        default=False,
        help_text=
        '<i>New backend is starting with healthy status, there is no need to initial health check pass</i>'
    )

    def __str__(self):
        return "%s (%s)" % (self.name, self.url)
Ejemplo n.º 3
0
class Probe(models.Model):
    name = models.CharField(max_length=30, validators=[vcl_name_validator], unique=True)
    url = models.CharField(max_length=50)
    expected_response = models.PositiveIntegerField(default='200')
    interval = models.PositiveIntegerField(
        default='3',
        choices=[(x, x) for x in range(1, 301)],
        verbose_name=u'Interval (s)'
    )
    timeout = NormalizedDecimalField(
        default='1',
        decimal_places=1,
        max_digits=4,
        choices=generate_choices(1, 51, 10, 1),
        verbose_name=u'Timeout (s)'
    )
    window = models.PositiveIntegerField(
        default='5',
        choices=[(x, x) for x in range(1, 6)],
        verbose_name=u'Window (s)'
    )
    threshold = models.PositiveIntegerField(
        default='3',
        choices=[(x, x) for x in range(1, 301)]
    )

    def __unicode__(self):
        return "%s (%s)" % (self.name, self.url)
Ejemplo n.º 4
0
def test_generate_choices():
    div = Decimal(5)
    expected_choices = [
        (Decimal(0 / div), '0.00'),
        (Decimal(1 / div), '0.20'),
        (Decimal(2 / div), '0.40'),
        (Decimal(3 / div), '0.60'),
        (Decimal(4 / div), '0.80'),
        (Decimal(5 / div), '1.00')
    ]
    assert_equals(expected_choices, generate_choices(0, 6, 5))
Ejemplo n.º 5
0
def test_generate_choices():
    div = Decimal(5)
    expected_choices = [
        (Decimal(0 / div), '0.00'),
        (Decimal(1 / div), '0.20'),
        (Decimal(2 / div), '0.40'),
        (Decimal(3 / div), '0.60'),
        (Decimal(4 / div), '0.80'),
        (Decimal(5 / div), '1.00')
    ]
    assert_equals(expected_choices, generate_choices(0, 6, 5))