Example #1
0
    def test_03_config_parameters(self):
        core.skip_ok_unless_installed('gratia-service')
        core.config['gratia.host'] = core.get_hostname()
        core.config['gratia.config.dir'] = '/etc/gratia'
        # The name of the gratia directory changed
        gratia_version = core.get_package_envra('gratia-service')[2]
        gratia_version_split = gratia_version.split('.')

        if self.tuple_cmp(gratia_version_split, ['1', '13', '5']) < 0:
            core.config['gratia.directory'] = "collector"
        else:
            core.config['gratia.directory'] = "services"

        core.config['certs.httpcert'] = '/etc/grid-security/http/httpcert.pem'
        core.config['certs.httpkey'] = '/etc/grid-security/http/httpkey.pem'

        filename = "/tmp/gratia_reader_pass." + str(os.getpid()) + ".txt"
        contents = "[client]\n" + "password=reader\n"
        files.write(filename, contents, backup=False)
        core.config['gratia.sql.file'] = filename
        core.config['gratia.sql.querystring'] = "\" | mysql --defaults-extra-file=\"" + core.config['gratia.sql.file'] + "\" --skip-column-names -B --unbuffered  --user=reader --port=3306"
        core.config['gratia.tmpdir.prefix'] = "/var/lib/gratia/tmp/gratiafiles/"
        core.config['gratia.tmpdir.postfix'] = "_" + core.config['gratia.host'] + "_" + core.config['gratia.host'] + "_8880"
        core.config['gratia.log.file'] = "/var/log/gratia-service/gratia.log"
        core.state['gratia.log.stat'] = None
Example #2
0
    def record_cvmfs_version(self):
        core.state['cvmfs.version'] = tuple()

        cvmfs_version_string = core.get_package_envra('cvmfs')[2]
        cvmfs_version = tuple(cvmfs_version_string.split("."))

        core.state['cvmfs.version'] = cvmfs_version
Example #3
0
    def test_01_condor_run_pbs(self):
        core.skip_ok_unless_installed('condor', 'blahp')
        core.skip_ok_unless_installed('torque-mom',
                                      'torque-server',
                                      'torque-scheduler',
                                      by_dependency=True)
        self.skip_bad_unless(core.state['jobs.env-set'],
                             'job environment not set')
        self.skip_bad_unless(service.is_running('condor'),
                             'condor not running')
        self.skip_bad_unless(service.is_running('pbs_server'),
                             'pbs not running')

        command = ('condor_run', '-u', 'grid', '-a', 'grid_resource=pbs', '-a',
                   'periodic_remove=JobStatus==5', '/bin/env')

        # Figure out whether the installed BLAHP package is the same as or later
        # than "blahp-1.18.11.bosco-4.osg*" (in the RPM sense), because it's the
        # first build in which the job environments are correctly passed to PBS.
        # The release following "osg" does not matter and it is easier to ignore
        # the OS major version.  This code may be a useful starting point for a
        # more general library function.
        blahp_envra = core.get_package_envra('blahp')
        blahp_pbs_has_env_vars = (rpm.labelCompare(
            ['blahp', '1.18.11.bosco', '4.osg'], blahp_envra[1:4]) <= 0)

        self.run_job_in_tmp_dir(command,
                                'condor_run a Condor job',
                                verify_environment=blahp_pbs_has_env_vars)
Example #4
0
    def test_03_config_parameters(self):
        core.skip_ok_unless_installed('gratia-service')
        core.config['gratia.host'] = core.get_hostname()
        core.config['gratia.config.dir'] = '/etc/gratia'
        # The name of the gratia directory changed
        gratia_version = core.get_package_envra('gratia-service')[2]
        gratia_version_split = gratia_version.split('.')

        if self.tuple_cmp(gratia_version_split, ['1', '13', '5']) < 0:
            core.config['gratia.directory'] = "collector"
        else:
            core.config['gratia.directory'] = "services"

        core.config['certs.httpcert'] = '/etc/grid-security/http/httpcert.pem'
        core.config['certs.httpkey'] = '/etc/grid-security/http/httpkey.pem'

        filename = "/tmp/gratia_reader_pass." + str(os.getpid()) + ".txt"
        contents = "[client]\n" + "password=reader\n"
        files.write(filename, contents, backup=False)
        core.config['gratia.sql.file'] = filename
        core.config['gratia.sql.querystring'] = "\" | mysql --defaults-extra-file=\"" + core.config['gratia.sql.file'] + "\" --skip-column-names -B --unbuffered  --user=reader --port=3306"
        core.config['gratia.tmpdir.prefix'] = "/var/lib/gratia/tmp/gratiafiles/"
        core.config['gratia.tmpdir.postfix'] = "_" + core.config['gratia.host'] + "_" + core.config['gratia.host'] + "_8880"
        core.config['gratia.log.file'] = "/var/log/gratia-service/gratia.log"
        core.state['gratia.log.stat'] = None
Example #5
0
 def test_03_show_gratia_database_tables(self):
     core.skip_ok_unless_installed('gratia-service')
     command = "echo \"use gratia_osgtest;show tables;" + core.config['gratia.sql.querystring'] + "| wc -l",
     gratia_version = tuple(map(int, core.get_package_envra('gratia-service')[2].split('.')))
     if gratia_version >= (1, 16, 3):
         expected_table_count = '82'
     else:
         expected_table_count = '81'
     self.assertEqual(True, self.isProbeDataValidInDatabase(command, 'Unable to install Gratia Database.',
                                                            expected_table_count),
                      'Unable to install Gratia Database.')
Example #6
0
def lockfile_path():
    """The path to the condor lockfile (EL5 and EL6 only)
    Returns None on EL7.

    """
    if core.el_release() >= 7:
        return None

    condor_lockfile = '/var/lock/subsys/condor_master'
    # The name of the lockfile changed in 7.8.8
    if core.rpm_is_installed('condor'):
        condor_version = core.get_package_envra('condor')[2]
        condor_version_split = condor_version.split('.')
        if condor_version_split >= ['7', '8', '8']:
            condor_lockfile = '/var/lock/subsys/condor'
    return condor_lockfile
Example #7
0
 def test_03_show_gratia_database_tables(self):
     core.skip_ok_unless_installed('gratia-service')
     command = "echo \"use gratia_osgtest;show tables;" + core.config[
         'gratia.sql.querystring'] + "| wc -l",
     gratia_version = tuple(
         map(int,
             core.get_package_envra('gratia-service')[2].split('.')))
     if gratia_version >= (1, 16, 3):
         expected_table_count = '82'
     else:
         expected_table_count = '81'
     self.assertEqual(
         True,
         self.isProbeDataValidInDatabase(
             command, 'Unable to install Gratia Database.',
             expected_table_count), 'Unable to install Gratia Database.')
Example #8
0
def is_installed():
    """Return True if the dependencies for setting up and using VOMS are installed.
    EL7 requires a minimum version of the voms-server package to get the service file fix from SOFTWARE-2357.
    """
    for dep in 'voms-server', 'voms-clients', 'voms-mysql-plugin', mysql.client_rpm(), mysql.server_rpm():
        if not core.dependency_is_installed(dep):
            return False

    # TODO: drop this check when 3.3 is completely EOL
    if core.el_release() >= 7:
        epoch, _, version, release, _ = core.get_package_envra('voms-server')
        if core.version_compare((epoch, version, release), '2.0.12-3.2') < 0:
            core.log_message("voms-server installed but too old (missing SOFTWARE-2357 fix)")
            return False

    return True
Example #9
0
def is_installed():
    """Return True if the dependencies for setting up and using VOMS are installed.
    EL7 requires a minimum version of the voms-server package to get the service file fix from SOFTWARE-2357.
    """
    for dep in 'voms-server', 'voms-clients', 'voms-mysql-plugin', mysql.client_rpm(
    ), mysql.server_rpm():
        if not core.dependency_is_installed(dep):
            return False

    # TODO: drop this check when 3.3 is completely EOL
    if core.el_release() >= 7:
        epoch, _, version, release, _ = core.get_package_envra('voms-server')
        if core.version_compare((epoch, version, release), '2.0.12-3.2') < 0:
            core.log_message(
                "voms-server installed but too old (missing SOFTWARE-2357 fix)"
            )
            return False

    return True
Example #10
0
    def test_04_condor_run_pbs(self):
        core.skip_ok_unless_installed('condor', 'blahp', 'torque-mom', 'torque-server', 'torque-scheduler',
                                      'globus-gatekeeper')
        self.skip_bad_unless(core.state['globus-gatekeeper.running'], 'gatekeeper not running')
        self.skip_bad_unless(core.state['jobs.env-set'], 'job environment not set')
        self.skip_bad_unless(core.state['condor.running-service'], 'condor not running')
        self.skip_bad_unless(core.state['torque.pbs-mom-running'] and core.state['torque.pbs-server-running'],
                             'pbs not running')

        command = ('condor_run', '-u', 'grid', '-a', 'grid_resource=pbs', '-a', 'periodic_remove=JobStatus==5',
                   '/bin/env')

        # Figure out whether the installed BLAHP package is the same as or later
        # than "blahp-1.18.11.bosco-4.osg*" (in the RPM sense), because it's the
        # first build in which the job environments are correctly passed to PBS.
        # The release following "osg" does not matter and it is easier to ignore
        # the OS major version.  This code may be a useful starting point for a
        # more general library function.
        blahp_envra = core.get_package_envra('blahp')
        blahp_pbs_has_env_vars = (rpm.labelCompare(['blahp', '1.18.11.bosco', '4.osg'], blahp_envra[1:4]) <= 0)

        self.run_job_in_tmp_dir(command, 'condor_run a Condor job', verify_environment=blahp_pbs_has_env_vars)