]> git.proxmox.com Git - mirror_ifupdown2.git/blame - ifupdown2/ifupdown/ifupdownbase.py
bridge: vlan-aware: add new boolean policy "vlan_aware_bridge_address_support"
[mirror_ifupdown2.git] / ifupdown2 / ifupdown / ifupdownbase.py
CommitLineData
a6f80f0e 1#!/usr/bin/python
3e8ee54f 2#
d486dd0d 3# Copyright 2014-2017 Cumulus Networks, Inc. All rights reserved.
3e8ee54f 4# Author: Roopa Prabhu, roopa@cumulusnetworks.com
5#
6# ifupdownBase --
7# base object for various ifupdown objects
8#
a6f80f0e 9
a6f80f0e 10import re
f3215127 11import os
d486dd0d 12import logging
c326d03c 13import traceback
a4a53f4b 14
d486dd0d
JF
15try:
16 from ifupdown2.ifupdown.netlink import netlink
17
18 import ifupdown2.ifupdown.ifupdownflags as ifupdownflags
19except ImportError:
20 from ifupdown.netlink import netlink
21
22 import ifupdown.ifupdownflags as ifupdownflags
23
a6f80f0e 24
25class ifupdownBase(object):
26
27 def __init__(self):
28 modulename = self.__class__.__name__
29 self.logger = logging.getLogger('ifupdown.' + modulename)
30
3e8ee54f 31 def ignore_error(self, errmsg):
fc5e1735 32 if (ifupdownflags.flags.FORCE == True or re.search(r'exists', errmsg,
3e8ee54f 33 re.IGNORECASE | re.MULTILINE) is not None):
34 return True
35 return False
36
37 def log_warn(self, str):
38 if self.ignore_error(str) == False:
39 if self.logger.getEffectiveLevel() == logging.DEBUG:
40 traceback.print_stack()
d486dd0d 41 traceback.print_exc()
3e8ee54f 42 self.logger.warn(str)
43 pass
44
45 def log_error(self, str):
46 if self.ignore_error(str) == False:
d486dd0d 47 raise Exception(str)
3e8ee54f 48 else:
49 pass
f3215127 50
51 def link_exists(self, ifacename):
52 return os.path.exists('/sys/class/net/%s' %ifacename)
be0b20f2 53
54 def link_up(self, ifacename):
2864d6f3 55 netlink.link_set_updown(ifacename, "up")
be0b20f2 56
57 def link_down(self, ifacename):
2864d6f3 58 netlink.link_set_updown(ifacename, "down")