Merge "Implement namespace creation method"

This commit is contained in:
Zuul 2021-04-05 21:46:25 +00:00 committed by Gerrit Code Review
commit 58c9912be0
1 changed files with 13 additions and 5 deletions

View File

@ -538,11 +538,19 @@ def create_netns(name, **kwargs):
:param name: The name of the namespace to create :param name: The name of the namespace to create
""" """
try: pid = os.fork()
netns.create(name, libc=priv_linux.get_cdll()) if pid == 0:
except OSError as e: try:
if e.errno != errno.EEXIST: netns._create(name, libc=priv_linux.get_cdll())
raise except OSError as e:
if e.errno != errno.EEXIST:
os._exit(1)
except Exception:
os._exit(1)
os._exit(0)
else:
if os.waitpid(pid, 0)[1]:
raise RuntimeError(_('Error creating namespace %s' % name))
@privileged.default.entrypoint @privileged.default.entrypoint