diff options
author | Christian Poessinger <christian@poessinger.com> | 2019-08-30 12:00:44 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2019-08-30 12:00:44 +0200 |
commit | cb1b72c5ccce1bd2d0f0b02eb4abeee0b5635d55 (patch) | |
tree | 503adcf5dd5c1f3afc79b84f0cedc8c5cd6371b7 | |
parent | bb5ff5e0b968612890791de48e43479b0352c532 (diff) | |
download | vyos-1x-cb1b72c5ccce1bd2d0f0b02eb4abeee0b5635d55.tar.gz vyos-1x-cb1b72c5ccce1bd2d0f0b02eb4abeee0b5635d55.zip |
Python/ifconfig: replace linkstate() with up()/down() methods
-rw-r--r-- | python/vyos/interfaceconfig.py | 55 |
1 files changed, 32 insertions, 23 deletions
diff --git a/python/vyos/interfaceconfig.py b/python/vyos/interfaceconfig.py index c40912e3c..f9e231267 100644 --- a/python/vyos/interfaceconfig.py +++ b/python/vyos/interfaceconfig.py @@ -176,30 +176,39 @@ class Interface: f.write(str(ifalias)) - @property - def linkstate(self): - try: - ret = subprocess.check_output( - ['ip -j link show ' + self._ifname], shell=True).decode() - s = json.loads(ret) - return s[0]['operstate'].lower() - except subprocess.CalledProcessError as e: - if self._debug(): - self._debug(e) - return None + def up(self): + """ + Bring interface up + + Example: + + from vyos.interfaceconfig import Interface + i = Interface('br100', type='bridge') + i.up() + """ + + # Assemble command executed on system. Unfortunately there is no way + # to up/down an interface via sysfs + cmd = 'ip link set dev "{}" up'.format(self._ifname) + self._cmd(cmd) + + + def down(self): + """ + Bring interface down + + Example: + + from vyos.interfaceconfig import Interface + i = Interface('br100', type='bridge') + i.down() + """ + + # Assemble command executed on system. Unfortunately there is no way + # to up/down an interface via sysfs + cmd = 'ip link set dev "{}" down'.format(self._ifname) + self._cmd(cmd) - @linkstate.setter - def linkstate(self, state='up'): - if str(state).lower() == 'up' or str(state).lower() == 'down': - self._linkstate = str(state).lower() - else: - self._linkstate = 'up' - try: - ret = subprocess.check_output( - ['ip link set dev ' + self._ifname + ' ' + state], shell=True).decode() - except subprocess.CalledProcessError as e: - if self._debug(): - self._debug(e) def _debug(self, e=None): """ |