def read_env()

in Templates/kerberosSideCar/krb_side_car.py [0:0]


def read_env():
    """
    Environment variables can be set in Dockerfile
    :return: Environment variables
    :rtype: Dictionary
    """
    secret_arn = str(os.environ.get('CREDENTIALS_SECRET_ARN'))
    directory_name = str(os.environ.get('DOMAIN_NAME'))
    region_name = str(os.environ.get('AWS_REGION'))
    service_principal_name = str(os.environ.get('SERVICE_PRINCIPAL_NAME'))
    krb_ticket_refresh_period = os.environ.get(
        "KRB_TICKET_REFRESH_PERIOD_IN_SECS")
    if krb_ticket_refresh_period is None or not isinstance(
            krb_ticket_refresh_period, int):
        krb_ticket_refresh_period = KINIT_DELAY_IN_SECS
    krb_dir = str(os.getenv("KRB_DIR"))

    if not secret_arn or not directory_name or not region_name or not krb_dir \
            or not service_principal_name:
        print("*ERROR* : All parameters are not filled out", flush=True)
        print("secret_arn = {0}, directory_name = {1}, region_name = {2}, krb_dir "
              "= {3}, service_principal_name = {4}".format(secret_arn,
                                                           directory_name,
                                                           region_name, krb_dir,
                                                           service_principal_name),
              flush=True)
        raise NameError("*ERROR* : All parameters are not filled out")

    # Protect against script injection
    invalid_chars = re.compile(r"[$`()]")
    if invalid_chars.search(secret_arn) or invalid_chars.search(directory_name) or \
            invalid_chars.search(region_name) or \
            invalid_chars.search(krb_dir):
        print("*ERROR* Invalid characters detected", flush=True)
        print("secret_arn = {0}, directory_name = {1}, region_name = {2}, krb_dir "
              "= {3}".format(secret_arn,
                             directory_name,
                             region_name, krb_dir), flush=True)
        raise NameError("*ERROR* : Invalid characters detected")

    print('secret arn = ' + secret_arn, flush=True)
    print('directory name = ' + directory_name, flush=True)
    print('region name = ' + region_name, flush=True)
    print('kerberos ticket renewal time = ' + str(krb_ticket_refresh_period),
          flush=True)
    print('kerberos directory = ' + krb_dir, flush=True)

    env_vars = {SECRET_ARN: secret_arn, DIRECTORY_NAME: directory_name,
                REGION_NAME: region_name,
                SERVICE_PRINCIPAL_NAME: service_principal_name,
                KRB_TICKET_REFRESH_PERIOD: krb_ticket_refresh_period,
                KRB_DIR: krb_dir}
    return env_vars