Ensure consistency in variable names and fix bug

This commit is contained in:
Joshua Boniface 2023-08-17 10:35:55 -04:00
parent 4ccdd6347e
commit fc8cf9ed44
1 changed files with 19 additions and 18 deletions

View File

@ -441,7 +441,7 @@ class VMBuilderScript(VMBuilder):
# The directory we mounted things on earlier during prepare(); this could very well # The directory we mounted things on earlier during prepare(); this could very well
# be exposed as a module-level variable if you so choose # be exposed as a module-level variable if you so choose
temporary_directory = "/tmp/target" temp_dir = "/tmp/target"
# Use these convenient aliases for later (avoiding lots of "self.vm_data" everywhere) # Use these convenient aliases for later (avoiding lots of "self.vm_data" everywhere)
vm_name = self.vm_name vm_name = self.vm_name
@ -482,17 +482,17 @@ class VMBuilderScript(VMBuilder):
# Perform a debootstrap installation # Perform a debootstrap installation
print( print(
f"Installing system with debootstrap: debootstrap --include={','.join(deb_packages)} {deb_release} {temporary_directory} {deb_mirror}" f"Installing system with debootstrap: debootstrap --include={','.join(deb_packages)} {deb_release} {temp_dir} {deb_mirror}"
) )
os.system( os.system(
f"debootstrap --include={','.join(deb_packages)} {deb_release} {temporary_directory} {deb_mirror}" f"debootstrap --include={','.join(deb_packages)} {deb_release} {temp_dir} {deb_mirror}"
) )
# Bind mount the devfs so we can grub-install later # Bind mount the devfs so we can grub-install later
os.system("mount --bind /dev {}/dev".format(temporary_directory)) os.system("mount --bind /dev {}/dev".format(temp_dir))
# Create an fstab entry for each volume # Create an fstab entry for each volume
fstab_file = "{}/etc/fstab".format(temporary_directory) fstab_file = "{}/etc/fstab".format(temp_dir)
# The volume ID starts at zero and increments by one for each volume in the fixed-order # The volume ID starts at zero and increments by one for each volume in the fixed-order
# volume list. This lets us work around the insanity of Libvirt IDs not matching guest IDs, # volume list. This lets us work around the insanity of Libvirt IDs not matching guest IDs,
# while still letting us have some semblance of control here without enforcing things # while still letting us have some semblance of control here without enforcing things
@ -537,13 +537,13 @@ class VMBuilderScript(VMBuilder):
volume_id += 1 volume_id += 1
# Write the hostname; you could also take an FQDN argument for this as an example # Write the hostname; you could also take an FQDN argument for this as an example
hostname_file = "{}/etc/hostname".format(temporary_directory) hostname_file = "{}/etc/hostname".format(temp_dir)
with open(hostname_file, "w") as fh: with open(hostname_file, "w") as fh:
fh.write("{}".format(vm_name)) fh.write("{}".format(vm_name))
# Fix the cloud-init.target since it's broken by default in Debian 11 # Fix the cloud-init.target since it's broken by default in Debian 11
cloudinit_target_file = "{}/etc/systemd/system/cloud-init.target".format( cloudinit_target_file = "{}/etc/systemd/system/cloud-init.target".format(
temporary_directory temp_dir
) )
with open(cloudinit_target_file, "w") as fh: with open(cloudinit_target_file, "w") as fh:
# We lose our indent on these raw blocks to preserve the apperance of the files # We lose our indent on these raw blocks to preserve the apperance of the files
@ -557,7 +557,7 @@ After=multi-user.target
fh.write(data) fh.write(data)
# Write the cloud-init configuration # Write the cloud-init configuration
ci_cfg_file = "{}/etc/cloud/cloud.cfg".format(temporary_directory) ci_cfg_file = "{}/etc/cloud/cloud.cfg".format(temp_dir)
with open(ci_cfg_file, "w") as fh: with open(ci_cfg_file, "w") as fh:
fh.write( fh.write(
""" """
@ -618,15 +618,15 @@ After=multi-user.target
- arches: [default] - arches: [default]
failsafe: failsafe:
primary: {deb_mirror} primary: {deb_mirror}
""" """.format(
).format(deb_mirror=deb_mirror) deb_mirror=deb_mirror
)
)
# Due to device ordering within the Libvirt XML configuration, the first Ethernet interface # Due to device ordering within the Libvirt XML configuration, the first Ethernet interface
# will always be on PCI bus ID 2, hence the name "ens2". # will always be on PCI bus ID 2, hence the name "ens2".
# Write a DHCP stanza for ens2 # Write a DHCP stanza for ens2
ens2_network_file = "{}/etc/network/interfaces.d/ens2".format( ens2_network_file = "{}/etc/network/interfaces.d/ens2".format(temp_dir)
temporary_directory
)
with open(ens2_network_file, "w") as fh: with open(ens2_network_file, "w") as fh:
data = """auto ens2 data = """auto ens2
iface ens2 inet dhcp iface ens2 inet dhcp
@ -634,7 +634,7 @@ iface ens2 inet dhcp
fh.write(data) fh.write(data)
# Write the DHCP config for ens2 # Write the DHCP config for ens2
dhclient_file = "{}/etc/dhcp/dhclient.conf".format(temporary_directory) dhclient_file = "{}/etc/dhcp/dhclient.conf".format(temp_dir)
with open(dhclient_file, "w") as fh: with open(dhclient_file, "w") as fh:
# We can use fstrings too, since PVC will always have Python 3.6+, though # We can use fstrings too, since PVC will always have Python 3.6+, though
# using format() might be preferable for clarity in some situations # using format() might be preferable for clarity in some situations
@ -654,7 +654,7 @@ interface "ens2" {{
fh.write(data) fh.write(data)
# Write the GRUB configuration # Write the GRUB configuration
grubcfg_file = "{}/etc/default/grub".format(temporary_directory) grubcfg_file = "{}/etc/default/grub".format(temp_dir)
with open(grubcfg_file, "w") as fh: with open(grubcfg_file, "w") as fh:
data = """# Written by the PVC provisioner data = """# Written by the PVC provisioner
GRUB_DEFAULT=0 GRUB_DEFAULT=0
@ -671,7 +671,7 @@ GRUB_DISABLE_LINUX_UUID=false
fh.write(data) fh.write(data)
# Do some tasks inside the chroot using the provided context manager # Do some tasks inside the chroot using the provided context manager
with chroot(temporary_directory): with chroot(temp_dir):
# Install and update GRUB # Install and update GRUB
os.system( os.system(
"grub-install --force /dev/rbd/{}/{}_{}".format( "grub-install --force /dev/rbd/{}/{}_{}".format(
@ -704,16 +704,17 @@ GRUB_DISABLE_LINUX_UUID=false
""" """
# Run any imports first # Run any imports first
import os
from pvcapid.vmbuilder import open_zk from pvcapid.vmbuilder import open_zk
from pvcapid.Daemon import config from pvcapid.Daemon import config
import daemon_lib.common as pvc_common import daemon_lib.common as pvc_common
import daemon_lib.ceph as pvc_ceph import daemon_lib.ceph as pvc_ceph
# Set the tempdir we used in the prepare() and install() steps # Set the temp_dir we used in the prepare() and install() steps
temp_dir = "/tmp/target" temp_dir = "/tmp/target"
# Unmount the bound devfs # Unmount the bound devfs
os.system("umount {}/dev".format(temporary_directory)) os.system("umount {}/dev".format(temp_dir))
# Use this construct for reversing the list, as the normal reverse() messes with the list # Use this construct for reversing the list, as the normal reverse() messes with the list
for volume in list(reversed(self.vm_data["volumes"])): for volume in list(reversed(self.vm_data["volumes"])):