6d7783f641
For the 0.x versions of the plugins, the checks continue to use the same VIP addresses as before. Change-Id: Icdf9315239a8fde8b0528f555a89adf0374c408f Implements-blueprint: kibana-grafana-public-ip-access
86 lines
3.2 KiB
Python
86 lines
3.2 KiB
Python
# Copyright 2016 Mirantis, Inc.
|
|
#
|
|
# 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.
|
|
|
|
from fuelweb_test import logger
|
|
|
|
from stacklight_tests import base_test
|
|
from stacklight_tests.lma_collector import plugin_settings
|
|
|
|
|
|
class LMACollectorPluginApi(base_test.PluginApi):
|
|
def get_plugin_settings(self):
|
|
return plugin_settings
|
|
|
|
def prepare_plugin(self):
|
|
self.helpers.prepare_plugin(self.settings.plugin_path)
|
|
|
|
def activate_plugin(self, options=None):
|
|
if options is None:
|
|
options = self.settings.default_options
|
|
self.helpers.activate_plugin(
|
|
self.settings.name, self.settings.version, options)
|
|
|
|
def verify_services(self):
|
|
"""Check that the correct amount of collector processes are running.
|
|
|
|
:returns: list of process IDs indexed by node and process
|
|
:rtype: dict
|
|
"""
|
|
pids = {}
|
|
processes_count = {
|
|
"collectd": 1,
|
|
"collectdmon": 1
|
|
}
|
|
|
|
if self.settings.version.startswith("0.9"):
|
|
processes_count["hekad"] = 1
|
|
else:
|
|
# Starting with 0.10, there are one collector for logs and one for
|
|
# metrics
|
|
processes_count["hekad"] = 2
|
|
online_nodes = [node for node in self.helpers.get_all_ready_nodes()
|
|
if node["online"]]
|
|
for node in online_nodes:
|
|
pids[node["name"]] = {}
|
|
with self.env.d_env.get_ssh_to_remote(node["ip"]) as remote:
|
|
for process, count in processes_count.items():
|
|
logger.info("Checking process {0} on node {1}".format(
|
|
process, node["name"]
|
|
))
|
|
pids[node["name"]][process] = (
|
|
self.checkers.check_process_count(
|
|
remote, process, count))
|
|
return pids
|
|
|
|
def check_plugin_online(self):
|
|
# Run the OSTF tests to check the Pacemaker status except when no
|
|
# controller are being deployed (dedicated environment case)
|
|
controllers = self.fuel_web.get_nailgun_cluster_nodes_by_roles(
|
|
self.helpers.cluster_id, ["controller"])
|
|
if len(controllers) > 0:
|
|
self.helpers.run_single_ostf(
|
|
test_sets=['ha'],
|
|
test_name='fuel_health.tests.ha.test_pacemaker_status.'
|
|
'TestPacemakerStatus.test_check_pacemaker_resources')
|
|
|
|
self.verify_services()
|
|
|
|
def uninstall_plugin(self):
|
|
return self.helpers.uninstall_plugin(self.settings.name,
|
|
self.settings.version)
|
|
|
|
def check_uninstall_failure(self):
|
|
return self.helpers.check_plugin_cannot_be_uninstalled(
|
|
self.settings.name, self.settings.version)
|