#!/usr/bin/env python ############################################################################## # Copyright (c) 2017 Intel Corporation # # 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.orchestrator.heat import unittest import mock from yardstick.orchestrator.kubernetes import KubernetesObject from yardstick.orchestrator.kubernetes import KubernetesTemplate class GetTemplateTestCase(unittest.TestCase): def test_get_template(self): output_t = { "apiVersion": "v1", "kind": "ReplicationController", "metadata": { "name": "host-k8s-86096c30" }, "spec": { "replicas": 1, "template": { "metadata": { "labels": { "app": "host-k8s-86096c30" } }, "spec": { "containers": [ { "args": [ "-c", "chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \ service ssh restart;while true ; do sleep 10000; done" ], "command": [ "/bin/bash" ], "image": "openretriever/yardstick", "name": "host-k8s-86096c30-container", "volumeMounts": [ { "mountPath": "/root/.ssh/", "name": "k8s-86096c30-key" } ] } ], "volumes": [ { "configMap": { "name": "k8s-86096c30-key" }, "name": "k8s-86096c30-key" } ], "nodeSelector": { "kubernetes.io/hostname": "node-01" } } } } } input_s = { 'command': '/bin/bash', 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \ service ssh restart;while true ; do sleep 10000; done'], 'ssh_key': 'k8s-86096c30-key', 'nodeSelector': { 'kubernetes.io/hostname': 'node-01'} } name = 'host-k8s-86096c30' output_r = KubernetesObject(name, **input_s).get_template() self.assertEqual(output_r, output_t) class GetRcPodsTestCase(unittest.TestCase): @mock.patch('yardstick.orchestrator.kubernetes.k8s_utils.get_pod_list') def test_get_rc_pods(self, mock_get_pod_list): servers = { 'host': { 'image': 'openretriever/yardstick', 'command': '/bin/bash', 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \ service ssh restart;while true ; do sleep 10000; done'] }, 'target': { 'image': 'openretriever/yardstick', 'command': '/bin/bash', 'args': ['-c', 'chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; \ service ssh restart;while true ; do sleep 10000; done'] } } k8s_template = KubernetesTemplate('k8s-86096c30', servers) mock_get_pod_list.return_value.items = [] pods = k8s_template.get_rc_pods() self.assertEqual(pods, []) def main(): unittest.main() if __name__ == '__main__': main()