View | Details | Raw Unified | Return to ticket 3318 | Differences between
and this patch

Collapse All | Expand All

(-)a/configure (-1 / +2 lines)
Lines 25641-25647 $as_echo "${x_ac_deprecated=no}" >&6; } Link Here
25641
25641
25642
25642
25643
25643
25644
ac_config_files="$ac_config_files Makefile auxdir/Makefile contribs/Makefile contribs/cray/Makefile contribs/cray/csm/Makefile contribs/lua/Makefile contribs/mic/Makefile contribs/pam/Makefile contribs/pam_slurm_adopt/Makefile contribs/perlapi/Makefile contribs/perlapi/libslurm/Makefile contribs/perlapi/libslurm/perl/Makefile.PL contribs/perlapi/libslurmdb/Makefile contribs/perlapi/libslurmdb/perl/Makefile.PL contribs/seff/Makefile contribs/torque/Makefile contribs/openlava/Makefile contribs/sgather/Makefile contribs/sgi/Makefile contribs/sjobexit/Makefile contribs/pmi2/Makefile doc/Makefile doc/man/Makefile doc/man/man1/Makefile doc/man/man3/Makefile doc/man/man5/Makefile doc/man/man8/Makefile doc/html/Makefile doc/html/configurator.html doc/html/configurator.easy.html etc/Makefile src/Makefile src/api/Makefile src/bcast/Makefile src/common/Makefile src/db_api/Makefile src/layouts/Makefile src/layouts/power/Makefile src/layouts/unit/Makefile src/database/Makefile src/sacct/Makefile src/sacctmgr/Makefile src/sreport/Makefile src/salloc/Makefile src/sbatch/Makefile src/sbcast/Makefile src/sattach/Makefile src/scancel/Makefile src/scontrol/Makefile src/sdiag/Makefile src/sinfo/Makefile src/slurmctld/Makefile src/slurmd/Makefile src/slurmd/common/Makefile src/slurmd/slurmd/Makefile src/slurmd/slurmstepd/Makefile src/slurmdbd/Makefile src/smap/Makefile src/smd/Makefile src/sprio/Makefile src/squeue/Makefile src/srun/Makefile src/srun/libsrun/Makefile src/srun_cr/Makefile src/sshare/Makefile src/sstat/Makefile src/strigger/Makefile src/sview/Makefile src/plugins/Makefile src/plugins/accounting_storage/Makefile src/plugins/accounting_storage/common/Makefile src/plugins/accounting_storage/filetxt/Makefile src/plugins/accounting_storage/mysql/Makefile src/plugins/accounting_storage/none/Makefile src/plugins/accounting_storage/slurmdbd/Makefile src/plugins/acct_gather_energy/Makefile src/plugins/acct_gather_energy/cray/Makefile src/plugins/acct_gather_energy/rapl/Makefile src/plugins/acct_gather_energy/ibmaem/Makefile src/plugins/acct_gather_energy/ipmi/Makefile src/plugins/acct_gather_energy/none/Makefile src/plugins/acct_gather_interconnect/Makefile src/plugins/acct_gather_interconnect/ofed/Makefile src/plugins/acct_gather_interconnect/none/Makefile src/plugins/acct_gather_filesystem/Makefile src/plugins/acct_gather_filesystem/lustre/Makefile src/plugins/acct_gather_filesystem/none/Makefile src/plugins/acct_gather_profile/Makefile src/plugins/acct_gather_profile/hdf5/Makefile src/plugins/acct_gather_profile/hdf5/sh5util/Makefile src/plugins/acct_gather_profile/none/Makefile src/plugins/auth/Makefile src/plugins/auth/munge/Makefile src/plugins/auth/none/Makefile src/plugins/burst_buffer/Makefile src/plugins/burst_buffer/common/Makefile src/plugins/burst_buffer/cray/Makefile src/plugins/burst_buffer/generic/Makefile src/plugins/checkpoint/Makefile src/plugins/checkpoint/blcr/Makefile src/plugins/checkpoint/blcr/cr_checkpoint.sh src/plugins/checkpoint/blcr/cr_restart.sh src/plugins/checkpoint/none/Makefile src/plugins/checkpoint/ompi/Makefile src/plugins/core_spec/Makefile src/plugins/core_spec/cray/Makefile src/plugins/core_spec/none/Makefile src/plugins/crypto/Makefile src/plugins/crypto/munge/Makefile src/plugins/crypto/openssl/Makefile src/plugins/ext_sensors/Makefile src/plugins/ext_sensors/rrd/Makefile src/plugins/ext_sensors/none/Makefile src/plugins/gres/Makefile src/plugins/gres/common/Makefile src/plugins/gres/gpu/Makefile src/plugins/gres/nic/Makefile src/plugins/gres/mic/Makefile src/plugins/jobacct_gather/Makefile src/plugins/jobacct_gather/common/Makefile src/plugins/jobacct_gather/linux/Makefile src/plugins/jobacct_gather/cgroup/Makefile src/plugins/jobacct_gather/none/Makefile src/plugins/jobcomp/Makefile src/plugins/jobcomp/elasticsearch/Makefile src/plugins/jobcomp/filetxt/Makefile src/plugins/jobcomp/none/Makefile src/plugins/jobcomp/script/Makefile src/plugins/jobcomp/mysql/Makefile src/plugins/job_container/Makefile src/plugins/job_container/cncu/Makefile src/plugins/job_container/none/Makefile src/plugins/job_submit/Makefile src/plugins/job_submit/all_partitions/Makefile src/plugins/job_submit/cray/Makefile src/plugins/job_submit/defaults/Makefile src/plugins/job_submit/logging/Makefile src/plugins/job_submit/lua/Makefile src/plugins/job_submit/partition/Makefile src/plugins/job_submit/pbs/Makefile src/plugins/job_submit/require_timelimit/Makefile src/plugins/job_submit/throttle/Makefile src/plugins/launch/Makefile src/plugins/launch/aprun/Makefile src/plugins/launch/poe/Makefile src/plugins/launch/runjob/Makefile src/plugins/launch/slurm/Makefile src/plugins/mcs/Makefile src/plugins/mcs/account/Makefile src/plugins/mcs/group/Makefile src/plugins/mcs/none/Makefile src/plugins/mcs/user/Makefile src/plugins/node_features/Makefile src/plugins/node_features/knl_cray/Makefile src/plugins/node_features/knl_generic/Makefile src/plugins/power/Makefile src/plugins/power/common/Makefile src/plugins/power/cray/Makefile src/plugins/power/none/Makefile src/plugins/preempt/Makefile src/plugins/preempt/job_prio/Makefile src/plugins/preempt/none/Makefile src/plugins/preempt/partition_prio/Makefile src/plugins/preempt/qos/Makefile src/plugins/priority/Makefile src/plugins/priority/basic/Makefile src/plugins/priority/multifactor/Makefile src/plugins/proctrack/Makefile src/plugins/proctrack/cray/Makefile src/plugins/proctrack/cgroup/Makefile src/plugins/proctrack/pgid/Makefile src/plugins/proctrack/linuxproc/Makefile src/plugins/proctrack/sgi_job/Makefile src/plugins/proctrack/lua/Makefile src/plugins/route/Makefile src/plugins/route/default/Makefile src/plugins/route/topology/Makefile src/plugins/sched/Makefile src/plugins/sched/backfill/Makefile src/plugins/sched/builtin/Makefile src/plugins/sched/hold/Makefile src/plugins/select/Makefile src/plugins/select/alps/Makefile src/plugins/select/alps/libalps/Makefile src/plugins/select/alps/libemulate/Makefile src/plugins/select/bluegene/Makefile src/plugins/select/bluegene/ba_bgq/Makefile src/plugins/select/bluegene/bl_bgq/Makefile src/plugins/select/bluegene/sfree/Makefile src/plugins/select/cons_res/Makefile src/plugins/select/cray/Makefile src/plugins/select/linear/Makefile src/plugins/select/other/Makefile src/plugins/select/serial/Makefile src/plugins/slurmctld/Makefile src/plugins/slurmctld/nonstop/Makefile src/plugins/switch/Makefile src/plugins/switch/cray/Makefile src/plugins/switch/generic/Makefile src/plugins/switch/none/Makefile src/plugins/switch/nrt/Makefile src/plugins/switch/nrt/libpermapi/Makefile src/plugins/mpi/Makefile src/plugins/mpi/none/Makefile src/plugins/mpi/openmpi/Makefile src/plugins/mpi/pmi2/Makefile src/plugins/mpi/pmix/Makefile src/plugins/task/Makefile src/plugins/task/affinity/Makefile src/plugins/task/cgroup/Makefile src/plugins/task/cray/Makefile src/plugins/task/none/Makefile src/plugins/topology/Makefile src/plugins/topology/3d_torus/Makefile src/plugins/topology/hypercube/Makefile src/plugins/topology/node_rank/Makefile src/plugins/topology/none/Makefile src/plugins/topology/tree/Makefile testsuite/Makefile testsuite/expect/Makefile testsuite/slurm_unit/Makefile testsuite/slurm_unit/api/Makefile testsuite/slurm_unit/api/manual/Makefile testsuite/slurm_unit/common/Makefile testsuite/slurm_unit/common/slurm_protocol_pack/Makefile testsuite/slurm_unit/common/slurmdb_pack/Makefile"
25644
ac_config_files="$ac_config_files Makefile auxdir/Makefile contribs/Makefile contribs/cray/Makefile contribs/cray/csm/Makefile contribs/cray/slurmsmwd/Makefile contribs/lua/Makefile contribs/mic/Makefile contribs/pam/Makefile contribs/pam_slurm_adopt/Makefile contribs/perlapi/Makefile contribs/perlapi/libslurm/Makefile contribs/perlapi/libslurm/perl/Makefile.PL contribs/perlapi/libslurmdb/Makefile contribs/perlapi/libslurmdb/perl/Makefile.PL contribs/seff/Makefile contribs/torque/Makefile contribs/openlava/Makefile contribs/sgather/Makefile contribs/sgi/Makefile contribs/sjobexit/Makefile contribs/pmi2/Makefile doc/Makefile doc/man/Makefile doc/man/man1/Makefile doc/man/man3/Makefile doc/man/man5/Makefile doc/man/man8/Makefile doc/html/Makefile doc/html/configurator.html doc/html/configurator.easy.html etc/Makefile src/Makefile src/api/Makefile src/bcast/Makefile src/common/Makefile src/db_api/Makefile src/layouts/Makefile src/layouts/power/Makefile src/layouts/unit/Makefile src/database/Makefile src/sacct/Makefile src/sacctmgr/Makefile src/sreport/Makefile src/salloc/Makefile src/sbatch/Makefile src/sbcast/Makefile src/sattach/Makefile src/scancel/Makefile src/scontrol/Makefile src/sdiag/Makefile src/sinfo/Makefile src/slurmctld/Makefile src/slurmd/Makefile src/slurmd/common/Makefile src/slurmd/slurmd/Makefile src/slurmd/slurmstepd/Makefile src/slurmdbd/Makefile src/smap/Makefile src/smd/Makefile src/sprio/Makefile src/squeue/Makefile src/srun/Makefile src/srun/libsrun/Makefile src/srun_cr/Makefile src/sshare/Makefile src/sstat/Makefile src/strigger/Makefile src/sview/Makefile src/plugins/Makefile src/plugins/accounting_storage/Makefile src/plugins/accounting_storage/common/Makefile src/plugins/accounting_storage/filetxt/Makefile src/plugins/accounting_storage/mysql/Makefile src/plugins/accounting_storage/none/Makefile src/plugins/accounting_storage/slurmdbd/Makefile src/plugins/acct_gather_energy/Makefile src/plugins/acct_gather_energy/cray/Makefile src/plugins/acct_gather_energy/rapl/Makefile src/plugins/acct_gather_energy/ibmaem/Makefile src/plugins/acct_gather_energy/ipmi/Makefile src/plugins/acct_gather_energy/none/Makefile src/plugins/acct_gather_interconnect/Makefile src/plugins/acct_gather_interconnect/ofed/Makefile src/plugins/acct_gather_interconnect/none/Makefile src/plugins/acct_gather_filesystem/Makefile src/plugins/acct_gather_filesystem/lustre/Makefile src/plugins/acct_gather_filesystem/none/Makefile src/plugins/acct_gather_profile/Makefile src/plugins/acct_gather_profile/hdf5/Makefile src/plugins/acct_gather_profile/hdf5/sh5util/Makefile src/plugins/acct_gather_profile/none/Makefile src/plugins/auth/Makefile src/plugins/auth/munge/Makefile src/plugins/auth/none/Makefile src/plugins/burst_buffer/Makefile src/plugins/burst_buffer/common/Makefile src/plugins/burst_buffer/cray/Makefile src/plugins/burst_buffer/generic/Makefile src/plugins/checkpoint/Makefile src/plugins/checkpoint/blcr/Makefile src/plugins/checkpoint/blcr/cr_checkpoint.sh src/plugins/checkpoint/blcr/cr_restart.sh src/plugins/checkpoint/none/Makefile src/plugins/checkpoint/ompi/Makefile src/plugins/core_spec/Makefile src/plugins/core_spec/cray/Makefile src/plugins/core_spec/none/Makefile src/plugins/crypto/Makefile src/plugins/crypto/munge/Makefile src/plugins/crypto/openssl/Makefile src/plugins/ext_sensors/Makefile src/plugins/ext_sensors/rrd/Makefile src/plugins/ext_sensors/none/Makefile src/plugins/gres/Makefile src/plugins/gres/common/Makefile src/plugins/gres/gpu/Makefile src/plugins/gres/nic/Makefile src/plugins/gres/mic/Makefile src/plugins/jobacct_gather/Makefile src/plugins/jobacct_gather/common/Makefile src/plugins/jobacct_gather/linux/Makefile src/plugins/jobacct_gather/cgroup/Makefile src/plugins/jobacct_gather/none/Makefile src/plugins/jobcomp/Makefile src/plugins/jobcomp/elasticsearch/Makefile src/plugins/jobcomp/filetxt/Makefile src/plugins/jobcomp/none/Makefile src/plugins/jobcomp/script/Makefile src/plugins/jobcomp/mysql/Makefile src/plugins/job_container/Makefile src/plugins/job_container/cncu/Makefile src/plugins/job_container/none/Makefile src/plugins/job_submit/Makefile src/plugins/job_submit/all_partitions/Makefile src/plugins/job_submit/cray/Makefile src/plugins/job_submit/defaults/Makefile src/plugins/job_submit/logging/Makefile src/plugins/job_submit/lua/Makefile src/plugins/job_submit/partition/Makefile src/plugins/job_submit/pbs/Makefile src/plugins/job_submit/require_timelimit/Makefile src/plugins/job_submit/throttle/Makefile src/plugins/launch/Makefile src/plugins/launch/aprun/Makefile src/plugins/launch/poe/Makefile src/plugins/launch/runjob/Makefile src/plugins/launch/slurm/Makefile src/plugins/mcs/Makefile src/plugins/mcs/account/Makefile src/plugins/mcs/group/Makefile src/plugins/mcs/none/Makefile src/plugins/mcs/user/Makefile src/plugins/node_features/Makefile src/plugins/node_features/knl_cray/Makefile src/plugins/node_features/knl_generic/Makefile src/plugins/power/Makefile src/plugins/power/common/Makefile src/plugins/power/cray/Makefile src/plugins/power/none/Makefile src/plugins/preempt/Makefile src/plugins/preempt/job_prio/Makefile src/plugins/preempt/none/Makefile src/plugins/preempt/partition_prio/Makefile src/plugins/preempt/qos/Makefile src/plugins/priority/Makefile src/plugins/priority/basic/Makefile src/plugins/priority/multifactor/Makefile src/plugins/proctrack/Makefile src/plugins/proctrack/cray/Makefile src/plugins/proctrack/cgroup/Makefile src/plugins/proctrack/pgid/Makefile src/plugins/proctrack/linuxproc/Makefile src/plugins/proctrack/sgi_job/Makefile src/plugins/proctrack/lua/Makefile src/plugins/route/Makefile src/plugins/route/default/Makefile src/plugins/route/topology/Makefile src/plugins/sched/Makefile src/plugins/sched/backfill/Makefile src/plugins/sched/builtin/Makefile src/plugins/sched/hold/Makefile src/plugins/select/Makefile src/plugins/select/alps/Makefile src/plugins/select/alps/libalps/Makefile src/plugins/select/alps/libemulate/Makefile src/plugins/select/bluegene/Makefile src/plugins/select/bluegene/ba_bgq/Makefile src/plugins/select/bluegene/bl_bgq/Makefile src/plugins/select/bluegene/sfree/Makefile src/plugins/select/cons_res/Makefile src/plugins/select/cray/Makefile src/plugins/select/linear/Makefile src/plugins/select/other/Makefile src/plugins/select/serial/Makefile src/plugins/slurmctld/Makefile src/plugins/slurmctld/nonstop/Makefile src/plugins/switch/Makefile src/plugins/switch/cray/Makefile src/plugins/switch/generic/Makefile src/plugins/switch/none/Makefile src/plugins/switch/nrt/Makefile src/plugins/switch/nrt/libpermapi/Makefile src/plugins/mpi/Makefile src/plugins/mpi/none/Makefile src/plugins/mpi/openmpi/Makefile src/plugins/mpi/pmi2/Makefile src/plugins/mpi/pmix/Makefile src/plugins/task/Makefile src/plugins/task/affinity/Makefile src/plugins/task/cgroup/Makefile src/plugins/task/cray/Makefile src/plugins/task/none/Makefile src/plugins/topology/Makefile src/plugins/topology/3d_torus/Makefile src/plugins/topology/hypercube/Makefile src/plugins/topology/node_rank/Makefile src/plugins/topology/none/Makefile src/plugins/topology/tree/Makefile testsuite/Makefile testsuite/expect/Makefile testsuite/slurm_unit/Makefile testsuite/slurm_unit/api/Makefile testsuite/slurm_unit/api/manual/Makefile testsuite/slurm_unit/common/Makefile testsuite/slurm_unit/common/slurm_protocol_pack/Makefile testsuite/slurm_unit/common/slurmdb_pack/Makefile"
25645
25645
25646
25646
25647
cat >confcache <<\_ACEOF
25647
cat >confcache <<\_ACEOF
Lines 26941-26946 do Link Here
26941
    "contribs/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/Makefile" ;;
26941
    "contribs/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/Makefile" ;;
26942
    "contribs/cray/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/cray/Makefile" ;;
26942
    "contribs/cray/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/cray/Makefile" ;;
26943
    "contribs/cray/csm/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/cray/csm/Makefile" ;;
26943
    "contribs/cray/csm/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/cray/csm/Makefile" ;;
26944
    "contribs/cray/slurmsmwd/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/cray/slurmsmwd/Makefile" ;;
26944
    "contribs/lua/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/lua/Makefile" ;;
26945
    "contribs/lua/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/lua/Makefile" ;;
26945
    "contribs/mic/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/mic/Makefile" ;;
26946
    "contribs/mic/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/mic/Makefile" ;;
26946
    "contribs/pam/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/pam/Makefile" ;;
26947
    "contribs/pam/Makefile") CONFIG_FILES="$CONFIG_FILES contribs/pam/Makefile" ;;
(-)a/configure.ac (+1 lines)
Lines 422-427 AC_CONFIG_FILES([Makefile Link Here
422
		 contribs/Makefile
422
		 contribs/Makefile
423
		 contribs/cray/Makefile
423
		 contribs/cray/Makefile
424
		 contribs/cray/csm/Makefile
424
		 contribs/cray/csm/Makefile
425
		 contribs/cray/slurmsmwd/Makefile
425
		 contribs/lua/Makefile
426
		 contribs/lua/Makefile
426
		 contribs/mic/Makefile
427
		 contribs/mic/Makefile
427
		 contribs/pam/Makefile
428
		 contribs/pam/Makefile
(-)a/contribs/cray/Makefile.am (-1 / +1 lines)
Lines 2-8 Link Here
2
# Makefile for cray tools
2
# Makefile for cray tools
3
#
3
#
4
4
5
SUBDIRS = csm
5
SUBDIRS = csm slurmsmwd
6
6
7
AUTOMAKE_OPTIONS = foreign
7
AUTOMAKE_OPTIONS = foreign
8
8
(-)a/contribs/cray/Makefile.in (-1 / +1 lines)
Lines 576-582 target_vendor = @target_vendor@ Link Here
576
top_build_prefix = @top_build_prefix@
576
top_build_prefix = @top_build_prefix@
577
top_builddir = @top_builddir@
577
top_builddir = @top_builddir@
578
top_srcdir = @top_srcdir@
578
top_srcdir = @top_srcdir@
579
SUBDIRS = csm
579
SUBDIRS = csm slurmsmwd
580
AUTOMAKE_OPTIONS = foreign
580
AUTOMAKE_OPTIONS = foreign
581
@HAVE_NATIVE_CRAY_TRUE@sbin_SCRIPTS = slurmconfgen.py
581
@HAVE_NATIVE_CRAY_TRUE@sbin_SCRIPTS = slurmconfgen.py
582
@HAVE_REAL_CRAY_TRUE@noinst_DATA = opt_modulefiles_slurm
582
@HAVE_REAL_CRAY_TRUE@noinst_DATA = opt_modulefiles_slurm
(-)a/contribs/cray/slurmsmwd/Makefile.am (+35 lines)
Line 0 Link Here
1
#
2
# Makefile for cray tools
3
#
4
5
AUTOMAKE_OPTIONS = foreign
6
7
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common $(JSON_CPPFLAGS)
8
9
sbin_PROGRAMS = slurmsmwd
10
slurmsmwd_SOURCES	= main.c read_config.c
11
slurmsmwd_LDADD = 					\
12
	$(top_builddir)/src/common/libdaemonize.la \
13
	$(LIB_SLURM) $(DL_LIBS)
14
slurmsmwd_LDFLAGS = -export-dynamic $(CMD_LDFLAGS)
15
16
17
ETC_FILES = slurmsmwd.service
18
19
CLEANFILES = $(ETC_FILES)
20
21
edit = sed \
22
        -e 's|@bindir[@]|$(bindir)|g' \
23
        -e 's|@libdir[@]|$(libdir)|g' \
24
        -e 's|@sbindir[@]|$(sbindir)|g' \
25
        -e 's|@sysconfdir[@]|$(sysconfdir)|g' \
26
        -e 's|@BLUEGENE_LOADED_FALSE[@]|$(BLUEGENE_LOADED_FALSE)|g'
27
28
noinst_DATA = $(ETC_FILES)
29
30
slurmsmwd.service: Makefile $(srcdir)/slurmsmwd.service.in
31
	$(edit) $(srcdir)/slurmsmwd.service.in > slurmsmwd.service
32
33
force:
34
$(slurmsmwd_LDADD) : force
35
	@cd `dirname $@` && $(MAKE) `basename $@`
(-)a/contribs/cray/slurmsmwd/Makefile.in (+852 lines)
Line 0 Link Here
1
# Makefile.in generated by automake 1.15 from Makefile.am.
2
# @configure_input@
3
4
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
5
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
8
# with or without modifications, as long as this notice is preserved.
9
10
# This program is distributed in the hope that it will be useful,
11
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13
# PARTICULAR PURPOSE.
14
15
@SET_MAKE@
16
17
#
18
# Makefile for cray tools
19
#
20
21
22
VPATH = @srcdir@
23
am__is_gnu_make = { \
24
  if test -z '$(MAKELEVEL)'; then \
25
    false; \
26
  elif test -n '$(MAKE_HOST)'; then \
27
    true; \
28
  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
29
    true; \
30
  else \
31
    false; \
32
  fi; \
33
}
34
am__make_running_with_option = \
35
  case $${target_option-} in \
36
      ?) ;; \
37
      *) echo "am__make_running_with_option: internal error: invalid" \
38
              "target option '$${target_option-}' specified" >&2; \
39
         exit 1;; \
40
  esac; \
41
  has_opt=no; \
42
  sane_makeflags=$$MAKEFLAGS; \
43
  if $(am__is_gnu_make); then \
44
    sane_makeflags=$$MFLAGS; \
45
  else \
46
    case $$MAKEFLAGS in \
47
      *\\[\ \	]*) \
48
        bs=\\; \
49
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
50
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
51
    esac; \
52
  fi; \
53
  skip_next=no; \
54
  strip_trailopt () \
55
  { \
56
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
57
  }; \
58
  for flg in $$sane_makeflags; do \
59
    test $$skip_next = yes && { skip_next=no; continue; }; \
60
    case $$flg in \
61
      *=*|--*) continue;; \
62
        -*I) strip_trailopt 'I'; skip_next=yes;; \
63
      -*I?*) strip_trailopt 'I';; \
64
        -*O) strip_trailopt 'O'; skip_next=yes;; \
65
      -*O?*) strip_trailopt 'O';; \
66
        -*l) strip_trailopt 'l'; skip_next=yes;; \
67
      -*l?*) strip_trailopt 'l';; \
68
      -[dEDm]) skip_next=yes;; \
69
      -[JT]) skip_next=yes;; \
70
    esac; \
71
    case $$flg in \
72
      *$$target_option*) has_opt=yes; break;; \
73
    esac; \
74
  done; \
75
  test $$has_opt = yes
76
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
77
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
78
pkgdatadir = $(datadir)/@PACKAGE@
79
pkgincludedir = $(includedir)/@PACKAGE@
80
pkglibdir = $(libdir)/@PACKAGE@
81
pkglibexecdir = $(libexecdir)/@PACKAGE@
82
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
83
install_sh_DATA = $(install_sh) -c -m 644
84
install_sh_PROGRAM = $(install_sh) -c
85
install_sh_SCRIPT = $(install_sh) -c
86
INSTALL_HEADER = $(INSTALL_DATA)
87
transform = $(program_transform_name)
88
NORMAL_INSTALL = :
89
PRE_INSTALL = :
90
POST_INSTALL = :
91
NORMAL_UNINSTALL = :
92
PRE_UNINSTALL = :
93
POST_UNINSTALL = :
94
build_triplet = @build@
95
host_triplet = @host@
96
target_triplet = @target@
97
sbin_PROGRAMS = slurmsmwd$(EXEEXT)
98
subdir = contribs/cray/slurmsmwd
99
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
100
am__aclocal_m4_deps = $(top_srcdir)/auxdir/ax_check_compile_flag.m4 \
101
	$(top_srcdir)/auxdir/ax_check_zlib.m4 \
102
	$(top_srcdir)/auxdir/ax_gcc_builtin.m4 \
103
	$(top_srcdir)/auxdir/ax_lib_hdf5.m4 \
104
	$(top_srcdir)/auxdir/ax_pthread.m4 \
105
	$(top_srcdir)/auxdir/libtool.m4 \
106
	$(top_srcdir)/auxdir/ltoptions.m4 \
107
	$(top_srcdir)/auxdir/ltsugar.m4 \
108
	$(top_srcdir)/auxdir/ltversion.m4 \
109
	$(top_srcdir)/auxdir/lt~obsolete.m4 \
110
	$(top_srcdir)/auxdir/slurm.m4 \
111
	$(top_srcdir)/auxdir/x_ac__system_configuration.m4 \
112
	$(top_srcdir)/auxdir/x_ac_affinity.m4 \
113
	$(top_srcdir)/auxdir/x_ac_blcr.m4 \
114
	$(top_srcdir)/auxdir/x_ac_bluegene.m4 \
115
	$(top_srcdir)/auxdir/x_ac_cray.m4 \
116
	$(top_srcdir)/auxdir/x_ac_curl.m4 \
117
	$(top_srcdir)/auxdir/x_ac_databases.m4 \
118
	$(top_srcdir)/auxdir/x_ac_debug.m4 \
119
	$(top_srcdir)/auxdir/x_ac_deprecated.m4 \
120
	$(top_srcdir)/auxdir/x_ac_dlfcn.m4 \
121
	$(top_srcdir)/auxdir/x_ac_env.m4 \
122
	$(top_srcdir)/auxdir/x_ac_freeipmi.m4 \
123
	$(top_srcdir)/auxdir/x_ac_hwloc.m4 \
124
	$(top_srcdir)/auxdir/x_ac_iso.m4 \
125
	$(top_srcdir)/auxdir/x_ac_json.m4 \
126
	$(top_srcdir)/auxdir/x_ac_lua.m4 \
127
	$(top_srcdir)/auxdir/x_ac_lz4.m4 \
128
	$(top_srcdir)/auxdir/x_ac_man2html.m4 \
129
	$(top_srcdir)/auxdir/x_ac_munge.m4 \
130
	$(top_srcdir)/auxdir/x_ac_ncurses.m4 \
131
	$(top_srcdir)/auxdir/x_ac_netloc.m4 \
132
	$(top_srcdir)/auxdir/x_ac_nrt.m4 \
133
	$(top_srcdir)/auxdir/x_ac_ofed.m4 \
134
	$(top_srcdir)/auxdir/x_ac_pam.m4 \
135
	$(top_srcdir)/auxdir/x_ac_pmix.m4 \
136
	$(top_srcdir)/auxdir/x_ac_printf_null.m4 \
137
	$(top_srcdir)/auxdir/x_ac_ptrace.m4 \
138
	$(top_srcdir)/auxdir/x_ac_readline.m4 \
139
	$(top_srcdir)/auxdir/x_ac_rrdtool.m4 \
140
	$(top_srcdir)/auxdir/x_ac_setproctitle.m4 \
141
	$(top_srcdir)/auxdir/x_ac_sgi_job.m4 \
142
	$(top_srcdir)/auxdir/x_ac_slurm_ssl.m4 \
143
	$(top_srcdir)/auxdir/x_ac_ssh2.m4 \
144
	$(top_srcdir)/auxdir/x_ac_systemd.m4 \
145
	$(top_srcdir)/auxdir/x_ac_ucx.m4 \
146
	$(top_srcdir)/auxdir/x_ac_uid_gid_size.m4 \
147
	$(top_srcdir)/configure.ac
148
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
149
	$(ACLOCAL_M4)
150
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
151
mkinstalldirs = $(install_sh) -d
152
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/slurm/slurm.h
153
CONFIG_CLEAN_FILES =
154
CONFIG_CLEAN_VPATH_FILES =
155
am__installdirs = "$(DESTDIR)$(sbindir)"
156
PROGRAMS = $(sbin_PROGRAMS)
157
am_slurmsmwd_OBJECTS = main.$(OBJEXT) read_config.$(OBJEXT)
158
slurmsmwd_OBJECTS = $(am_slurmsmwd_OBJECTS)
159
am__DEPENDENCIES_1 =
160
slurmsmwd_DEPENDENCIES = $(top_builddir)/src/common/libdaemonize.la \
161
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
162
AM_V_lt = $(am__v_lt_@AM_V@)
163
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
164
am__v_lt_0 = --silent
165
am__v_lt_1 = 
166
slurmsmwd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
167
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
168
	$(slurmsmwd_LDFLAGS) $(LDFLAGS) -o $@
169
AM_V_P = $(am__v_P_@AM_V@)
170
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
171
am__v_P_0 = false
172
am__v_P_1 = :
173
AM_V_GEN = $(am__v_GEN_@AM_V@)
174
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
175
am__v_GEN_0 = @echo "  GEN     " $@;
176
am__v_GEN_1 = 
177
AM_V_at = $(am__v_at_@AM_V@)
178
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
179
am__v_at_0 = @
180
am__v_at_1 = 
181
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/slurm
182
depcomp = $(SHELL) $(top_srcdir)/auxdir/depcomp
183
am__depfiles_maybe = depfiles
184
am__mv = mv -f
185
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
186
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
187
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
188
	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
189
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
190
	$(AM_CFLAGS) $(CFLAGS)
191
AM_V_CC = $(am__v_CC_@AM_V@)
192
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
193
am__v_CC_0 = @echo "  CC      " $@;
194
am__v_CC_1 = 
195
CCLD = $(CC)
196
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
197
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
198
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
199
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
200
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
201
am__v_CCLD_0 = @echo "  CCLD    " $@;
202
am__v_CCLD_1 = 
203
SOURCES = $(slurmsmwd_SOURCES)
204
DIST_SOURCES = $(slurmsmwd_SOURCES)
205
am__can_run_installinfo = \
206
  case $$AM_UPDATE_INFO_DIR in \
207
    n|no|NO) false;; \
208
    *) (install-info --version) >/dev/null 2>&1;; \
209
  esac
210
DATA = $(noinst_DATA)
211
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
212
# Read a list of newline-separated strings from the standard input,
213
# and print each of them once, without duplicates.  Input order is
214
# *not* preserved.
215
am__uniquify_input = $(AWK) '\
216
  BEGIN { nonempty = 0; } \
217
  { items[$$0] = 1; nonempty = 1; } \
218
  END { if (nonempty) { for (i in items) print i; }; } \
219
'
220
# Make sure the list of sources is unique.  This is necessary because,
221
# e.g., the same source file might be shared among _SOURCES variables
222
# for different programs/libraries.
223
am__define_uniq_tagged_files = \
224
  list='$(am__tagged_files)'; \
225
  unique=`for i in $$list; do \
226
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
227
  done | $(am__uniquify_input)`
228
ETAGS = etags
229
CTAGS = ctags
230
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/auxdir/depcomp
231
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
232
ACLOCAL = @ACLOCAL@
233
AMTAR = @AMTAR@
234
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
235
AR = @AR@
236
AUTOCONF = @AUTOCONF@
237
AUTOHEADER = @AUTOHEADER@
238
AUTOMAKE = @AUTOMAKE@
239
AWK = @AWK@
240
BGQ_LOADED = @BGQ_LOADED@
241
BG_INCLUDES = @BG_INCLUDES@
242
BG_LDFLAGS = @BG_LDFLAGS@
243
BLCR_CPPFLAGS = @BLCR_CPPFLAGS@
244
BLCR_HOME = @BLCR_HOME@
245
BLCR_LDFLAGS = @BLCR_LDFLAGS@
246
BLCR_LIBS = @BLCR_LIBS@
247
BLUEGENE_LOADED = @BLUEGENE_LOADED@
248
CC = @CC@
249
CCDEPMODE = @CCDEPMODE@
250
CFLAGS = @CFLAGS@
251
CHECK_CFLAGS = @CHECK_CFLAGS@
252
CHECK_LIBS = @CHECK_LIBS@
253
CPP = @CPP@
254
CPPFLAGS = @CPPFLAGS@
255
CRAY_JOB_CPPFLAGS = @CRAY_JOB_CPPFLAGS@
256
CRAY_JOB_LDFLAGS = @CRAY_JOB_LDFLAGS@
257
CRAY_SELECT_CPPFLAGS = @CRAY_SELECT_CPPFLAGS@
258
CRAY_SELECT_LDFLAGS = @CRAY_SELECT_LDFLAGS@
259
CRAY_SWITCH_CPPFLAGS = @CRAY_SWITCH_CPPFLAGS@
260
CRAY_SWITCH_LDFLAGS = @CRAY_SWITCH_LDFLAGS@
261
CRAY_TASK_CPPFLAGS = @CRAY_TASK_CPPFLAGS@
262
CRAY_TASK_LDFLAGS = @CRAY_TASK_LDFLAGS@
263
CXX = @CXX@
264
CXXCPP = @CXXCPP@
265
CXXDEPMODE = @CXXDEPMODE@
266
CXXFLAGS = @CXXFLAGS@
267
CYGPATH_W = @CYGPATH_W@
268
DATAWARP_CPPFLAGS = @DATAWARP_CPPFLAGS@
269
DATAWARP_LDFLAGS = @DATAWARP_LDFLAGS@
270
DEFS = @DEFS@
271
DEPDIR = @DEPDIR@
272
DLLTOOL = @DLLTOOL@
273
DL_LIBS = @DL_LIBS@
274
DSYMUTIL = @DSYMUTIL@
275
DUMPBIN = @DUMPBIN@
276
ECHO_C = @ECHO_C@
277
ECHO_N = @ECHO_N@
278
ECHO_T = @ECHO_T@
279
EGREP = @EGREP@
280
EXEEXT = @EXEEXT@
281
FGREP = @FGREP@
282
FREEIPMI_CPPFLAGS = @FREEIPMI_CPPFLAGS@
283
FREEIPMI_LDFLAGS = @FREEIPMI_LDFLAGS@
284
FREEIPMI_LIBS = @FREEIPMI_LIBS@
285
GLIB_CFLAGS = @GLIB_CFLAGS@
286
GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
287
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
288
GLIB_LIBS = @GLIB_LIBS@
289
GLIB_MKENUMS = @GLIB_MKENUMS@
290
GOBJECT_QUERY = @GOBJECT_QUERY@
291
GREP = @GREP@
292
GTK_CFLAGS = @GTK_CFLAGS@
293
GTK_LIBS = @GTK_LIBS@
294
H5CC = @H5CC@
295
H5FC = @H5FC@
296
HAVEMYSQLCONFIG = @HAVEMYSQLCONFIG@
297
HAVE_MAN2HTML = @HAVE_MAN2HTML@
298
HAVE_NRT = @HAVE_NRT@
299
HAVE_OPENSSL = @HAVE_OPENSSL@
300
HAVE_SOME_CURSES = @HAVE_SOME_CURSES@
301
HDF5_CC = @HDF5_CC@
302
HDF5_CFLAGS = @HDF5_CFLAGS@
303
HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
304
HDF5_FC = @HDF5_FC@
305
HDF5_FFLAGS = @HDF5_FFLAGS@
306
HDF5_FLIBS = @HDF5_FLIBS@
307
HDF5_LDFLAGS = @HDF5_LDFLAGS@
308
HDF5_LIBS = @HDF5_LIBS@
309
HDF5_TYPE = @HDF5_TYPE@
310
HDF5_VERSION = @HDF5_VERSION@
311
HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@
312
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
313
HWLOC_LIBS = @HWLOC_LIBS@
314
INSTALL = @INSTALL@
315
INSTALL_DATA = @INSTALL_DATA@
316
INSTALL_PROGRAM = @INSTALL_PROGRAM@
317
INSTALL_SCRIPT = @INSTALL_SCRIPT@
318
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
319
JSON_CPPFLAGS = @JSON_CPPFLAGS@
320
JSON_LDFLAGS = @JSON_LDFLAGS@
321
LD = @LD@
322
LDFLAGS = @LDFLAGS@
323
LIBCURL = @LIBCURL@
324
LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@
325
LIBOBJS = @LIBOBJS@
326
LIBS = @LIBS@
327
LIBTOOL = @LIBTOOL@
328
LIB_SLURM = @LIB_SLURM@
329
LIB_SLURMDB = @LIB_SLURMDB@
330
LIB_SLURMDB_BUILD = @LIB_SLURMDB_BUILD@
331
LIB_SLURM_BUILD = @LIB_SLURM_BUILD@
332
LIPO = @LIPO@
333
LN_S = @LN_S@
334
LTLIBOBJS = @LTLIBOBJS@
335
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
336
LZ4_CPPFLAGS = @LZ4_CPPFLAGS@
337
LZ4_LDFLAGS = @LZ4_LDFLAGS@
338
LZ4_LIBS = @LZ4_LIBS@
339
MAINT = @MAINT@
340
MAKEINFO = @MAKEINFO@
341
MANIFEST_TOOL = @MANIFEST_TOOL@
342
MKDIR_P = @MKDIR_P@
343
MUNGE_CPPFLAGS = @MUNGE_CPPFLAGS@
344
MUNGE_DIR = @MUNGE_DIR@
345
MUNGE_LDFLAGS = @MUNGE_LDFLAGS@
346
MUNGE_LIBS = @MUNGE_LIBS@
347
MYSQL_CFLAGS = @MYSQL_CFLAGS@
348
MYSQL_LIBS = @MYSQL_LIBS@
349
NCURSES = @NCURSES@
350
NETLOC_CPPFLAGS = @NETLOC_CPPFLAGS@
351
NETLOC_LDFLAGS = @NETLOC_LDFLAGS@
352
NETLOC_LIBS = @NETLOC_LIBS@
353
NM = @NM@
354
NMEDIT = @NMEDIT@
355
NRT_CPPFLAGS = @NRT_CPPFLAGS@
356
NUMA_LIBS = @NUMA_LIBS@
357
OBJDUMP = @OBJDUMP@
358
OBJEXT = @OBJEXT@
359
OFED_CPPFLAGS = @OFED_CPPFLAGS@
360
OFED_LDFLAGS = @OFED_LDFLAGS@
361
OFED_LIBS = @OFED_LIBS@
362
OTOOL = @OTOOL@
363
OTOOL64 = @OTOOL64@
364
PACKAGE = @PACKAGE@
365
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
366
PACKAGE_NAME = @PACKAGE_NAME@
367
PACKAGE_STRING = @PACKAGE_STRING@
368
PACKAGE_TARNAME = @PACKAGE_TARNAME@
369
PACKAGE_URL = @PACKAGE_URL@
370
PACKAGE_VERSION = @PACKAGE_VERSION@
371
PAM_DIR = @PAM_DIR@
372
PAM_LIBS = @PAM_LIBS@
373
PATH_SEPARATOR = @PATH_SEPARATOR@
374
PKG_CONFIG = @PKG_CONFIG@
375
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
376
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
377
PMIX_V1_CPPFLAGS = @PMIX_V1_CPPFLAGS@
378
PMIX_V1_LDFLAGS = @PMIX_V1_LDFLAGS@
379
PMIX_V2_CPPFLAGS = @PMIX_V2_CPPFLAGS@
380
PMIX_V2_LDFLAGS = @PMIX_V2_LDFLAGS@
381
PROJECT = @PROJECT@
382
PTHREAD_CC = @PTHREAD_CC@
383
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
384
PTHREAD_LIBS = @PTHREAD_LIBS@
385
RANLIB = @RANLIB@
386
READLINE_LIBS = @READLINE_LIBS@
387
REAL_BGQ_LOADED = @REAL_BGQ_LOADED@
388
RELEASE = @RELEASE@
389
RRDTOOL_CPPFLAGS = @RRDTOOL_CPPFLAGS@
390
RRDTOOL_LDFLAGS = @RRDTOOL_LDFLAGS@
391
RRDTOOL_LIBS = @RRDTOOL_LIBS@
392
RUNJOB_LDFLAGS = @RUNJOB_LDFLAGS@
393
SED = @SED@
394
SET_MAKE = @SET_MAKE@
395
SHELL = @SHELL@
396
SLEEP_CMD = @SLEEP_CMD@
397
SLURMCTLD_PORT = @SLURMCTLD_PORT@
398
SLURMCTLD_PORT_COUNT = @SLURMCTLD_PORT_COUNT@
399
SLURMDBD_PORT = @SLURMDBD_PORT@
400
SLURMD_PORT = @SLURMD_PORT@
401
SLURM_API_AGE = @SLURM_API_AGE@
402
SLURM_API_CURRENT = @SLURM_API_CURRENT@
403
SLURM_API_MAJOR = @SLURM_API_MAJOR@
404
SLURM_API_REVISION = @SLURM_API_REVISION@
405
SLURM_API_VERSION = @SLURM_API_VERSION@
406
SLURM_MAJOR = @SLURM_MAJOR@
407
SLURM_MICRO = @SLURM_MICRO@
408
SLURM_MINOR = @SLURM_MINOR@
409
SLURM_PREFIX = @SLURM_PREFIX@
410
SLURM_VERSION_NUMBER = @SLURM_VERSION_NUMBER@
411
SLURM_VERSION_STRING = @SLURM_VERSION_STRING@
412
SSH2_CPPFLAGS = @SSH2_CPPFLAGS@
413
SSH2_LDFLAGS = @SSH2_LDFLAGS@
414
SSH2_LIBS = @SSH2_LIBS@
415
SSL_CPPFLAGS = @SSL_CPPFLAGS@
416
SSL_LDFLAGS = @SSL_LDFLAGS@
417
SSL_LIBS = @SSL_LIBS@
418
STRIP = @STRIP@
419
SUCMD = @SUCMD@
420
SYSTEMD_TASKSMAX_OPTION = @SYSTEMD_TASKSMAX_OPTION@
421
UCX_CPPFLAGS = @UCX_CPPFLAGS@
422
UCX_LDFLAGS = @UCX_LDFLAGS@
423
UCX_LIBS = @UCX_LIBS@
424
UTIL_LIBS = @UTIL_LIBS@
425
VERSION = @VERSION@
426
ZLIB_CPPFLAGS = @ZLIB_CPPFLAGS@
427
ZLIB_LDFLAGS = @ZLIB_LDFLAGS@
428
ZLIB_LIBS = @ZLIB_LIBS@
429
_libcurl_config = @_libcurl_config@
430
abs_builddir = @abs_builddir@
431
abs_srcdir = @abs_srcdir@
432
abs_top_builddir = @abs_top_builddir@
433
abs_top_srcdir = @abs_top_srcdir@
434
ac_ct_AR = @ac_ct_AR@
435
ac_ct_CC = @ac_ct_CC@
436
ac_ct_CXX = @ac_ct_CXX@
437
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
438
ac_have_man2html = @ac_have_man2html@
439
am__include = @am__include@
440
am__leading_dot = @am__leading_dot@
441
am__quote = @am__quote@
442
am__tar = @am__tar@
443
am__untar = @am__untar@
444
ax_pthread_config = @ax_pthread_config@
445
bindir = @bindir@
446
build = @build@
447
build_alias = @build_alias@
448
build_cpu = @build_cpu@
449
build_os = @build_os@
450
build_vendor = @build_vendor@
451
builddir = @builddir@
452
datadir = @datadir@
453
datarootdir = @datarootdir@
454
docdir = @docdir@
455
dvidir = @dvidir@
456
exec_prefix = @exec_prefix@
457
host = @host@
458
host_alias = @host_alias@
459
host_cpu = @host_cpu@
460
host_os = @host_os@
461
host_vendor = @host_vendor@
462
htmldir = @htmldir@
463
includedir = @includedir@
464
infodir = @infodir@
465
install_sh = @install_sh@
466
libdir = @libdir@
467
libexecdir = @libexecdir@
468
localedir = @localedir@
469
localstatedir = @localstatedir@
470
lua_CFLAGS = @lua_CFLAGS@
471
lua_LIBS = @lua_LIBS@
472
mandir = @mandir@
473
mkdir_p = @mkdir_p@
474
oldincludedir = @oldincludedir@
475
pdfdir = @pdfdir@
476
prefix = @prefix@
477
program_transform_name = @program_transform_name@
478
psdir = @psdir@
479
runstatedir = @runstatedir@
480
sbindir = @sbindir@
481
sharedstatedir = @sharedstatedir@
482
srcdir = @srcdir@
483
sysconfdir = @sysconfdir@
484
target = @target@
485
target_alias = @target_alias@
486
target_cpu = @target_cpu@
487
target_os = @target_os@
488
target_vendor = @target_vendor@
489
top_build_prefix = @top_build_prefix@
490
top_builddir = @top_builddir@
491
top_srcdir = @top_srcdir@
492
AUTOMAKE_OPTIONS = foreign
493
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common $(JSON_CPPFLAGS)
494
slurmsmwd_SOURCES = main.c read_config.c
495
slurmsmwd_LDADD = \
496
	$(top_builddir)/src/common/libdaemonize.la \
497
	$(LIB_SLURM) $(DL_LIBS)
498
499
slurmsmwd_LDFLAGS = -export-dynamic $(CMD_LDFLAGS)
500
ETC_FILES = slurmsmwd.service
501
CLEANFILES = $(ETC_FILES)
502
edit = sed \
503
        -e 's|@bindir[@]|$(bindir)|g' \
504
        -e 's|@libdir[@]|$(libdir)|g' \
505
        -e 's|@sbindir[@]|$(sbindir)|g' \
506
        -e 's|@sysconfdir[@]|$(sysconfdir)|g' \
507
        -e 's|@BLUEGENE_LOADED_FALSE[@]|$(BLUEGENE_LOADED_FALSE)|g'
508
509
noinst_DATA = $(ETC_FILES)
510
all: all-am
511
512
.SUFFIXES:
513
.SUFFIXES: .c .lo .o .obj
514
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
515
	@for dep in $?; do \
516
	  case '$(am__configure_deps)' in \
517
	    *$$dep*) \
518
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
519
	        && { if test -f $@; then exit 0; else break; fi; }; \
520
	      exit 1;; \
521
	  esac; \
522
	done; \
523
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contribs/cray/slurmsmwd/Makefile'; \
524
	$(am__cd) $(top_srcdir) && \
525
	  $(AUTOMAKE) --foreign contribs/cray/slurmsmwd/Makefile
526
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
527
	@case '$?' in \
528
	  *config.status*) \
529
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
530
	  *) \
531
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
532
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
533
	esac;
534
535
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
536
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
537
538
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
539
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
540
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
541
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
542
$(am__aclocal_m4_deps):
543
install-sbinPROGRAMS: $(sbin_PROGRAMS)
544
	@$(NORMAL_INSTALL)
545
	@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
546
	if test -n "$$list"; then \
547
	  echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
548
	  $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
549
	fi; \
550
	for p in $$list; do echo "$$p $$p"; done | \
551
	sed 's/$(EXEEXT)$$//' | \
552
	while read p p1; do if test -f $$p \
553
	 || test -f $$p1 \
554
	  ; then echo "$$p"; echo "$$p"; else :; fi; \
555
	done | \
556
	sed -e 'p;s,.*/,,;n;h' \
557
	    -e 's|.*|.|' \
558
	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
559
	sed 'N;N;N;s,\n, ,g' | \
560
	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
561
	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
562
	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
563
	    else { print "f", $$3 "/" $$4, $$1; } } \
564
	  END { for (d in files) print "f", d, files[d] }' | \
565
	while read type dir files; do \
566
	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
567
	    test -z "$$files" || { \
568
	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
569
	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
570
	    } \
571
	; done
572
573
uninstall-sbinPROGRAMS:
574
	@$(NORMAL_UNINSTALL)
575
	@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
576
	files=`for p in $$list; do echo "$$p"; done | \
577
	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
578
	      -e 's/$$/$(EXEEXT)/' \
579
	`; \
580
	test -n "$$list" || exit 0; \
581
	echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
582
	cd "$(DESTDIR)$(sbindir)" && rm -f $$files
583
584
clean-sbinPROGRAMS:
585
	@list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
586
	echo " rm -f" $$list; \
587
	rm -f $$list || exit $$?; \
588
	test -n "$(EXEEXT)" || exit 0; \
589
	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
590
	echo " rm -f" $$list; \
591
	rm -f $$list
592
593
slurmsmwd$(EXEEXT): $(slurmsmwd_OBJECTS) $(slurmsmwd_DEPENDENCIES) $(EXTRA_slurmsmwd_DEPENDENCIES) 
594
	@rm -f slurmsmwd$(EXEEXT)
595
	$(AM_V_CCLD)$(slurmsmwd_LINK) $(slurmsmwd_OBJECTS) $(slurmsmwd_LDADD) $(LIBS)
596
597
mostlyclean-compile:
598
	-rm -f *.$(OBJEXT)
599
600
distclean-compile:
601
	-rm -f *.tab.c
602
603
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
604
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read_config.Po@am__quote@
605
606
.c.o:
607
@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
608
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
609
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
610
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
611
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
612
613
.c.obj:
614
@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
615
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
616
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
617
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
618
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
619
620
.c.lo:
621
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
622
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
623
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
624
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
625
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
626
627
mostlyclean-libtool:
628
	-rm -f *.lo
629
630
clean-libtool:
631
	-rm -rf .libs _libs
632
633
ID: $(am__tagged_files)
634
	$(am__define_uniq_tagged_files); mkid -fID $$unique
635
tags: tags-am
636
TAGS: tags
637
638
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
639
	set x; \
640
	here=`pwd`; \
641
	$(am__define_uniq_tagged_files); \
642
	shift; \
643
	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
644
	  test -n "$$unique" || unique=$$empty_fix; \
645
	  if test $$# -gt 0; then \
646
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
647
	      "$$@" $$unique; \
648
	  else \
649
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
650
	      $$unique; \
651
	  fi; \
652
	fi
653
ctags: ctags-am
654
655
CTAGS: ctags
656
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
657
	$(am__define_uniq_tagged_files); \
658
	test -z "$(CTAGS_ARGS)$$unique" \
659
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
660
	     $$unique
661
662
GTAGS:
663
	here=`$(am__cd) $(top_builddir) && pwd` \
664
	  && $(am__cd) $(top_srcdir) \
665
	  && gtags -i $(GTAGS_ARGS) "$$here"
666
cscopelist: cscopelist-am
667
668
cscopelist-am: $(am__tagged_files)
669
	list='$(am__tagged_files)'; \
670
	case "$(srcdir)" in \
671
	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
672
	  *) sdir=$(subdir)/$(srcdir) ;; \
673
	esac; \
674
	for i in $$list; do \
675
	  if test -f "$$i"; then \
676
	    echo "$(subdir)/$$i"; \
677
	  else \
678
	    echo "$$sdir/$$i"; \
679
	  fi; \
680
	done >> $(top_builddir)/cscope.files
681
682
distclean-tags:
683
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
684
685
distdir: $(DISTFILES)
686
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
687
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
688
	list='$(DISTFILES)'; \
689
	  dist_files=`for file in $$list; do echo $$file; done | \
690
	  sed -e "s|^$$srcdirstrip/||;t" \
691
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
692
	case $$dist_files in \
693
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
694
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
695
			   sort -u` ;; \
696
	esac; \
697
	for file in $$dist_files; do \
698
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
699
	  if test -d $$d/$$file; then \
700
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
701
	    if test -d "$(distdir)/$$file"; then \
702
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
703
	    fi; \
704
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
705
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
706
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
707
	    fi; \
708
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
709
	  else \
710
	    test -f "$(distdir)/$$file" \
711
	    || cp -p $$d/$$file "$(distdir)/$$file" \
712
	    || exit 1; \
713
	  fi; \
714
	done
715
check-am: all-am
716
check: check-am
717
all-am: Makefile $(PROGRAMS) $(DATA)
718
installdirs:
719
	for dir in "$(DESTDIR)$(sbindir)"; do \
720
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
721
	done
722
install: install-am
723
install-exec: install-exec-am
724
install-data: install-data-am
725
uninstall: uninstall-am
726
727
install-am: all-am
728
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
729
730
installcheck: installcheck-am
731
install-strip:
732
	if test -z '$(STRIP)'; then \
733
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
734
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
735
	      install; \
736
	else \
737
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
738
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
739
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
740
	fi
741
mostlyclean-generic:
742
743
clean-generic:
744
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
745
746
distclean-generic:
747
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
748
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
749
750
maintainer-clean-generic:
751
	@echo "This command is intended for maintainers to use"
752
	@echo "it deletes files that may require special tools to rebuild."
753
clean: clean-am
754
755
clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \
756
	mostlyclean-am
757
758
distclean: distclean-am
759
	-rm -rf ./$(DEPDIR)
760
	-rm -f Makefile
761
distclean-am: clean-am distclean-compile distclean-generic \
762
	distclean-tags
763
764
dvi: dvi-am
765
766
dvi-am:
767
768
html: html-am
769
770
html-am:
771
772
info: info-am
773
774
info-am:
775
776
install-data-am:
777
778
install-dvi: install-dvi-am
779
780
install-dvi-am:
781
782
install-exec-am: install-sbinPROGRAMS
783
784
install-html: install-html-am
785
786
install-html-am:
787
788
install-info: install-info-am
789
790
install-info-am:
791
792
install-man:
793
794
install-pdf: install-pdf-am
795
796
install-pdf-am:
797
798
install-ps: install-ps-am
799
800
install-ps-am:
801
802
installcheck-am:
803
804
maintainer-clean: maintainer-clean-am
805
	-rm -rf ./$(DEPDIR)
806
	-rm -f Makefile
807
maintainer-clean-am: distclean-am maintainer-clean-generic
808
809
mostlyclean: mostlyclean-am
810
811
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
812
	mostlyclean-libtool
813
814
pdf: pdf-am
815
816
pdf-am:
817
818
ps: ps-am
819
820
ps-am:
821
822
uninstall-am: uninstall-sbinPROGRAMS
823
824
.MAKE: install-am install-strip
825
826
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
827
	clean-libtool clean-sbinPROGRAMS cscopelist-am ctags ctags-am \
828
	distclean distclean-compile distclean-generic \
829
	distclean-libtool distclean-tags distdir dvi dvi-am html \
830
	html-am info info-am install install-am install-data \
831
	install-data-am install-dvi install-dvi-am install-exec \
832
	install-exec-am install-html install-html-am install-info \
833
	install-info-am install-man install-pdf install-pdf-am \
834
	install-ps install-ps-am install-sbinPROGRAMS install-strip \
835
	installcheck installcheck-am installdirs maintainer-clean \
836
	maintainer-clean-generic mostlyclean mostlyclean-compile \
837
	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
838
	tags tags-am uninstall uninstall-am uninstall-sbinPROGRAMS
839
840
.PRECIOUS: Makefile
841
842
843
slurmsmwd.service: Makefile $(srcdir)/slurmsmwd.service.in
844
	$(edit) $(srcdir)/slurmsmwd.service.in > slurmsmwd.service
845
846
force:
847
$(slurmsmwd_LDADD) : force
848
	@cd `dirname $@` && $(MAKE) `basename $@`
849
850
# Tell versions [3.59,3.63) of GNU make to not export all variables.
851
# Otherwise a system limit (for SysV at least) may be exceeded.
852
.NOEXPORT:
(-)a/contribs/cray/slurmsmwd/main.c (+620 lines)
Line 0 Link Here
1
/*****************************************************************************\
2
 *  main.c - Primary logic for slurmsmwd
3
 *****************************************************************************
4
 *  Copyright (C) 2017 Regents of the University of California
5
 *  Written by Douglas Jacobsen <dmjacobsen@lbl.gov>
6
 *
7
 *  This file is part of SLURM, a resource management program.
8
 *  For details, see <https://slurm.schedmd.com>.
9
 *  Please also read the included file: DISCLAIMER.
10
 *
11
 *  SLURM is free software; you can redistribute it and/or modify it under
12
 *  the terms of the GNU General Public License as published by the Free
13
 *  Software Foundation; either version 2 of the License, or (at your option)
14
 *  any later version.
15
 *
16
 *  In addition, as a special exception, the copyright holders give permission
17
 *  to link the code of portions of this program with the OpenSSL library under
18
 *  certain conditions as described in each individual source file, and
19
 *  distribute linked combinations including the two. You must obey the GNU
20
 *  General Public License in all respects for all of the code used other than
21
 *  OpenSSL. If you modify file(s) with this exception, you may extend this
22
 *  exception to your version of the file(s), but you are not obligated to do
23
 *  so. If you do not wish to do so, delete this exception statement from your
24
 *  version.  If you delete this exception statement from all source files in
25
 *  the program, then also delete it here.
26
 *
27
 *  SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
28
 *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
29
 *  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
30
 *  details.
31
 *
32
 *  You should have received a copy of the GNU General Public License along
33
 *  with SLURM; if not, write to the Free Software Foundation, Inc.,
34
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA.
35
\*****************************************************************************/
36
37
#define _GNU_SOURCE
38
#include <stdio.h>
39
#include <stdlib.h>
40
#include <string.h>
41
#include <errno.h>
42
#include <unistd.h>
43
#include <stdarg.h>
44
#include <pthread.h>
45
#include <ctype.h>
46
#include <signal.h>
47
#include <sys/time.h>
48
#include <poll.h>
49
50
#include "src/common/slurm_xlator.h"
51
#include "slurm/slurm.h"
52
#include "src/common/macros.h"
53
#include "src/common/xmalloc.h"
54
#include "src/common/xstring.h"
55
#include "src/common/slurm_protocol_defs.h"
56
#include "src/common/daemonize.h"
57
#include "src/common/xsignal.h"
58
#include "src/common/log.h"
59
#include "src/common/proc_args.h"
60
61
#include "read_config.h"
62
63
#define MAX_POLL_WAIT 500
64
65
/* Local variables */
66
static int foreground = 0;
67
static log_options_t log_opts =		/* Log to stderr & syslog */
68
	LOG_OPTS_INITIALIZER;
69
static int _sigarray[] = {	/* blocked signals for this process */
70
	SIGINT,  SIGTERM, SIGCHLD, SIGUSR1,
71
	SIGUSR2, SIGTSTP, SIGXCPU, SIGQUIT,
72
	SIGPIPE, SIGALRM, SIGABRT, SIGHUP, 0 };
73
static const char *xtconsumer_path = "/opt/cray/hss/default/bin/xtconsumer";
74
static int slurmsmwd_log_fmt = LOG_FMT_ISO8601_MS;
75
static pthread_t xtc_thread;
76
static pid_t xtc_pid = 0;
77
78
static int stop_running = 0;
79
static uint16_t debug_level = 0;
80
static pthread_mutex_t down_node_lock;
81
static int *down_node;
82
static size_t n_down_node;
83
static size_t down_node_sz;
84
static const char *event_description[] = {
85
	"Invalid Event",
86
	"ec_node_failed",
87
	"ec_node_unavailable"
88
};
89
90
typedef enum event_type {
91
	EVENT_INVALID = 0,
92
	EVENT_NODE_FAILED,
93
	EVENT_NODE_UNAVAILABLE,
94
	EVENT_LIMIT
95
} event_type_t;
96
97
static int _start_xtconsumer(char **xtc_argv, pid_t *pid);
98
99
static void _shutdown_threads(void)
100
{
101
	stop_running = 1;
102
}
103
104
static int _getnid(const char *cname, int dim)
105
{
106
	int cabinet, row, chassis, slot, node;
107
	int nodes_per_slot = 4;
108
	int nodes_per_chassis = nodes_per_slot * 16;
109
	int nodes_per_cabinet = nodes_per_chassis * 3;
110
	int nodes_per_row = nodes_per_cabinet * dim;
111
112
	sscanf(cname, "c%d-%dc%ds%dn%d",
113
	       &cabinet, &row, &chassis, &slot, &node);
114
115
	return cabinet * nodes_per_cabinet + row * nodes_per_row +
116
		chassis * nodes_per_chassis + slot * nodes_per_slot + node;
117
}
118
119
static char *_getnidlist()
120
{
121
	char *ret = NULL;
122
	size_t idx = 0;
123
	int last_nid = 0;
124
	int in_range = 0;
125
	ret = xstrdup("nid[");
126
	for (idx = 0; idx < n_down_node; idx++) {
127
		int curr_nid = down_node[idx];
128
		if (last_nid == 0) {
129
			xstrfmtcat(ret, "%05d", curr_nid);
130
		} else if (curr_nid == last_nid) {
131
			continue;
132
		} else if (curr_nid - last_nid > 1) {
133
			if (in_range) {
134
				xstrfmtcat(ret, "-%05d", last_nid);
135
			}
136
			xstrfmtcat(ret, ",%05d", curr_nid);
137
			in_range = 0;
138
		} else if (idx == n_down_node - 1) {
139
			xstrfmtcat(ret, "-%05d", curr_nid);
140
		} else {
141
			in_range = 1;
142
		}
143
		last_nid = curr_nid;
144
	}
145
	xstrfmtcat(ret, "]");
146
	return ret;
147
}
148
149
static int _mark_nodes_down()
150
{
151
	/* locks are assumed to be held */
152
	int rc = 0;
153
	update_node_msg_t *update_msg = xmalloc(sizeof(update_node_msg_t));
154
155
	slurm_init_update_node_msg(update_msg);
156
157
	update_msg->node_names = _getnidlist();
158
	update_msg->node_state = NODE_STATE_NO_RESPOND;
159
160
	info("setting %s to NotResponding", update_msg->node_names);
161
162
	rc = slurm_update_node(update_msg);
163
	if (rc != SLURM_SUCCESS)
164
		error("failed to set %s to NotResponding: %m",
165
		      update_msg->node_names);
166
167
	slurm_free_update_node_msg(update_msg);
168
	return rc;
169
170
}
171
172
static void *_process_data(void *arg)
173
{
174
	while (!stop_running) {
175
		slurm_mutex_lock(&down_node_lock);
176
		if (n_down_node > 0) {
177
			slurm_info("down node cnt: %lu", n_down_node);
178
			_mark_nodes_down();
179
			n_down_node = 0;
180
		}
181
		slurm_mutex_unlock(&down_node_lock);
182
		usleep(2000000);
183
184
	}
185
	return NULL;
186
}
187
188
static event_type_t _parse_event(const char *input)
189
{
190
	if (strstr(input, "ec_node_failed") != NULL)
191
		return EVENT_NODE_FAILED;
192
	if (strstr(input, "ec_node_unavailable") != NULL)
193
		return EVENT_NODE_UNAVAILABLE;
194
	return EVENT_INVALID;
195
}
196
197
static int _cmp_nid(const void *a, const void *b, void *arg)
198
{
199
	int ai = * (const int *) a;
200
	int bi = * (const int *) b;
201
202
	return ai - bi;
203
}
204
205
static char *_trim(char *str)
206
{
207
	char *ptr = str;
208
	ssize_t len = 0;
209
210
	if (!str)
211
		return NULL;
212
213
	for ( ; isspace(*ptr) && *ptr != 0; ptr++) {
214
		/* that's it */
215
	}
216
217
	if (*ptr == 0)
218
		return ptr;
219
220
	len = strlen(ptr) - 1;
221
	for ( ; isspace(*(ptr + len)) && len > 0; len--) {
222
		*(ptr + len) = 0;
223
	}
224
225
	return ptr;
226
}
227
228
static void _send_failed_nodes(char *nodelist)
229
{
230
	char *search = nodelist;
231
	char *svptr = NULL;
232
	char *ptr = NULL;
233
	int nid = 0;
234
235
	slurm_mutex_lock(&down_node_lock);
236
	while ((ptr = strtok_r(search, " ", &svptr))) {
237
		search = NULL;
238
239
		while (*ptr == ':')
240
			ptr++;
241
242
		ptr = _trim(ptr);
243
244
		if (!strlen(ptr))
245
			continue;
246
247
		nid = _getnid(ptr, slurmsmwd_cabinets_per_row);
248
249
		if (!nid)
250
			continue;
251
		if (n_down_node + 1 >= down_node_sz) {
252
			size_t alloc_quantity = (n_down_node + 1) * 2;
253
			size_t alloc_size = sizeof(int) * alloc_quantity;
254
			down_node = xrealloc(down_node, alloc_size);
255
			down_node_sz = alloc_quantity;
256
		}
257
		down_node[n_down_node++] = nid;
258
	}
259
	qsort_r(down_node, n_down_node, sizeof(int), _cmp_nid, NULL);
260
	slurm_mutex_unlock(&down_node_lock);
261
}
262
263
/*
264
  2017-05-16 07:17:12|2017-05-16 07:17:12|0x40008063 - ec_node_failed|src=:1:s0|::c4-2c0s2n0 ::c4-2c0s2n2 ::c4-2c0s2n3
265
  2017-05-16 07:17:12|2017-05-16 07:17:12|0x400020e8 - ec_node_unavailable|src=:1:s0|::c4-2c0s2n2
266
  2017-05-16 08:11:01|2017-05-16 08:11:01|0x400020e8 - ec_node_unavailable|src=:1:s0|::c4-2c0s2n0 ::c4-2c0s2n1 ::c4-2c0s2n2 ::c4-2c0s2n3
267
*/
268
static void *_xtconsumer_listen(void *arg)
269
{
270
	int xtc_fd = 0;
271
	char *xtc_argv[] = {
272
		"xtconsumer",
273
		"-b",
274
		"ec_node_unavailable",
275
		"ec_node_failed"
276
	};
277
	char *line_ptr = NULL;
278
	char *buffer = NULL;
279
	size_t buffer_sz = 0;
280
	size_t buffer_off = 0;
281
	struct pollfd fds;
282
	int i = 0;
283
	int status = 0;
284
285
	xtc_fd = _start_xtconsumer(xtc_argv, &xtc_pid);
286
	debug2("got xtc_pid: %d", xtc_pid);
287
288
	if (xtc_fd < 0) {
289
		error("failed to open xtconsumer: %s",
290
		      slurm_strerror(slurm_get_errno()));
291
		return NULL;
292
	}
293
294
	/* xtconsumer seems to flush out its stdout on newline (typical)
295
	 * so reading line-by-line seems to be functional for this need
296
	 */
297
	buffer_sz = 1024;
298
	buffer = xmalloc(buffer_sz);
299
	while (!stop_running) {
300
301
		fds.fd = xtc_fd;
302
		fds.events = POLLIN | POLLHUP | POLLRDHUP;
303
		fds.revents = 0;
304
305
		i = poll(&fds, 1, MAX_POLL_WAIT);
306
		if (i == 0) {
307
			continue;
308
		} else if (i < 0) {
309
			error("poll(): %s", slurm_strerror(slurm_get_errno()));
310
			break;
311
		}
312
		if ((fds.revents & POLLIN) == 0)
313
			break;
314
		i = read(xtc_fd, buffer + buffer_off,
315
			 buffer_sz - buffer_off);
316
317
		debug3("read %d bytes", i);
318
		if (i == 0) {
319
			break;
320
		} else if (i < 0) {
321
			if (errno == EAGAIN)
322
				continue;
323
			error("read(): %s", slurm_strerror(slurm_get_errno()));
324
			break;
325
		}
326
		buffer_off += i;
327
		if (buffer_off + 1024 >= buffer_sz) {
328
			buffer_sz *= 2;
329
			buffer = xrealloc(buffer, buffer_sz);
330
		}
331
332
		/* NUL terminate the string to allow strchr to work
333
		 * buffer was expanded above to ensure there would be space
334
		 */
335
		buffer[buffer_off + 1] = '\0';
336
		while ((line_ptr = strchr(buffer, '\n')) != NULL) {
337
			event_type_t event = EVENT_INVALID;
338
			char *node_list = NULL;
339
			char *search = NULL;
340
			char *ptr = NULL;
341
			char *svptr = NULL;
342
			int token_idx = 0;
343
344
			*line_ptr = '\0';
345
			if (!strlen(buffer))
346
				goto advance_line;
347
348
			debug3("got line: %s", buffer);
349
			search = buffer;
350
			while ((ptr = strtok_r(search, "|", &svptr))) {
351
				search = NULL;
352
				if (token_idx == 2)
353
					event = _parse_event(ptr);
354
				if (token_idx == 4)
355
					node_list = xstrdup(ptr);
356
357
				token_idx++;
358
			}
359
360
			if (event == EVENT_NODE_FAILED ||
361
			    event == EVENT_NODE_UNAVAILABLE) {
362
				info("received event: %s, nodelist: %s",
363
				     event_description[event], node_list);
364
				_send_failed_nodes(node_list);
365
			}
366
367
			xfree(node_list);
368
			node_list = NULL;
369
370
		advance_line:
371
			*line_ptr = '\n';
372
			line_ptr++;
373
			for (ptr = buffer; *line_ptr; ptr++, line_ptr++)
374
				*ptr = *line_ptr;
375
			*ptr = *line_ptr;
376
			buffer_off = ptr - buffer;
377
		}
378
379
380
381
	}
382
	info("killing xtconsumer pid %d", xtc_pid);
383
	killpg(xtc_pid, SIGTERM);
384
	usleep(10000);
385
	killpg(xtc_pid, SIGKILL);
386
	waitpid(xtc_pid, &status, 0);
387
	close(xtc_fd);
388
389
390
#if 0
391
cleanup_break:
392
	if (node_list)
393
		xfree(node_list);
394
	break;
395
#endif
396
	xfree(buffer);
397
	return NULL;
398
399
}
400
401
/* _usage - print a message describing the command line arguments */
402
static void _usage(char *prog_name)
403
{
404
	fprintf(stderr, "Usage: %s [OPTIONS]\n", prog_name);
405
	fprintf(stderr, "  -D         \t"
406
		"Run daemon in foreground.\n");
407
	fprintf(stderr, "  -h         \t"
408
		"Print this help message.\n");
409
	fprintf(stderr, "  -v         \t"
410
		"Verbose mode. Multiple -v's increase verbosity.\n");
411
	fprintf(stderr, "  -V         \t"
412
		"Print version information and exit.\n");
413
}
414
415
static void _parse_commandline(int argc, char **argv)
416
{
417
	int c = 0;
418
419
	opterr = 0;
420
	while ((c = getopt(argc, argv, "DhvV")) != -1)
421
		switch (c) {
422
		case 'D':
423
			foreground = 1;
424
			break;
425
		case 'h':
426
			_usage(argv[0]);
427
			exit(0);
428
			break;
429
		case 'v':
430
			debug_level++;
431
			break;
432
		case 'V':
433
			print_slurm_version();
434
			exit(0);
435
			break;
436
		default:
437
			_usage(argv[0]);
438
			exit(1);
439
		}
440
}
441
442
static void _update_logging(void)
443
{
444
445
	/* Preserve execute line arguments (if any) */
446
	if (debug_level) {
447
		slurmsmwd_debug_level = MIN(
448
			(LOG_LEVEL_INFO + debug_level),
449
			(LOG_LEVEL_END - 1));
450
	}
451
452
	log_opts.stderr_level  = slurmsmwd_debug_level;
453
	log_opts.logfile_level = slurmsmwd_debug_level;
454
	log_opts.syslog_level  = slurmsmwd_debug_level;
455
456
	if (foreground)
457
		log_opts.syslog_level = LOG_LEVEL_QUIET;
458
	else {
459
		log_opts.stderr_level = LOG_LEVEL_QUIET;
460
		if (slurmsmwd_log_file)
461
			log_opts.syslog_level = LOG_LEVEL_QUIET;
462
	}
463
464
	log_alter(log_opts, SYSLOG_FACILITY_DAEMON, slurmsmwd_log_file);
465
	log_set_timefmt(slurmsmwd_log_fmt);
466
}
467
468
static void _reconfig(void)
469
{
470
	slurmsmwd_read_config();
471
	_update_logging();
472
}
473
474
/* Reset some signals to their default state to clear any
475
 * inherited signal states */
476
static void _default_sigaction(int sig)
477
{
478
	struct sigaction act;
479
480
	if (sigaction(sig, NULL, &act)) {
481
		error("sigaction(%d): %m", sig);
482
		return;
483
	}
484
	if (act.sa_handler != SIG_IGN)
485
		return;
486
487
	act.sa_handler = SIG_DFL;
488
	if (sigaction(sig, &act, NULL))
489
		error("sigaction(%d): %m", sig);
490
}
491
492
/* _signal_handler - Process daemon-wide signals */
493
static void *_signal_handler(void *no_data)
494
{
495
	int rc, sig;
496
	int sig_array[] = {SIGINT, SIGTERM, SIGHUP, SIGABRT, 0};
497
	sigset_t set;
498
499
	(void) pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
500
	(void) pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
501
502
	/* Make sure no required signals are ignored (possibly inherited) */
503
	_default_sigaction(SIGINT);
504
	_default_sigaction(SIGTERM);
505
	_default_sigaction(SIGHUP);
506
	_default_sigaction(SIGABRT);
507
508
	while (1) {
509
		xsignal_sigset_create(sig_array, &set);
510
		rc = sigwait(&set, &sig);
511
		if (rc == EINTR)
512
			continue;
513
		switch (sig) {
514
		case SIGHUP:	/* kill -1 */
515
			info("Reconfigure signal (SIGHUP) received");
516
			_reconfig();
517
			break;
518
		case SIGINT:	/* kill -2  or <CTRL-C> */
519
		case SIGTERM:	/* kill -15 */
520
			info("Terminate signal (SIGINT or SIGTERM) received");
521
			_shutdown_threads();
522
			return NULL;	/* Normal termination */
523
		case SIGABRT:	/* abort */
524
			info("SIGABRT received");
525
			abort();	/* Should terminate here */
526
			_shutdown_threads();
527
			return NULL;
528
		default:
529
			error("Invalid signal (%d) received", sig);
530
		}
531
	}
532
533
}
534
535
int main(int argc, char **argv)
536
{
537
	pthread_t processing_thread, signal_handler_thread;
538
	pthread_attr_t thread_attr;
539
540
	_parse_commandline(argc, argv);
541
542
	log_init(argv[0], log_opts, LOG_DAEMON, NULL);
543
	_reconfig();
544
	slurmsmwd_print_config();
545
546
	if (!foreground) {
547
		if (xdaemon())
548
			error("daemon(): %m");
549
	}
550
	if (create_pidfile("/var/run/slurmsmwd.pid", 0) < 0)
551
		fatal("Unable to create pidfile /var/run/slurmswmd.pid");
552
553
	slurm_mutex_init(&down_node_lock);
554
555
	/* Create attached thread for signal handling */
556
	if (xsignal_block(_sigarray) < 0)
557
		error("Unable to block signals");
558
	slurm_attr_init(&thread_attr);
559
	if (pthread_create(&signal_handler_thread, &thread_attr,
560
			   _signal_handler, NULL))
561
		fatal("pthread_create %m");
562
	slurm_attr_destroy(&thread_attr);
563
564
	slurm_attr_init(&thread_attr);
565
	if (pthread_create(&processing_thread, &thread_attr,
566
			   &_process_data, NULL))
567
		fatal("pthread_create %m");
568
	slurm_attr_destroy(&thread_attr);
569
570
	while (!stop_running) {
571
		slurm_attr_init(&thread_attr);
572
		if (pthread_create(&xtc_thread, &thread_attr,
573
				   &_xtconsumer_listen, NULL))
574
			fatal("pthread_create %m");
575
		slurm_attr_destroy(&thread_attr);
576
		pthread_join(xtc_thread, NULL);
577
	}
578
579
	pthread_join(processing_thread, NULL);
580
	slurm_mutex_destroy(&down_node_lock);
581
	return 0;
582
}
583
584
static int _start_xtconsumer(char **xtc_argv, pid_t *pid)
585
{
586
	int cc, i;
587
	pid_t cpid;
588
	int pfd[2] = { -1, -1 };
589
590
	if (access(xtconsumer_path, R_OK | X_OK) < 0) {
591
		error("Can not execute: %s", xtconsumer_path);
592
		return -1;
593
	}
594
	if (pipe(pfd) != 0) {
595
		error("pipe(): %s", slurm_strerror(slurm_get_errno()));
596
		return -1;
597
	}
598
599
	if ((cpid = fork()) == 0) {
600
		cc = sysconf(_SC_OPEN_MAX);
601
		dup2(pfd[1], STDERR_FILENO);
602
		dup2(pfd[1], STDOUT_FILENO);
603
		for (i = 0; i < cc; i++) {
604
			if ((i != STDERR_FILENO) && (i != STDOUT_FILENO))
605
				close(i);
606
		}
607
		setpgid(0, 0);
608
		execv(xtconsumer_path, xtc_argv);
609
		error("execv(): %s", slurm_strerror(slurm_get_errno()));
610
		exit(127);
611
	} else if (cpid < 0) {
612
		close(pfd[0]);
613
		close(pfd[1]);
614
		error("fork(): %s", slurm_strerror(slurm_get_errno()));
615
		return -1;
616
	}
617
	*pid = cpid;
618
	close(pfd[1]);
619
	return pfd[0];
620
}
(-)a/contribs/cray/slurmsmwd/read_config.c (+102 lines)
Line 0 Link Here
1
/*****************************************************************************\
2
 *  read_config.c - Read configuration file for slurmwmwd
3
 *****************************************************************************
4
 *  Copyright (C) 2017 Regents of the University of California
5
 *  Written by Douglas Jacobsen <dmjacobsen@lbl.gov>
6
 *
7
 *  This file is part of SLURM, a resource management program.
8
 *  For details, see <https://slurm.schedmd.com>.
9
 *  Please also read the included file: DISCLAIMER.
10
 *
11
 *  SLURM is free software; you can redistribute it and/or modify it under
12
 *  the terms of the GNU General Public License as published by the Free
13
 *  Software Foundation; either version 2 of the License, or (at your option)
14
 *  any later version.
15
 *
16
 *  In addition, as a special exception, the copyright holders give permission
17
 *  to link the code of portions of this program with the OpenSSL library under
18
 *  certain conditions as described in each individual source file, and
19
 *  distribute linked combinations including the two. You must obey the GNU
20
 *  General Public License in all respects for all of the code used other than
21
 *  OpenSSL. If you modify file(s) with this exception, you may extend this
22
 *  exception to your version of the file(s), but you are not obligated to do
23
 *  so. If you do not wish to do so, delete this exception statement from your
24
 *  version.  If you delete this exception statement from all source files in
25
 *  the program, then also delete it here.
26
 *
27
 *  SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
28
 *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
29
 *  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
30
 *  details.
31
 *
32
 *  You should have received a copy of the GNU General Public License along
33
 *  with SLURM; if not, write to the Free Software Foundation, Inc.,
34
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA.
35
\*****************************************************************************/
36
37
#include <stdlib.h>
38
#include <string.h>
39
#include <sys/stat.h>
40
#include <sys/types.h>
41
#include <unistd.h>
42
43
#include "src/common/slurm_xlator.h"	/* Must be first */
44
#include "src/common/parse_config.h"
45
#include "read_config.h"
46
47
/* Global variables */
48
uint16_t slurmsmwd_cabinets_per_row = 0;
49
uint16_t slurmsmwd_debug_level = LOG_LEVEL_INFO;
50
char *slurmsmwd_log_file = NULL;
51
52
static s_p_options_t slurmsmwd_options[] = {
53
	{"CabinetsPerRow", S_P_UINT16},
54
	{"DebugLevel", S_P_STRING},
55
	{"LogFile", S_P_STRING},
56
	{NULL}
57
};
58
59
static void _validate_config(void)
60
{
61
	if (slurmsmwd_cabinets_per_row == 0)
62
		fatal("slurmsmwd.conf: CabinetsPerRow must not be zero");
63
}
64
65
extern void slurmsmwd_print_config(void)
66
{
67
	debug2("slurmsmwd configuration");
68
	debug2("CabinetsPerRow = %u", slurmsmwd_cabinets_per_row);
69
	debug2("DebugLevel     = %u", slurmsmwd_debug_level);
70
	debug2("LogFile        = %s", slurmsmwd_log_file);
71
}
72
73
/* Load configuration file contents into global variables.
74
 * Call slurmsmwd_free_config to free memory. */
75
extern void slurmsmwd_read_config(void)
76
{
77
	char *config_file = NULL;
78
	char *temp_str = NULL;
79
	s_p_hashtbl_t *tbl = NULL;
80
	struct stat config_stat;
81
82
	config_file = get_extra_conf_path("slurmsmwd.conf");
83
	if (stat(config_file, &config_stat) < 0)
84
		fatal("Can't stat slurmsmwd.conf %s: %m", config_file);
85
	tbl = s_p_hashtbl_create(slurmsmwd_options);
86
	if (s_p_parse_file(tbl, NULL, config_file, false) == SLURM_ERROR)
87
		fatal("Can't parse slurmsmwd.conf %s: %m", config_file);
88
89
	s_p_get_uint16(&slurmsmwd_cabinets_per_row, "CabinetsPerRow", tbl);
90
	s_p_get_string(&slurmsmwd_log_file, "LogFile", tbl);
91
	if (s_p_get_string(&temp_str, "DebugLevel", tbl)) {
92
		slurmsmwd_debug_level = log_string2num(temp_str);
93
		if (slurmsmwd_debug_level == NO_VAL16)
94
			fatal("Invalid DebugLevel %s", temp_str);
95
		xfree(temp_str);
96
	}
97
98
	_validate_config();
99
100
	s_p_hashtbl_destroy(tbl);
101
	xfree(config_file);
102
}
(-)a/contribs/cray/slurmsmwd/read_config.h (+55 lines)
Line 0 Link Here
1
/*****************************************************************************\
2
 *  read_config.h - Define symbols used to read configuration file for
3
 *  slurmsmwd
4
 *****************************************************************************
5
 *  Copyright (C) 2017 Regents of the University of California
6
 *  Written by Douglas Jacobsen <dmjacobsen@lbl.gov>
7
 *
8
 *  This file is part of SLURM, a resource management program.
9
 *  For details, see <https://slurm.schedmd.com>.
10
 *  Please also read the included file: DISCLAIMER.
11
 *
12
 *  SLURM is free software; you can redistribute it and/or modify it under
13
 *  the terms of the GNU General Public License as published by the Free
14
 *  Software Foundation; either version 2 of the License, or (at your option)
15
 *  any later version.
16
 *
17
 *  In addition, as a special exception, the copyright holders give permission
18
 *  to link the code of portions of this program with the OpenSSL library under
19
 *  certain conditions as described in each individual source file, and
20
 *  distribute linked combinations including the two. You must obey the GNU
21
 *  General Public License in all respects for all of the code used other than
22
 *  OpenSSL. If you modify file(s) with this exception, you may extend this
23
 *  exception to your version of the file(s), but you are not obligated to do
24
 *  so. If you do not wish to do so, delete this exception statement from your
25
 *  version.  If you delete this exception statement from all source files in
26
 *  the program, then also delete it here.
27
 *
28
 *  SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
29
 *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
30
 *  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
31
 *  details.
32
 *
33
 *  You should have received a copy of the GNU General Public License along
34
 *  with SLURM; if not, write to the Free Software Foundation, Inc.,
35
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA.
36
\*****************************************************************************/
37
38
#ifndef _HAVE_SLURMSMWD_READ_CONFIG_H
39
#define _HAVE_SLURMSMWD_READ_CONFIG_H
40
41
#include <inttypes.h>
42
#include <sys/types.h>
43
#include <unistd.h>
44
45
extern uint16_t slurmsmwd_cabinets_per_row;
46
extern uint16_t slurmsmwd_debug_level;
47
extern char *   slurmsmwd_log_file;
48
49
/* Configuration functions */
50
51
/* Load configuration file contents into global variables. */
52
extern void slurmsmwd_read_config(void);
53
extern void slurmsmwd_print_config(void);
54
55
#endif	/* _HAVE_SLURMSMWD_READ_CONFIG_H */
(-)a/contribs/cray/slurmsmwd/slurmsmwd.service.in (+13 lines)
Line 0 Link Here
1
[Unit]
2
Description=Cray SMW xtconsumer Slurm Helper daemon
3
After=network.target munge.service
4
ConditionPathExists=@sysconfdir@/slurmsmwd.conf
5
6
[Service]
7
Type=forking
8
ExecStart=@sbindir@/slurmsmwd
9
ExecReload=/bin/kill -HUP $MAINPID
10
PIDFile=/var/run/slurmsmwd.pid
11
12
[Install]
13
WantedBy=multi-user.target
(-)a/slurm.spec (+21 lines)
Lines 274-279 running on the node, or any user who has allocated resources on the node Link Here
274
according to the Slurm
274
according to the Slurm
275
%endif
275
%endif
276
276
277
%if %{with cray}
278
%package slurmsmwd
279
Summary: support daemons and software for the Cray SMW
280
Group: System Environment/Base
281
Requires: %{name}%{?_isa} = %{version}-%{release}
282
Obsoletes: craysmw
283
%description slurmsmwd
284
support daeamons and software for the Cray SMW.  Includes slurmsmwd which
285
notifies slurm about failed nodes.
286
%endif
287
277
#############################################################################
288
#############################################################################
278
289
279
%prep
290
%prep
Lines 328-341 install -D -m644 etc/slurmdbd.service %{buildroot}/%{_unitdir}/slurmdbd.service Link Here
328
   mkdir -p %{buildroot}/opt/modulefiles/slurm
339
   mkdir -p %{buildroot}/opt/modulefiles/slurm
329
   test -f contribs/cray/opt_modulefiles_slurm &&
340
   test -f contribs/cray/opt_modulefiles_slurm &&
330
      install -D -m644 contribs/cray/opt_modulefiles_slurm %{buildroot}/opt/modulefiles/slurm/%{version}-%{rel}
341
      install -D -m644 contribs/cray/opt_modulefiles_slurm %{buildroot}/opt/modulefiles/slurm/%{version}-%{rel}
342
   install -D -m644 contribs/cray/slurmsmwd/slurmsmwd.service %{buildroot}/%{_unitdir}/slurmsmwd.service
331
   echo -e '#%Module\nset ModulesVersion "%{version}-%{rel}"' > %{buildroot}/opt/modulefiles/slurm/.version
343
   echo -e '#%Module\nset ModulesVersion "%{version}-%{rel}"' > %{buildroot}/opt/modulefiles/slurm/.version
332
%else
344
%else
333
   rm -f contribs/cray/opt_modulefiles_slurm
345
   rm -f contribs/cray/opt_modulefiles_slurm
346
   rm -f contribs/cray/slurmsmwd/slurmsmwd.service
334
   rm -f %{buildroot}/%{_sysconfdir}/plugstack.conf.template
347
   rm -f %{buildroot}/%{_sysconfdir}/plugstack.conf.template
335
   rm -f %{buildroot}/%{_sysconfdir}/slurm.conf.template
348
   rm -f %{buildroot}/%{_sysconfdir}/slurm.conf.template
336
   rm -f %{buildroot}/%{_sbindir}/capmc_suspend
349
   rm -f %{buildroot}/%{_sbindir}/capmc_suspend
337
   rm -f %{buildroot}/%{_sbindir}/capmc_resume
350
   rm -f %{buildroot}/%{_sbindir}/capmc_resume
338
   rm -f %{buildroot}/%{_sbindir}/slurmconfgen.py
351
   rm -f %{buildroot}/%{_sbindir}/slurmconfgen.py
352
   rm -f %{buildroot}/%{_sbindir}/slurmsmwd
339
%endif
353
%endif
340
354
341
install -D -m644 etc/cgroup.conf.example %{buildroot}/%{_sysconfdir}/cgroup.conf.example
355
install -D -m644 etc/cgroup.conf.example %{buildroot}/%{_sysconfdir}/cgroup.conf.example
Lines 583-588 rm -rf %{buildroot} Link Here
583
%endif
597
%endif
584
#############################################################################
598
#############################################################################
585
599
600
%if %{with cray}
601
%files slurmsmwd
602
%{_sbindir}/slurmsmwd
603
%{_unitdir}/slurmsmwd.service
604
%endif
605
#############################################################################
606
586
%pre
607
%pre
587
608
588
%post
609
%post

Return to ticket 3318