diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 73999d6d62dbdf8153026435b93d2e7917249f6f..9971e9f88ec1728066865d2e332f0dd4449221d1 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -50,6 +50,7 @@ CONFIGURATION FILE CHANGES (see man appropriate man page for details) -- Removed "cpusets" option from TaskPluginParam. Please use task/cgroup. -- Removed MsgAggregationParams. -- Removed Layouts. + -- Remove switch/generic plugin. COMMAND CHANGES (see man pages for details) =========================================== diff --git a/configure b/configure index cc4547381eee0019bc9e39e46f49891a0df15069..b17c598eb532a5d7dfe93bd1afa8c5383ad50e34 100755 --- a/configure +++ b/configure @@ -25052,7 +25052,7 @@ $as_echo "${x_ac_deprecated=no}" >&6; } -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/nss_slurm/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/pmi/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/database/Makefile src/lua/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/slurmrestd/Makefile src/slurmrestd/plugins/Makefile src/slurmrestd/plugins/auth/Makefile src/slurmrestd/plugins/auth/jwt/Makefile src/slurmrestd/plugins/auth/local/Makefile src/slurmrestd/plugins/openapi/Makefile src/slurmrestd/plugins/openapi/v0.0.35/Makefile src/slurmrestd/plugins/openapi/v0.0.36/Makefile src/sprio/Makefile src/squeue/Makefile src/srun/Makefile src/srun/libsrun/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/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_aries/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_energy/rapl/Makefile src/plugins/acct_gather_energy/rsmi/Makefile src/plugins/acct_gather_energy/xcc/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/influxdb/Makefile src/plugins/acct_gather_profile/none/Makefile src/plugins/auth/Makefile src/plugins/auth/jwt/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/datawarp/Makefile src/plugins/burst_buffer/generic/Makefile src/plugins/cli_filter/Makefile src/plugins/cli_filter/common/Makefile src/plugins/cli_filter/lua/Makefile src/plugins/cli_filter/none/Makefile src/plugins/cli_filter/syslog/Makefile src/plugins/cli_filter/user_defaults/Makefile src/plugins/core_spec/Makefile src/plugins/core_spec/cray_aries/Makefile src/plugins/core_spec/none/Makefile src/plugins/cred/Makefile src/plugins/cred/munge/Makefile src/plugins/cred/none/Makefile src/plugins/ext_sensors/Makefile src/plugins/ext_sensors/rrd/Makefile src/plugins/ext_sensors/none/Makefile src/plugins/gpu/Makefile src/plugins/gpu/generic/Makefile src/plugins/gpu/nvml/Makefile src/plugins/gpu/rsmi/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/gres/mps/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/lua/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_aries/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/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_aries/Makefile src/plugins/power/none/Makefile src/plugins/preempt/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/prep/Makefile src/plugins/prep/script/Makefile src/plugins/proctrack/Makefile src/plugins/proctrack/cray_aries/Makefile src/plugins/proctrack/cgroup/Makefile src/plugins/proctrack/pgid/Makefile src/plugins/proctrack/linuxproc/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/cons_common/Makefile src/plugins/select/cons_res/Makefile src/plugins/select/cons_tres/Makefile src/plugins/select/cray_aries/Makefile src/plugins/select/linear/Makefile src/plugins/select/other/Makefile src/plugins/site_factor/Makefile src/plugins/site_factor/none/Makefile src/plugins/slurmctld/Makefile src/plugins/slurmctld/nonstop/Makefile src/plugins/switch/Makefile src/plugins/switch/cray_aries/Makefile src/plugins/switch/generic/Makefile src/plugins/switch/none/Makefile src/plugins/mpi/Makefile src/plugins/mpi/cray_shasta/Makefile src/plugins/mpi/none/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_aries/Makefile src/plugins/task/none/Makefile src/plugins/topology/Makefile src/plugins/topology/3d_torus/Makefile src/plugins/topology/hypercube/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 testsuite/slurm_unit/common/bitstring/Makefile" +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/nss_slurm/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/pmi/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/database/Makefile src/lua/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/slurmrestd/Makefile src/slurmrestd/plugins/Makefile src/slurmrestd/plugins/auth/Makefile src/slurmrestd/plugins/auth/jwt/Makefile src/slurmrestd/plugins/auth/local/Makefile src/slurmrestd/plugins/openapi/Makefile src/slurmrestd/plugins/openapi/v0.0.35/Makefile src/slurmrestd/plugins/openapi/v0.0.36/Makefile src/sprio/Makefile src/squeue/Makefile src/srun/Makefile src/srun/libsrun/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/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_aries/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_energy/rapl/Makefile src/plugins/acct_gather_energy/rsmi/Makefile src/plugins/acct_gather_energy/xcc/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/influxdb/Makefile src/plugins/acct_gather_profile/none/Makefile src/plugins/auth/Makefile src/plugins/auth/jwt/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/datawarp/Makefile src/plugins/burst_buffer/generic/Makefile src/plugins/cli_filter/Makefile src/plugins/cli_filter/common/Makefile src/plugins/cli_filter/lua/Makefile src/plugins/cli_filter/none/Makefile src/plugins/cli_filter/syslog/Makefile src/plugins/cli_filter/user_defaults/Makefile src/plugins/core_spec/Makefile src/plugins/core_spec/cray_aries/Makefile src/plugins/core_spec/none/Makefile src/plugins/cred/Makefile src/plugins/cred/munge/Makefile src/plugins/cred/none/Makefile src/plugins/ext_sensors/Makefile src/plugins/ext_sensors/rrd/Makefile src/plugins/ext_sensors/none/Makefile src/plugins/gpu/Makefile src/plugins/gpu/generic/Makefile src/plugins/gpu/nvml/Makefile src/plugins/gpu/rsmi/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/gres/mps/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/lua/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_aries/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/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_aries/Makefile src/plugins/power/none/Makefile src/plugins/preempt/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/prep/Makefile src/plugins/prep/script/Makefile src/plugins/proctrack/Makefile src/plugins/proctrack/cray_aries/Makefile src/plugins/proctrack/cgroup/Makefile src/plugins/proctrack/pgid/Makefile src/plugins/proctrack/linuxproc/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/cons_common/Makefile src/plugins/select/cons_res/Makefile src/plugins/select/cons_tres/Makefile src/plugins/select/cray_aries/Makefile src/plugins/select/linear/Makefile src/plugins/select/other/Makefile src/plugins/site_factor/Makefile src/plugins/site_factor/none/Makefile src/plugins/slurmctld/Makefile src/plugins/slurmctld/nonstop/Makefile src/plugins/switch/Makefile src/plugins/switch/cray_aries/Makefile src/plugins/switch/none/Makefile src/plugins/mpi/Makefile src/plugins/mpi/cray_shasta/Makefile src/plugins/mpi/none/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_aries/Makefile src/plugins/task/none/Makefile src/plugins/topology/Makefile src/plugins/topology/3d_torus/Makefile src/plugins/topology/hypercube/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 testsuite/slurm_unit/common/bitstring/Makefile" cat >confcache <<\_ACEOF @@ -26523,7 +26523,6 @@ do "src/plugins/slurmctld/nonstop/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/slurmctld/nonstop/Makefile" ;; "src/plugins/switch/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/switch/Makefile" ;; "src/plugins/switch/cray_aries/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/switch/cray_aries/Makefile" ;; - "src/plugins/switch/generic/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/switch/generic/Makefile" ;; "src/plugins/switch/none/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/switch/none/Makefile" ;; "src/plugins/mpi/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/mpi/Makefile" ;; "src/plugins/mpi/cray_shasta/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/mpi/cray_shasta/Makefile" ;; diff --git a/configure.ac b/configure.ac index 163c262a6a4845056c4228b556af5ed58dfd230c..66446baa6dad546e94a8743d36c1af9f8a920f9f 100644 --- a/configure.ac +++ b/configure.ac @@ -580,7 +580,6 @@ AC_CONFIG_FILES([Makefile src/plugins/slurmctld/nonstop/Makefile src/plugins/switch/Makefile src/plugins/switch/cray_aries/Makefile - src/plugins/switch/generic/Makefile src/plugins/switch/none/Makefile src/plugins/mpi/Makefile src/plugins/mpi/cray_shasta/Makefile diff --git a/src/plugins/switch/Makefile.am b/src/plugins/switch/Makefile.am index c58f51329dfe80680cea6e431d58fc8fe6d954fb..365f5b8d9332437ffbe34fefc54c4c7388e606cb 100644 --- a/src/plugins/switch/Makefile.am +++ b/src/plugins/switch/Makefile.am @@ -1,6 +1,6 @@ # Makefile for switch plugins -SUBDIRS = generic none +SUBDIRS = none if WITH_SWITCH_CRAY_ARIES SUBDIRS += cray_aries diff --git a/src/plugins/switch/Makefile.in b/src/plugins/switch/Makefile.in index 325e5d3d1dce102d6c4ca534d896f11a4104391b..69b728b688d8d1a6f0fb484e531f061c9efa0c8f 100644 --- a/src/plugins/switch/Makefile.in +++ b/src/plugins/switch/Makefile.in @@ -199,7 +199,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = generic none cray_aries +DIST_SUBDIRS = none cray_aries ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -455,7 +455,7 @@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = generic none $(am__append_1) +SUBDIRS = none $(am__append_1) all: all-recursive .SUFFIXES: diff --git a/src/plugins/switch/generic/Makefile.am b/src/plugins/switch/generic/Makefile.am deleted file mode 100644 index aa6d5dd4b72c224addf7f93254df31ac6ce71183..0000000000000000000000000000000000000000 --- a/src/plugins/switch/generic/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -# Makefile for switch/generic plugin - -AUTOMAKE_OPTIONS = foreign - -PLUGIN_FLAGS = -module -avoid-version --export-dynamic - -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common - -pkglib_LTLIBRARIES = switch_generic.la - -# Null switch plugin. -switch_generic_la_SOURCES = switch_generic.c -switch_generic_la_LDFLAGS = $(PLUGIN_FLAGS) diff --git a/src/plugins/switch/generic/Makefile.in b/src/plugins/switch/generic/Makefile.in deleted file mode 100644 index beb7fc748b5f2faad65d63035b23f27e3428f7be..0000000000000000000000000000000000000000 --- a/src/plugins/switch/generic/Makefile.in +++ /dev/null @@ -1,807 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Makefile for switch/generic plugin - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = src/plugins/switch/generic -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/auxdir/ax_check_compile_flag.m4 \ - $(top_srcdir)/auxdir/ax_check_zlib.m4 \ - $(top_srcdir)/auxdir/ax_gcc_builtin.m4 \ - $(top_srcdir)/auxdir/ax_lib_hdf5.m4 \ - $(top_srcdir)/auxdir/ax_pthread.m4 \ - $(top_srcdir)/auxdir/libtool.m4 \ - $(top_srcdir)/auxdir/ltoptions.m4 \ - $(top_srcdir)/auxdir/ltsugar.m4 \ - $(top_srcdir)/auxdir/ltversion.m4 \ - $(top_srcdir)/auxdir/lt~obsolete.m4 \ - $(top_srcdir)/auxdir/slurm.m4 \ - $(top_srcdir)/auxdir/slurmrestd.m4 \ - $(top_srcdir)/auxdir/x_ac_affinity.m4 \ - $(top_srcdir)/auxdir/x_ac_c99.m4 \ - $(top_srcdir)/auxdir/x_ac_cgroup.m4 \ - $(top_srcdir)/auxdir/x_ac_cray.m4 \ - $(top_srcdir)/auxdir/x_ac_curl.m4 \ - $(top_srcdir)/auxdir/x_ac_databases.m4 \ - $(top_srcdir)/auxdir/x_ac_debug.m4 \ - $(top_srcdir)/auxdir/x_ac_deprecated.m4 \ - $(top_srcdir)/auxdir/x_ac_dlfcn.m4 \ - $(top_srcdir)/auxdir/x_ac_env.m4 \ - $(top_srcdir)/auxdir/x_ac_freeipmi.m4 \ - $(top_srcdir)/auxdir/x_ac_http_parser.m4 \ - $(top_srcdir)/auxdir/x_ac_hwloc.m4 \ - $(top_srcdir)/auxdir/x_ac_json.m4 \ - $(top_srcdir)/auxdir/x_ac_jwt.m4 \ - $(top_srcdir)/auxdir/x_ac_lua.m4 \ - $(top_srcdir)/auxdir/x_ac_lz4.m4 \ - $(top_srcdir)/auxdir/x_ac_man2html.m4 \ - $(top_srcdir)/auxdir/x_ac_munge.m4 \ - $(top_srcdir)/auxdir/x_ac_netloc.m4 \ - $(top_srcdir)/auxdir/x_ac_nvml.m4 \ - $(top_srcdir)/auxdir/x_ac_ofed.m4 \ - $(top_srcdir)/auxdir/x_ac_pam.m4 \ - $(top_srcdir)/auxdir/x_ac_pmix.m4 \ - $(top_srcdir)/auxdir/x_ac_printf_null.m4 \ - $(top_srcdir)/auxdir/x_ac_ptrace.m4 \ - $(top_srcdir)/auxdir/x_ac_readline.m4 \ - $(top_srcdir)/auxdir/x_ac_rrdtool.m4 \ - $(top_srcdir)/auxdir/x_ac_rsmi.m4 \ - $(top_srcdir)/auxdir/x_ac_setproctitle.m4 \ - $(top_srcdir)/auxdir/x_ac_systemd.m4 \ - $(top_srcdir)/auxdir/x_ac_ucx.m4 \ - $(top_srcdir)/auxdir/x_ac_uid_gid_size.m4 \ - $(top_srcdir)/auxdir/x_ac_x11.m4 \ - $(top_srcdir)/auxdir/x_ac_yaml.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/slurm/slurm.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(pkglibdir)" -LTLIBRARIES = $(pkglib_LTLIBRARIES) -switch_generic_la_LIBADD = -am_switch_generic_la_OBJECTS = switch_generic.lo -switch_generic_la_OBJECTS = $(am_switch_generic_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -switch_generic_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(switch_generic_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/slurm -depcomp = $(SHELL) $(top_srcdir)/auxdir/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/switch_generic.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(switch_generic_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AR_FLAGS = @AR_FLAGS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRAY_JOB_CPPFLAGS = @CRAY_JOB_CPPFLAGS@ -CRAY_JOB_LDFLAGS = @CRAY_JOB_LDFLAGS@ -CRAY_SELECT_CPPFLAGS = @CRAY_SELECT_CPPFLAGS@ -CRAY_SELECT_LDFLAGS = @CRAY_SELECT_LDFLAGS@ -CRAY_SWITCH_CPPFLAGS = @CRAY_SWITCH_CPPFLAGS@ -CRAY_SWITCH_LDFLAGS = @CRAY_SWITCH_LDFLAGS@ -CRAY_TASK_CPPFLAGS = @CRAY_TASK_CPPFLAGS@ -CRAY_TASK_LDFLAGS = @CRAY_TASK_LDFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATAWARP_CPPFLAGS = @DATAWARP_CPPFLAGS@ -DATAWARP_LDFLAGS = @DATAWARP_LDFLAGS@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DL_LIBS = @DL_LIBS@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -FREEIPMI_CPPFLAGS = @FREEIPMI_CPPFLAGS@ -FREEIPMI_LDFLAGS = @FREEIPMI_LDFLAGS@ -FREEIPMI_LIBS = @FREEIPMI_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -H5CC = @H5CC@ -H5FC = @H5FC@ -HAVEMYSQLCONFIG = @HAVEMYSQLCONFIG@ -HAVE_MAN2HTML = @HAVE_MAN2HTML@ -HDF5_CC = @HDF5_CC@ -HDF5_CFLAGS = @HDF5_CFLAGS@ -HDF5_CPPFLAGS = @HDF5_CPPFLAGS@ -HDF5_FC = @HDF5_FC@ -HDF5_FFLAGS = @HDF5_FFLAGS@ -HDF5_FLIBS = @HDF5_FLIBS@ -HDF5_LDFLAGS = @HDF5_LDFLAGS@ -HDF5_LIBS = @HDF5_LIBS@ -HDF5_TYPE = @HDF5_TYPE@ -HDF5_VERSION = @HDF5_VERSION@ -HTTP_PARSER_CPPFLAGS = @HTTP_PARSER_CPPFLAGS@ -HTTP_PARSER_LDFLAGS = @HTTP_PARSER_LDFLAGS@ -HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ -HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ -HWLOC_LIBS = @HWLOC_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -JSON_CPPFLAGS = @JSON_CPPFLAGS@ -JSON_LDFLAGS = @JSON_LDFLAGS@ -JWT_CPPFLAGS = @JWT_CPPFLAGS@ -JWT_LDFLAGS = @JWT_LDFLAGS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBCURL = @LIBCURL@ -LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIB_SLURM = @LIB_SLURM@ -LIB_SLURM_BUILD = @LIB_SLURM_BUILD@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -LZ4_CPPFLAGS = @LZ4_CPPFLAGS@ -LZ4_LDFLAGS = @LZ4_LDFLAGS@ -LZ4_LIBS = @LZ4_LIBS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MUNGE_CPPFLAGS = @MUNGE_CPPFLAGS@ -MUNGE_DIR = @MUNGE_DIR@ -MUNGE_LDFLAGS = @MUNGE_LDFLAGS@ -MUNGE_LIBS = @MUNGE_LIBS@ -MYSQL_CFLAGS = @MYSQL_CFLAGS@ -MYSQL_LIBS = @MYSQL_LIBS@ -NETLOC_CPPFLAGS = @NETLOC_CPPFLAGS@ -NETLOC_LDFLAGS = @NETLOC_LDFLAGS@ -NETLOC_LIBS = @NETLOC_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NUMA_LIBS = @NUMA_LIBS@ -NVML_CPPFLAGS = @NVML_CPPFLAGS@ -NVML_LIBS = @NVML_LIBS@ -OBJCOPY = @OBJCOPY@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OFED_CPPFLAGS = @OFED_CPPFLAGS@ -OFED_LDFLAGS = @OFED_LDFLAGS@ -OFED_LIBS = @OFED_LIBS@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PAM_DIR = @PAM_DIR@ -PAM_LIBS = @PAM_LIBS@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PMIX_V1_CPPFLAGS = @PMIX_V1_CPPFLAGS@ -PMIX_V1_LDFLAGS = @PMIX_V1_LDFLAGS@ -PMIX_V2_CPPFLAGS = @PMIX_V2_CPPFLAGS@ -PMIX_V2_LDFLAGS = @PMIX_V2_LDFLAGS@ -PMIX_V3_CPPFLAGS = @PMIX_V3_CPPFLAGS@ -PMIX_V3_LDFLAGS = @PMIX_V3_LDFLAGS@ -PMIX_V4_CPPFLAGS = @PMIX_V4_CPPFLAGS@ -PMIX_V4_LDFLAGS = @PMIX_V4_LDFLAGS@ -PROJECT = @PROJECT@ -PTHREAD_CC = @PTHREAD_CC@ -PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ -PTHREAD_LIBS = @PTHREAD_LIBS@ -RANLIB = @RANLIB@ -READLINE_LIBS = @READLINE_LIBS@ -RELEASE = @RELEASE@ -RRDTOOL_CPPFLAGS = @RRDTOOL_CPPFLAGS@ -RRDTOOL_LDFLAGS = @RRDTOOL_LDFLAGS@ -RRDTOOL_LIBS = @RRDTOOL_LIBS@ -RSMI_CPPFLAGS = @RSMI_CPPFLAGS@ -RSMI_LDFLAGS = @RSMI_LDFLAGS@ -RSMI_LIBS = @RSMI_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SLEEP_CMD = @SLEEP_CMD@ -SLURMCTLD_PORT = @SLURMCTLD_PORT@ -SLURMCTLD_PORT_COUNT = @SLURMCTLD_PORT_COUNT@ -SLURMDBD_PORT = @SLURMDBD_PORT@ -SLURMD_PORT = @SLURMD_PORT@ -SLURMRESTD_PORT = @SLURMRESTD_PORT@ -SLURM_API_AGE = @SLURM_API_AGE@ -SLURM_API_CURRENT = @SLURM_API_CURRENT@ -SLURM_API_MAJOR = @SLURM_API_MAJOR@ -SLURM_API_REVISION = @SLURM_API_REVISION@ -SLURM_API_VERSION = @SLURM_API_VERSION@ -SLURM_MAJOR = @SLURM_MAJOR@ -SLURM_MICRO = @SLURM_MICRO@ -SLURM_MINOR = @SLURM_MINOR@ -SLURM_PREFIX = @SLURM_PREFIX@ -SLURM_VERSION_NUMBER = @SLURM_VERSION_NUMBER@ -SLURM_VERSION_STRING = @SLURM_VERSION_STRING@ -STRIP = @STRIP@ -SUCMD = @SUCMD@ -SYSTEMD_TASKSMAX_OPTION = @SYSTEMD_TASKSMAX_OPTION@ -UCX_CPPFLAGS = @UCX_CPPFLAGS@ -UCX_LDFLAGS = @UCX_LDFLAGS@ -UCX_LIBS = @UCX_LIBS@ -UTIL_LIBS = @UTIL_LIBS@ -VERSION = @VERSION@ -YAML_CPPFLAGS = @YAML_CPPFLAGS@ -YAML_LDFLAGS = @YAML_LDFLAGS@ -ZLIB_CPPFLAGS = @ZLIB_CPPFLAGS@ -ZLIB_LDFLAGS = @ZLIB_LDFLAGS@ -ZLIB_LIBS = @ZLIB_LIBS@ -_libcurl_config = @_libcurl_config@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_have_man2html = @ac_have_man2html@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -ax_pthread_config = @ax_pthread_config@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lua_CFLAGS = @lua_CFLAGS@ -lua_LIBS = @lua_LIBS@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -runstatedir = @runstatedir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = foreign -PLUGIN_FLAGS = -module -avoid-version --export-dynamic -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common -pkglib_LTLIBRARIES = switch_generic.la - -# Null switch plugin. -switch_generic_la_SOURCES = switch_generic.c -switch_generic_la_LDFLAGS = $(PLUGIN_FLAGS) -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/plugins/switch/generic/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/plugins/switch/generic/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ - } - -uninstall-pkglibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ - done - -clean-pkglibLTLIBRARIES: - -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) - @list='$(pkglib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -switch_generic.la: $(switch_generic_la_OBJECTS) $(switch_generic_la_DEPENDENCIES) $(EXTRA_switch_generic_la_DEPENDENCIES) - $(AM_V_CCLD)$(switch_generic_la_LINK) -rpath $(pkglibdir) $(switch_generic_la_OBJECTS) $(switch_generic_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switch_generic.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: - for dir in "$(DESTDIR)$(pkglibdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/switch_generic.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-pkglibLTLIBRARIES - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/switch_generic.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-pkglibLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libtool clean-pkglibLTLIBRARIES \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-pkglibLTLIBRARIES install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-pkglibLTLIBRARIES - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/src/plugins/switch/generic/switch_generic.c b/src/plugins/switch/generic/switch_generic.c deleted file mode 100644 index 6e67aac9becd30db15e722243664e087d35ce460..0000000000000000000000000000000000000000 --- a/src/plugins/switch/generic/switch_generic.c +++ /dev/null @@ -1,960 +0,0 @@ -/*****************************************************************************\ - * switch_generic.c - Library for managing a generic switch resources. - * Can be used to optimize network communications for - * parallel jobs. - ***************************************************************************** - * Copyright (C) 2013 SchedMD LLC - * Written by Morris Jette <jette@schedmd.com> - * - * This file is part of Slurm, a resource management program. - * For details, see <https://slurm.schedmd.com/>. - * Please also read the included file: DISCLAIMER. - * - * Slurm is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * In addition, as a special exception, the copyright holders give permission - * to link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. You must obey the GNU - * General Public License in all respects for all of the code used other than - * OpenSSL. If you modify file(s) with this exception, you may extend this - * exception to your version of the file(s), but you are not obligated to do - * so. If you do not wish to do so, delete this exception statement from your - * version. If you delete this exception statement from all source files in - * the program, then also delete it here. - * - * Slurm is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along - * with Slurm; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -\*****************************************************************************/ - -#include <arpa/inet.h> -#include <ifaddrs.h> -#include <netdb.h> -#include <netinet/in.h> -#include <signal.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -#include <sys/socket.h> - -/* net/if.h must come after sys/types.h on NetBSD */ -#if !defined(__FreeBSD__) -#include <net/if.h> -#endif - -#include "slurm/slurm_errno.h" -#include "src/common/slurm_xlator.h" -#include "src/common/xmalloc.h" - -#define SW_GEN_HASH_MAX 1000 -#define SW_GEN_LIBSTATE_MAGIC 0x3b287d0c -#define SW_GEN_NODE_INFO_MAGIC 0x3b38ac0c -#define SW_GEN_STEP_INFO_MAGIC 0x58ae93cb - -/* Change GEN_STATE_VERSION value when changing the state save format */ -#define GEN_STATE_VERSION "NRT001" - -typedef struct sw_gen_ifa { - char *ifa_name; /* "eth0", "ib1", etc. */ - char *ifa_family; /* "AF_INET" or "AF_INET6" */ - char *ifa_addr; /* output from inet_ntop */ -} sw_gen_ifa_t; -typedef struct sw_gen_node_info { - uint32_t magic; - uint16_t ifa_cnt; - sw_gen_ifa_t **ifa_array; - char *node_name; - struct sw_gen_node_info *next; /* used for hash table */ -} sw_gen_node_info_t; - -typedef struct sw_gen_node { - char *node_name; - uint16_t ifa_cnt; - sw_gen_ifa_t **ifa_array; -} sw_gen_node_t; -typedef struct sw_gen_step_info { - uint32_t magic; - uint32_t node_cnt; - sw_gen_node_t **node_array; -} sw_gen_step_info_t; - -typedef struct sw_gen_libstate { - uint32_t magic; - uint32_t node_count; - uint32_t hash_max; - sw_gen_node_info_t **hash_table; -} sw_gen_libstate_t; - -/* - * These variables are required by the generic plugin interface. If they - * are not found in the plugin, the plugin loader will ignore it. - * - * plugin_name - a string giving a human-readable description of the - * plugin. There is no maximum length, but the symbol must refer to - * a valid string. - * - * plugin_type - a string suggesting the type of the plugin or its - * applicability to a particular form of data or method of data handling. - * If the low-level plugin API is used, the contents of this string are - * unimportant and may be anything. Slurm uses the higher-level plugin - * interface which requires this string to be of the form - * - * <application>/<method> - * - * where <application> is a description of the intended application of - * the plugin (e.g., "switch" for Slurm switch) and <method> is a description - * of how this plugin satisfies that application. Slurm will only load - * a switch plugin if the plugin_type string has a prefix of "switch/". - * - * plugin_version - an unsigned 32-bit integer containing the Slurm version - * (major.minor.micro combined into a single number). - */ -const char plugin_name[] = "switch generic plugin"; -const char plugin_type[] = "switch/generic"; -const uint32_t plugin_version = SLURM_VERSION_NUMBER; -const uint32_t plugin_id = SWITCH_PLUGIN_GENERIC; - -pthread_mutex_t global_lock = PTHREAD_MUTEX_INITIALIZER; -sw_gen_libstate_t *libstate = NULL; - -extern int switch_p_free_node_info(switch_node_info_t **switch_node); -extern int switch_p_alloc_node_info(switch_node_info_t **switch_node); - -static void -_alloc_libstate(void) -{ - xassert(!libstate); - - libstate = xmalloc(sizeof(sw_gen_libstate_t)); - libstate->magic = SW_GEN_LIBSTATE_MAGIC; - libstate->node_count = 0; - libstate->hash_max = SW_GEN_HASH_MAX; - libstate->hash_table = xcalloc(libstate->hash_max, - sizeof(sw_gen_node_info_t *)); -} - -static void -_free_libstate(void) -{ - sw_gen_node_info_t *node_ptr, *next_node_ptr; - int i; - - if (!libstate) - return; - xassert(libstate->magic == SW_GEN_LIBSTATE_MAGIC); - for (i = 0; i < libstate->hash_max; i++) { - node_ptr = libstate->hash_table[i]; - while (node_ptr) { - next_node_ptr = node_ptr->next; - (void) switch_p_free_node_info((switch_node_info_t **) - &node_ptr); - node_ptr = next_node_ptr; - } - } - libstate->magic = 0; - xfree(libstate->hash_table); - xfree(libstate); -} - -/* The idea behind keeping the hash table was to avoid a linear - * search of the node list each time we want to retrieve or - * modify a node's data. The _hash_index function translates - * a node name to an index into the hash table. - * - * Used by: slurmctld - */ -static int -_hash_index(char *name) -{ - int index = 0; - int j; - - xassert(name); - - /* Multiply each character by its numerical position in the - * name string to add a bit of entropy, because host names such - * as cluster[0001-1000] can cause excessive index collisions. - */ - for (j = 1; *name; name++, j++) - index += (int)*name * j; - index %= libstate->hash_max; - - return index; -} - -/* Tries to find a node fast using the hash table - * - * Used by: slurmctld - */ -static sw_gen_node_info_t * -_find_node(char *node_name) -{ - int i; - sw_gen_node_info_t *n; - node_record_t *node_ptr; - - if (node_name == NULL) { - error("%s: _find_node node name is NULL", plugin_type); - return NULL; - } - if (libstate->node_count == 0) - return NULL; - xassert(libstate->magic == SW_GEN_LIBSTATE_MAGIC); - if (libstate->hash_table) { - i = _hash_index(node_name); - n = libstate->hash_table[i]; - while (n) { - xassert(n->magic == SW_GEN_NODE_INFO_MAGIC); - if (!xstrcmp(n->node_name, node_name)) - return n; - n = n->next; - } - } - - /* This code is only needed if NodeName and NodeHostName differ */ - node_ptr = find_node_record(node_name); - if (node_ptr && libstate->hash_table) { - i = _hash_index(node_ptr->node_hostname); - n = libstate->hash_table[i]; - while (n) { - xassert(n->magic == SW_GEN_NODE_INFO_MAGIC); - if (!xstrcmp(n->node_name, node_name)) - return n; - n = n->next; - } - } - - return NULL; -} - -/* Add the hash entry for a newly created node record */ -static void -_hash_add_nodeinfo(sw_gen_node_info_t *new_node_info) -{ - int index; - - xassert(libstate); - xassert(libstate->hash_table); - xassert(libstate->hash_max >= libstate->node_count); - xassert(libstate->magic == SW_GEN_LIBSTATE_MAGIC); - if (!new_node_info->node_name || !new_node_info->node_name[0]) - return; - index = _hash_index(new_node_info->node_name); - new_node_info->next = libstate->hash_table[index]; - libstate->hash_table[index] = new_node_info; - libstate->node_count++; -} - -/* Add the new node information to our libstate cache, making a copy if - * information is new. Otherwise, swap the data and return to the user old - * data, which is fine in this case since it is only deleted by slurmctld */ -static void _cache_node_info(sw_gen_node_info_t *new_node_info) -{ - sw_gen_node_info_t *old_node_info; - uint16_t ifa_cnt; - sw_gen_ifa_t **ifa_array; - struct sw_gen_node_info *next; - bool new_alloc; /* True if this is new node to be added to cache */ - - slurm_mutex_lock(&global_lock); - old_node_info = _find_node(new_node_info->node_name); - new_alloc = (old_node_info == NULL); - if (new_alloc) { - (void) switch_p_alloc_node_info((switch_node_info_t **) - &old_node_info); - old_node_info->node_name = xstrdup(new_node_info->node_name); - } - - /* Swap contents */ - ifa_cnt = old_node_info->ifa_cnt; - ifa_array = old_node_info->ifa_array; - next = old_node_info->next; - old_node_info->ifa_cnt = new_node_info->ifa_cnt; - old_node_info->ifa_array = new_node_info->ifa_array; - old_node_info->next = new_node_info->next; - new_node_info->ifa_cnt = ifa_cnt; - new_node_info->ifa_array = ifa_array; - new_node_info->next = next; - - if (new_alloc) - _hash_add_nodeinfo(old_node_info); - slurm_mutex_unlock(&global_lock); -} - -/* - * init() is called when the plugin is loaded, before any other functions - * are called. Put global initialization here. - */ -int init(void) -{ - debug("%s loaded", plugin_name); - return SLURM_SUCCESS; -} - -int fini(void) -{ - slurm_mutex_lock(&global_lock); - _free_libstate(); - slurm_mutex_unlock(&global_lock); - return SLURM_SUCCESS; -} - -extern int switch_p_reconfig(void) -{ - return SLURM_SUCCESS; -} - -/* - * switch functions for global state save/restore - */ -int switch_p_libstate_save(char * dir_name) -{ - log_flag(SWITCH, "%s() starting", __func__); - /* No state saved or restored for this plugin */ - return SLURM_SUCCESS; -} - -int switch_p_libstate_restore(char * dir_name, bool recover) -{ - log_flag(SWITCH, "%s() starting", __func__); - /* No state saved or restored for this plugin, just initialize */ - slurm_mutex_lock(&global_lock); - _alloc_libstate(); - slurm_mutex_unlock(&global_lock); - - return SLURM_SUCCESS; -} - -int switch_p_libstate_clear(void) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -/* - * switch functions for job step specific credential - */ -int switch_p_alloc_jobinfo(switch_jobinfo_t **switch_job, - uint32_t job_id, uint32_t step_id) -{ - sw_gen_step_info_t *gen_step_info; - - log_flag(SWITCH, "%s() starting", __func__); - xassert(switch_job); - gen_step_info = xmalloc(sizeof(sw_gen_step_info_t)); - gen_step_info->magic = SW_GEN_STEP_INFO_MAGIC; - *switch_job = (switch_jobinfo_t *) gen_step_info; - - return SLURM_SUCCESS; -} - -int switch_p_build_jobinfo(switch_jobinfo_t *switch_job, - slurm_step_layout_t *step_layout, char *network) -{ - sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job; - sw_gen_node_info_t *gen_node_info; - sw_gen_node_t *node_ptr; - hostlist_t hl = NULL; - hostlist_iterator_t hi; - char *host = NULL; - int i, j; - - log_flag(SWITCH, "%s() starting", __func__); - xassert(gen_step_info); - xassert(gen_step_info->magic == SW_GEN_STEP_INFO_MAGIC); - hl = hostlist_create(step_layout->node_list); - if (!hl) - fatal("hostlist_create(%s): %m", step_layout->node_list); - gen_step_info->node_cnt = hostlist_count(hl); - gen_step_info->node_array = xcalloc(gen_step_info->node_cnt, - sizeof(sw_gen_node_t *)); - hi = hostlist_iterator_create(hl); - for (i = 0; (host = hostlist_next(hi)); i++) { - node_ptr = xmalloc(sizeof(sw_gen_node_t)); - gen_step_info->node_array[i] = node_ptr; - node_ptr->node_name = xstrdup(host); - gen_node_info = _find_node(host); - if (gen_node_info) { /* Copy node info to this step */ - node_ptr->ifa_cnt = gen_node_info->ifa_cnt; - node_ptr->ifa_array = xcalloc(node_ptr->ifa_cnt, - sizeof(sw_gen_node_t *)); - for (j = 0; j < node_ptr->ifa_cnt; j++) { - node_ptr->ifa_array[j] = - xmalloc(sizeof(sw_gen_node_t)); - node_ptr->ifa_array[j]->ifa_addr = xstrdup( - gen_node_info->ifa_array[j]->ifa_addr); - node_ptr->ifa_array[j]->ifa_family = xstrdup( - gen_node_info->ifa_array[j]->ifa_family); - node_ptr->ifa_array[j]->ifa_name = xstrdup( - gen_node_info->ifa_array[j]->ifa_name); - } - } - free(host); - } - hostlist_iterator_destroy(hi); - hostlist_destroy(hl); - - return SLURM_SUCCESS; -} - -int switch_p_duplicate_jobinfo(switch_jobinfo_t *source, - switch_jobinfo_t **dest) -{ - sw_gen_step_info_t *gen_step_info; - - log_flag(SWITCH, "%s() starting", __func__); - /* FIXME: If this is ever needed please flesh this out! */ - - xassert(source); - switch_p_alloc_jobinfo((switch_jobinfo_t **)&gen_step_info, - NO_VAL, NO_VAL); - *dest = (switch_jobinfo_t *) gen_step_info; - - return SLURM_SUCCESS; -} - -void switch_p_free_jobinfo(switch_jobinfo_t *switch_job) -{ - sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job; - sw_gen_node_t *node_ptr; - sw_gen_ifa_t *ifa_ptr; - int i, j; - - log_flag(SWITCH, "%s() starting", __func__); - xassert(gen_step_info); - xassert(gen_step_info->magic == SW_GEN_STEP_INFO_MAGIC); - for (i = 0; i < gen_step_info->node_cnt; i++) { - node_ptr = gen_step_info->node_array[i]; - xfree(node_ptr->node_name); - for (j = 0; j < node_ptr->ifa_cnt; j++) { - ifa_ptr = node_ptr->ifa_array[j]; - xfree(ifa_ptr->ifa_addr); - xfree(ifa_ptr->ifa_family); - xfree(ifa_ptr->ifa_name); - xfree(ifa_ptr); - } - xfree(node_ptr); - } - xfree(gen_step_info->node_array); - xfree(gen_step_info); - - return; -} - -int switch_p_pack_jobinfo(switch_jobinfo_t *switch_job, Buf buffer, - uint16_t protocol_version) -{ - sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job; - sw_gen_node_t *node_ptr; - sw_gen_ifa_t *ifa_ptr; - int i, j; - - log_flag(SWITCH, "%s() starting", __func__); - xassert(gen_step_info); - xassert(gen_step_info->magic == SW_GEN_STEP_INFO_MAGIC); - - pack32(gen_step_info->node_cnt, buffer); - for (i = 0; i < gen_step_info->node_cnt; i++) { - node_ptr = gen_step_info->node_array[i]; - packstr(node_ptr->node_name, buffer); - pack16(node_ptr->ifa_cnt, buffer); - for (j = 0; j < node_ptr->ifa_cnt; j++) { - ifa_ptr = node_ptr->ifa_array[j]; - log_flag(SWITCH, "node=%s name=%s family=%s addr=%s", - node_ptr->node_name, ifa_ptr->ifa_name, - ifa_ptr->ifa_family, ifa_ptr->ifa_addr); - packstr(ifa_ptr->ifa_addr, buffer); - packstr(ifa_ptr->ifa_family, buffer); - packstr(ifa_ptr->ifa_name, buffer); - } - } - - return SLURM_SUCCESS; -} - -int switch_p_unpack_jobinfo(switch_jobinfo_t **switch_job, Buf buffer, - uint16_t protocol_version) -{ - sw_gen_step_info_t *gen_step_info; - sw_gen_node_t *node_ptr; - sw_gen_ifa_t *ifa_ptr; - uint32_t uint32_tmp; - int i, j; - - switch_p_alloc_jobinfo(switch_job, 0, 0); - gen_step_info = (sw_gen_step_info_t *) *switch_job; - - log_flag(SWITCH, "%s() starting", __func__); - safe_unpack32(&gen_step_info->node_cnt, buffer); - safe_xcalloc(gen_step_info->node_array, gen_step_info->node_cnt, - sizeof(sw_gen_node_t *)); - for (i = 0; i < gen_step_info->node_cnt; i++) { - node_ptr = xmalloc(sizeof(sw_gen_node_t)); - gen_step_info->node_array[i] = node_ptr; - safe_unpackstr_xmalloc(&node_ptr->node_name, &uint32_tmp, - buffer); - safe_unpack16(&node_ptr->ifa_cnt, buffer); - safe_xcalloc(node_ptr->ifa_array, node_ptr->ifa_cnt, - sizeof(sw_gen_ifa_t *)); - for (j = 0; j < node_ptr->ifa_cnt; j++) { - ifa_ptr = xmalloc(sizeof(sw_gen_ifa_t)); - node_ptr->ifa_array[j] = ifa_ptr; - safe_unpackstr_xmalloc(&ifa_ptr->ifa_addr, &uint32_tmp, - buffer); - safe_unpackstr_xmalloc(&ifa_ptr->ifa_family, - &uint32_tmp, buffer); - safe_unpackstr_xmalloc(&ifa_ptr->ifa_name, &uint32_tmp, - buffer); - log_flag(SWITCH, "node=%s name=%s family=%s addr=%s", - node_ptr->node_name, ifa_ptr->ifa_name, - ifa_ptr->ifa_family, ifa_ptr->ifa_addr); - } - } - - return SLURM_SUCCESS; - -unpack_error: - - switch_p_free_jobinfo((switch_jobinfo_t *)gen_step_info); - *switch_job = NULL; - - return SLURM_ERROR; -} - -void switch_p_print_jobinfo(FILE *fp, switch_jobinfo_t *jobinfo) -{ - log_flag(SWITCH, "%s() starting", __func__); - return; -} - -char *switch_p_sprint_jobinfo(switch_jobinfo_t *switch_jobinfo, char *buf, - size_t size) -{ - log_flag(SWITCH, "%s() starting", __func__); - if ((buf != NULL) && size) { - buf[0] = '\0'; - return buf; - } - return NULL; -} - -/* - * switch functions for job initiation - */ -int switch_p_node_init(void) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -int switch_p_node_fini(void) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -int switch_p_job_preinit(switch_jobinfo_t *switch_job) -{ - sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job; - sw_gen_node_t *node_ptr; - sw_gen_ifa_t *ifa_ptr; - int i, j; - - if (slurm_conf.debug_flags & DEBUG_FLAG_SWITCH) { - info("switch_p_job_preinit() starting"); - - for (i = 0; i < gen_step_info->node_cnt; i++) { - node_ptr = gen_step_info->node_array[i]; - for (j = 0; j < node_ptr->ifa_cnt; j++) { - ifa_ptr = node_ptr->ifa_array[j]; - info("node=%s name=%s family=%s addr=%s", - node_ptr->node_name, ifa_ptr->ifa_name, - ifa_ptr->ifa_family, ifa_ptr->ifa_addr); - } - } - } - - return SLURM_SUCCESS; -} - -extern int switch_p_job_init(stepd_step_rec_t *job) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_job_suspend_test(switch_jobinfo_t *jobinfo) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern void switch_p_job_suspend_info_get(switch_jobinfo_t *jobinfo, - void **suspend_info) -{ - log_flag(SWITCH, "%s() starting", __func__); - return; -} - -extern void switch_p_job_suspend_info_pack(void *suspend_info, Buf buffer, - uint16_t protocol_version) -{ - log_flag(SWITCH, "%s() starting", __func__); - return; -} - -extern int switch_p_job_suspend_info_unpack(void **suspend_info, Buf buffer, - uint16_t protocol_version) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern void switch_p_job_suspend_info_free(void *suspend_info) -{ - log_flag(SWITCH, "%s() starting", __func__); - return; -} - -extern int switch_p_job_suspend(void *suspend_info, int max_wait) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_job_resume(void *suspend_info, int max_wait) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -int switch_p_job_fini(switch_jobinfo_t *jobinfo) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -int switch_p_job_postfini(stepd_step_rec_t *job) -{ - uid_t pgid = job->jmgr_pid; - log_flag(SWITCH, "%s() starting", __func__); - /* - * Kill all processes in the job's session - */ - if (pgid) { - debug2("Sending SIGKILL to pgid %lu", - (unsigned long) pgid); - kill(-pgid, SIGKILL); - } else - debug("%ps: Bad pid valud %lu", &job->step_id, - (unsigned long) pgid); - - return SLURM_SUCCESS; -} - -int switch_p_job_attach(switch_jobinfo_t *jobinfo, char ***env, - uint32_t nodeid, uint32_t procid, uint32_t nnodes, - uint32_t nprocs, uint32_t rank) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -/* - * Allocates network information in resulting_data with xmalloc - * String result of format : (nodename,(iface,IP_V{4,6},address)*) - */ -extern int switch_p_get_jobinfo(switch_jobinfo_t *switch_job, - int key, void *resulting_data) -{ - int node_id = key; - sw_gen_step_info_t *stepinfo = (sw_gen_step_info_t*) switch_job; - sw_gen_node_t *node_ptr = stepinfo->node_array[node_id]; - sw_gen_ifa_t *ifa_ptr; - int i, s; - int bufsize = 1024; - char *buf; - -#if defined(__FreeBSD__) -#define IFNAMSIZ 16 -#endif - int triplet_len_max = IFNAMSIZ + INET6_ADDRSTRLEN + 5 + 5 + 1; - - log_flag(SWITCH, "%s() starting", __func__); - - if (!resulting_data) { - error("no pointer for resulting_data"); - return SLURM_ERROR; - } - - *(char **) resulting_data = NULL; - - if (node_id < 0 || node_id >= stepinfo->node_cnt) { - error("node_id out of range"); - return SLURM_ERROR; - } - - buf = xmalloc(bufsize); - s = snprintf(buf, bufsize, "(%s", node_ptr->node_name); - /* appends in buf triplets (ifname,ipversion,address) */ - for (i = 0; i < node_ptr->ifa_cnt; i++) { - ifa_ptr = node_ptr->ifa_array[i]; - if (s + triplet_len_max > bufsize) { - bufsize *= 2; - xrealloc(buf, bufsize); - } - s += snprintf(buf+s, bufsize-s, ",(%s,%s,%s)", - ifa_ptr->ifa_name, ifa_ptr->ifa_family, - ifa_ptr->ifa_addr); - } - snprintf(buf+s, bufsize-s, ")"); - - *(char **)resulting_data = buf; /* return x-alloc'ed data */ - - return SLURM_SUCCESS; -} - -/* - * node switch state monitoring functions - * required for IBM Federation switch - */ -extern int switch_p_clear_node_state(void) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_alloc_node_info(switch_node_info_t **switch_node) -{ - sw_gen_node_info_t *gen_node_info; - - log_flag(SWITCH, "%s() starting", __func__); - xassert(switch_node); - gen_node_info = xmalloc(sizeof(sw_gen_node_info_t)); - gen_node_info->magic = SW_GEN_NODE_INFO_MAGIC; - *switch_node = (switch_node_info_t *) gen_node_info; - - return SLURM_SUCCESS; -} - -extern int switch_p_build_node_info(switch_node_info_t *switch_node) -{ - sw_gen_node_info_t *gen_node_info = (sw_gen_node_info_t *) switch_node; - struct ifaddrs *if_array = NULL, *if_rec; - sw_gen_ifa_t *ifa_ptr; - void *addr_ptr = NULL; - char addr_str[INET6_ADDRSTRLEN], *ip_family; - char hostname[256], *tmp; - - log_flag(SWITCH, "%s() starting", __func__); - xassert(gen_node_info); - xassert(gen_node_info->magic == SW_GEN_NODE_INFO_MAGIC); - if (gethostname(hostname, sizeof(hostname)) < 0) - return SLURM_ERROR; - /* remove the domain portion, if necessary */ - tmp = strstr(hostname, "."); - if (tmp) - *tmp = '\0'; - gen_node_info->node_name = xstrdup(hostname); - if (getifaddrs(&if_array) == 0) { - for (if_rec = if_array; if_rec; if_rec = if_rec->ifa_next) { -#if !defined(__FreeBSD__) - if (if_rec->ifa_flags & IFF_LOOPBACK) - continue; -#endif - if (if_rec->ifa_addr->sa_family == AF_INET) { - addr_ptr = &((struct sockaddr_in *) - if_rec->ifa_addr)->sin_addr; - ip_family = "IP_V4"; - } else if (if_rec->ifa_addr->sa_family == AF_INET6) { - addr_ptr = &((struct sockaddr_in6 *) - if_rec->ifa_addr)->sin6_addr; - ip_family = "IP_V6"; - } else { - /* AF_PACKET (statistics) and others ignored */ - continue; - } - (void) inet_ntop(if_rec->ifa_addr->sa_family, - addr_ptr, addr_str, sizeof(addr_str)); - xrealloc(gen_node_info->ifa_array, - sizeof(sw_gen_ifa_t *) * - (gen_node_info->ifa_cnt + 1)); - ifa_ptr = xmalloc(sizeof(sw_gen_ifa_t)); - ifa_ptr->ifa_addr = xstrdup(addr_str); - ifa_ptr->ifa_family = xstrdup(ip_family); - ifa_ptr->ifa_name = xstrdup(if_rec->ifa_name); - gen_node_info->ifa_array[gen_node_info->ifa_cnt++] = - ifa_ptr; - log_flag(SWITCH, "%s: name=%s ip_family=%s address=%s", - plugin_type, if_rec->ifa_name, ip_family, - addr_str); - } - } - freeifaddrs(if_array); - - return SLURM_SUCCESS; -} - -extern int switch_p_pack_node_info(switch_node_info_t *switch_node, - Buf buffer, uint16_t protocol_version) -{ - sw_gen_node_info_t *gen_node_info = (sw_gen_node_info_t *) switch_node; - sw_gen_ifa_t *ifa_ptr; - int i; - - log_flag(SWITCH, "%s() starting", __func__); - xassert(gen_node_info); - xassert(gen_node_info->magic == SW_GEN_NODE_INFO_MAGIC); - pack16(gen_node_info->ifa_cnt, buffer); - packstr(gen_node_info->node_name, buffer); - for (i = 0; i < gen_node_info->ifa_cnt; i++) { - ifa_ptr = gen_node_info->ifa_array[i]; - packstr(ifa_ptr->ifa_addr, buffer); - packstr(ifa_ptr->ifa_family, buffer); - packstr(ifa_ptr->ifa_name, buffer); - } - - return SLURM_SUCCESS; -} - -extern int switch_p_free_node_info(switch_node_info_t **switch_node) -{ - sw_gen_node_info_t *gen_node_info = (sw_gen_node_info_t *) *switch_node; - int i; - - log_flag(SWITCH, "%s() starting", __func__); - xassert(gen_node_info); - xassert(gen_node_info->magic == SW_GEN_NODE_INFO_MAGIC); - for (i = 0; i < gen_node_info->ifa_cnt; i++) { - xfree(gen_node_info->ifa_array[i]->ifa_addr); - xfree(gen_node_info->ifa_array[i]->ifa_family); - xfree(gen_node_info->ifa_array[i]->ifa_name); - xfree(gen_node_info->ifa_array[i]); - } - xfree(gen_node_info->ifa_array); - xfree(gen_node_info->node_name); - xfree(gen_node_info); - - return SLURM_SUCCESS; -} - -extern int switch_p_unpack_node_info(switch_node_info_t **switch_node, - Buf buffer, uint16_t protocol_version) -{ - sw_gen_node_info_t *gen_node_info; - sw_gen_ifa_t *ifa_ptr; - uint32_t uint32_tmp; - int i; - - log_flag(SWITCH, "%s() starting", __func__); - - switch_p_alloc_node_info(switch_node); - gen_node_info = (sw_gen_node_info_t *) *switch_node; - - safe_unpack16(&gen_node_info->ifa_cnt, buffer); - safe_xcalloc(gen_node_info->ifa_array, gen_node_info->ifa_cnt, - sizeof(sw_gen_ifa_t *)); - safe_unpackstr_xmalloc(&gen_node_info->node_name, &uint32_tmp, - buffer); - for (i = 0; i < gen_node_info->ifa_cnt; i++) { - ifa_ptr = xmalloc(sizeof(sw_gen_ifa_t)); - gen_node_info->ifa_array[i] = ifa_ptr; - safe_unpackstr_xmalloc(&ifa_ptr->ifa_addr, &uint32_tmp, buffer); - safe_unpackstr_xmalloc(&ifa_ptr->ifa_family, &uint32_tmp, - buffer); - safe_unpackstr_xmalloc(&ifa_ptr->ifa_name, &uint32_tmp, buffer); - log_flag(SWITCH, "%s: node=%s name=%s ip_family=%s address=%s", - plugin_type, gen_node_info->node_name, - ifa_ptr->ifa_name, ifa_ptr->ifa_family, - ifa_ptr->ifa_addr); - } - - _cache_node_info(gen_node_info); - - return SLURM_SUCCESS; - -unpack_error: - - switch_p_free_node_info(switch_node); - - return SLURM_ERROR; -} - -extern int switch_p_job_step_complete(switch_jobinfo_t *jobinfo, - char *nodelist) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_job_step_part_comp(switch_jobinfo_t *jobinfo, - char *nodelist) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern bool switch_p_part_comp(void) -{ - log_flag(SWITCH, "%s() starting", __func__); - return false; -} - -extern int switch_p_job_step_allocated(switch_jobinfo_t *jobinfo, - char *nodelist) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_slurmctld_init(void) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_slurmd_init(void) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_slurmd_step_init(void) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_job_step_pre_suspend(stepd_step_rec_t *job) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_job_step_post_suspend(stepd_step_rec_t *job) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_job_step_pre_resume(stepd_step_rec_t *job) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -} - -extern int switch_p_job_step_post_resume(stepd_step_rec_t *job) -{ - log_flag(SWITCH, "%s() starting", __func__); - return SLURM_SUCCESS; -}