Statistics
| Branch: | Tag: | Revision:

root / snf-pithos-webclient / pithos_webclient / settings.py @ f5c3cc50

History | View | Annotate | Download (4.4 kB)

1
# Copyright 2013 GRNET S.A. All rights reserved.
2
#
3
# Redistribution and use in source and binary forms, with or
4
# without modification, are permitted provided that the following
5
# conditions are met:
6
#
7
#   1. Redistributions of source code must retain the above
8
#      copyright notice, this list of conditions and the following
9
#      disclaimer.
10
#
11
#   2. Redistributions in binary form must reproduce the above
12
#      copyright notice, this list of conditions and the following
13
#      disclaimer in the documentation and/or other materials
14
#      provided with the distribution.
15
#
16
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
# POSSIBILITY OF SUCH DAMAGE.
28
#
29
# The views and conclusions contained in the software and
30
# documentation are those of the authors and should not be
31
# interpreted as representing official policies, either expressed
32
# or implied, of GRNET S.A.
33

    
34
from django.conf import settings
35
from synnefo.lib import join_urls, parse_base_url
36
from synnefo.util.keypath import get_path
37
from pithos_webclient.services import pithos_services
38
from astakosclient import astakos_services
39

    
40
from copy import deepcopy
41

    
42
# Process Pithos settings. This code is shared between snf-pithos-app and
43
# snf-pithos-webclient since they share the PITHOS_ settings prefix for most
44
# of their settings.
45

    
46
# Top-level URL for Pithos. Must set.
47
BASE_URL = getattr(settings, 'PITHOS_BASE_URL',
48
                   "https://object-store.example.synnefo.org/pithos/")
49

    
50
BASE_HOST, BASE_PATH = parse_base_url(BASE_URL)
51

    
52
# Process Astakos settings
53
ASTAKOS_BASE_URL = getattr(settings, 'ASTAKOS_BASE_URL',
54
                           'https://accounts.example.synnefo.org/astakos/')
55
ASTAKOS_BASE_HOST, ASTAKOS_BASE_PATH = parse_base_url(ASTAKOS_BASE_URL)
56

    
57
PITHOS_PREFIX = get_path(pithos_services, 'pithos_object-store.prefix')
58
PUBLIC_PREFIX = get_path(pithos_services, 'pithos_public.prefix')
59
UI_PREFIX = get_path(pithos_services, 'pithos_ui.prefix')
60

    
61
CUSTOMIZE_ASTAKOS_SERVICES = \
62
        getattr(settings, 'PITHOS_CUSTOMIZE_ASTAKOS_SERVICES', ())
63
for path, value in CUSTOMIZE_ASTAKOS_SERVICES:
64
    set_path(astakos_services, path, value, createpath=True)
65

    
66
ASTAKOS_ACCOUNTS_PREFIX = get_path(astakos_services, 'astakos_account.prefix')
67
ASTAKOS_VIEWS_PREFIX = get_path(astakos_services, 'astakos_ui.prefix')
68
ASTAKOS_KEYSTONE_PREFIX = get_path(astakos_services, 'astakos_keystone.prefix')
69

    
70
BASE_ASTAKOS_PROXY_PATH = getattr(settings, 'PITHOS_BASE_ASTAKOS_PROXY_PATH',
71
                                  ASTAKOS_BASE_PATH)
72

    
73
PROXY_USER_SERVICES = getattr(settings, 'PITHOS_PROXY_USER_SERVICES', True)
74

    
75
# Base settings set. Resolve webclient required settings
76
ASTAKOS_ACCOUNTS_URL = join_urls(ASTAKOS_BASE_URL, ASTAKOS_ACCOUNTS_PREFIX)
77
if PROXY_USER_SERVICES:
78
    ASTAKOS_ACCOUNTS_URL = join_urls('/', BASE_ASTAKOS_PROXY_PATH,
79
                                     ASTAKOS_ACCOUNTS_PREFIX)
80

    
81

    
82
if not BASE_PATH.startswith("/"):
83
    BASE_PATH = "/" + BASE_PATH
84

    
85
ACCOUNTS_URL = getattr(settings, 'PITHOS_UI_ACCOUNTS_URL',
86
                       join_urls(ASTAKOS_ACCOUNTS_URL))
87
USER_CATALOG_URL = getattr(settings, 'PITHOS_UI_USER_CATALOG_URL',
88
                           join_urls(ACCOUNTS_URL, 'user_catalogs'))
89
FEEDBACK_URL = getattr(settings, 'PITHOS_UI_FEEDBACK_URL',
90
                       join_urls(ACCOUNTS_URL, 'feedback'))
91
PITHOS_URL = getattr(settings, 'PITHOS_UI_PITHOS_URL',
92
                      join_urls(BASE_PATH, PITHOS_PREFIX, 'v1'))
93
AUTH_COOKIE_NAME = getattr(settings, 'PITHOS_UI_AUTH_COOKIE_NAME',
94
                           '_pithos2_a')
95

    
96
DEFAULT_LOGIN_URL = join_urls(ASTAKOS_BASE_URL, ASTAKOS_VIEWS_PREFIX, 'login',
97
                              '?next=')
98
LOGIN_URL = getattr(settings, 'PITHOS_UI_LOGIN_URL', DEFAULT_LOGIN_URL)
99
CLOUDBAR_ACTIVE_SERVICE = getattr(
100
    settings,
101
    'PITHOS_UI_CLOUDBAR_ACTIVE_SERVICE',
102
    'pithos')