forked from uncloud/uncloud
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
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.models import UncloudProvider, UncloudNetwork
|
|
|
|
|
|
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()
|