Source code for jnpr.junos.cfg.phyport.classic

# 3rd-party
from lxml.builder import E

# local
from jnpr.junos.cfg.resource import Resource
from jnpr.junos import JXML
from jnpr.junos.cfg.phyport.base import PhyPortBase


[docs]class PhyPortClassic(PhyPortBase): # ----------------------------------------------------------------------- # XML readers # ----------------------------------------------------------------------- def _xml_to_py(self, has_xml, has_py): PhyPortBase._xml_to_py(self, has_xml, has_py) Resource.copyifexists(has_xml, 'speed', has_py) Resource.copyifexists(has_xml, 'link-mode', has_py, 'duplex') if has_xml.find('gigether-options/loopback') is not None: has_py['loopback'] = True has_py['$unit_count'] = len(has_xml.findall('unit')) # normalizers if 'duplex' in has_py: PhyPortBase._set_invert(has_py, 'duplex', self.PORT_DUPLEX) # ----------------------------------------------------------------------- # XML writers # ----------------------------------------------------------------------- def _xml_change_speed(self, xml): Resource.xml_set_or_delete(xml, 'speed', self.speed) return True def _xml_change_duplex(self, xml): value = self.PORT_DUPLEX.get(self.duplex) Resource.xml_set_or_delete(xml, 'link-mode', value) return True def _xml_change_loopback(self, xml): opts = E('gigether-options') opts.append(Resource.xmltag_set_or_del('loopback', self.loopback)) xml.append(opts) return True