Merge "Align patching tests with Fuel 6.1"

This commit is contained in:
Jenkins 2015-04-03 12:49:50 +00:00 committed by Gerrit Code Review
commit ba124788a4
3 changed files with 28 additions and 24 deletions

View File

@ -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

View File

@ -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
@ -513,3 +518,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)

View File

@ -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,