Merge "Align patching tests with Fuel 6.1"
This commit is contained in:
commit
ba124788a4
@ -29,7 +29,6 @@ from proboscis.asserts import assert_not_equal
|
|||||||
from proboscis.asserts import assert_true
|
from proboscis.asserts import assert_true
|
||||||
|
|
||||||
from fuelweb_test import settings
|
from fuelweb_test import settings
|
||||||
from fuel_actions import CobblerActions
|
|
||||||
|
|
||||||
|
|
||||||
patching_validation_schema = {
|
patching_validation_schema = {
|
||||||
@ -76,11 +75,10 @@ def map_test():
|
|||||||
errata = get_errata(path=settings.PATCHING_APPLY_TESTS,
|
errata = get_errata(path=settings.PATCHING_APPLY_TESTS,
|
||||||
bug_id=settings.PATCHING_BUG_ID)
|
bug_id=settings.PATCHING_BUG_ID)
|
||||||
verify_errata(errata)
|
verify_errata(errata)
|
||||||
if 'pkgs' in errata.keys():
|
if 'fixed-pkgs' in errata.keys():
|
||||||
if settings.OPENSTACK_RELEASE_CENTOS in settings.OPENSTACK_RELEASE:
|
distro = settings.OPENSTACK_RELEASE.lower()
|
||||||
settings.PATCHING_PKGS = set(errata['pkgs']['centos'])
|
settings.PATCHING_PKGS = set([re.split('=|<|>', package)[0] for package
|
||||||
else:
|
in errata['fixed-pkgs'][distro]])
|
||||||
settings.PATCHING_PKGS = set(errata['pkgs']['ubuntu'])
|
|
||||||
available_packages = set()
|
available_packages = set()
|
||||||
for repo in settings.PATCHING_MIRRORS:
|
for repo in settings.PATCHING_MIRRORS:
|
||||||
available_packages.update(get_repository_packages(repo))
|
available_packages.update(get_repository_packages(repo))
|
||||||
@ -209,14 +207,6 @@ def get_packages_tests(packages):
|
|||||||
return packages_tests
|
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):
|
def mirror_remote_repository(admin_remote, remote_repo_url, local_repo_path):
|
||||||
repo_url = urlparse(remote_repo_url)
|
repo_url = urlparse(remote_repo_url)
|
||||||
cut_dirs = len(repo_url.path.strip('/').split('/'))
|
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)
|
master_ip=environment.get_admin_node_ip(), repo_name=repo_name)
|
||||||
if settings.OPENSTACK_RELEASE == settings.OPENSTACK_RELEASE_UBUNTU:
|
if settings.OPENSTACK_RELEASE == settings.OPENSTACK_RELEASE_UBUNTU:
|
||||||
cmds = [
|
cmds = [
|
||||||
"sed -e '$adeb {repourl} /' -i /etc/apt/sources.list".format(
|
"sed -e '$adeb {repourl} /' -i /etc/apt/sources.list.d/mos.list".
|
||||||
repourl=repourl),
|
format(repourl=repourl),
|
||||||
"apt-key add <(curl -s '{repourl}/Release.key')".format(
|
"apt-key add <(curl -s '{repourl}/Release.key')".format(
|
||||||
repourl=repourl),
|
repourl=repourl),
|
||||||
"apt-get update"
|
"apt-get update"
|
||||||
@ -405,7 +395,7 @@ def validate_fix_apply_step(apply_step, environment, slaves):
|
|||||||
|
|
||||||
|
|
||||||
def get_errata(path, bug_id):
|
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):
|
if 'http' in urlparse(settings.PATCHING_APPLY_TESTS):
|
||||||
return yaml.load(urlopen(scenario_path).read())
|
return yaml.load(urlopen(scenario_path).read())
|
||||||
elif os.path.isdir(settings.PATCHING_APPLY_TESTS):
|
elif os.path.isdir(settings.PATCHING_APPLY_TESTS):
|
||||||
@ -468,8 +458,3 @@ def apply_patches(environment, slaves):
|
|||||||
|
|
||||||
def verify_fix(environment, slaves):
|
def verify_fix(environment, slaves):
|
||||||
run_actions(environment, slaves, action_type='verify-scenario')
|
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.decorators import upload_manifests
|
||||||
from fuelweb_test.helpers.eb_tables import Ebtables
|
from fuelweb_test.helpers.eb_tables import Ebtables
|
||||||
from fuelweb_test.helpers.fuel_actions import AdminActions
|
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 NailgunActions
|
||||||
from fuelweb_test.helpers.fuel_actions import PostgresActions
|
from fuelweb_test.helpers.fuel_actions import PostgresActions
|
||||||
from fuelweb_test.helpers import multiple_networks_hacks
|
from fuelweb_test.helpers import multiple_networks_hacks
|
||||||
@ -55,6 +56,10 @@ class EnvironmentModel(object):
|
|||||||
def postgres_actions(self):
|
def postgres_actions(self):
|
||||||
return PostgresActions(self.d_env.get_admin_remote())
|
return PostgresActions(self.d_env.get_admin_remote())
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cobbler_actions(self):
|
||||||
|
return CobblerActions(self.d_env.get_admin_remote())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def admin_node_ip(self):
|
def admin_node_ip(self):
|
||||||
return self.fuel_web.admin_node_ip
|
return self.fuel_web.admin_node_ip
|
||||||
@ -513,3 +518,9 @@ class EnvironmentModel(object):
|
|||||||
return self.postgres_actions.run_query(
|
return self.postgres_actions.run_query(
|
||||||
db='nailgun',
|
db='nailgun',
|
||||||
query="select master_node_uid from master_node_settings limit 1;")
|
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
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
from proboscis import test
|
from proboscis import test
|
||||||
from proboscis.asserts import assert_is_not_none
|
from proboscis.asserts import assert_is_not_none
|
||||||
|
|
||||||
@ -70,7 +72,7 @@ class PatchingTests(TestBasic):
|
|||||||
# Run Rally benchmarks, coming soon...
|
# Run Rally benchmarks, coming soon...
|
||||||
|
|
||||||
# Step #3
|
# Step #3
|
||||||
patching.enable_local_dns_resolving(self.env)
|
self.env.enable_local_dns_resolving()
|
||||||
|
|
||||||
# Step #4
|
# Step #4
|
||||||
patching_repos = patching.add_remote_repositories(self.env)
|
patching_repos = patching.add_remote_repositories(self.env)
|
||||||
@ -92,7 +94,13 @@ class PatchingTests(TestBasic):
|
|||||||
patching.verify_fix(self.env, slaves)
|
patching.verify_fix(self.env, slaves)
|
||||||
|
|
||||||
# Step #9
|
# 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
|
# Step #10
|
||||||
# Run Rally benchmarks, compare new results with previous,
|
# Run Rally benchmarks, compare new results with previous,
|
||||||
|
Loading…
Reference in New Issue
Block a user