Added enum for self-service options

This commit is contained in:
strNophix 2022-04-09 10:54:13 +02:00
parent b546e03e37
commit 777d0cfbd7

View File

@ -5,6 +5,7 @@ from os import path
import subprocess as sub import subprocess as sub
import re import re
from typing import Any, Callable from typing import Any, Callable
from enum import Enum
P_BANNER = """ P_BANNER = """
@ -23,6 +24,13 @@ Opties:
3) Recover omgeving(en) 3) Recover omgeving(en)
4) List omgeving(en) 4) List omgeving(en)
""" """
class PortalOptions(Enum):
EXIT = "0"
CREATE = "1"
DESTROY = "2"
RECOVER = "3"
LIST = "4"
RE_TEXT = re.compile(r"^\w+$") RE_TEXT = re.compile(r"^\w+$")
RE_NUM = re.compile(r"^\d+$") RE_NUM = re.compile(r"^\d+$")
@ -89,16 +97,16 @@ def main() -> int:
p = Prompter(ps1=f"{customer_name} > ") p = Prompter(ps1=f"{customer_name} > ")
while True: while True:
print(P_OPTIONS) print(P_OPTIONS)
c = p.take_input("Keuze: ", RE_ANY) choice = p.take_input("Keuze: ", RE_ANY)
print(end="\n") print(end="\n")
if c == "0": if choice == PortalOptions.EXIT.value:
""" """
Used to break out of the loop and exit the portal. Used to break out of the loop and exit the portal.
""" """
break break
if c == "1": if choice == PortalOptions.CREATE.value:
""" """
Used to either update or create an environment. Used to either update or create an environment.
""" """
@ -159,7 +167,7 @@ def main() -> int:
]) ])
print(f"Omgeving `{env_name}` successvol gemaakt.") print(f"Omgeving `{env_name}` successvol gemaakt.")
if c == "2": if choice == PortalOptions.DESTROY.value:
""" """
Deletes all traces of the chosen environment. Deletes all traces of the chosen environment.
""" """
@ -168,7 +176,7 @@ def main() -> int:
env_name = p.take_choice(fmt, envs) env_name = p.take_choice(fmt, envs)
sub.call(["python3", "cli.py", "delete", customer_name, env_name]) sub.call(["python3", "cli.py", "delete", customer_name, env_name])
if c == "3": if choice == PortalOptions.RECOVER.value:
""" """
Allows the customer to "force" their environment into the desired `up-state`. Allows the customer to "force" their environment into the desired `up-state`.
This `up-state` is a representation of the Vagrantfile, Ansible inventory and This `up-state` is a representation of the Vagrantfile, Ansible inventory and
@ -181,7 +189,7 @@ def main() -> int:
env_name = p.take_choice(fmt, envs) env_name = p.take_choice(fmt, envs)
sub.call(["python3", "cli.py", "recover", customer_name, env_name]) sub.call(["python3", "cli.py", "recover", customer_name, env_name])
if c == "4": if choice == PortalOptions.LIST.value:
""" """
This branch displays the customer's existing environments This branch displays the customer's existing environments
""" """