Align patching tests with Fuel 6.1
Make necessary changes in tests to be able to run them on Fuel 6.1 iso. Also change parser for erratum.yaml, so it recognize new modified format. Change-Id: I6c8299aa6bda1fad1fb1f8c26338a86bf7c709ae Implements: blueprint mos-patching-tests
This commit is contained in:
parent
214258fcb1
commit
8bf792578b
@ -29,7 +29,6 @@ from proboscis.asserts import assert_not_equal
|
||||
from proboscis.asserts import assert_true
|
||||
|
||||
from fuelweb_test import settings
|
||||
from fuel_actions import CobblerActions
|
||||
|
||||
|
||||
patching_validation_schema = {
|
||||
@ -76,11 +75,10 @@ def map_test():
|
||||
errata = get_errata(path=settings.PATCHING_APPLY_TESTS,
|
||||
bug_id=settings.PATCHING_BUG_ID)
|
||||
verify_errata(errata)
|
||||
if 'pkgs' in errata.keys():
|
||||
if settings.OPENSTACK_RELEASE_CENTOS in settings.OPENSTACK_RELEASE:
|
||||
settings.PATCHING_PKGS = set(errata['pkgs']['centos'])
|
||||
else:
|
||||
settings.PATCHING_PKGS = set(errata['pkgs']['ubuntu'])
|
||||
if 'fixed-pkgs' in errata.keys():
|
||||
distro = settings.OPENSTACK_RELEASE.lower()
|
||||
settings.PATCHING_PKGS = set([re.split('=|<|>', package)[0] for package
|
||||
in errata['fixed-pkgs'][distro]])
|
||||
available_packages = set()
|
||||
for repo in settings.PATCHING_MIRRORS:
|
||||
available_packages.update(get_repository_packages(repo))
|
||||
@ -209,14 +207,6 @@ def get_packages_tests(packages):
|
||||
return packages_tests
|
||||
|
||||
|
||||
def enable_local_dns_resolving(environment):
|
||||
admin_remote = environment.d_env.get_admin_remote()
|
||||
router_ip = environment.d_env.router()
|
||||
# Add router IP to the DNS servers list on master node
|
||||
fuel_cobbler_actions = CobblerActions(admin_remote=admin_remote)
|
||||
fuel_cobbler_actions.add_dns_upstream_server(router_ip)
|
||||
|
||||
|
||||
def mirror_remote_repository(admin_remote, remote_repo_url, local_repo_path):
|
||||
repo_url = urlparse(remote_repo_url)
|
||||
cut_dirs = len(repo_url.path.strip('/').split('/'))
|
||||
@ -250,8 +240,8 @@ def connect_slaves_to_repo(environment, nodes, repo_name):
|
||||
master_ip=environment.get_admin_node_ip(), repo_name=repo_name)
|
||||
if settings.OPENSTACK_RELEASE == settings.OPENSTACK_RELEASE_UBUNTU:
|
||||
cmds = [
|
||||
"sed -e '$adeb {repourl} /' -i /etc/apt/sources.list".format(
|
||||
repourl=repourl),
|
||||
"sed -e '$adeb {repourl} /' -i /etc/apt/sources.list.d/mos.list".
|
||||
format(repourl=repourl),
|
||||
"apt-key add <(curl -s '{repourl}/Release.key')".format(
|
||||
repourl=repourl),
|
||||
"apt-get update"
|
||||
@ -405,7 +395,7 @@ def validate_fix_apply_step(apply_step, environment, slaves):
|
||||
|
||||
|
||||
def get_errata(path, bug_id):
|
||||
scenario_path = '{0}/bugs/{1}/errata.yaml'.format(path, bug_id)
|
||||
scenario_path = '{0}/bugs/{1}/erratum.yaml'.format(path, bug_id)
|
||||
if 'http' in urlparse(settings.PATCHING_APPLY_TESTS):
|
||||
return yaml.load(urlopen(scenario_path).read())
|
||||
elif os.path.isdir(settings.PATCHING_APPLY_TESTS):
|
||||
@ -468,8 +458,3 @@ def apply_patches(environment, slaves):
|
||||
|
||||
def verify_fix(environment, slaves):
|
||||
run_actions(environment, slaves, action_type='verify-scenario')
|
||||
|
||||
|
||||
class ApplyPatchActions(object):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
@ -29,6 +29,7 @@ from fuelweb_test.helpers.decorators import retry
|
||||
from fuelweb_test.helpers.decorators import upload_manifests
|
||||
from fuelweb_test.helpers.eb_tables import Ebtables
|
||||
from fuelweb_test.helpers.fuel_actions import AdminActions
|
||||
from fuelweb_test.helpers.fuel_actions import CobblerActions
|
||||
from fuelweb_test.helpers.fuel_actions import NailgunActions
|
||||
from fuelweb_test.helpers.fuel_actions import PostgresActions
|
||||
from fuelweb_test.helpers import multiple_networks_hacks
|
||||
@ -55,6 +56,10 @@ class EnvironmentModel(object):
|
||||
def postgres_actions(self):
|
||||
return PostgresActions(self.d_env.get_admin_remote())
|
||||
|
||||
@property
|
||||
def cobbler_actions(self):
|
||||
return CobblerActions(self.d_env.get_admin_remote())
|
||||
|
||||
@property
|
||||
def admin_node_ip(self):
|
||||
return self.fuel_web.admin_node_ip
|
||||
@ -511,3 +516,9 @@ class EnvironmentModel(object):
|
||||
return self.postgres_actions.run_query(
|
||||
db='nailgun',
|
||||
query="select master_node_uid from master_node_settings limit 1;")
|
||||
|
||||
@logwrap
|
||||
def enable_local_dns_resolving(self):
|
||||
router_ip = self.d_env.router()
|
||||
# Add router IP to the DNS servers list on master node
|
||||
self.cobbler_actions.add_dns_upstream_server(router_ip)
|
||||
|
@ -12,6 +12,8 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import time
|
||||
|
||||
from proboscis import test
|
||||
from proboscis.asserts import assert_is_not_none
|
||||
|
||||
@ -70,7 +72,7 @@ class PatchingTests(TestBasic):
|
||||
# Run Rally benchmarks, coming soon...
|
||||
|
||||
# Step #3
|
||||
patching.enable_local_dns_resolving(self.env)
|
||||
self.env.enable_local_dns_resolving()
|
||||
|
||||
# Step #4
|
||||
patching_repos = patching.add_remote_repositories(self.env)
|
||||
@ -92,7 +94,13 @@ class PatchingTests(TestBasic):
|
||||
patching.verify_fix(self.env, slaves)
|
||||
|
||||
# Step #9
|
||||
self.fuel_web.run_ostf(cluster_id=cluster_id)
|
||||
# If OSTF fails (sometimes services aren't ready after
|
||||
# slaves nodes reboot) sleep 5 minutes and try again
|
||||
try:
|
||||
self.fuel_web.run_ostf(cluster_id=cluster_id)
|
||||
except AssertionError:
|
||||
time.sleep(300)
|
||||
self.fuel_web.run_ostf(cluster_id=cluster_id)
|
||||
|
||||
# Step #10
|
||||
# Run Rally benchmarks, compare new results with previous,
|
||||
|
Loading…
Reference in New Issue
Block a user