dd7efc353e
OpenStack is dropping the py2.7 support in ussuri cycle. Complete discussion & schedule can be found in - http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html - https://etherpad.openstack.org/p/drop-python2-support Ussuri Communtiy-wide goal: https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html Cleanup tox.ini, remove install_command and add constraints to deps. Replace mock with unittest.mock. Change-Id: Idcac0b5310adf27a35223273bd54a4a154988c9b
115 lines
4.0 KiB
Python
115 lines
4.0 KiB
Python
#
|
|
# 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 re
|
|
import testtools
|
|
from unittest import mock
|
|
|
|
from tests import hook_kubelet
|
|
|
|
|
|
class HookKubeletTest(testtools.TestCase):
|
|
|
|
config = {
|
|
"id": "a50ae8dd-b0c4-407f-8732-3571b3a0f28b",
|
|
"group": "kubelet",
|
|
"inputs": [],
|
|
"name": "20_apache_deployment",
|
|
"outputs": [],
|
|
"options": {},
|
|
"config": {
|
|
"version": "v1beta2",
|
|
"volumes": [{
|
|
"name": "mariadb-data"
|
|
}],
|
|
"containers": [{
|
|
"image": "kollaglue/fedora-rdo-rabbitmq",
|
|
"name": "rabbitmq",
|
|
"ports": [{
|
|
"containerPort": 5672,
|
|
"hostPort": 5672}]
|
|
}, {
|
|
"image": "kollaglue/fedora-rdo-heat-engine",
|
|
"name": "heat-engine",
|
|
"env": [{
|
|
"name": "AUTH_ENCRYPTION_KEY",
|
|
"value": "Vegu95l2jwkucD9RSYAoFpRbUlh0PGF7"}]
|
|
}, {
|
|
"image": "kollaglue/fedora-rdo-heat-engine",
|
|
"name": "heat-engine2",
|
|
"env": [{
|
|
"name": "AUTH_ENCRYPTION_KEY",
|
|
"value": "Vegu95l2jwkucD9RSYAoFpRbUlh0PGF7"}]
|
|
}]
|
|
}
|
|
}
|
|
|
|
def setUp(self):
|
|
super(HookKubeletTest, self).setUp()
|
|
docker = mock.MagicMock()
|
|
self.docker_client = mock.MagicMock()
|
|
docker.Client.return_value = self.docker_client
|
|
self.docker_client.version.return_value = {
|
|
'ApiVersion': '1.3.0'
|
|
}
|
|
hook_kubelet.docker = docker
|
|
|
|
def test_id_to_pod_name_part(self):
|
|
self.assertEqual(
|
|
'fc9070b3ba4e4f2',
|
|
hook_kubelet.id_to_pod_name_part(
|
|
'fc9070b3-ba4e-4f22-b732-5ffdcdb40b74'))
|
|
|
|
def test_container_pattern(self):
|
|
pattern = hook_kubelet.container_pattern(
|
|
'fc9070b3-ba4e-4f22-b732-5ffdcdb40b74', 'mariadb')
|
|
self.assertEqual(
|
|
'^/k8s_mariadb\\.[0-9a-z]{8}_fc9070b3ba4e4f2', pattern)
|
|
|
|
pat = re.compile(pattern)
|
|
|
|
self.assertIsNotNone(pat.match(
|
|
'/k8s_mariadb.dac8ccce_fc9070b3ba4e4f2'
|
|
'uv6pejpu5nqbmrqoungurhtob5gvt.default.'
|
|
'file_2c8cf9fc94674e8buv6pejpu5nqbmrqoungurhtob5gvt_dcd1e1d9'))
|
|
self.assertIsNotNone(pat.match(
|
|
'/k8s_mariadb.dac8ccce_fc9070b3ba4e4f2a'))
|
|
|
|
self.assertIsNone(pat.match(
|
|
'k8s_mariadb.dac8ccce_fc9070b3ba4e4f2a'))
|
|
self.assertIsNone(pat.match(
|
|
'/k8s_mysqldb.dac8ccce_fc9070b3ba4e4f2a'))
|
|
self.assertIsNone(pat.match(
|
|
'/k8s_mariadb.dac8ccc_fc9070b3ba4e4f2a'))
|
|
self.assertIsNone(pat.match(
|
|
'/k8s_mariadb.dac8ccce_gc9070b3ba4e4f22a'))
|
|
|
|
def test_required_images(self):
|
|
self.assertEqual(
|
|
set([
|
|
'kollaglue/fedora-rdo-heat-engine',
|
|
'kollaglue/fedora-rdo-rabbitmq']),
|
|
hook_kubelet.required_images(self.config))
|
|
|
|
self.assertEqual(
|
|
set(), hook_kubelet.required_images({'config': {}}))
|
|
|
|
def test_required_container_patterns(self):
|
|
patterns = hook_kubelet.required_container_patterns(self.config)
|
|
self.assertEqual({
|
|
'heat-engine': '^/k8s_heat-engine\\.[0-9a-z]{8}_a50ae8ddb0c4407',
|
|
'heat-engine2': '^/k8s_heat-engine2\\.[0-9a-z]{8}_a50ae8ddb0c4407',
|
|
'rabbitmq': '^/k8s_rabbitmq\\.[0-9a-z]{8}_a50ae8ddb0c4407'
|
|
}, patterns)
|