from django.conf import settings
from synnefo.lib import join_urls, parse_base_url
from synnefo.util.keypath import get_path
-from pithos_webclient.services import pithos_services
-from astakosclient import astakos_services
+from pithos.api.services import pithos_services as vanilla_pithos_services
+from astakosclient import astakos_services as vanilla_astakos_services
+from synnefo.lib.services import get_public_endpoint, fill_endpoints
from copy import deepcopy
# Process Pithos settings. This code is shared between snf-pithos-app and
# snf-pithos-webclient since they share the PITHOS_ settings prefix for most
# of their settings.
-
-# Top-level URL for Pithos. Must set.
BASE_URL = getattr(settings, 'PITHOS_BASE_URL',
"https://object-store.example.synnefo.org/pithos/")
'https://accounts.example.synnefo.org/astakos/')
ASTAKOS_BASE_HOST, ASTAKOS_BASE_PATH = parse_base_url(ASTAKOS_BASE_URL)
+pithos_services = deepcopy(vanilla_pithos_services)
+fill_endpoints(pithos_services, BASE_URL)
PITHOS_PREFIX = get_path(pithos_services, 'pithos_object-store.prefix')
PUBLIC_PREFIX = get_path(pithos_services, 'pithos_public.prefix')
UI_PREFIX = get_path(pithos_services, 'pithos_ui.prefix')
+astakos_services = deepcopy(vanilla_astakos_services)
+fill_endpoints(astakos_services, ASTAKOS_BASE_URL)
CUSTOMIZE_ASTAKOS_SERVICES = \
getattr(settings, 'PITHOS_CUSTOMIZE_ASTAKOS_SERVICES', ())
for path, value in CUSTOMIZE_ASTAKOS_SERVICES:
BASE_ASTAKOS_PROXY_PATH = getattr(settings, 'PITHOS_BASE_ASTAKOS_PROXY_PATH',
ASTAKOS_BASE_PATH)
+BASE_ASTAKOS_PROXY_PATH = join_urls(BASE_PATH, BASE_ASTAKOS_PROXY_PATH)
+BASE_ASTAKOS_PROXY_PATH = BASE_ASTAKOS_PROXY_PATH.strip('/')
PROXY_USER_SERVICES = getattr(settings, 'PITHOS_PROXY_USER_SERVICES', True)
-# Base settings set. Resolve webclient required settings
-ASTAKOS_ACCOUNTS_URL = join_urls(ASTAKOS_BASE_URL, ASTAKOS_ACCOUNTS_PREFIX)
+if not BASE_PATH.startswith("/"):
+ BASE_PATH = "/" + BASE_PATH
+
+PITHOS_URL = get_public_endpoint(pithos_services, 'object-store', 'v1')
+ASTAKOS_UI_URL = get_public_endpoint(astakos_services, 'astakos_ui', '')
+
if PROXY_USER_SERVICES:
- ASTAKOS_ACCOUNTS_URL = join_urls('/', BASE_ASTAKOS_PROXY_PATH,
- ASTAKOS_ACCOUNTS_PREFIX)
+ ACCOUNT_URL = join_urls('/', BASE_ASTAKOS_PROXY_PATH,
+ ASTAKOS_ACCOUNTS_PREFIX, 'v1.0')
+else:
+ ACCOUNT_URL = get_public_endpoint(astakos_services, 'account', 'v1.0')
-if not BASE_PATH.startswith("/"):
- BASE_PATH = "/" + BASE_PATH
+USER_CATALOG_URL = join_urls(ACCOUNT_URL, 'user_catalogs')
+FEEDBACK_URL = join_urls(ACCOUNT_URL, 'feedback')
+LOGIN_URL = join_urls(ASTAKOS_UI_URL, 'login?next=')
-ACCOUNTS_URL = getattr(settings, 'PITHOS_UI_ACCOUNTS_URL',
- join_urls(ASTAKOS_ACCOUNTS_URL))
-USER_CATALOG_URL = getattr(settings, 'PITHOS_UI_USER_CATALOG_URL',
- join_urls(ACCOUNTS_URL, 'user_catalogs'))
-FEEDBACK_URL = getattr(settings, 'PITHOS_UI_FEEDBACK_URL',
- join_urls(ACCOUNTS_URL, 'feedback'))
-PITHOS_URL = getattr(settings, 'PITHOS_UI_PITHOS_URL',
- join_urls(BASE_PATH, PITHOS_PREFIX, 'v1'))
AUTH_COOKIE_NAME = getattr(settings, 'PITHOS_UI_AUTH_COOKIE_NAME',
'_pithos2_a')
-DEFAULT_LOGIN_URL = join_urls(ASTAKOS_BASE_URL, ASTAKOS_VIEWS_PREFIX, 'login',
- '?next=')
-LOGIN_URL = getattr(settings, 'PITHOS_UI_LOGIN_URL', DEFAULT_LOGIN_URL)
CLOUDBAR_ACTIVE_SERVICE = getattr(
settings,
'PITHOS_UI_CLOUDBAR_ACTIVE_SERVICE',