def get_quicksetup_password(ctx, param, value): # pylint: disable=unused-argument """Determine the password to be used as default for the Postgres connection in `verdi quicksetup` If a value is explicitly passed, that value is returned. If there is no value, the current username in the context will be scanned for in currently existing profiles. If it does, the corresponding password will be used. If no such user already exists, a random password will be generated. :param ctx: click context which should contain the contextual parameters :return: the password """ from aiida.common.hashing import get_random_string if value is not None: return value username = ctx.params['db_username'] config = get_config() for available_profile in config.profiles: if available_profile.database_username == username: value = available_profile.database_password break else: value = get_random_string(16) return value
def generate_random_secret_key(): """ Generate a random secret key to put in the django settings module. This should be the same function used by Django in core/management/commands/startproject. """ from aiida.common.hashing import get_random_string return get_random_string(length=50)