0687489c43
``switch_mgmt_addresses`` and ``switch_system_description`` are useful for identification purposes. Change-Id: I292b9b20dd2b1eb1440b5047f5cf89ea47443e5b
100 lines
4.0 KiB
Python
100 lines
4.0 KiB
Python
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
|
|
class InterfaceResource(object):
|
|
"""InterfaceResource class
|
|
|
|
This class is used to manage the fields including Link Layer Discovery
|
|
Protocols (LLDP) fields, that an interface contains. An individual
|
|
field consists of a 'field_id' (key) and a 'label' (value).
|
|
"""
|
|
|
|
FIELDS = {
|
|
'interface': 'Interface',
|
|
'mac': 'MAC Address',
|
|
'node_ident': 'Node',
|
|
'switch_capabilities_enabled': 'Switch Capabilities Enabled',
|
|
'switch_capabilities_support': 'Switch Capabilities Supported',
|
|
'switch_chassis_id': 'Switch Chassis ID',
|
|
'switch_mgmt_addresses': 'Switch Management Addresses',
|
|
'switch_port_autonegotiation_enabled':
|
|
'Switch Port Autonegotiation Enabled',
|
|
'switch_port_autonegotiation_support':
|
|
'Switch Port Autonegotiation Supported',
|
|
'switch_port_description': 'Switch Port Description',
|
|
'switch_port_id': 'Switch Port ID',
|
|
'switch_port_link_aggregation_enabled':
|
|
'Switch Port Link Aggregation Enabled',
|
|
'switch_port_link_aggregation_support':
|
|
'Switch Port Link Aggregation Supported',
|
|
'switch_port_link_aggregation_id': 'Switch Port Link Aggregation ID',
|
|
'switch_port_management_vlan_id': 'Switch Port Mgmt VLAN ID',
|
|
'switch_port_mau_type': 'Switch Port Mau Type',
|
|
'switch_port_mtu': 'Switch Port MTU',
|
|
'switch_port_physical_capabilities':
|
|
'Switch Port Physical Capabilities',
|
|
'switch_port_protocol_vlan_enabled':
|
|
'Switch Port Protocol VLAN Enabled',
|
|
'switch_port_protocol_vlan_support':
|
|
'Switch Port Protocol VLAN Supported',
|
|
'switch_port_protocol_vlan_ids': 'Switch Port Protocol VLAN IDs',
|
|
'switch_port_untagged_vlan_id': 'Switch Port Untagged VLAN',
|
|
'switch_port_vlans': 'Switch Port VLANs',
|
|
'switch_port_vlan_ids': 'Switch Port VLAN IDs',
|
|
'switch_protocol_identities': 'Switch Protocol Identities',
|
|
'switch_system_description': 'Switch System Description',
|
|
'switch_system_name': 'Switch System Name'
|
|
}
|
|
"""A mapping of all known interface fields to their descriptions."""
|
|
|
|
DEFAULT_FIELD_IDS = ['interface',
|
|
'mac',
|
|
'switch_port_vlan_ids',
|
|
'switch_chassis_id',
|
|
'switch_port_id']
|
|
"""Interface fields displayed by default."""
|
|
|
|
def __init__(self, field_ids=None, detailed=False):
|
|
"""Create an InterfaceResource object
|
|
|
|
:param field_ids: A list of strings that the Resource object will
|
|
contain. Each string must match an existing key in
|
|
FIELDS.
|
|
:param detailed: If True, use the all of the keys in FIELDS instead
|
|
of input field_ids
|
|
"""
|
|
if field_ids is None:
|
|
# Default field set in logical format, so don't sort
|
|
field_ids = self.DEFAULT_FIELD_IDS
|
|
|
|
if detailed:
|
|
field_ids = sorted(self.FIELDS.keys())
|
|
|
|
self._fields = tuple(field_ids)
|
|
self._labels = tuple(self.FIELDS[x] for x in field_ids)
|
|
|
|
@property
|
|
def fields(self):
|
|
"""List of fields displayed for this resource."""
|
|
return self._fields
|
|
|
|
@property
|
|
def labels(self):
|
|
"""List of labels for fields displayed for this resource."""
|
|
return self._labels
|
|
|
|
|
|
INTERFACE_DEFAULT = InterfaceResource()
|