🚨 linting fixes for create_aio_vm.py
This commit is contained in:
parent
3ed2e4a029
commit
283d0b51eb
1 changed files with 35 additions and 22 deletions
|
|
@ -14,6 +14,8 @@ ND_PATH = "./network-config"
|
|||
|
||||
def parse_args():
|
||||
"""Parse the command line arguments"""
|
||||
# pylint: disable=too-many-statements
|
||||
|
||||
template_path = pathlib.Path(__file__).parent.parent / "virt-install"
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--password", required=True)
|
||||
|
|
@ -21,12 +23,10 @@ def parse_args():
|
|||
parser.add_argument("--local-hostname", required=True)
|
||||
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(
|
||||
"--network-data", default=template_path / "network-config.tpl"
|
||||
)
|
||||
parser.add_argument("--network-data", default=template_path / "network-config.tpl")
|
||||
parser.add_argument("--instance-id", required=True, help="Hostname for the new VM")
|
||||
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("--os-variant", required=True)
|
||||
parser.add_argument("--name", required=True)
|
||||
|
|
@ -35,9 +35,11 @@ def parse_args():
|
|||
parser.add_argument("--gateway")
|
||||
parser.add_argument("--cidr-1")
|
||||
parser.add_argument("--cidr-2")
|
||||
parser.add_argument("--mac-1",default="RANDOM")
|
||||
parser.add_argument("--mac-2",default="RANDOM")
|
||||
parser.add_argument("--dns",)
|
||||
parser.add_argument("--mac-1", default="RANDOM")
|
||||
parser.add_argument("--mac-2", default="RANDOM")
|
||||
parser.add_argument(
|
||||
"--dns",
|
||||
)
|
||||
parser.add_argument("--search-domain")
|
||||
parser.add_argument("-v", "--verbose", action="store_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")
|
||||
sys.exit(1)
|
||||
|
||||
if not (args.cidr_1 or args.cidr_2) and (args.dns or args.gateway or args.search_domain):
|
||||
print("There's no point specifying DNS, gateway or search_domain if yoou don't specify addresses")
|
||||
sys.exit(1)
|
||||
# if not (args.cidr_1 or args.cidr_2) and (
|
||||
# args.dns or args.gateway or args.search_domain
|
||||
# ):
|
||||
# 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()
|
||||
|
||||
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()
|
||||
generate_boot_cmd(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 = 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 = args.network_data.format(data=args)
|
||||
|
||||
|
|
@ -92,17 +99,24 @@ def parse_args():
|
|||
|
||||
return args
|
||||
|
||||
|
||||
def generate_boot_cmd(data):
|
||||
data.bootcmd=""
|
||||
"""Generate the bootcmd section of the user-data"""
|
||||
data.bootcmd = ""
|
||||
if data.cidr_1:
|
||||
data.bootcmd = (
|
||||
"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 \'Wired connection 1\' ipv4.address {data.cidr_2} ipv4.method static ipv4.gateway {data.gateway} ipv4.dns {data.dns}"\n'
|
||||
f" - \"nmcli con modify 'System eth0' ipv4.address {data.cidr_1}"
|
||||
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 on"\n'
|
||||
)
|
||||
|
||||
|
||||
def write_user_data(data):
|
||||
"""Write out a temporary user data file"""
|
||||
|
||||
|
|
@ -124,7 +138,7 @@ def write_network_data(network_data):
|
|||
|
||||
def create_image(args):
|
||||
"""
|
||||
Create a new image file bashed on the input image, resized to the
|
||||
Create a new image file bashed on the input image, resized to the
|
||||
specified size.
|
||||
"""
|
||||
|
||||
|
|
@ -132,7 +146,7 @@ def create_image(args):
|
|||
cmd = (
|
||||
"qemu-img create -f qcow2 -o preallocation=metadata "
|
||||
f"{args.output_image} {args.image_size}"
|
||||
)
|
||||
)
|
||||
|
||||
result = subprocess.check_output(cmd, shell=True, universal_newlines=True)
|
||||
if args.verbose:
|
||||
|
|
@ -148,6 +162,7 @@ def create_image(args):
|
|||
|
||||
print("Image resized")
|
||||
|
||||
|
||||
def virt_install_cmd(args):
|
||||
"""Build and execute the virt-install command"""
|
||||
cmd = f"""
|
||||
|
|
@ -190,16 +205,14 @@ def delete_user_data():
|
|||
def install_packages(args):
|
||||
"""Install the packages needed for virt-install to work"""
|
||||
cmd = (
|
||||
"sudo dnf install -y virt-install virt-viewer qemu-img "
|
||||
"sudo dnf install -y virt-install virt-viewer qemu-img "
|
||||
"libguestfs.x86_64"
|
||||
)
|
||||
|
||||
print("installing needed packages...")
|
||||
|
||||
if args.verbose:
|
||||
print(
|
||||
subprocess.check_output(cmd, shell=True, universal_newlines=True)
|
||||
)
|
||||
print(subprocess.check_output(cmd, shell=True, universal_newlines=True))
|
||||
|
||||
|
||||
def main():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue