Files
awx/awxkit/awxkit/config.py
Andrea Restle-Lay 0d18308112 [AAP-46830]: Fix AWX CLI authentication with AAP Gateway environments (#16113)
* migrate pr #16081 to new fork

* add test coverage - add clearer error messaging

* update tests to use monkeypatch
2025-10-02 10:06:10 -04:00

39 lines
1.2 KiB
Python

import types
import os
from .utils import (
PseudoNamespace,
load_credentials,
load_projects,
to_bool,
)
config = PseudoNamespace()
def getvalue(self, name):
return self.__getitem__(name)
if os.getenv('AWXKIT_BASE_URL'):
config.base_url = os.getenv('AWXKIT_BASE_URL')
if os.getenv('AWXKIT_CREDENTIAL_FILE'):
config.credentials = load_credentials(os.getenv('AWXKIT_CREDENTIAL_FILE'))
if os.getenv('AWXKIT_PROJECT_FILE'):
config.project_urls = load_projects(config.get('AWXKIT_PROJECT_FILE'))
# kludge to mimic pytest.config
config.getvalue = types.MethodType(getvalue, config)
config.assume_untrusted = config.get('assume_untrusted', True)
config.client_connection_attempts = int(os.getenv('AWXKIT_CLIENT_CONNECTION_ATTEMPTS', 5))
config.prevent_teardown = to_bool(os.getenv('AWXKIT_PREVENT_TEARDOWN', False))
config.use_sessions = to_bool(os.getenv('AWXKIT_SESSIONS', False))
config.force_basic_auth = to_bool(os.getenv('AWXKIT_FORCE_BASIC_AUTH', False))
config.api_base_path = os.getenv('CONTROLLER_OPTIONAL_API_URLPATTERN_PREFIX', '/api/')
config.api_base_path = os.getenv('AWXKIT_API_BASE_PATH', config.api_base_path)
config.gateway_base_path = os.getenv('AWXKIT_GATEWAY_BASE_PATH', '/api/gateway/')