2 # Licensed under the Apache License, Version 2.0 (the "License"); you may
3 # not use this file except in compliance with the License. You may obtain
4 # a copy of the License at
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11 # License for the specific language governing permissions and limitations
14 # Copyright 2016 RIFT.io Inc
17 ''' Provide a global configuration for the TOSCA translator'''
19 from six
.moves
import configparser
21 import rift
.mano
.tosca_translator
.common
.exception
as exception
23 from rift
.mano
.tosca_translator
.common
.utils
import _
26 class ConfigProvider(object):
27 '''Global config proxy that wraps a ConfigParser object.
29 Allows for class based access to config values. Should only be initialized
30 once using the corresponding translator.conf file in the conf directory.
34 # List that captures all of the conf file sections.
35 # Append any new sections to this list.
36 _sections
= ['DEFAULT']
37 _translator_config
= None
40 def _load_config(cls
, conf_file
):
41 '''Private method only to be called once from the __init__ module'''
43 cls
._translator
_config
= configparser
.ConfigParser()
45 cls
._translator
_config
.read(conf_file
)
46 except configparser
.ParsingError
:
47 msg
= _('Unable to parse translator.conf file.'
48 'Check to see that it exists in the conf directory.')
49 raise exception
.ConfFileParseError(message
=msg
)
52 def get_value(cls
, section
, key
):
54 value
= cls
._translator
_config
.get(section
, key
)
55 except configparser
.NoOptionError
:
56 raise exception
.ConfOptionNotDefined(key
=key
, section
=section
)
57 except configparser
.NoSectionError
:
58 raise exception
.ConfSectionNotDefined(section
=section
)
63 def get_all_values(cls
):
65 for section
in cls
._sections
:
67 values
.extend(cls
._translator
_config
.items(section
=section
))
68 except configparser
.NoOptionError
:
69 raise exception
.ConfSectionNotDefined(section
=section
)