brintos

brintos / linux-shallow public Read only

0
0
Text · 669 B · ecff85f Raw
32 lines · python
1# SPDX-License-Identifier: GPL-2.02 3from .utils import ip4import random5import string6 7 8class NetNS:9    def __init__(self, name=None):10        if name:11            self.name = name12        else:13            self.name = ''.join(random.choice(string.ascii_lowercase) for _ in range(8))14        ip('netns add ' + self.name)15 16    def __del__(self):17        if self.name:18            ip('netns del ' + self.name)19            self.name = None20 21    def __enter__(self):22        return self23 24    def __exit__(self, ex_type, ex_value, ex_tb):25        self.__del__()26 27    def __str__(self):28        return self.name29 30    def __repr__(self):31        return f"NetNS({self.name})"32