Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / ui / settings.py @ 5acb8b8a

History | View | Annotate | Download (3 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

    
35
import logging
36
import synnefo.cyclades_settings as cyclades
37

    
38
from django.conf import settings
39
from astakosclient import AstakosClient
40

    
41
from synnefo import cyclades_settings
42

    
43
from synnefo.lib import join_urls
44
from synnefo.lib.services import get_public_endpoint as endpoint
45

    
46

    
47
logger = logging.getLogger(__name__)
48

    
49
BASE_PATH = cyclades.BASE_PATH
50
if not BASE_PATH.startswith("/"):
51
    BASE_PATH = "/" + BASE_PATH
52

    
53
cyclades_services = cyclades_settings.cyclades_services
54

    
55
GLANCE_URL = endpoint(cyclades_services, 'image', 'v1.0').rstrip('/')
56
COMPUTE_URL = endpoint(cyclades_services, 'compute', 'v2.0').rstrip('/')
57
NETWORK_URL = endpoint(cyclades_services, 'network', 'v2.0').rstrip('/')
58
USERDATA_URL = endpoint(cyclades_services, 'cyclades_userdata', '').rstrip('/')
59

    
60
ACCOUNT_URL = join_urls('/', cyclades.ASTAKOS_ACCOUNT_PROXY_PATH)
61

    
62
USER_CATALOG_URL = join_urls(ACCOUNT_URL, 'user_catalogs')
63
FEEDBACK_URL = join_urls(ACCOUNT_URL, 'feedback')
64

    
65

    
66
class LazyAstakosUrl(object):
67
    def __init__(self, endpoints_name):
68
        self.endpoints_name = endpoints_name
69

    
70
    def __str__(self):
71
        if not hasattr(self, 'str'):
72
            try:
73
                astakos_client = \
74
                    AstakosClient(cyclades_settings.SERVICE_TOKEN,
75
                                  settings.ASTAKOS_AUTH_URL)
76
                self.str = getattr(astakos_client, self.endpoints_name)
77
            except Exception, e:
78
                logger.exception(e)
79
                return ''
80
        return self.str
81

    
82
LOGIN_URL = join_urls(str(LazyAstakosUrl('ui_url')), 'login')
83
LOGOUT_REDIRECT = LOGIN_URL