import logging
import os
import sys
+import yaml
logging.basicConfig(stream=sys.stdout,
format='%(asctime)s %(message)s',
from kafka import KafkaConsumer
from osm_mon.plugins.OpenStack.Aodh import alarming
-from osm_mon.plugins.OpenStack.common import Common
from osm_mon.plugins.OpenStack.Gnocchi import metrics
from osm_mon.plugins.CloudWatch.plugin_alarm import plugin_alarms
database_manager.create_tables()
# Create OpenStack alarming and metric instances
-auth_token = None
-openstack_auth = Common()
openstack_metrics = metrics.Metrics()
openstack_alarms = alarming.Alarming()
vrops_rcvr = plugin_receiver.PluginReceiver()
-def get_vim_type(message):
+def get_vim_type(msg):
"""Get the vim type that is required by the message."""
try:
- return json.loads(message.value)["vim_type"].lower()
+ vim_uuid = json.loads(msg.value)["vim_uuid"].lower()
+ credentials = database_manager.get_credentials(vim_uuid)
+ return credentials.type
except Exception as exc:
log.warn("vim_type is not configured correctly; %s", exc)
return None
for message in common_consumer:
log.info("Message arrived: %s", message)
try:
+ try:
+ values = json.loads(message.value)
+ except:
+ values = yaml.safe_load(message.value)
# Check the message topic
if message.topic == "metric_request":
# Check the vim desired by the message
if vim_type == "openstack":
log.info("This message is for the OpenStack plugin.")
- openstack_metrics.metric_calls(
- message, openstack_auth, auth_token)
-
+ openstack_metrics.metric_calls(message)
elif vim_type == "aws":
log.info("This message is for the CloudWatch plugin.")
aws_conn = aws_connection.setEnvironment()
vim_type = get_vim_type(message)
if vim_type == "openstack":
log.info("This message is for the OpenStack plugin.")
- openstack_alarms.alarming(message, openstack_auth, auth_token)
+ openstack_alarms.alarming(message)
elif vim_type == "aws":
log.info("This message is for the CloudWatch plugin.")
elif message.topic == "vim_account":
if message.key == "create" or message.key == "edit":
- auth_manager.store_auth_credentials(message)
+ auth_manager.store_auth_credentials(values)
if message.key == "delete":
- auth_manager.delete_auth_credentials(message)
+ auth_manager.delete_auth_credentials(values)
- # TODO: Remove in the near future. Modify tests accordingly.
+ # TODO: Remove in the near future when all plugins support vim_uuid. Modify tests accordingly.
elif message.topic == "access_credentials":
# Check the vim desired by the message
vim_type = get_vim_type(message)
- if vim_type == "openstack":
- log.info("This message is for the OpenStack plugin.")
- auth_token = openstack_auth._authenticate(message=message)
- elif vim_type == "aws":
+ if vim_type == "aws":
log.info("This message is for the CloudWatch plugin.")
aws_access_credentials.access_credential_calls(message)