# Path: data_catalog/configuration.py
# class DCConfig(object):
# 
#     """
#     Contains a configuration of the Data Catalog.
#     No fields should  be written to be the user.
#     """
# 
#     def __init__(self):
#         """
#         Reads the configuration from environment variables set by Cloud Foundry (CF)
#         or by the developer when running locally.
#         Normally, CF sets the full configuration in environment variables,
#         e.g. VCAP_SERVICES (which is most important for us).
#         When working on a local machine, VCAP_SERVICES also needs to be set and contain some values.
#         Without them, the app couldn't work.
#         Most of configuration values have some defaults that will be set when they aren't configured
#         in the environment, but some of them, like the address of the authorization server can't
#         have a default. They need to be set manually by the developer to enable local work.
#         """
#         self._fail_if_no_configuration()
# 
#         self.app_base_path = '/rest/datasets'
# 
#         # if values aren't found we set defaults that are meant for local operations
#         self.app_port = int(os.getenv(VCAP_APP_PORT, '5000'))
#         self.log_level = os.getenv(LOG_LEVEL, 'DEBUG')
# 
#         services_config = json.loads(os.environ[VCAP_SERVICES])
#         self.elastic = ElasticConfig(services_config)
#         self.services_url = ServiceUrlsConfig(services_config)
# 
#     @staticmethod
#     def _fail_if_no_configuration():
#         """
#         Checks the environment variables to decide if the app can run.
#         :rtype: None
#         :raises NoConfigEnvError: When VCAP_SERVICES is not present and the app can't run.
#         """
#         if not VCAP_SERVICES in os.environ:
#             raise NoConfigEnvError(
#                 'VCAP_SERVICES environment variable needs to be set to run Data Catalog.')


import logging
from elasticsearch import Elasticsearch
from flask_restful import Resource
from data_catalog.configuration import DCConfig
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#





class DataCatalogResource(Resource):

    """
    RESTful resource with Data Catalog configuration.
    Should be used as base for other resources.
    """

    def __init__(self):
        super(DataCatalogResource, self).__init__()
        self._config = DCConfig()
        self._log = logging.getLogger(type(self).__name__)


class DataCatalogModel(object):

    """
    Base for the application's model classes.
    """

    def __init__(self):

# Path: data_catalog/configuration.py
# class DCConfig(object):
# 
#     """
#     Contains a configuration of the Data Catalog.
#     No fields should  be written to be the user.
#     """
# 
#     def __init__(self):
#         """
#         Reads the configuration from environment variables set by Cloud Foundry (CF)
#         or by the developer when running locally.
#         Normally, CF sets the full configuration in environment variables,
#         e.g. VCAP_SERVICES (which is most important for us).
#         When working on a local machine, VCAP_SERVICES also needs to be set and contain some values.
#         Without them, the app couldn't work.
#         Most of configuration values have some defaults that will be set when they aren't configured
#         in the environment, but some of them, like the address of the authorization server can't
#         have a default. They need to be set manually by the developer to enable local work.
#         """
#         self._fail_if_no_configuration()
# 
#         self.app_base_path = '/rest/datasets'
# 
#         # if values aren't found we set defaults that are meant for local operations
#         self.app_port = int(os.getenv(VCAP_APP_PORT, '5000'))
#         self.log_level = os.getenv(LOG_LEVEL, 'DEBUG')
# 
#         services_config = json.loads(os.environ[VCAP_SERVICES])
#         self.elastic = ElasticConfig(services_config)
#         self.services_url = ServiceUrlsConfig(services_config)
# 
#     @staticmethod
#     def _fail_if_no_configuration():
#         """
#         Checks the environment variables to decide if the app can run.
#         :rtype: None
#         :raises NoConfigEnvError: When VCAP_SERVICES is not present and the app can't run.
#         """
#         if not VCAP_SERVICES in os.environ:
#             raise NoConfigEnvError(
#                 'VCAP_SERVICES environment variable needs to be set to run Data Catalog.')


# Path: data_catalog/bases.py
import logging
from elasticsearch import Elasticsearch
from flask_restful import Resource
from data_catalog.configuration import DCConfig

# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#





class DataCatalogResource(Resource):

    """
    RESTful resource with Data Catalog configuration.
    Should be used as base for other resources.
    """

    def __init__(self):
        super(DataCatalogResource, self).__init__()
        self._config = DCConfig()
        self._log = logging.getLogger(type(self).__name__)


class DataCatalogModel(object):

    """
    Base for the application's model classes.
    """

    def __init__(self):

        self._config = DCConfig()