Source code for tcms.core.management.commands.initial_setup
import os
from django.conf import settings
from django.core.management import call_command
from django.core.management.base import BaseCommand
from django.db import DEFAULT_DB_ALIAS, connections
[docs]
class Command(BaseCommand):
help = "Performs initial setup of *NEW* Kiwi TCMS installation."
[docs]
def add_arguments(self, parser):
parser.add_argument(
"--database",
default=DEFAULT_DB_ALIAS,
choices=tuple(connections),
help='Specifies the database to use. Default is "default".',
)
[docs]
def handle(self, *args, **kwargs):
verbosity = kwargs["verbosity"]
database = kwargs["database"]
self.stdout.write("\n1. Applying migrations:")
call_command("migrate", verbosity=verbosity, database=database)
self.stdout.write("\n2. Creating superuser:")
call_command("createsuperuser", verbosity=verbosity, database=database)
self.stdout.write("\n3. Setting the domain name:")
domain = os.environ.get("KIWI_TENANTS_DOMAIN")
if not domain:
domain = input("Enter Kiwi TCMS domain: ") # nosec
call_command(
"set_domain", verbosity=verbosity, database=database, domain=domain
)
if "tcms_tenants" in settings.INSTALLED_APPS:
self.stdout.write("\n4. Creating public & empty tenants:")
call_command(
"initialize_tenants",
verbosity=verbosity,
domain=domain,
)
self.stdout.write("\n5. Setting permissions:")
call_command("refresh_permissions", verbosity=verbosity)
self.stdout.write("\nInitial setup finished.")