Skip to content

Commit 0ef3ac8

Browse files
authored
Merge pull request #214 from brianhlin/SOFTWARE-4446.slurmv20
Update Slurm tests for Slurm 20 (SOFTWARE-4446)
2 parents 47a1174 + 06c0a13 commit 0ef3ac8

File tree

4 files changed

+42
-67
lines changed

4 files changed

+42
-67
lines changed

osgtest/library/mysql.py

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,26 @@
44
from osgtest.library import core
55
from osgtest.library import service
66

7-
def name():
8-
if core.el_release() < 7:
9-
return 'mysql'
10-
else:
11-
return 'mariadb'
12-
13-
def daemon_name():
14-
if core.el_release() < 7:
15-
return 'mysqld'
16-
else:
17-
return 'mariadb'
7+
PACKAGE_NAME = 'mariadb'
8+
PORT = 3306
189

1910
def pidfile():
20-
return os.path.join('/var/run', daemon_name(), daemon_name() + '.pid')
11+
return os.path.join('/var/run', PACKAGE_NAME, PACKAGE_NAME + '.pid')
2112

2213
def server_rpm():
23-
return name() + '-server'
14+
return PACKAGE_NAME + '-server'
2415

2516
def client_rpm():
26-
return name()
17+
return PACKAGE_NAME
2718

2819
def start():
29-
service.check_start(daemon_name())
20+
service.check_start(PACKAGE_NAME)
3021

3122
def stop():
32-
service.check_stop(daemon_name())
23+
service.check_stop(PACKAGE_NAME)
3324

3425
def is_running():
35-
return service.is_running(daemon_name())
26+
return service.is_running(PACKAGE_NAME)
3627

3728
def _get_command(user='root', database=None):
3829
command = ['mysql', '-N', '-B', '--user=' + str(user)]

osgtest/tests/special_install.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,6 @@ def test_02_install_packages(self):
3030
fail_msg = ''
3131
pkg_repo_dict = OrderedDict((x, core.options.extrarepos) for x in core.options.packages)
3232

33-
# HACK: Install Slurm and osg-tested-internal out of development-like repos.
34-
# SOFTWARE-1733 may one day give us a generalized solution.
35-
if core.osg_release() > '3.4':
36-
dev_repo = ['devops-itb']
37-
if 'osg-tested-internal' in pkg_repo_dict:
38-
pkg_repo_dict['osg-tested-internal'] += dev_repo
39-
else:
40-
dev_repo = ['osg-development']
41-
42-
if 'osg-tested-internal' in pkg_repo_dict or 'slurm' in pkg_repo_dict:
43-
pkg_repo_dict.update(dict((x, core.options.extrarepos + dev_repo) for x in core.SLURM_PACKAGES))
44-
4533
# HACK: Install x509-scitokens-issuer-client out of development (SOFTWARE-3649)
4634
x509_scitokens_issuer_packages = ['xrootd-scitokens', 'osg-tested-internal']
4735
for pkg in x509_scitokens_issuer_packages:

osgtest/tests/test_290_slurm.py

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,36 @@
66
import osgtest.library.service as service
77

88
CLUSTER_NAME = 'osg_test'
9-
CTLD_LOG = '/var/log/slurm/slurmctld.log'
10-
SLURM_LOG = '/var/log/slurm/slurm.log'
9+
SLURM_LOG_DIR = '/var/log/slurm/'
10+
CTLD_LOG = SLURM_LOG_DIR + 'slurmctld.log'
11+
SLURM_LOG = SLURM_LOG_DIR + 'slurm.log'
12+
SLURMDBD_LOG = SLURM_LOG_DIR + 'slurmdbd.log'
1113
SHORT_HOSTNAME = core.get_hostname().split('.')[0]
1214

1315
SLURMDBD_CONFIG = """AuthType=auth/munge
1416
DbdHost=localhost
15-
SlurmUser=slurm
1617
DebugLevel=debug5
1718
LogFile=/var/log/slurm/slurmdbd.log
1819
StorageType=accounting_storage/mysql
19-
StorageLoc=%(name)s
20-
StorageUser=%(user)s
21-
StoragePass=%(pass)s
20+
StorageLoc={name}
21+
StorageUser={user}
22+
StoragePass={password}
23+
StoragePort={port}
2224
"""
2325

2426
SLURM_CONFIG = """AccountingStorageHost=localhost
25-
AccountingStorageLoc=/tmp/slurm_job_accounting.txt
2627
AccountingStorageType=accounting_storage/slurmdbd
2728
AuthType=auth/munge
28-
ClusterName=%(cluster)s
29-
ControlMachine=%(short_hostname)s
29+
ClusterName={cluster}
30+
ControlMachine={short_hostname}
3031
JobAcctGatherType=jobacct_gather/linux
3132
KillWait=30
32-
NodeName=%(short_hostname)s Procs=1 RealMemory=128 State=UNKNOWN
33-
PartitionName=debug Nodes=%(short_hostname)s Default=YES MaxTime=INFINITE State=UP
33+
NodeName={short_hostname} Procs=1 RealMemory=128 State=UNKNOWN
34+
PartitionName=debug Nodes={short_hostname} Default=YES MaxTime=INFINITE State=UP
3435
ReturnToService=2
35-
SlurmUser=slurm
3636
SlurmctldDebug=debug5
3737
SlurmctldTimeout=300
38-
SlurmctldLogFile=%(ctld_log)s
38+
SlurmctldLogFile={ctld_log}
3939
SlurmdLogFile=/var/log/slurm/slurm.log
4040
SlurmdDebug=debug5
4141
StateSaveLocation=/var/spool/slurmd
@@ -64,13 +64,12 @@ def slurm_reqs(self):
6464

6565
def test_01_slurm_config(self):
6666
self.slurm_reqs()
67-
if core.PackageVersion('slurm') >= '19.05.2':
68-
core.config['slurm.config-dir'] = '/etc'
69-
else:
70-
core.config['slurm.config-dir'] = '/etc/slurm'
67+
core.config['slurm.config-dir'] = '/etc/slurm'
7168
core.config['slurm.config'] = os.path.join(core.config['slurm.config-dir'], 'slurm.conf')
7269
files.write(core.config['slurm.config'],
73-
SLURM_CONFIG % {'short_hostname': SHORT_HOSTNAME, 'cluster': CLUSTER_NAME, 'ctld_log': CTLD_LOG},
70+
SLURM_CONFIG.format(short_hostname=SHORT_HOSTNAME,
71+
cluster=CLUSTER_NAME,
72+
ctld_log=CTLD_LOG),
7473
owner='slurm',
7574
chmod=0o644)
7675
core.config['cgroup.config'] = os.path.join(core.config['slurm.config-dir'], 'cgroup.conf')
@@ -91,8 +90,8 @@ def test_01_slurm_config(self):
9190

9291
def test_02_start_slurmdbd(self):
9392
core.state['slurmdbd.started-service'] = False
93+
core.state['slurmdbd.ready'] = False
9494
self.slurm_reqs()
95-
core.skip_ok_unless_installed('slurm-slurmdbd')
9695
self.skip_bad_unless(mysql.is_running(), 'slurmdbd requires mysql')
9796
core.config['slurmdbd.config'] = os.path.join(core.config['slurm.config-dir'], 'slurmdbd.conf')
9897
core.config['slurmdbd.user'] = "'osg-test-slurm'@'localhost'"
@@ -107,38 +106,37 @@ def test_02_start_slurmdbd(self):
107106
'slurmdb user permissions')
108107
mysql.check_execute("flush privileges;", 'reload privileges')
109108

110-
db_config_vals = {'name':core.config['slurmdbd.name'],
111-
'user':core.config['slurmdbd.user'].split('\'')[1],
112-
'pass':core.options.password}
113109
files.write(core.config['slurmdbd.config'],
114-
SLURMDBD_CONFIG % db_config_vals,
110+
SLURMDBD_CONFIG.format(name=core.config['slurmdbd.name'],
111+
user=core.config['slurmdbd.user'].split('\'')[1],
112+
password=core.options.password,
113+
port=mysql.PORT),
115114
owner='slurm',
116115
chmod=0o644)
116+
117+
stat = core.get_stat(SLURMDBD_LOG)
117118
service.check_start('slurmdbd')
119+
sentinel = core.monitor_file(SLURMDBD_LOG, stat, 'slurmdbd version.+started', 30.0)
120+
if sentinel:
121+
core.state['slurmdbd.ready'] = True
118122

119123
# Adding the cluster to the database
120124
command = ('sacctmgr', '-i', 'add', 'cluster', CLUSTER_NAME)
121125
core.check_system(command, 'add slurm cluster')
122126

123127
def test_03_start_slurm(self):
124-
core.config['slurm.service-name'] = 'slurm'
125-
if core.el_release() >= 7:
126-
core.config['slurm.service-name'] += 'd'
127-
core.config['slurm.ctld-service-name'] = 'slurmctld'
128+
core.config['slurm.service-name'] = 'slurmd'
129+
core.config['slurm.ctld-service-name'] = 'slurmctld'
128130
core.state['%s.started-service' % core.config['slurm.service-name']] = False
129131
self.slurm_reqs()
130132
self.skip_ok_if(service.is_running(core.config['slurm.service-name']), 'slurm already running')
131133

132134
stat = core.get_stat(CTLD_LOG)
133135

134-
if core.el_release() >= 7:
135-
# slurmctld is handled by /etc/init.d/slurm on EL6
136-
command = ['slurmctld']
137-
core.check_system(command, 'enable slurmctld')
138-
service.check_start(core.config['slurm.service-name'])
139-
service.check_start(core.config['slurm.ctld-service-name'])
140-
else:
141-
service.check_start(core.config['slurm.service-name'])
136+
command = ['slurmctld']
137+
core.check_system(command, 'enable slurmctld')
138+
service.check_start(core.config['slurm.service-name'])
139+
service.check_start(core.config['slurm.ctld-service-name'])
142140

143141
core.monitor_file(CTLD_LOG,
144142
stat,
@@ -151,4 +149,3 @@ def test_03_start_slurm(self):
151149
60.0)
152150
command = ['scontrol', 'update', 'nodename=%s' % SHORT_HOSTNAME, 'state=idle']
153151
core.check_system(command, 'enable slurm node')
154-

osgtest/tests/test_740_slurm.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ def test_01_stop_slurm(self):
1313
self.slurm_reqs()
1414
self.skip_ok_unless(core.state['%s.started-service' % core.config['slurm.service-name']], 'did not start slurm')
1515
service.check_stop(core.config['slurm.service-name']) # service requires config so we stop it first
16-
if core.el_release() >= 7:
17-
service.check_stop(core.config['slurm.ctld-service-name'])
16+
service.check_stop(core.config['slurm.ctld-service-name'])
1817
files.restore(core.config['slurm.config'], 'slurm')
1918
files.restore(core.config['cgroup.config'], 'slurm')
2019
files.restore(core.config['cgroup_allowed_devices_file.conf'], 'slurm')

0 commit comments

Comments
 (0)