import random import string from django.core.management.base import BaseCommand from django.core.exceptions import ObjectDoesNotExist from django.contrib.auth import get_user_model from django.conf import settings from uncloud_pay.models import BillingAddress, RecurringPeriod, Product from uncloud_net.models import UncloudNetwork from uncloud.models import UncloudProvider class Command(BaseCommand): help = 'Add standard uncloud values' def add_arguments(self, parser): pass def handle(self, *args, **options): # Order matters, objects can be dependent on each other admin_username="uncloud-admin" pw_length = 32 # Only set password if the user did not exist before try: admin_user = get_user_model().objects.get(username=settings.UNCLOUD_ADMIN_NAME) except ObjectDoesNotExist: random_password = ''.join(random.SystemRandom().choice(string.ascii_lowercase + string.digits) for _ in range(pw_length)) admin_user = get_user_model().objects.create_user(username=settings.UNCLOUD_ADMIN_NAME, password=random_password) admin_user.is_superuser=True admin_user.is_staff=True admin_user.save() print(f"Created admin user '{admin_username}' with password '{random_password}'") BillingAddress.populate_db_defaults() RecurringPeriod.populate_db_defaults() Product.populate_db_defaults() UncloudNetwork.populate_db_defaults() UncloudProvider.populate_db_defaults()