Statistics
| Branch: | Tag: | Revision:

root / snf-common / synnefo / settings / __init__.py @ bdff90d3

History | View | Annotate | Download (2.8 kB)

1 efcd7a43 Kostas Papadimitriou
# Copyright 2011 GRNET S.A. All rights reserved.
2 efcd7a43 Kostas Papadimitriou
#
3 efcd7a43 Kostas Papadimitriou
# Redistribution and use in source and binary forms, with or
4 efcd7a43 Kostas Papadimitriou
# without modification, are permitted provided that the following
5 efcd7a43 Kostas Papadimitriou
# conditions are met:
6 efcd7a43 Kostas Papadimitriou
#
7 efcd7a43 Kostas Papadimitriou
#   1. Redistributions of source code must retain the above
8 efcd7a43 Kostas Papadimitriou
#      copyright notice, this list of conditions and the following
9 efcd7a43 Kostas Papadimitriou
#      disclaimer.
10 efcd7a43 Kostas Papadimitriou
#
11 efcd7a43 Kostas Papadimitriou
#   2. Redistributions in binary form must reproduce the above
12 efcd7a43 Kostas Papadimitriou
#      copyright notice, this list of conditions and the following
13 efcd7a43 Kostas Papadimitriou
#      disclaimer in the documentation and/or other materials
14 efcd7a43 Kostas Papadimitriou
#      provided with the distribution.
15 efcd7a43 Kostas Papadimitriou
#
16 efcd7a43 Kostas Papadimitriou
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 efcd7a43 Kostas Papadimitriou
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 efcd7a43 Kostas Papadimitriou
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 efcd7a43 Kostas Papadimitriou
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 efcd7a43 Kostas Papadimitriou
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 efcd7a43 Kostas Papadimitriou
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 efcd7a43 Kostas Papadimitriou
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 efcd7a43 Kostas Papadimitriou
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 efcd7a43 Kostas Papadimitriou
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 efcd7a43 Kostas Papadimitriou
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 efcd7a43 Kostas Papadimitriou
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 efcd7a43 Kostas Papadimitriou
# POSSIBILITY OF SUCH DAMAGE.
28 efcd7a43 Kostas Papadimitriou
#
29 efcd7a43 Kostas Papadimitriou
# The views and conclusions contained in the software and
30 efcd7a43 Kostas Papadimitriou
# documentation are those of the authors and should not be
31 efcd7a43 Kostas Papadimitriou
# interpreted as representing official policies, either expressed
32 efcd7a43 Kostas Papadimitriou
# or implied, of GRNET S.A.
33 efcd7a43 Kostas Papadimitriou
34 d2ff89df Kostas Papadimitriou
import os
35 34d1013b Vangelis Koukis
import sys
36 efcd7a43 Kostas Papadimitriou
37 7fb619a0 Kostas Papadimitriou
from synnefo.util.entry_points import extend_settings
38 45832bda Kostas Papadimitriou
39 6740cd3a Kostas Papadimitriou
# set synnefo package __file__ to fix django related bug
40 3015903d Kostas Papadimitriou
import synnefo
41 6740cd3a Kostas Papadimitriou
synnefo.__file__ = os.path.join(synnefo.__path__[0], '__init__.py')
42 6740cd3a Kostas Papadimitriou
43 7fb619a0 Kostas Papadimitriou
# import default settings
44 7fb619a0 Kostas Papadimitriou
from synnefo.settings.default import *
45 7fb619a0 Kostas Papadimitriou
46 7fb619a0 Kostas Papadimitriou
# autodetect default settings provided by synnefo applications
47 2ce0636e Kostas Papadimitriou
extend_settings(__name__, 'synnefo')
48 efcd7a43 Kostas Papadimitriou
49 7fb619a0 Kostas Papadimitriou
# extend default settings with settings provided within *.conf user files
50 7fb619a0 Kostas Papadimitriou
# located in directory specified in the SYNNEFO_SETTINGS_DIR
51 c24ca4e8 Vangelis Koukis
# environment variable
52 7fb619a0 Kostas Papadimitriou
SYNNEFO_SETTINGS_DIR = os.environ.get('SYNNEFO_SETTINGS_DIR', "/etc/synnefo/")
53 34d1013b Vangelis Koukis
if os.path.exists(SYNNEFO_SETTINGS_DIR):
54 c24ca4e8 Vangelis Koukis
    try:
55 c24ca4e8 Vangelis Koukis
        entries = [os.path.join(SYNNEFO_SETTINGS_DIR, x) for x in
56 c24ca4e8 Vangelis Koukis
                   os.listdir(SYNNEFO_SETTINGS_DIR)]
57 c24ca4e8 Vangelis Koukis
        conffiles = [f for f in entries if os.path.isfile(f) and
58 c24ca4e8 Vangelis Koukis
                     f.endswith(".conf")]
59 c24ca4e8 Vangelis Koukis
    except Exception as e:
60 c24ca4e8 Vangelis Koukis
        print >>sys.stderr, "Failed to list *.conf files under %s" % \
61 c24ca4e8 Vangelis Koukis
                            SYNNEFO_SETTINGS_DIR
62 c24ca4e8 Vangelis Koukis
        raise SystemExit(1)
63 d2ff89df Kostas Papadimitriou
    conffiles.sort()
64 d2ff89df Kostas Papadimitriou
    for f in conffiles:
65 34d1013b Vangelis Koukis
        try:
66 34d1013b Vangelis Koukis
            execfile(os.path.abspath(f))
67 34d1013b Vangelis Koukis
        except Exception as e:
68 2ce0636e Kostas Papadimitriou
            print >>sys.stderr, "Failed to read settings file: %s [%s]" % \
69 2ce0636e Kostas Papadimitriou
                                (os.path.abspath(f), e)
70 c24ca4e8 Vangelis Koukis
            raise SystemExit(1)