![Jui Chandwaskar](/assets/img/avatar_default.png)
Added Apache 2.0 License for missed files Change-Id: I72217d3cf0089434a9bbe1e5dfd57224a803704e Signed-off-by: Jui Chandwaskar <jchandwaskar@op5.com>
82 lines
3.1 KiB
Python
82 lines
3.1 KiB
Python
# (C) Copyright 2016 Hewlett Packard Enterprise Development LP
|
|
# 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.
|
|
|
|
import mock
|
|
import unittest
|
|
|
|
import monasca_agent.common.util as util
|
|
from monasca_agent.collector.checks_d.host_alive import HostAlive
|
|
|
|
HOST_ALIVE_STATUS = 'host_alive_status'
|
|
SUCCESS = 0
|
|
FAILURE = 1
|
|
|
|
|
|
class TestHostAlive(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
unittest.TestCase.setUp(self)
|
|
init_config = {}
|
|
agent_config = {}
|
|
self._host_alive = HostAlive('TestHostAlive', init_config, agent_config)
|
|
self._gauge = mock.Mock()
|
|
self._host_alive.gauge = self._gauge
|
|
self._host_name = 'monasca'
|
|
self._instance = {'host_name': self._host_name,
|
|
'alive_test': 'ping'}
|
|
self._base_dimensions = {
|
|
'test_type': 'ping',
|
|
'hostname': self._host_name,
|
|
'observer_host': util.get_hostname()
|
|
}
|
|
|
|
def _run_check(self, host_name, instance, ping_result):
|
|
mock_ping = mock.Mock(return_value=ping_result)
|
|
self._host_alive._test_ping = mock_ping
|
|
self._host_alive._check(instance)
|
|
mock_ping.assert_called_with(host_name, None)
|
|
|
|
def test_host_is_alive(self):
|
|
ping_result = (True, None)
|
|
self._run_check(self._host_name, self._instance, ping_result)
|
|
self._gauge.assert_called_with(HOST_ALIVE_STATUS,
|
|
SUCCESS,
|
|
dimensions=self._base_dimensions)
|
|
|
|
def test_host_is_dead(self):
|
|
error_message = '''I'm not dead yet'''
|
|
self._run_check(self._host_name, self._instance,
|
|
(False, error_message))
|
|
|
|
self._gauge.assert_called_with('host_alive_status',
|
|
FAILURE,
|
|
dimensions=self._base_dimensions,
|
|
value_meta={'error': error_message})
|
|
|
|
def test_host_is_alive_with_target_hostname(self):
|
|
check_name = 'otherMonasca'
|
|
self._instance['target_hostname'] = check_name
|
|
self._run_check(check_name, self._instance, (True, None))
|
|
self._base_dimensions['target_hostname'] = check_name
|
|
self._gauge.assert_called_with(HOST_ALIVE_STATUS,
|
|
SUCCESS,
|
|
dimensions=self._base_dimensions)
|
|
|
|
def test_host_is_alive_with_dup_target_hostname(self):
|
|
host_name = 'monasca'
|
|
self._instance['target_hostname'] = host_name
|
|
self._run_check(host_name, self._instance, (True, None))
|
|
self._gauge.assert_called_with(HOST_ALIVE_STATUS,
|
|
SUCCESS,
|
|
dimensions=self._base_dimensions)
|