Merge pull request #9576 from huntabyte/feature-7702

Closes #7702: Add Power feed defaults to user configurations
This commit is contained in:
Jeremy Stretch 2022-06-23 17:00:06 -04:00 committed by GitHub
commit f7de2611c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 3 deletions

View File

@ -6,6 +6,7 @@ from django.urls import reverse
from dcim.choices import * from dcim.choices import *
from dcim.constants import * from dcim.constants import *
from netbox.config import ConfigItem
from netbox.models import NetBoxModel from netbox.models import NetBoxModel
from utilities.validators import ExclusionValidator from utilities.validators import ExclusionValidator
from .device_components import LinkTermination, PathEndpoint from .device_components import LinkTermination, PathEndpoint
@ -105,16 +106,16 @@ class PowerFeed(NetBoxModel, PathEndpoint, LinkTermination):
default=PowerFeedPhaseChoices.PHASE_SINGLE default=PowerFeedPhaseChoices.PHASE_SINGLE
) )
voltage = models.SmallIntegerField( voltage = models.SmallIntegerField(
default=POWERFEED_VOLTAGE_DEFAULT, default=ConfigItem('POWERFEED_DEFAULT_VOLTAGE'),
validators=[ExclusionValidator([0])] validators=[ExclusionValidator([0])]
) )
amperage = models.PositiveSmallIntegerField( amperage = models.PositiveSmallIntegerField(
validators=[MinValueValidator(1)], validators=[MinValueValidator(1)],
default=POWERFEED_AMPERAGE_DEFAULT default=ConfigItem('POWERFEED_DEFAULT_AMPERAGE')
) )
max_utilization = models.PositiveSmallIntegerField( max_utilization = models.PositiveSmallIntegerField(
validators=[MinValueValidator(1), MaxValueValidator(100)], validators=[MinValueValidator(1), MaxValueValidator(100)],
default=POWERFEED_MAX_UTILIZATION_DEFAULT, default=ConfigItem('POWERFEED_DEFAULT_MAX_UTILIZATION'),
help_text="Maximum permissible draw (percentage)" help_text="Maximum permissible draw (percentage)"
) )
available_power = models.PositiveIntegerField( available_power = models.PositiveIntegerField(

View File

@ -15,6 +15,9 @@ class ConfigRevisionAdmin(admin.ModelAdmin):
('Rack Elevations', { ('Rack Elevations', {
'fields': ('RACK_ELEVATION_DEFAULT_UNIT_HEIGHT', 'RACK_ELEVATION_DEFAULT_UNIT_WIDTH'), 'fields': ('RACK_ELEVATION_DEFAULT_UNIT_HEIGHT', 'RACK_ELEVATION_DEFAULT_UNIT_WIDTH'),
}), }),
('Power', {
'fields': ('POWERFEED_DEFAULT_VOLTAGE', 'POWERFEED_DEFAULT_AMPERAGE', 'POWERFEED_DEFAULT_MAX_UTILIZATION')
}),
('IPAM', { ('IPAM', {
'fields': ('ENFORCE_GLOBAL_UNIQUE', 'PREFER_IPV4'), 'fields': ('ENFORCE_GLOBAL_UNIQUE', 'PREFER_IPV4'),
}), }),

View File

@ -82,6 +82,31 @@ PARAMS = (
field=forms.IntegerField field=forms.IntegerField
), ),
# Power
ConfigParam(
name='POWERFEED_DEFAULT_VOLTAGE',
label='Powerfeed voltage',
default=120,
description="Default voltage for powerfeeds",
field=forms.IntegerField
),
ConfigParam(
name='POWERFEED_DEFAULT_AMPERAGE',
label='Powerfeed amperage',
default=15,
description="Default amperage for powerfeeds",
field=forms.IntegerField
),
ConfigParam(
name='POWERFEED_DEFAULT_MAX_UTILIZATION',
label='Powerfeed max utilization',
default=80,
description="Default max utilization for powerfeeds",
field=forms.IntegerField
),
# Security # Security
ConfigParam( ConfigParam(
name='ALLOWED_URL_SCHEMES', name='ALLOWED_URL_SCHEMES',