X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=plugins%2FOpenStack%2Fsettings.py;h=d177dcf8ca97bde0e3b813425b3e7c95a44c03ee;hb=95b92b3dacfd93fa1649a5f87dafd2fa6553a086;hp=fc54b07871b91c228e1dfe69110b0a1fd2120eba;hpb=c85d9848945f55dcda1ab660a116b45c5cd51152;p=osm%2FMON.git diff --git a/plugins/OpenStack/settings.py b/plugins/OpenStack/settings.py index fc54b07..d177dcf 100644 --- a/plugins/OpenStack/settings.py +++ b/plugins/OpenStack/settings.py @@ -1,16 +1,38 @@ -"""Configurations for the Aodh plugin.""" +# Copyright 2017 Intel Research and Development Ireland Limited +# ************************************************************* -from __future__ import unicode_literals +# This file is part of OSM Monitoring module +# All Rights Reserved to Intel Corporation -import logging as log +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# 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. + +# For those usages not covered by the Apache License, Version 2.0 please +# contact: helena.mcgough@intel.com or adrian.hoban@intel.com +## +"""Configurations for the OpenStack plugins.""" + +import logging +log = logging.getLogger(__name__) import os from collections import namedtuple -from plugins.Openstack.singleton import Singleton +from plugins.OpenStack.singleton import Singleton import six +__author__ = "Helena McGough" + class BadConfigError(Exception): """Configuration exception.""" @@ -38,7 +60,7 @@ class Config(object): _configuration = [ CfgParam('OS_AUTH_URL', None, six.text_type), CfgParam('OS_IDENTITY_API_VERSION', "3", six.text_type), - CfgParam('OS_USERNAME', "aodh", six.text_type), + CfgParam('OS_USERNAME', None, six.text_type), CfgParam('OS_PASSWORD', "password", six.text_type), CfgParam('OS_TENANT_NAME', "service", six.text_type), ] @@ -51,16 +73,22 @@ class Config(object): for cfg in self._configuration: setattr(self, cfg.key, cfg.default) - def read_environ(self): + def read_environ(self, service): """Check the appropriate environment variables and update defaults.""" for key in self._config_keys: - if (key == "OS_IDENTITY_API_VERSION" or key == "OS_PASSWORD"): - val = str(os.environ[key]) - setattr(self, key, val) - elif (key == "OS_AUTH_URL"): - val = str(os.environ[key]) + "/v3" - setattr(self, key, val) - else: - # TODO(mcgoughh): Log errors and no config updates required - log.warn("Configuration doesn't require updating") - return + try: + if (key == "OS_IDENTITY_API_VERSION" or key == "OS_PASSWORD"): + val = str(os.environ[key]) + setattr(self, key, val) + elif (key == "OS_AUTH_URL"): + val = str(os.environ[key]) + "/v3" + setattr(self, key, val) + else: + # Default username for a service is it's name + setattr(self, 'OS_USERNAME', service) + log.info("Configuration complete!") + return + except KeyError as exc: + log.warn("Falied to configure plugin: %s", exc) + log.warn("Try re-authenticating your OpenStack deployment.") + return