mirror of
https://github.com/virt-manager/virt-manager.git
synced 2024-10-26 17:25:22 +03:00
cloudinit: Add disable=yes|no
Cli option to permanently disable cloud-init after first boot by user request. Handled so that bare --cloud-init defaults to --cloud-init root-password=generate,disable=yes. Signed-off-by: Athina Plaskasoviti <athina.plaskasoviti@gmail.com>
This commit is contained in:
parent
ec47c9dafc
commit
0bbfc80b68
@ -1627,14 +1627,16 @@ class ParserCloudInit(VirtCLIParser):
|
||||
def _init_class(cls, **kwargs):
|
||||
VirtCLIParser._init_class(**kwargs)
|
||||
cls.add_arg("root-password", "root_password")
|
||||
cls.add_arg("disable", "disable", is_onoff=True)
|
||||
|
||||
|
||||
def parse_cloud_init(optstr):
|
||||
ret = CloudInitData()
|
||||
if optstr == 1:
|
||||
# This means bare --cloud-init, so there's nothing to parse.
|
||||
log.warning("Defaulting to --cloud-init root-password=generate")
|
||||
log.warning("Defaulting to --cloud-init root-password=generate,disable=yes")
|
||||
ret.root_password = "generate"
|
||||
ret.disable = True
|
||||
return ret
|
||||
|
||||
parser = ParserCloudInit(optstr)
|
||||
|
@ -6,6 +6,7 @@ from ..logger import log
|
||||
|
||||
|
||||
class CloudInitData():
|
||||
disable = None
|
||||
root_password = None
|
||||
|
||||
|
||||
@ -49,11 +50,11 @@ def create_userdata(scratchdir, cloudinit_data, username=None, password=None):
|
||||
content += " root:%s\n" % rootpass
|
||||
content += " expire: True\n"
|
||||
|
||||
content += "runcmd:\n"
|
||||
content += "- [ sudo, touch, /etc/cloud/cloud-init.disabled ]\n"
|
||||
if cloudinit_data.disable:
|
||||
content += "runcmd:\n"
|
||||
content += "- [ sudo, touch, /etc/cloud/cloud-init.disabled ]\n"
|
||||
log.debug("Generated cloud-init userdata:\n%s", content)
|
||||
|
||||
|
||||
fileobj = tempfile.NamedTemporaryFile(
|
||||
prefix="virtinst-", suffix="-userdata",
|
||||
dir=scratchdir, delete=False)
|
||||
|
Loading…
Reference in New Issue
Block a user