Improves EPEL and RDO repo setup

This patch improves repo setup. In case of EPEL it also enables/disables
EPEL repo according to configuration. In case of RDO it's installed on
each host if the repo is installed locally.

Fixes: rhbz#974971, rhbz#990642

Change-Id: I3a1f77061439f1072a0932918384b939babcd3e0
This commit is contained in:
Martin Magr
2013-10-04 10:31:00 +02:00
parent 6418613c5d
commit b42978f1bd
9 changed files with 165 additions and 84 deletions

View File

@@ -17,13 +17,14 @@
import os
import shutil
import subprocess
import sys
from unittest import TestCase
from packstack.modules import ospluginutils, puppet
from packstack.installer import run_setup, basedefs
from ..test_base import PackstackTestCaseMixin
from ..test_base import PackstackTestCaseMixin, FakePopen
class CommandLineTestCase(PackstackTestCaseMixin, TestCase):
@@ -42,6 +43,11 @@ class CommandLineTestCase(PackstackTestCaseMixin, TestCase):
Popen is replaced in PackstackTestCaseMixin so no actual commands get
run on the host running the unit tests
"""
# we need following to pass manage_epel(enabled=1) and
# manage_rdo(havana-6.noarch\nenabled=0) functions
fake = FakePopen()
fake.stdout = 'havana-6.noarch\nenabled=0enabled=1'
subprocess.Popen = fake
# create a dummy public key
dummy_public_key = os.path.join(self.tempdir, 'id_rsa.pub')
@@ -51,7 +57,7 @@ class CommandLineTestCase(PackstackTestCaseMixin, TestCase):
orig_argv = sys.argv
sys.argv = ['packstack', '--ssh-public-key=%s' % dummy_public_key,
'--install-hosts=127.0.0.1', '--os-swift-install=y',
'--nagios-install=y']
'--nagios-install=y', '--use-epel=y']
# There is no puppet logfile to validate, so replace
# ospluginutils.validate_puppet_logfile with a mock function

View File

@@ -18,10 +18,10 @@ import os
from unittest import TestCase
from test_base import PackstackTestCaseMixin
from packstack.plugins import serverprep_901
from packstack.plugins import serverprep_949
from packstack.installer.setup_controller import Controller
serverprep_901.controller = Controller()
serverprep_949.controller = Controller()
class OSPluginUtilsTestCase(PackstackTestCaseMixin, TestCase):
@@ -30,30 +30,30 @@ class OSPluginUtilsTestCase(PackstackTestCaseMixin, TestCase):
# On non-RHEL, the CONFIG_{RH,SATELLITE} options are never set,
# i.e. this test would always fail. Therefore, only run it on RHEL.
if not serverprep_901.is_rhel():
if not serverprep_949.is_rhel():
return
password = "dasd|'asda%><?"
serverprep_901.controller.CONF["CONFIG_KEYSTONE_HOST"] = "1.2.3.4"
serverprep_901.controller.CONF["CONFIG_USE_EPEL"] = "n"
serverprep_901.controller.CONF["CONFIG_REPO"] = ""
serverprep_901.controller.CONF["CONFIG_RH_USER"] = "testuser"
serverprep_901.controller.CONF["CONFIG_RH_PW"] = password
serverprep_901.controller.CONF["CONFIG_RH_BETA_REPO"] = "n"
serverprep_949.controller.CONF["CONFIG_KEYSTONE_HOST"] = "1.2.3.4"
serverprep_949.controller.CONF["CONFIG_USE_EPEL"] = "n"
serverprep_949.controller.CONF["CONFIG_REPO"] = ""
serverprep_949.controller.CONF["CONFIG_RH_USER"] = "testuser"
serverprep_949.controller.CONF["CONFIG_RH_PW"] = password
serverprep_949.controller.CONF["CONFIG_RH_BETA_REPO"] = "n"
serverprep_901.controller.CONF["CONFIG_SATELLITE_FLAGS"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_URL"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_USER"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_PW"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_CACERT"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_AKEY"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_PROFILE"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_PROXY"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_PROXY_USER"] = ""
serverprep_901.controller.CONF["CONFIG_SATELLITE_PROXY_PW"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_FLAGS"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_URL"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_USER"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_PW"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_CACERT"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_AKEY"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_PROFILE"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_PROXY"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_PROXY_USER"] = ""
serverprep_949.controller.CONF["CONFIG_SATELLITE_PROXY_PW"] = ""
serverprep_901.serverprep(serverprep_901.controller.CONF)
serverprep_949.serverprep(serverprep_949.controller.CONF)
self.assertNotEqual(
self.fake_popen.data.find('--password="%s"' % password), -1