🚨 linting fixes for create_aio_vm.py

This commit is contained in:
Neill Cox 2023-10-19 16:15:37 +11:00
parent 3ed2e4a029
commit 283d0b51eb

View file

@ -14,6 +14,8 @@ ND_PATH = "./network-config"
def parse_args(): def parse_args():
"""Parse the command line arguments""" """Parse the command line arguments"""
# pylint: disable=too-many-statements
template_path = pathlib.Path(__file__).parent.parent / "virt-install" template_path = pathlib.Path(__file__).parent.parent / "virt-install"
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("--password", required=True) parser.add_argument("--password", required=True)
@ -21,12 +23,10 @@ def parse_args():
parser.add_argument("--local-hostname", required=True) parser.add_argument("--local-hostname", required=True)
parser.add_argument("--user-data", default=template_path / "user-data.tpl") parser.add_argument("--user-data", default=template_path / "user-data.tpl")
parser.add_argument("--meta-data", default=template_path / "meta-data.tpl") parser.add_argument("--meta-data", default=template_path / "meta-data.tpl")
parser.add_argument( parser.add_argument("--network-data", default=template_path / "network-config.tpl")
"--network-data", default=template_path / "network-config.tpl"
)
parser.add_argument("--instance-id", required=True, help="Hostname for the new VM") parser.add_argument("--instance-id", required=True, help="Hostname for the new VM")
parser.add_argument("--output-image", required=True) parser.add_argument("--output-image", required=True)
parser.add_argument("--image-size", default="100G") parser.add_argument("--image-size", default="800G")
parser.add_argument("--input-image", required=True) parser.add_argument("--input-image", required=True)
parser.add_argument("--os-variant", required=True) parser.add_argument("--os-variant", required=True)
parser.add_argument("--name", required=True) parser.add_argument("--name", required=True)
@ -35,9 +35,11 @@ def parse_args():
parser.add_argument("--gateway") parser.add_argument("--gateway")
parser.add_argument("--cidr-1") parser.add_argument("--cidr-1")
parser.add_argument("--cidr-2") parser.add_argument("--cidr-2")
parser.add_argument("--mac-1",default="RANDOM") parser.add_argument("--mac-1", default="RANDOM")
parser.add_argument("--mac-2",default="RANDOM") parser.add_argument("--mac-2", default="RANDOM")
parser.add_argument("--dns",) parser.add_argument(
"--dns",
)
parser.add_argument("--search-domain") parser.add_argument("--search-domain")
parser.add_argument("-v", "--verbose", action="store_true") parser.add_argument("-v", "--verbose", action="store_true")
parser.add_argument("--rhn-user", required=True) parser.add_argument("--rhn-user", required=True)
@ -61,22 +63,27 @@ def parse_args():
print("You must specify a DNS server if you specify any addresses") print("You must specify a DNS server if you specify any addresses")
sys.exit(1) sys.exit(1)
if not (args.cidr_1 or args.cidr_2) and (args.dns or args.gateway or args.search_domain): # if not (args.cidr_1 or args.cidr_2) and (
print("There's no point specifying DNS, gateway or search_domain if yoou don't specify addresses") # args.dns or args.gateway or args.search_domain
sys.exit(1) # ):
# print(
# "There's no point specifying DNS, gateway or search_domain if you"
# " don't specify addresses"
# )
# sys.exit(1)
args.public_key = args.public_key.read() args.public_key = args.public_key.read()
with open(args.user_data) as user_data: with open(args.user_data, encoding="utf-8") as user_data:
args.user_data = user_data.read() args.user_data = user_data.read()
generate_boot_cmd(args) generate_boot_cmd(args)
args.user_data = args.user_data.format(data=args) args.user_data = args.user_data.format(data=args)
with open(args.meta_data) as meta_data: with open(args.meta_data, encoding="utf-8") as meta_data:
args.meta_data = meta_data.read() args.meta_data = meta_data.read()
args.meta_data = args.meta_data.format(data=args) args.meta_data = args.meta_data.format(data=args)
with open(args.network_data) as network_data: with open(args.network_data, encoding="utf-8") as network_data:
args.network_data = network_data.read() args.network_data = network_data.read()
args.network_data = args.network_data.format(data=args) args.network_data = args.network_data.format(data=args)
@ -92,17 +99,24 @@ def parse_args():
return args return args
def generate_boot_cmd(data): def generate_boot_cmd(data):
data.bootcmd="" """Generate the bootcmd section of the user-data"""
data.bootcmd = ""
if data.cidr_1: if data.cidr_1:
data.bootcmd = ( data.bootcmd = (
"bootcmd:\n" "bootcmd:\n"
f' - "nmcli con modify \'System eth0\' ipv4.address {data.cidr_1} ipv4.method static ipv4.gateway {data.gateway} ipv4.dns {data.dns}"\n' f" - \"nmcli con modify 'System eth0' ipv4.address {data.cidr_1}"
f' - "nmcli con modify \'Wired connection 1\' ipv4.address {data.cidr_2} ipv4.method static ipv4.gateway {data.gateway} ipv4.dns {data.dns}"\n' f" ipv4.method static ipv4.gateway {data.gateway} "
f'ipv4.dns {data.dns}"\n'
" - \"nmcli con modify 'Wired connection 1' ipv4.address "
f"{data.cidr_2} ipv4.method static ipv4.gateway {data.gateway} "
f'ipv4.dns {data.dns}"\n'
' - "nmcli networking off"\n' ' - "nmcli networking off"\n'
' - "nmcli networking on"\n' ' - "nmcli networking on"\n'
) )
def write_user_data(data): def write_user_data(data):
"""Write out a temporary user data file""" """Write out a temporary user data file"""
@ -148,6 +162,7 @@ def create_image(args):
print("Image resized") print("Image resized")
def virt_install_cmd(args): def virt_install_cmd(args):
"""Build and execute the virt-install command""" """Build and execute the virt-install command"""
cmd = f""" cmd = f"""
@ -197,9 +212,7 @@ def install_packages(args):
print("installing needed packages...") print("installing needed packages...")
if args.verbose: if args.verbose:
print( print(subprocess.check_output(cmd, shell=True, universal_newlines=True))
subprocess.check_output(cmd, shell=True, universal_newlines=True)
)
def main(): def main():