lxc: define a private network for OS containers
By default, specify the the "<privnet>" feature with LXC operating system containers. Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1040406 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
parent
081e34715f
commit
75349b9cf0
|
@ -8,6 +8,9 @@
|
|||
<type arch="x86_64">exe</type>
|
||||
<init>/sbin/init</init>
|
||||
</os>
|
||||
<features>
|
||||
<privnet/>
|
||||
</features>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Common code for all guests
|
||||
#
|
||||
# Copyright 2006-2009, 2013 Red Hat, Inc.
|
||||
# Copyright 2006-2009, 2013, 2014 Red Hat, Inc.
|
||||
# Jeremy Katz <katzj@redhat.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -647,12 +647,18 @@ class Guest(XMLBuilder):
|
|||
self._set_video_defaults()
|
||||
self._set_sound_defaults()
|
||||
|
||||
def _is_os_container(self):
|
||||
if not self.os.is_container():
|
||||
return False
|
||||
for fs in self.get_devices("filesystem"):
|
||||
if fs.target == "/":
|
||||
return True
|
||||
return False
|
||||
|
||||
def _set_osxml_defaults(self):
|
||||
if self.os.is_container() and not self.os.init:
|
||||
for fs in self.get_devices("filesystem"):
|
||||
if fs.target == "/":
|
||||
self.os.init = "/sbin/init"
|
||||
break
|
||||
if self._is_os_container():
|
||||
self.os.init = "/sbin/init"
|
||||
self.os.init = self.os.init or "/bin/sh"
|
||||
|
||||
if not self.os.loader and self.os.is_hvm() and self.type == "xen":
|
||||
|
@ -738,6 +744,8 @@ class Guest(XMLBuilder):
|
|||
self.features.acpi = None
|
||||
self.features.apic = None
|
||||
self.features.pae = None
|
||||
if self._is_os_container():
|
||||
self.features.privnet = True
|
||||
return
|
||||
|
||||
if not self.os.is_hvm():
|
||||
|
|
Loading…
Reference in New Issue