class HostInterfaceManager {
static INTERFACE_TYPE_AGENT = 1;
static INTERFACE_TYPE_SNMP = 2;
static INTERFACE_TYPE_IPMI = 3;
static INTERFACE_TYPE_JMX = 4;
static SNMP_V1 = 1;
static SNMP_V2C = 2;
static SNMP_V3 = 3;
static SNMP_BULK_ENABLED = 1;
static INTERFACE_SECONDARY = 0;
static INTERFACE_PRIMARY = 1;
static INTERFACE_USE_IP = 1;
static ITEM_SNMPV3_SECURITYLEVEL_NOAUTHNOPRIV = 0;
static ITEM_SNMPV3_SECURITYLEVEL_AUTHNOPRIV = 1;
static ITEM_SNMPV3_SECURITYLEVEL_AUTHPRIV = 2;
static ITEM_SNMPV3_AUTHPROTOCOL_MD5 = 0;
static ITEM_SNMPV3_PRIVPROTOCOL_DES = 0;
static ZBX_STYLE_HOST_INTERFACE_BTN_MAIN_INTERFACE = 'interface-btn-main-interface';
static ZBX_STYLE_HOST_INTERFACE_BTN_REMOVE = 'interface-btn-remove';
static ZBX_STYLE_HOST_INTERFACE_BTN_TOGGLE = 'interface-btn-toggle';
static ZBX_STYLE_HOST_INTERFACE_CELL_DETAILS = 'interface-cell-details';
static ZBX_STYLE_HOST_INTERFACE_CELL_USEIP = 'interface-cell-useip';
static ZBX_STYLE_HOST_INTERFACE_CONTAINER = 'interface-container';
static ZBX_STYLE_HOST_INTERFACE_CONTAINER_HEADER = 'interface-container-header';
static ZBX_STYLE_HOST_INTERFACE_INPUT_EXPAND = 'interface-input-expand';
static ZBX_STYLE_HOST_INTERFACE_ROW = 'interface-row';
static ZBX_STYLE_HOST_NO_INTERFACE = 'no-interface';
static ZBX_STYLE_LIST_ACCORDION_ITEM = 'list-accordion-item';
static ZBX_STYLE_LIST_ACCORDION_ITEM_OPENED = 'list-accordion-item-opened';
constructor(data, host_interface_row_tmpl) {
this.TEMPLATE = new Template(host_interface_row_tmpl);
this.DEFAULT_PORTS = {
agent: 10050,
snmp: 161,
jmx: 12345,
ipmi: 623
};
this.CONTAINER_IDS = {
[HostInterfaceManager.INTERFACE_TYPE_AGENT]: '#agentInterfaces',
[HostInterfaceManager.INTERFACE_TYPE_SNMP]: '#SNMPInterfaces',
[HostInterfaceManager.INTERFACE_TYPE_JMX]: '#JMXInterfaces',
[HostInterfaceManager.INTERFACE_TYPE_IPMI]: '#IPMIInterfaces'
};
this.INTERFACE_TYPES = {
'agent': HostInterfaceManager.INTERFACE_TYPE_AGENT,
'snmp': HostInterfaceManager.INTERFACE_TYPE_SNMP,
'jmx': HostInterfaceManager.INTERFACE_TYPE_JMX,
'ipmi': HostInterfaceManager.INTERFACE_TYPE_IPMI
};
this.INTERFACE_NAMES = {
[HostInterfaceManager.INTERFACE_TYPE_AGENT]: t('Agent'),
[HostInterfaceManager.INTERFACE_TYPE_SNMP]: t('SNMP'),
[HostInterfaceManager.INTERFACE_TYPE_JMX]: t('JMX'),
[HostInterfaceManager.INTERFACE_TYPE_IPMI]: t('IPMI')
};
this.allow_empty_message = true;
this.$noInterfacesMsg = jQuery('<div>', {
html: t('No interfaces are defined.'),
class: HostInterfaceManager.ZBX_STYLE_HOST_NO_INTERFACE
})
.insertAfter(jQuery('.' + HostInterfaceManager.ZBX_STYLE_HOST_INTERFACE_CONTAINER_HEADER));
this.interfaces = {};
this.data = data;
}