Rearrange for packaging

This commit is contained in:
Neill Cox 2023-09-22 16:15:20 +10:00
parent eb1fbf7eb4
commit cafecb4d01
10 changed files with 79 additions and 34 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
venv/
*.gen
*__pycache__*

28
pyproject.toml Normal file
View file

@ -0,0 +1,28 @@
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "tripleo_aio_helpers"
version = "0.0.1"
authors = [
{ name="Neill Cox", email="neill.cox@ingenious.com.au" },
]
description = "Tools to help with building a tripleo/rhosp aio"
readme = "README.md"
requires-python = ">=3.7"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
[project.urls]
"Homepage" = ""
"Bug Tracker" = ""
[project.scripts]
create_aio_vm = "tripleo_aio_helpers.create_aio_vm:main"
os_migrate_setup = "tripleo_aio_helpers.os_migrate_setup:main"
os_migrate_teardown = "tripleo_aio_helpers.os_migrate_teardown:main"
prepare_deployment = "tripleo_aio_helpers.prepare_deployment:main"

View file

View file

@ -6,14 +6,19 @@ MD_PATH = "./meta-data"
UD_PATH = "./user-data"
ND_PATH = "./network-config"
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--password", required=True)
parser.add_argument("--public-key", required=True, type=open)
parser.add_argument("--local-hostname", default="aio3.gpslab.cbr.redhat.com")
parser.add_argument(
"--local-hostname", default="aio3.gpslab.cbr.redhat.com"
)
parser.add_argument("--user-data", default="./user-data.tpl", type=open)
parser.add_argument("--meta-data", default="./meta-data.tpl", type=open)
parser.add_argument("--network-data", default="./network-config.tpl", type=open)
parser.add_argument(
"--network-data", default="./network-config.tpl", type=open
)
parser.add_argument("--instance-id", default="aio3")
parser.add_argument("--output-image", required=True)
parser.add_argument("--image-size", default="100G")
@ -53,18 +58,22 @@ def parse_args():
return args
def write_user_data(user_data):
with open(UD_PATH, "w", encoding="utf-8") as user_data_file:
user_data_file.write(user_data)
def write_meta_data(meta_data):
with open(MD_PATH, "w", encoding="utf-8") as meta_data_file:
meta_data_file.write(meta_data)
def write_network_data(network_data):
with open(ND_PATH, "w", encoding="utf-8") as network_data_file:
network_data_file.write(network_data)
def create_image(args):
print("creating image")
cmd = f"qemu-img create -f qcow2 -o preallocation=metadata {args.output_image} {args.image_size}"
@ -81,6 +90,7 @@ def create_image(args):
if args.verbose:
print(result)
def virt_install_cmd(args):
cmd = f"""
sudo virt-install \\
@ -111,16 +121,21 @@ def virt_install_cmd(args):
def delete_meta_data():
pathlib.Path.unlink(pathlib.Path(MD_PATH))
def delete_user_data():
pathlib.Path.unlink(pathlib.Path(UD_PATH))
def install_packages(args):
cmd = "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():
args = parse_args()
@ -138,5 +153,6 @@ def main():
delete_meta_data()
delete_user_data()
if __name__ == '__main__':
if __name__ == "__main__":
main()

View file

@ -29,7 +29,9 @@ def parse_args():
parser.add_argument("-p", "--password", default="secrete123")
parser.add_argument("-c", "--cloud", default="standalone")
parser.add_argument("-g", "--gateway", default="10.76.23.254")
parser.add_argument("-C", "--public-network-cider", default="10.76.23.0/24")
parser.add_argument(
"-C", "--public-network-cider", default="10.76.23.0/24"
)
parser.add_argument("--private-network-cidr", default="192.168.100.0/24")
parser.add_argument("--publice-net-start", default="10.76.23.50")
parser.add_argument("--publice-net-end", default="10.76.23.52")
@ -38,8 +40,6 @@ def parse_args():
# export OS_CLOUD=standalone
# export STANDALONE_HOST=10.76.23.39
args = parser.parse_args()
return args

View file

@ -29,7 +29,9 @@ def parse_args():
parser.add_argument("-p", "--password", default="secrete123")
parser.add_argument("-c", "--cloud", default="standalone")
parser.add_argument("-g", "--gateway", default="10.76.23.254")
parser.add_argument("-C", "--public-network-cider", default="10.76.23.0/24")
parser.add_argument(
"-C", "--public-network-cider", default="10.76.23.0/24"
)
parser.add_argument("--private-network-cidr", default="192.168.100.0/24")
parser.add_argument("--publice-net-start", default="10.76.23.50")
parser.add_argument("--publice-net-end", default="10.76.23.52")
@ -38,8 +40,6 @@ def parse_args():
# export OS_CLOUD=standalone
# export STANDALONE_HOST=10.76.23.39
args = parser.parse_args()
return args

View file

@ -10,7 +10,7 @@ import yaml
def parse_args():
"""Parse the command line arguments"""
home = os.environ.get('HOME')
home = os.environ.get("HOME")
parser = argparse.ArgumentParser()
parser.add_argument("-u", "--username", required=True)
@ -31,11 +31,11 @@ def parse_args():
default=f"{home}/containers-prepare-parameters.yaml.gen",
)
parser.add_argument(
"--standalone-yaml-out", default=f"{home}/standalone_parameters.yaml.gen"
"--standalone-yaml-out",
default=f"{home}/standalone_parameters.yaml.gen",
)
parser.add_argument(
"--deploy-script-out",
default=f"{home}/deploy.sh.gen", dest="deploy"
"--deploy-script-out", default=f"{home}/deploy.sh.gen", dest="deploy"
)
args = parser.parse_args()