Add support to Fedora 34 base cloud image
Change-Id: I876f0326423253c6e790613c204313360a992365
This commit is contained in:
parent
5b4fac01e8
commit
ee6162ab49
@ -30,6 +30,7 @@ OPTIONS = [
|
||||
GLANCE_IMAGE_NAMES = ['centos',
|
||||
'centos7',
|
||||
'cirros',
|
||||
'fedora',
|
||||
'rhel',
|
||||
'ubuntu']
|
||||
|
||||
|
@ -17,6 +17,7 @@ from __future__ import absolute_import
|
||||
|
||||
from tobiko.openstack.stacks import _centos
|
||||
from tobiko.openstack.stacks import _cirros
|
||||
from tobiko.openstack.stacks import _fedora
|
||||
from tobiko.openstack.stacks import _redhat
|
||||
from tobiko.openstack.stacks import _l3ha
|
||||
from tobiko.openstack.stacks import _neutron
|
||||
@ -42,6 +43,10 @@ EvacuableCirrosImageFixture = _cirros.EvacuableCirrosImageFixture
|
||||
EvacuableServerStackFixture = _cirros.EvacuableServerStackFixture
|
||||
CirrosHttpServerStackFixture = _cirros.CirrosHttpServerStackFixture
|
||||
|
||||
FedoraFlavorStackFixture = _fedora.FedoraFlavorStackFixture
|
||||
FedoraImageFixture = _fedora.FedoraImageFixture
|
||||
FedoraServerStackFixture = _fedora.FedoraServerStackFixture
|
||||
|
||||
RedHatFlavorStackFixture = _redhat.RedHatFlavorStackFixture
|
||||
RhelImageFixture = _redhat.RhelImageFixture
|
||||
RedHatServerStackFixture = _redhat.RedHatServerStackFixture
|
||||
|
63
tobiko/openstack/stacks/_fedora.py
Normal file
63
tobiko/openstack/stacks/_fedora.py
Normal file
@ -0,0 +1,63 @@
|
||||
# Copyright 2019 Red Hat
|
||||
#
|
||||
# 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 __future__ import absolute_import
|
||||
|
||||
import typing
|
||||
|
||||
import tobiko
|
||||
from tobiko import config
|
||||
from tobiko.openstack import glance
|
||||
from tobiko.openstack.stacks import _nova
|
||||
|
||||
|
||||
CONF = config.CONF
|
||||
|
||||
|
||||
FEDORA_IMAGE_URL = (
|
||||
'https://download.fedoraproject.org/pub/fedora/linux/releases/34/Cloud/'
|
||||
'x86_64/images/Fedora-Cloud-Base-34-1.2.x86_64.qcow2')
|
||||
|
||||
|
||||
class FedoraBaseImageFixture(glance.URLGlanceImageFixture):
|
||||
image_url = CONF.tobiko.fedora.image_url or FEDORA_IMAGE_URL
|
||||
image_name = CONF.tobiko.fedora.image_name
|
||||
image_file = CONF.tobiko.fedora.image_file
|
||||
disk_format = CONF.tobiko.fedora.disk_format or "qcow2"
|
||||
container_format = CONF.tobiko.fedora.container_format or "bare"
|
||||
username = CONF.tobiko.fedora.username or 'fedora'
|
||||
password = CONF.tobiko.fedora.password
|
||||
connection_timeout = CONF.tobiko.fedora.connection_timeout or 800.
|
||||
|
||||
|
||||
class FedoraImageFixture(FedoraBaseImageFixture,
|
||||
glance.CustomizedGlanceImageFixture):
|
||||
|
||||
@property
|
||||
def run_commands(self) -> typing.List[str]:
|
||||
return super().run_commands + [
|
||||
'update-crypto-policies --set LEGACY']
|
||||
|
||||
|
||||
class FedoraFlavorStackFixture(_nova.FlavorStackFixture):
|
||||
ram = 256
|
||||
swap = 1024
|
||||
|
||||
|
||||
class FedoraServerStackFixture(_nova.CloudInitServerStackFixture):
|
||||
|
||||
#: Glance image used to create a Nova server instance
|
||||
image_fixture = tobiko.required_setup_fixture(FedoraImageFixture)
|
||||
|
||||
#: Flavor used to create a Nova server instance
|
||||
flavor_stack = tobiko.required_setup_fixture(FedoraFlavorStackFixture)
|
47
tobiko/tests/functional/openstack/stacks/test_fedora.py
Normal file
47
tobiko/tests/functional/openstack/stacks/test_fedora.py
Normal file
@ -0,0 +1,47 @@
|
||||
# Copyright (c) 2019 Red Hat, Inc.
|
||||
#
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# 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 __future__ import absolute_import
|
||||
|
||||
import tobiko
|
||||
from tobiko.shell import sh
|
||||
from tobiko.openstack import keystone
|
||||
from tobiko.openstack import nova
|
||||
from tobiko.openstack import stacks
|
||||
from tobiko.tests.functional.openstack.stacks import test_cirros
|
||||
|
||||
|
||||
@keystone.skip_unless_has_keystone_credentials()
|
||||
class FedoraServerStackTest(test_cirros.CirrosServerStackTest):
|
||||
"""Test Fedora server instance"""
|
||||
|
||||
#: Stack of resources with a server attached to a floating IP
|
||||
stack = tobiko.required_setup_fixture(stacks.FedoraServerStackFixture)
|
||||
|
||||
nameservers_filenames = ('/run/systemd/resolve/resolv.conf',)
|
||||
|
||||
def test_user_data(self):
|
||||
user_data = self.stack.user_data
|
||||
self.assertEqual('', user_data)
|
||||
|
||||
def test_python3(self):
|
||||
python_version = sh.execute(['/usr/bin/python3',
|
||||
'--version'],
|
||||
ssh_client=self.stack.ssh_client).stdout
|
||||
self.assertTrue(python_version.startswith('Python 3.'),
|
||||
python_version)
|
||||
|
||||
def test_cloud_init_done(self):
|
||||
nova.wait_for_cloud_init_done(ssh_client=self.stack.ssh_client)
|
Loading…
x
Reference in New Issue
Block a user