summaryrefslogtreecommitdiffstats
path: root/jjb/parser/parser.yml
AgeCommit message (Expand)AuthorFilesLines
2016-06-15Tie all verify/merge/build to opnfv-build-ubuntuFatih Degirmenci1-1/+1
2016-05-27Fix "Illegal option -o pipefail" problem and correct the parser path.zhifeng.jiang1-6/+4
2016-05-26Add the pep8 check in parser verifyzhifeng.jiang1-1/+12
2016-01-07Enable verify and merge jobs for stable/brahmaputra branchFatih Degirmenci1-5/+4
2015-12-14Fix branch parameter and change stream name to brahmaputraFatih Degirmenci1-3/+3
2015-12-11Remove job_defaults from jobsFatih Degirmenci1-9/+2
2015-12-11Cleanup jjb filesFatih Degirmenci1-90/+28
2015-12-07jjb: use default logrotate setting in all projectsRyota MIBU1-18/+0
2015-12-01jjb: add default logrotate to releng-defaults.yamlRyota MIBU1-6/+0
2015-12-01jjb: move 'node: master' to releng-defaults.yamlRyota MIBU1-6/+0
2015-12-01jjb: move project-style to releng-defaults.yamlRyota MIBU1-8/+0
2015-11-30Remove project specific doc generation for parser so it uses common oneFatih Degirmenci1-2/+2
2015-11-27jjb: move ssh wrappers to releng-defaults.yamlRyota MIBU1-11/+0
2015-06-11Use new version docu-build.shAric Gardner1-1/+1
2015-04-30add documents build scripts and amend jjb file for parser projectMatthewLi1-21/+16
2015-04-08Fix {branch} parameter not foundThanh Ha1-2/+2
2015-03-06Add merge and verify jobs for all projects that lack said jobsAric Gardner1-1/+120
2015-02-18Inital commit for jenkins job builderAric Gardner1-0/+66
.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
#!/usr/bin/env python

##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

# Unittest for
# yardstick.benchmark.scenarios.availability.monitor.monitor_command

from __future__ import absolute_import
import mock
import unittest

from yardstick.benchmark.scenarios.availability.monitor import monitor_command


@mock.patch(
    'yardstick.benchmark.scenarios.availability.monitor.monitor_command'
    '.subprocess')
class ExecuteShellTestCase(unittest.TestCase):

    def test__fun_execute_shell_command_successful(self, mock_subprocess):
        cmd = "env"
        mock_subprocess.check_output.return_value = (0, 'unittest')
        exitcode, output = monitor_command._execute_shell_command(cmd)
        self.assertEqual(exitcode, 0)

    def test__fun_execute_shell_command_fail_cmd_exception(self,
                                                           mock_subprocess):
        cmd = "env"
        mock_subprocess.check_output.side_effect = RuntimeError
        exitcode, output = monitor_command._execute_shell_command(cmd)
        self.assertEqual(exitcode, -1)


@mock.patch(
    'yardstick.benchmark.scenarios.availability.monitor.monitor_command'
    '.subprocess')
class MonitorOpenstackCmdTestCase(unittest.TestCase):

    def setUp(self):
        host = {
            "ip": "10.20.0.5",
            "user": "root",
            "key_filename": "/root/.ssh/id_rsa"
        }
        self.context = {"node1": host}
        self.config = {
            'monitor_type': 'openstack-api',
            'command_name': 'nova image-list',
            'monitor_time': 1,
            'sla': {'max_outage_time': 5}
        }

    def test__monitor_command_monitor_func_successful(self, mock_subprocess):

        instance = monitor_command.MonitorOpenstackCmd(self.config, None, {"nova-api": 10})
        instance.setup()
        mock_subprocess.check_output.return_value = (0, 'unittest')
        ret = instance.monitor_func()
        self.assertEqual(ret, True)
        instance._result = {"outage_time": 0}
        instance.verify_SLA()

    def test__monitor_command_monitor_func_failure(self, mock_subprocess):
        mock_subprocess.check_output.return_value = (1, 'unittest')
        instance = monitor_command.MonitorOpenstackCmd(self.config, None, {"nova-api": 10})
        instance.setup()
        mock_subprocess.check_output.side_effect = RuntimeError
        ret = instance.monitor_func()
        self.assertEqual(ret, False)
        instance._result = {"outage_time": 10}
        instance.verify_SLA()

    @mock.patch(
        'yardstick.benchmark.scenarios.availability.monitor.monitor_command'
        '.ssh')
    def test__monitor_command_ssh_monitor_successful(self, mock_ssh,
                                                     mock_subprocess):

        self.config["host"] = "node1"
        instance = monitor_command.MonitorOpenstackCmd(
            self.config, self.context, {"nova-api": 10})
        instance.setup()
        mock_ssh.SSH.from_node().execute.return_value = (0, "0", '')
        ret = instance.monitor_func()