summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/vyos/interfaceconfig.py55
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):
"""