Rework InterfaceTypes and PortTypes classes

This commit is contained in:
Jeremy Stretch 2019-10-17 16:38:31 -04:00
parent d787c353f3
commit 2ffbced47e
2 changed files with 138 additions and 142 deletions

View File

@ -613,135 +613,133 @@ class InterfaceTypes:
# Other # Other
TYPE_OTHER = 'other' TYPE_OTHER = 'other'
@classmethod TYPE_CHOICES = (
def as_choices(cls): (
return ( 'Virtual interfaces',
( (
'Virtual interfaces', (TYPE_VIRTUAL, 'Virtual'),
( (TYPE_LAG, 'Link Aggregation Group (LAG)'),
(cls.TYPE_VIRTUAL, 'Virtual'),
(cls.TYPE_LAG, 'Link Aggregation Group (LAG)'),
),
), ),
),
(
'Ethernet (fixed)',
( (
'Ethernet (fixed)', (TYPE_100ME_FIXED, '100BASE-TX (10/100ME)'),
( (TYPE_1GE_FIXED, '1000BASE-T (1GE)'),
(cls.TYPE_100ME_FIXED, '100BASE-TX (10/100ME)'), (TYPE_2GE_FIXED, '2.5GBASE-T (2.5GE)'),
(cls.TYPE_1GE_FIXED, '1000BASE-T (1GE)'), (TYPE_5GE_FIXED, '5GBASE-T (5GE)'),
(cls.TYPE_2GE_FIXED, '2.5GBASE-T (2.5GE)'), (TYPE_10GE_FIXED, '10GBASE-T (10GE)'),
(cls.TYPE_5GE_FIXED, '5GBASE-T (5GE)'), (TYPE_10GE_CX4, '10GBASE-CX4 (10GE)'),
(cls.TYPE_10GE_FIXED, '10GBASE-T (10GE)'), )
(cls.TYPE_10GE_CX4, '10GBASE-CX4 (10GE)'), ),
) (
), 'Ethernet (modular)',
( (
'Ethernet (modular)', (TYPE_1GE_GBIC, 'GBIC (1GE)'),
( (TYPE_1GE_SFP, 'SFP (1GE)'),
(cls.TYPE_1GE_GBIC, 'GBIC (1GE)'), (TYPE_10GE_SFP_PLUS, 'SFP+ (10GE)'),
(cls.TYPE_1GE_SFP, 'SFP (1GE)'), (TYPE_10GE_XFP, 'XFP (10GE)'),
(cls.TYPE_10GE_SFP_PLUS, 'SFP+ (10GE)'), (TYPE_10GE_XENPAK, 'XENPAK (10GE)'),
(cls.TYPE_10GE_XFP, 'XFP (10GE)'), (TYPE_10GE_X2, 'X2 (10GE)'),
(cls.TYPE_10GE_XENPAK, 'XENPAK (10GE)'), (TYPE_25GE_SFP28, 'SFP28 (25GE)'),
(cls.TYPE_10GE_X2, 'X2 (10GE)'), (TYPE_40GE_QSFP_PLUS, 'QSFP+ (40GE)'),
(cls.TYPE_25GE_SFP28, 'SFP28 (25GE)'), (TYPE_50GE_QSFP28, 'QSFP28 (50GE)'),
(cls.TYPE_40GE_QSFP_PLUS, 'QSFP+ (40GE)'), (TYPE_100GE_CFP, 'CFP (100GE)'),
(cls.TYPE_50GE_QSFP28, 'QSFP28 (50GE)'), (TYPE_100GE_CFP2, 'CFP2 (100GE)'),
(cls.TYPE_100GE_CFP, 'CFP (100GE)'), (TYPE_200GE_CFP2, 'CFP2 (200GE)'),
(cls.TYPE_100GE_CFP2, 'CFP2 (100GE)'), (TYPE_100GE_CFP4, 'CFP4 (100GE)'),
(cls.TYPE_200GE_CFP2, 'CFP2 (200GE)'), (TYPE_100GE_CPAK, 'Cisco CPAK (100GE)'),
(cls.TYPE_100GE_CFP4, 'CFP4 (100GE)'), (TYPE_100GE_QSFP28, 'QSFP28 (100GE)'),
(cls.TYPE_100GE_CPAK, 'Cisco CPAK (100GE)'), (TYPE_200GE_QSFP56, 'QSFP56 (200GE)'),
(cls.TYPE_100GE_QSFP28, 'QSFP28 (100GE)'), (TYPE_400GE_QSFP_DD, 'QSFP-DD (400GE)'),
(cls.TYPE_200GE_QSFP56, 'QSFP56 (200GE)'), )
(cls.TYPE_400GE_QSFP_DD, 'QSFP-DD (400GE)'), ),
) (
), 'Wireless',
( (
'Wireless', (TYPE_80211A, 'IEEE 802.11a'),
( (TYPE_80211G, 'IEEE 802.11b/g'),
(cls.TYPE_80211A, 'IEEE 802.11a'), (TYPE_80211N, 'IEEE 802.11n'),
(cls.TYPE_80211G, 'IEEE 802.11b/g'), (TYPE_80211AC, 'IEEE 802.11ac'),
(cls.TYPE_80211N, 'IEEE 802.11n'), (TYPE_80211AD, 'IEEE 802.11ad'),
(cls.TYPE_80211AC, 'IEEE 802.11ac'), )
(cls.TYPE_80211AD, 'IEEE 802.11ad'), ),
) (
), 'Cellular',
( (
'Cellular', (TYPE_GSM, 'GSM'),
( (TYPE_CDMA, 'CDMA'),
(cls.TYPE_GSM, 'GSM'), (TYPE_LTE, 'LTE'),
(cls.TYPE_CDMA, 'CDMA'), )
(cls.TYPE_LTE, 'LTE'), ),
) (
), 'SONET',
( (
'SONET', (TYPE_SONET_OC3, 'OC-3/STM-1'),
( (TYPE_SONET_OC12, 'OC-12/STM-4'),
(cls.TYPE_SONET_OC3, 'OC-3/STM-1'), (TYPE_SONET_OC48, 'OC-48/STM-16'),
(cls.TYPE_SONET_OC12, 'OC-12/STM-4'), (TYPE_SONET_OC192, 'OC-192/STM-64'),
(cls.TYPE_SONET_OC48, 'OC-48/STM-16'), (TYPE_SONET_OC768, 'OC-768/STM-256'),
(cls.TYPE_SONET_OC192, 'OC-192/STM-64'), (TYPE_SONET_OC1920, 'OC-1920/STM-640'),
(cls.TYPE_SONET_OC768, 'OC-768/STM-256'), (TYPE_SONET_OC3840, 'OC-3840/STM-1234'),
(cls.TYPE_SONET_OC1920, 'OC-1920/STM-640'), )
(cls.TYPE_SONET_OC3840, 'OC-3840/STM-1234'), ),
) (
), 'FibreChannel',
( (
'FibreChannel', (TYPE_1GFC_SFP, 'SFP (1GFC)'),
( (TYPE_2GFC_SFP, 'SFP (2GFC)'),
(cls.TYPE_1GFC_SFP, 'SFP (1GFC)'), (TYPE_4GFC_SFP, 'SFP (4GFC)'),
(cls.TYPE_2GFC_SFP, 'SFP (2GFC)'), (TYPE_8GFC_SFP_PLUS, 'SFP+ (8GFC)'),
(cls.TYPE_4GFC_SFP, 'SFP (4GFC)'), (TYPE_16GFC_SFP_PLUS, 'SFP+ (16GFC)'),
(cls.TYPE_8GFC_SFP_PLUS, 'SFP+ (8GFC)'), (TYPE_32GFC_SFP28, 'SFP28 (32GFC)'),
(cls.TYPE_16GFC_SFP_PLUS, 'SFP+ (16GFC)'), (TYPE_128GFC_QSFP28, 'QSFP28 (128GFC)'),
(cls.TYPE_32GFC_SFP28, 'SFP28 (32GFC)'), )
(cls.TYPE_128GFC_QSFP28, 'QSFP28 (128GFC)'), ),
) (
), 'InfiniBand',
( (
'InfiniBand', (TYPE_INFINIBAND_SDR, 'SDR (2 Gbps)'),
( (TYPE_INFINIBAND_DDR, 'DDR (4 Gbps)'),
(cls.TYPE_INFINIBAND_SDR, 'SDR (2 Gbps)'), (TYPE_INFINIBAND_QDR, 'QDR (8 Gbps)'),
(cls.TYPE_INFINIBAND_DDR, 'DDR (4 Gbps)'), (TYPE_INFINIBAND_FDR10, 'FDR10 (10 Gbps)'),
(cls.TYPE_INFINIBAND_QDR, 'QDR (8 Gbps)'), (TYPE_INFINIBAND_FDR, 'FDR (13.5 Gbps)'),
(cls.TYPE_INFINIBAND_FDR10, 'FDR10 (10 Gbps)'), (TYPE_INFINIBAND_EDR, 'EDR (25 Gbps)'),
(cls.TYPE_INFINIBAND_FDR, 'FDR (13.5 Gbps)'), (TYPE_INFINIBAND_HDR, 'HDR (50 Gbps)'),
(cls.TYPE_INFINIBAND_EDR, 'EDR (25 Gbps)'), (TYPE_INFINIBAND_NDR, 'NDR (100 Gbps)'),
(cls.TYPE_INFINIBAND_HDR, 'HDR (50 Gbps)'), (TYPE_INFINIBAND_XDR, 'XDR (250 Gbps)'),
(cls.TYPE_INFINIBAND_NDR, 'NDR (100 Gbps)'), )
(cls.TYPE_INFINIBAND_XDR, 'XDR (250 Gbps)'), ),
) (
), 'Serial',
( (
'Serial', (TYPE_T1, 'T1 (1.544 Mbps)'),
( (TYPE_E1, 'E1 (2.048 Mbps)'),
(cls.TYPE_T1, 'T1 (1.544 Mbps)'), (TYPE_T3, 'T3 (45 Mbps)'),
(cls.TYPE_E1, 'E1 (2.048 Mbps)'), (TYPE_E3, 'E3 (34 Mbps)'),
(cls.TYPE_T3, 'T3 (45 Mbps)'), )
(cls.TYPE_E3, 'E3 (34 Mbps)'), ),
) (
), 'Stacking',
( (
'Stacking', (TYPE_STACKWISE, 'Cisco StackWise'),
( (TYPE_STACKWISE_PLUS, 'Cisco StackWise Plus'),
(cls.TYPE_STACKWISE, 'Cisco StackWise'), (TYPE_FLEXSTACK, 'Cisco FlexStack'),
(cls.TYPE_STACKWISE_PLUS, 'Cisco StackWise Plus'), (TYPE_FLEXSTACK_PLUS, 'Cisco FlexStack Plus'),
(cls.TYPE_FLEXSTACK, 'Cisco FlexStack'), (TYPE_JUNIPER_VCP, 'Juniper VCP'),
(cls.TYPE_FLEXSTACK_PLUS, 'Cisco FlexStack Plus'), (TYPE_SUMMITSTACK, 'Extreme SummitStack'),
(cls.TYPE_JUNIPER_VCP, 'Juniper VCP'), (TYPE_SUMMITSTACK128, 'Extreme SummitStack-128'),
(cls.TYPE_SUMMITSTACK, 'Extreme SummitStack'), (TYPE_SUMMITSTACK256, 'Extreme SummitStack-256'),
(cls.TYPE_SUMMITSTACK128, 'Extreme SummitStack-128'), (TYPE_SUMMITSTACK512, 'Extreme SummitStack-512'),
(cls.TYPE_SUMMITSTACK256, 'Extreme SummitStack-256'), )
(cls.TYPE_SUMMITSTACK512, 'Extreme SummitStack-512'), ),
) (
), 'Other',
( (
'Other', (TYPE_OTHER, 'Other'),
( )
(cls.TYPE_OTHER, 'Other'), ),
) )
),
)
@classmethod @classmethod
def slug_to_integer(cls, slug): def slug_to_integer(cls, slug):
@ -844,33 +842,31 @@ class PortTypes:
TYPE_LSH = 'lsh' TYPE_LSH = 'lsh'
TYPE_LSH_APC = 'lsh-apc' TYPE_LSH_APC = 'lsh-apc'
@classmethod TYPE_CHOICES = (
def as_choices(cls): (
return ( 'Copper',
( (
'Copper', (TYPE_8P8C, '8P8C'),
( (TYPE_110_PUNCH, '110 Punch'),
(cls.TYPE_8P8C, '8P8C'), (TYPE_BNC, 'BNC'),
(cls.TYPE_110_PUNCH, '110 Punch'),
(cls.TYPE_BNC, 'BNC'),
),
), ),
),
(
'Fiber Optic',
( (
'Fiber Optic', (TYPE_FC, 'FC'),
( (TYPE_LC, 'LC'),
(cls.TYPE_FC, 'FC'), (TYPE_LC_APC, 'LC/APC'),
(cls.TYPE_LC, 'LC'), (TYPE_LSH, 'LSH'),
(cls.TYPE_LC_APC, 'LC/APC'), (TYPE_LSH_APC, 'LSH/APC'),
(cls.TYPE_LSH, 'LSH'), (TYPE_MPO, 'MPO'),
(cls.TYPE_LSH_APC, 'LSH/APC'), (TYPE_MTRJ, 'MTRJ'),
(cls.TYPE_MPO, 'MPO'), (TYPE_SC, 'SC'),
(cls.TYPE_MTRJ, 'MTRJ'), (TYPE_SC_APC, 'SC/APC'),
(cls.TYPE_SC, 'SC'), (TYPE_ST, 'ST'),
(cls.TYPE_SC_APC, 'SC/APC'),
(cls.TYPE_ST, 'ST'),
)
) )
) )
)
@classmethod @classmethod
def slug_to_integer(cls, slug): def slug_to_integer(cls, slug):

View File

@ -1290,7 +1290,7 @@ class PowerOutletTemplateImportForm(ComponentTemplateImportForm):
class InterfaceTemplateImportForm(ComponentTemplateImportForm): class InterfaceTemplateImportForm(ComponentTemplateImportForm):
type = forms.ChoiceField( type = forms.ChoiceField(
choices=InterfaceTypes.as_choices() choices=InterfaceTypes.TYPE_CHOICES
) )
class Meta: class Meta:
@ -1307,7 +1307,7 @@ class InterfaceTemplateImportForm(ComponentTemplateImportForm):
class FrontPortTemplateImportForm(ComponentTemplateImportForm): class FrontPortTemplateImportForm(ComponentTemplateImportForm):
type = forms.ChoiceField( type = forms.ChoiceField(
choices=PortTypes.as_choices() choices=PortTypes.TYPE_CHOICES
) )
rear_port = forms.ModelChoiceField( rear_port = forms.ModelChoiceField(
queryset=RearPortTemplate.objects.all(), queryset=RearPortTemplate.objects.all(),
@ -1329,7 +1329,7 @@ class FrontPortTemplateImportForm(ComponentTemplateImportForm):
class RearPortTemplateImportForm(ComponentTemplateImportForm): class RearPortTemplateImportForm(ComponentTemplateImportForm):
type = forms.ChoiceField( type = forms.ChoiceField(
choices=PortTypes.as_choices() choices=PortTypes.TYPE_CHOICES
) )
class Meta: class Meta: