예제 #1
0
 def teardown(self):
     if (self.default_gateway, self.df_iface) == (None, None):
         execute(['ip', 'ro', 'del',
                 'default', 'via', self.gateway, 'dev', self.iface])
     elif ((self.default_gateway, self.df_iface)
           != (self.gateway, self.iface)):
         execute(['ip', 'ro', 'change',
                 'default', 'via', self.default_gateway,
                 'dev', self.df_iface])
예제 #2
0
def check_exist(iface):
    rc, _, err = execute(['ip', 'link', 'show', iface])
    if rc == 1 and 'does not exist' in err:
        return False
    elif rc:
        msg = 'ip link show {0} failed with {1}'.format(iface, err)
        raise CommandFailed(msg)
    return True
예제 #3
0
 def setup(self):
     self.is_up = check_up(self.iface)
     if self.is_up is False:
         rc, out, err = execute(['ip', 'link', 'set',
                                 'dev', self.iface, 'up'])
         if rc:
             msg = 'Cannot up interface {0}. Err: {1}'.format(
                 self.iface, err)
             raise CommandFailed(msg)
예제 #4
0
    def setup(self):
        self.default_gateway, self.df_iface = get_default_gateway()

        rc = None
        if (self.default_gateway, self.df_iface) == (None, None):
            rc, out, err = execute(
                ['ip', 'ro', 'add',
                 'default', 'via', self.gateway, 'dev', self.iface])
        elif ((self.default_gateway, self.df_iface)
              != (self.gateway, self.iface)):
            rc, out, err = execute(
                ['ip', 'ro', 'change',
                 'default', 'via', self.gateway, 'dev', self.iface])

        if rc:
            msg = ('Cannot add default gateway {0} on iface {1}.'
                   ' Err: {2}'.format(self.gateway, self.iface, err))
            raise CommandFailed(msg)
예제 #5
0
 def setup(self):
     self.is_present = check_ifaddress_present(self.iface, self.addr)
     if self.is_present is False:
         rc, out, err = execute(['ip', 'a', 'add', self.addr,
                                 'dev', self.iface])
         if rc:
             msg = 'Cannot add address {0} to {1}. Err: {2}'.format(
                 self.addr, self.iface, err)
             raise CommandFailed(msg)
예제 #6
0
    def setup(self):
        self.is_present = check_exist(self.iface)
        if self.is_present is False:
            rc, out, err = execute(
                ['ip', 'link', 'add',
                 'link', self.parent, 'name',
                 self.iface, 'type', 'vlan', 'id', self.vlan])

            if rc:
                msg = (
                    'Cannot create tagged interface {0}.'
                    ' With parent {1}. Err: {2}'.format(
                        self.iface, self.parent, err))
                raise CommandFailed(msg)
        super(Vlan, self).setup()
예제 #7
0
 def setup(self):
     self.is_up = check_up(self.iface)
     if self.is_up is False:
         rc, out, err = execute(['ip', 'link', 'set',
                                 'dev', self.iface, 'up'])
         if rc:
             msg = 'Cannot up interface {0}. Err: {1}'.format(
                 self.iface, err)
             raise CommandFailed(msg)
     logger.info('Waiting %s seconds for %s interface is UP...',
                 consts.LINK_UP_TIMEOUT, self.iface)
     deadline = time.time() + consts.LINK_UP_TIMEOUT
     while time.time() < deadline:
         if check_ready(self.iface):
             logger.info('Interface %s is UP', self.iface)
             return
         time.sleep(1)
     raise CommandFailed('Link protocol on interface %s '
                         'isn\'t UP'.format(self.iface))
예제 #8
0
 def teardown(self):
     if self.is_up is False:
         execute(['ip', 'link', 'set', 'dev', self.iface, 'down'])
예제 #9
0
def log_network_info(stage):
    logger.info('Logging networking info at %s', stage)
    stdout = execute(['ip', 'a'])[1]
    logger.info('ip a: %s', stdout)
    stdout = execute(['ip', 'ro'])[1]
    logger.info('ip ro: %s', stdout)
예제 #10
0
def check_up(iface):
    rc, stdout, _ = execute(['ip', 'link', 'show', iface])
    return 'UP' in stdout
예제 #11
0
 def teardown(self):
     if self.is_present is False:
         execute(['ip', 'a', 'del', self.addr, 'dev', self.iface])
예제 #12
0
 def teardown(self):
     super(Vlan, self).teardown()
     if self.is_present is False:
         execute(['ip', 'link', 'delete', self.iface])
예제 #13
0
def check_ready(iface):
    rc, stdout, _ = execute(['ip', '-o', 'link', 'show', iface])
    return 'state UP' in stdout