diff --git a/.gitignore b/.gitignore index 92161427b7d..afdb082ea2a 100644 --- a/.gitignore +++ b/.gitignore @@ -66,26 +66,25 @@ Doxyfile /cts/cts /cts/cts-cli /cts/cts-coverage -/cts/cts-lrmd -/cts/cts-pengine +/cts/cts-exec +/cts/cts-fencing /cts/cts-regression -/cts/cts-stonithd +/cts/cts-scheduler /cts/fence_dummy /cts/lxc_autogen.sh /cts/pacemaker-cts-dummyd /cts/pacemaker-cts-dummyd@.service +/daemons/execd/pacemaker_remote +/daemons/execd/pacemaker_remote.service +/daemons/fenced/fence_legacy /daemons/pacemakerd/pacemaker /daemons/pacemakerd/pacemaker.combined.upstart /daemons/pacemakerd/pacemaker.service /daemons/pacemakerd/pacemaker.upstart extra/logrotate/pacemaker -/fencing/fence_legacy include/config.h include/config.h.in include/crm_config.h -lrmd/pacemaker_remote -lrmd/pacemaker_remoted -lrmd/pacemaker_remote.service publican.cfg /tools/cibsecret /tools/crm_error @@ -105,47 +104,44 @@ publican.cfg *.8 *.8.xml *.8.html -attrd/attrd doc/*/en-US/images/*.png doc/*/tmp/** doc/*/publish -cib/cib -cib/cibmon -cib/cibpipe -crmd/atest -crmd/crmd +/daemons/attrd/pacemaker-attrd +/daemons/based/pacemaker-based +/daemons/based/cibmon +/daemons/controld/pacemaker-controld +/daemons/execd/cts-exec-helper +/daemons/execd/pacemaker-execd +/daemons/execd/pacemaker-remoted +/daemons/fenced/cts-fence-helper +/daemons/fenced/pacemaker-fenced +/daemons/fenced/pacemaker-fenced.xml /daemons/pacemakerd/pacemakerd +/daemons/schedulerd/pacemaker-schedulerd +/daemons/schedulerd/pacemaker-schedulerd.xml +/daemons/schedulerd/ptest doc/api/* doc/Clusters_from_Scratch.txt doc/Pacemaker_Explained.txt doc/acls.html doc/crm_fencing.html doc/publican-catalog* -fencing/stonith-test -fencing/stonith_admin -fencing/stonithd -fencing/stonithd.xml -lrmd/lrmd -lrmd/lrmd_internal_ctl -lrmd/lrmd_test -pengine/pengine -pengine/pengine.xml -pengine/ptest scratch -tools/attrd_updater -tools/cibadmin -tools/crm_attribute -tools/crm_diff -tools/crm_mon -tools/crm_node -tools/crm_resource -tools/crm_shadow -tools/crm_simulate -tools/crm_verify -tools/crmadmin -tools/iso8601 -tools/crm_ticket -tools/report.collector.1 +/tools/attrd_updater +/tools/cibadmin +/tools/crmadmin +/tools/crm_attribute +/tools/crm_diff +/tools/crm_mon +/tools/crm_node +/tools/crm_resource +/tools/crm_shadow +/tools/crm_simulate +/tools/crm_ticket +/tools/crm_verify +/tools/iso8601 +/tools/stonith_admin xml/crm.dtd xml/pacemaker*.rng xml/versions.rng @@ -168,25 +164,26 @@ lib/gnu/stdalign.h # Test detritus /cts/.regression.failed.diff -/cts/pengine/*.ref -/cts/pengine/*.up -/cts/pengine/*.up.err -/cts/pengine/bug-rh-1097457.log -/cts/pengine/bug-rh-1097457.trs -/cts/pengine/shadow.* +/cts/scheduler/*.ref +/cts/scheduler/*.up +/cts/scheduler/*.up.err +/cts/scheduler/bug-rh-1097457.log +/cts/scheduler/bug-rh-1097457.trs +/cts/scheduler/shadow.* /cts/test-suite.log /xml/test-2/*.up /xml/test-2/*.up.err # Formerly built files (helps when jumping back and forth in checkout) +/attrd +/cib /coverage.sh +/crmd /cts/HBDummy -/fencing/regression.py -/lrmd/regression.py +/fencing +/lrmd /mcp -/pengine/.regression.failed.diff -/pengine/regression.core.sh -/pengine/test10/shadow.* +/pengine #Other mock diff --git a/.travis.yml b/.travis.yml index 373a3429f00..74614503c27 100644 --- a/.travis.yml +++ b/.travis.yml @@ -62,7 +62,7 @@ before_script: script: - if test ${CC} != cov-build; then sudo make install-exec-local || true; fi -- if test ${CC} != cov-build; then make && ./cts/cts-regression -V; fi +- if test ${CC} != cov-build; then make && ./cts/cts-regression -V cli scheduler exec; fi - if test ${CC} = cov-build; then export CC=gcc; bash ./travisci_build_coverity_scan.sh; fi #after_script: diff --git a/GNUmakefile b/GNUmakefile index 07aaed774de..548b11db14b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -325,9 +325,7 @@ summary: @printf "\n- Update source tarball to revision: `git log --pretty=format:%h -n 1`" @printf "\n- Changesets: `git log --pretty=oneline $(LAST_RELEASE)..HEAD | wc -l`" @printf "\n- Diff: " - @git diff -r $(LAST_RELEASE)..HEAD --stat \ - include lib daemons pengine/*.c pengine/*.h \ - cib crmd fencing lrmd tools xml | tail -n 1 + @git diff -r $(LAST_RELEASE)..HEAD --stat include lib daemons tools xml | tail -n 1 rc-changes: @make NEXT_RELEASE=$(shell echo $(LAST_RC) | sed s:-rc.*::) LAST_RELEASE=$(LAST_RC) changes @@ -336,7 +334,7 @@ changes: summary @printf "\n- Features added since $(LAST_RELEASE)\n" @git log --pretty=format:' +%s' --abbrev-commit $(LAST_RELEASE)..HEAD | grep -e Feature: | sed -e 's@Feature:@@' | sort -uf @printf "\n- Changes since $(LAST_RELEASE)\n" - @git log --pretty=format:' +%s' --abbrev-commit $(LAST_RELEASE)..HEAD | grep -e High: -e Fix: -e Bug | sed -e 's@Fix:@@' -e s@High:@@ -e s@Fencing:@fencing:@ -e 's@Bug@ Bug@' -e s@PE:@pengine:@ | sort -uf + @git log --pretty=format:' +%s' --abbrev-commit $(LAST_RELEASE)..HEAD | grep -e High: -e Fix: -e Bug | sed -e 's@Fix:@@' -e s@High:@@ -e s@Fencing:@fencing:@ -e 's@Bug@ Bug@' -e s@PE:@scheduler:@ -e s@pengine:@scheduler:@ | sort -uf changelog: @make changes > ChangeLog @@ -344,10 +342,11 @@ changelog: git show $(LAST_RELEASE):ChangeLog >> ChangeLog @echo -e "\033[1;35m -- Don't forget to run the bumplibs.sh script! --\033[0m" +DO_NOT_INDENT = lib/gnu daemons/controld/controld_fsa.h + indent: - find . -name "*.h" -exec ./p-indent \{\} \; - find . -name "*.c" -exec ./p-indent \{\} \; - git co HEAD crmd/fsa_proto.h lib/gnu + find . -name "*.[ch]" -exec ./p-indent \{\} \; + git co HEAD $(DO_NOT_INDENT) rel-tags: tags find . -name TAGS -exec sed -i 's:\(.*\)/\(.*\)/TAGS:\2/TAGS:g' \{\} \; @@ -360,7 +359,7 @@ CLANG_checkers = # --inconclusive --std=posix CPPCHECK_ARGS ?= cppcheck: - for d in replace lib daemons attrd pengine cib crmd fencing lrmd tools; \ + for d in replace lib daemons tools; \ do cppcheck $(CPPCHECK_ARGS) -q $$d; \ done diff --git a/Makefile.am b/Makefile.am index d7d43b221bc..dcae3146bf3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,8 +11,7 @@ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure DRF/config-h.in \ DRF/stamp-h.in libtool.m4 ltdl.m4 # Only these will get installed with a plain "make install" -CORE_INSTALL = replace include lib daemons \ - attrd pengine cib crmd fencing lrmd tools xml +CORE_INSTALL = replace include lib daemons tools xml # Only these will get built with a plain "make" or "make clean" CORE = $(CORE_INSTALL) cts diff --git a/README.markdown b/README.markdown index a9518bf6425..e93679ef46b 100644 --- a/README.markdown +++ b/README.markdown @@ -51,8 +51,8 @@ This is not an exhaustive list: [clufter](https://github.com/jnpkrn/clufter) is a general-purpose tool for converting one cluster representation format to another. Among other -possibilities, it can convert from a CMAN+rgmanager-based cluster to -a corosync+pacemaker-based one. See its documentation for details. +possibilities, it can convert from a cluster based on rgmanager with CMAN to +a one based on pacemaker with corosync. See its documentation for details. ## How can I help? diff --git a/attrd/Makefile.am b/attrd/Makefile.am deleted file mode 100644 index bf34d7dbb02..00000000000 --- a/attrd/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (C) 2004-2009 Andrew Beekhof -# -# This program 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. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -include $(top_srcdir)/Makefile.common - -halibdir = $(CRM_DAEMON_DIR) -halib_PROGRAMS = attrd -## SOURCES - -noinst_HEADERS = internal.h attrd_common.h - -attrd_CFLAGS = $(CFLAGS_HARDENED_EXE) -attrd_LDFLAGS = $(LDFLAGS_HARDENED_EXE) - -attrd_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la \ - $(top_builddir)/lib/pengine/libpe_rules.la \ - $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/cib/libcib.la \ - $(top_builddir)/lib/lrmd/liblrmd.la \ - $(CLUSTERLIBS) - -attrd_SOURCES = main.c commands.c attrd_common.c attrd_common_alerts.c - -clean-generic: - rm -f *.log *.debug *.xml *~ diff --git a/attrd/internal.h b/attrd/internal.h deleted file mode 100644 index 1b2c8d891f7..00000000000 --- a/attrd/internal.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2013-2017 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -typedef struct attribute_s { - char *uuid; /* TODO: Remove if at all possible */ - char *id; - char *set; - GHashTable *values; - int update; - int timeout_ms; - - /* TODO: refactor these three as a bitmask */ - bool changed; /* whether attribute value has changed since last write */ - bool unknown_peer_uuids; /* whether we know we're missing a peer uuid */ - gboolean is_private; /* whether to keep this attribute out of the CIB */ - - mainloop_timer_t *timer; - - char *user; - -} attribute_t; - -typedef struct attribute_value_s { - uint32_t nodeid; - gboolean is_remote; - char *nodename; - char *current; - char *requested; - gboolean seen; -} attribute_value_t; - -crm_cluster_t *attrd_cluster; -GHashTable *attributes; -election_t *writer; - -#define attrd_send_ack(client, id, flags) \ - crm_ipcs_send_ack((client), (id), (flags), "ack", __FUNCTION__, __LINE__) - -void write_attributes(bool all); -void attrd_broadcast_protocol(void); -void attrd_peer_message(crm_node_t *client, xmlNode *msg); -void attrd_client_peer_remove(const char *client_name, xmlNode *xml); -void attrd_client_clear_failure(xmlNode *xml); -void attrd_client_update(xmlNode *xml); -void attrd_client_refresh(void); -void attrd_client_query(crm_client_t *client, uint32_t id, uint32_t flags, xmlNode *query); - -void free_attribute(gpointer data); - -gboolean attrd_election_cb(gpointer user_data); -void attrd_peer_change_cb(enum crm_status_type type, crm_node_t *peer, const void *data); diff --git a/cib/Makefile.am b/cib/Makefile.am deleted file mode 100644 index ee711927ba5..00000000000 --- a/cib/Makefile.am +++ /dev/null @@ -1,51 +0,0 @@ -# -# Copyright (C) 2004 Andrew Beekhof -# -# This program 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. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -include $(top_srcdir)/Makefile.common - -EXTRA_DIST = cib.pam - -halibdir = $(CRM_DAEMON_DIR) - -COMMONLIBS = $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/cib/libcib.la - -## binary progs -halib_PROGRAMS = cib cibmon - -## SOURCES -noinst_HEADERS = callbacks.h cibio.h cibmessages.h common.h notify.h - -cib_CFLAGS = $(CFLAGS_HARDENED_EXE) -cib_LDFLAGS = $(LDFLAGS_HARDENED_EXE) - -cib_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la \ - $(COMMONLIBS) $(CLUSTERLIBS) - -cib_SOURCES = io.c messages.c notify.c \ - callbacks.c main.c remote.c common.c - -cibmon_LDADD = $(COMMONLIBS) -cibmon_SOURCES = cibmon.c - -clean-generic: - rm -f *.log *.debug *.xml *~ - -install-exec-local: -# cp -f $(top_srcdir)/crm/cib/cib.pam $(DESTDIR)/etc/pam.d/cib - -uninstall-local: diff --git a/cib/callbacks.h b/cib/callbacks.h deleted file mode 100644 index 84b98608949..00000000000 --- a/cib/callbacks.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#ifdef HAVE_GNUTLS_GNUTLS_H -# undef KEYFILE -# include -#endif - -extern gboolean cib_is_master; -extern GHashTable *peer_hash; -extern GHashTable *config_hash; - -/* *INDENT-OFF* */ -enum cib_notifications -{ - cib_notify_pre = 0x0001, - cib_notify_post = 0x0002, - cib_notify_replace = 0x0004, - cib_notify_confirm = 0x0008, - cib_notify_diff = 0x0010, - - /* not a notification, but uses the same IPC bitmask */ - cib_is_daemon = 0x1000, /* whether client is another cluster daemon */ -}; -/* *INDENT-ON* */ - -typedef struct cib_operation_s { - const char *operation; - gboolean modifies_cib; - gboolean needs_privileges; - gboolean needs_quorum; - int (*prepare) (xmlNode *, xmlNode **, const char **); - int (*cleanup) (int, xmlNode **, xmlNode **); - int (*fn) (const char *, int, const char *, xmlNode *, - xmlNode *, xmlNode *, xmlNode **, xmlNode **); -} cib_operation_t; - -extern struct qb_ipcs_service_handlers ipc_ro_callbacks; -extern struct qb_ipcs_service_handlers ipc_rw_callbacks; -extern qb_ipcs_service_t *ipcs_ro; -extern qb_ipcs_service_t *ipcs_rw; -extern qb_ipcs_service_t *ipcs_shm; - -extern void cib_peer_callback(xmlNode * msg, void *private_data); -extern void cib_common_callback_worker(uint32_t id, uint32_t flags, xmlNode * op_request, - crm_client_t * cib_client, gboolean privileged); - -void cib_shutdown(int nsig); -void initiate_exit(void); -void terminate_cib(const char *caller, int fast); - -extern gboolean cib_legacy_mode(void); - -static inline const char * -cib_config_lookup(const char *opt) -{ - return g_hash_table_lookup(config_hash, opt); -} diff --git a/cib/cibio.h b/cib/cibio.h deleted file mode 100644 index 19389928819..00000000000 --- a/cib/cibio.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef CIB_IO__H -# define CIB_IO__H - -# include -# include -# include - -# include -# include -# include - -# include -# include - -extern xmlNode *the_cib; - -extern gboolean uninitializeCib(void); -extern gboolean verifyCibXml(xmlNode * cib); -extern xmlNode *readCibXml(char *buffer); -extern xmlNode *readCibXmlFile(const char *dir, const char *file, gboolean discard_status); -extern int activateCibXml(xmlNode * doc, gboolean to_disk, const char *op); -extern crm_trigger_t *cib_writer; -extern volatile gboolean cib_writes_enabled; - -#endif diff --git a/cib/cibmessages.h b/cib/cibmessages.h deleted file mode 100644 index 08c118dbfab..00000000000 --- a/cib/cibmessages.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef CIB_MESSAGES__H -# define CIB_MESSAGES__H - -extern xmlNode *createCibRequest(gboolean isLocal, const char *operation, const char *section, - const char *verbose, xmlNode * data); - -extern int cib_process_shutdown_req(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, - xmlNode * existing_cib, xmlNode ** result_cib, - xmlNode ** answer); - -extern int cib_process_default(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, xmlNode * existing_cib, - xmlNode ** result_cib, xmlNode ** answer); - -extern int cib_process_ping(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, xmlNode * existing_cib, - xmlNode ** result_cib, xmlNode ** answer); - -extern int cib_process_readwrite(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, xmlNode * existing_cib, - xmlNode ** result_cib, xmlNode ** answer); - -extern int cib_process_replace_svr(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, - xmlNode * existing_cib, xmlNode ** result_cib, - xmlNode ** answer); - -extern int cib_server_process_diff(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, - xmlNode * existing_cib, xmlNode ** result_cib, - xmlNode ** answer); - -extern int cib_process_sync(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, xmlNode * existing_cib, - xmlNode ** result_cib, xmlNode ** answer); - -extern int cib_process_sync_one(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, xmlNode * existing_cib, - xmlNode ** result_cib, xmlNode ** answer); - -extern int cib_process_delete_absolute(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, - xmlNode * existing_cib, xmlNode ** result_cib, - xmlNode ** answer); - -int cib_process_upgrade_server(const char *op, int options, const char *section, - xmlNode * req, xmlNode * input, - xmlNode * existing_cib, xmlNode ** result_cib, - xmlNode ** answer); - -void send_sync_request(const char *host); - - -#endif diff --git a/cib/common.h b/cib/common.h deleted file mode 100644 index 7ea7209a3a7..00000000000 --- a/cib/common.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -extern xmlNode *cib_msg_copy(xmlNode * msg, gboolean with_data); -extern xmlNode *cib_construct_reply(xmlNode * request, xmlNode * output, int rc); -extern int cib_get_operation_id(const char *op, int *operation); - -extern cib_op_t *cib_op_func(int call_type); - -extern gboolean cib_op_modifies(int call_type); -extern int cib_op_prepare(int call_type, xmlNode * request, xmlNode ** input, const char **section); -extern int cib_op_cleanup(int call_type, int options, xmlNode ** input, xmlNode ** output); -extern int cib_op_can_run(int call_type, int call_options, gboolean privileged, - gboolean global_update); - - -extern GMainLoop *mainloop; -extern crm_cluster_t crm_cluster; -extern GHashTable *local_notify_queue; - -extern gboolean legacy_mode; -extern gboolean stand_alone; -extern gboolean cib_shutdown_flag; -extern const char *cib_root; -extern char *cib_our_uname; - -extern int cib_status; diff --git a/cib/notify.h b/cib/notify.h deleted file mode 100644 index 3ee432b0d11..00000000000 --- a/cib/notify.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include - -#include - -#include -#include - -extern FILE *msg_cib_strm; - -extern void cib_diff_notify(int options, const char *client, const char *call_id, const char *op, - xmlNode * update, int result, xmlNode * old_cib); - -extern void cib_replace_notify(const char *origin, xmlNode * update, int result, xmlNode * diff); diff --git a/configure.ac b/configure.ac index 6d1f0b00cb0..c025e1039a6 100644 --- a/configure.ac +++ b/configure.ac @@ -87,7 +87,6 @@ dnl Compiler characteristics dnl ======================================================================== AC_PROG_CC dnl Can force other with environment variable "CC". -AM_PROG_CC_C_O AC_PROG_CC_STDC gl_EARLY gl_INIT @@ -95,17 +94,12 @@ gl_INIT LT_INIT([dlopen]) LTDL_INIT([convenience]) -AC_PROG_YACC -AM_PROG_LEX - -AC_C_STRINGIZE AC_TYPE_SIZE_T AC_CHECK_SIZEOF(char) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) -AC_STRUCT_TIMEZONE dnl =============================================== dnl Helpers @@ -152,7 +146,7 @@ AC_ARG_ENABLE([quiet], [ --enable-quiet Suppress make output unless there is an error @<:@no@:>@]) AC_ARG_ENABLE([no-stack], - [ --enable-no-stack Build only the Policy Engine and its requirements @<:@no@:>@]) + [ --enable-no-stack Build only the scheduler and its requirements @<:@no@:>@]) AC_ARG_ENABLE([upstart], [ --enable-upstart Enable support for managing resources via Upstart @<:@try@:>@ ], @@ -167,11 +161,26 @@ AC_ARG_ENABLE([systemd], ) AC_ARG_ENABLE(hardening, - [ --with-hardening Harden the resulting executables/libraries @<:@try@:>@], + [ --enable-hardening Harden the resulting executables/libraries @<:@try@:>@], [ HARDENING="${enableval}" ], [ HARDENING=try ], ) +# By default, we add symlinks at the pre-2.0.0 daemon name locations, so that: +# (1) tools that directly invoke those names for metadata etc. will still work +# (2) this installation can be used in a bundle container image used with +# cluster hosts running Pacemaker 1.1.17+ +# If you know your target systems will not have any need for it, you can +# disable this option. Once the above use cases are no longer in wide use, we +# can disable this option by default, and once we no longer want to support +# them at all, we can drop the option altogether. +AC_ARG_ENABLE(legacy-links, + [ --enable-legacy-links Add symlinks for old daemon names @<:@yes@:>@], + [ LEGACY_LINKS="${enableval}" ], + [ LEGACY_LINKS=yes ], +) +AM_CONDITIONAL(BUILD_LEGACY_LINKS, test "x${LEGACY_LINKS}" = "xyes") + AC_ARG_WITH(corosync, [ --with-corosync Support the Corosync messaging and membership layer ], [ SUPPORT_CS=$withval ], @@ -254,6 +263,8 @@ dnl =============================================== dnl General Processing dnl =============================================== +AC_PROG_LN_S + if cc_supports_flag -Werror; then WERROR="-Werror" else @@ -1036,7 +1047,7 @@ AC_DEFINE_UNQUOTED(CRM_BLACKBOX_DIR,"$CRM_BLACKBOX_DIR", Where to keep blackbox AC_SUBST(CRM_BLACKBOX_DIR) PE_STATE_DIR="${localstatedir}/lib/pacemaker/pengine" -AC_DEFINE_UNQUOTED(PE_STATE_DIR,"$PE_STATE_DIR", Where to keep PEngine outputs) +AC_DEFINE_UNQUOTED(PE_STATE_DIR,"$PE_STATE_DIR", Where to keep scheduler outputs) AC_SUBST(PE_STATE_DIR) CRM_CONFIG_DIR="${localstatedir}/lib/pacemaker/cib" @@ -1286,7 +1297,7 @@ dnl Cluster stack - Sanity dnl if test x${enable_no_stack} = xyes; then - AC_MSG_NOTICE(No cluster stack supported. Just building the Policy Engine) + AC_MSG_NOTICE(No cluster stack supported, building only the scheduler) PCMK_FEATURES="$PCMK_FEATURES no-cluster-stack" else AC_MSG_CHECKING(for supported stacks) @@ -1556,8 +1567,8 @@ dnl default case are as follows: dnl dnl * CFLAGS_HARDENED_EXE, LDFLAGS_HARDENED_EXE dnl compiler and linker flags (respectively) for daemon programs -dnl (attrd, cib, crmd, lrmd, stonithd, pacemakerd, pacemaker_remoted, -dnl pengine) +dnl (pacemakerd, pacemaker-attrd, pacemaker-controld, pacemaker-execd, +dnl cib, stonithd, pacemaker-remoted, pacemaker-schedulerd) dnl dnl * CFLAGS_HARDENED_LIB, LDFLAGS_HARDENED_LIB dnl compiler and linker flags (respectively) for libraries linked @@ -1703,15 +1714,15 @@ AC_CONFIG_FILES([cts/cluster_test], [chmod +x cts/cluster_test]) AC_CONFIG_FILES([cts/cts], [chmod +x cts/cts]) AC_CONFIG_FILES([cts/cts-cli], [chmod +x cts/cts-cli]) AC_CONFIG_FILES([cts/cts-coverage], [chmod +x cts/cts-coverage]) -AC_CONFIG_FILES([cts/cts-lrmd], [chmod +x cts/cts-lrmd]) -AC_CONFIG_FILES([cts/cts-pengine], [chmod +x cts/cts-pengine]) +AC_CONFIG_FILES([cts/cts-exec], [chmod +x cts/cts-exec]) +AC_CONFIG_FILES([cts/cts-fencing], [chmod +x cts/cts-fencing]) AC_CONFIG_FILES([cts/cts-regression], [chmod +x cts/cts-regression]) -AC_CONFIG_FILES([cts/cts-stonithd], [chmod +x cts/cts-stonithd]) +AC_CONFIG_FILES([cts/cts-scheduler], [chmod +x cts/cts-scheduler]) AC_CONFIG_FILES([cts/lxc_autogen.sh], [chmod +x cts/lxc_autogen.sh]) AC_CONFIG_FILES([cts/benchmark/clubench], [chmod +x cts/benchmark/clubench]) AC_CONFIG_FILES([cts/fence_dummy], [chmod +x cts/fence_dummy]) AC_CONFIG_FILES([cts/pacemaker-cts-dummyd], [chmod +x cts/pacemaker-cts-dummyd]) -AC_CONFIG_FILES([fencing/fence_legacy], [chmod +x fencing/fence_legacy]) +AC_CONFIG_FILES([daemons/fenced/fence_legacy], [chmod +x daemons/fenced/fence_legacy]) AC_CONFIG_FILES([tools/crm_failcount], [chmod +x tools/crm_failcount]) AC_CONFIG_FILES([tools/crm_master], [chmod +x tools/crm_master]) AC_CONFIG_FILES([tools/crm_report], [chmod +x tools/crm_report]) @@ -1726,23 +1737,31 @@ AC_CONFIG_FILES(Makefile \ cts/CTSvars.py \ cts/benchmark/Makefile \ cts/pacemaker-cts-dummyd@.service \ - cib/Makefile \ daemons/Makefile \ + daemons/attrd/Makefile \ + daemons/based/Makefile \ + daemons/controld/Makefile \ + daemons/execd/Makefile \ + daemons/execd/pacemaker_remote \ + daemons/execd/pacemaker_remote.service \ + daemons/fenced/Makefile \ daemons/pacemakerd/Makefile \ daemons/pacemakerd/pacemaker \ daemons/pacemakerd/pacemaker.service \ daemons/pacemakerd/pacemaker.upstart \ daemons/pacemakerd/pacemaker.combined.upstart \ - attrd/Makefile \ - crmd/Makefile \ - pengine/Makefile \ + daemons/schedulerd/Makefile \ doc/Makefile \ doc/Clusters_from_Scratch/publican.cfg \ doc/Pacemaker_Administration/publican.cfg \ doc/Pacemaker_Development/publican.cfg \ doc/Pacemaker_Explained/publican.cfg \ doc/Pacemaker_Remote/publican.cfg \ - fencing/Makefile \ + extra/Makefile \ + extra/alerts/Makefile \ + extra/resources/Makefile \ + extra/logrotate/Makefile \ + extra/logrotate/pacemaker \ include/Makefile \ include/crm/Makefile \ include/crm/cib/Makefile \ @@ -1762,26 +1781,18 @@ AC_CONFIG_FILES(Makefile \ lib/common/Makefile \ lib/cluster/Makefile \ lib/cib/Makefile \ + lib/gnu/Makefile \ lib/pengine/Makefile \ lib/transition/Makefile \ lib/fencing/Makefile \ lib/lrmd/Makefile \ lib/services/Makefile \ - lrmd/Makefile \ - lrmd/pacemaker_remote.service \ - lrmd/pacemaker_remote \ - extra/Makefile \ - extra/alerts/Makefile \ - extra/resources/Makefile \ - extra/logrotate/Makefile \ - extra/logrotate/pacemaker \ tools/Makefile \ tools/report.collector \ tools/report.common \ tools/crm_mon.service \ tools/crm_mon.upstart \ xml/Makefile \ - lib/gnu/Makefile \ ) dnl Now process the entire list of files added by previous diff --git a/crmd/Makefile.am b/crmd/Makefile.am deleted file mode 100644 index faf16b56c2c..00000000000 --- a/crmd/Makefile.am +++ /dev/null @@ -1,55 +0,0 @@ -# -# Copyright (C) 2004 Andrew Beekhof -# -# This program 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. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -include $(top_srcdir)/Makefile.common - -halibdir = $(CRM_DAEMON_DIR) - -## binary progs -halib_PROGRAMS = crmd - -## SOURCES - -noinst_HEADERS = crmd_alerts.h crmd_callbacks.h crmd_fsa.h crmd.h \ - crmd_lrm.h crmd_messages.h crmd_utils.h fsa_defines.h \ - fsa_matrix.h fsa_proto.h membership.h te_callbacks.h \ - tengine.h throttle.h crmd_metadata.h - -crmd_CFLAGS = $(CFLAGS_HARDENED_EXE) -crmd_LDFLAGS = $(LDFLAGS_HARDENED_EXE) - -crmd_LDADD = $(top_builddir)/lib/fencing/libstonithd.la \ - $(top_builddir)/lib/transition/libtransitioner.la \ - $(top_builddir)/lib/pengine/libpe_rules.la \ - $(top_builddir)/lib/cib/libcib.la \ - $(top_builddir)/lib/cluster/libcrmcluster.la \ - $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/services/libcrmservice.la \ - $(top_builddir)/lib/lrmd/liblrmd.la \ - $(CLUSTERLIBS) - -crmd_SOURCES = main.c corosync.c crmd_metadata.c \ - fsa.c control.c messages.c membership.c callbacks.c attrd.c \ - election.c join_client.c join_dc.c throttle.c \ - cib.c pengine.c tengine.c lrm.c lrm_state.c remote_lrmd_ra.c \ - utils.c misc.c te_events.c te_actions.c te_utils.c te_callbacks.c - -if BUILD_XML_HELP -man7_MANS = crmd.7 -endif - -CLEANFILES = $(man7_MANS) diff --git a/crmd/crmd_alerts.h b/crmd/crmd_alerts.h deleted file mode 100644 index eadede1ed08..00000000000 --- a/crmd/crmd_alerts.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2015 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef CRMD_ALERT__H -# define CRMD_ALERT__H - -# include -# include -# include - -void crmd_unpack_alerts(xmlNode *alerts); -void crmd_alert_node_event(crm_node_t *node); -void crmd_alert_fencing_op(stonith_event_t *e); -void crmd_alert_resource_op(const char *node, lrmd_event_data_t *op); - -#endif diff --git a/crmd/crmd_callbacks.h b/crmd/crmd_callbacks.h deleted file mode 100644 index b93face9f96..00000000000 --- a/crmd/crmd_callbacks.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -extern void crmd_ha_msg_filter(xmlNode * msg); - -extern void crmd_cib_connection_destroy(gpointer user_data); - -extern gboolean crm_fsa_trigger(gpointer user_data); - -extern void peer_update_callback(enum crm_status_type type, crm_node_t * node, const void *data); diff --git a/crmd/crmd_fsa.h b/crmd/crmd_fsa.h deleted file mode 100644 index dc00485e272..00000000000 --- a/crmd/crmd_fsa.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef CRMD_FSA__H -# define CRMD_FSA__H - -# include - -# include -# include -# include -# include -# include -# include -# include - -typedef struct fsa_timer_s fsa_timer_t; -struct fsa_timer_s { - guint source_id; /* timer source id */ - int period_ms; /* timer period */ - enum crmd_fsa_input fsa_input; - gboolean(*callback) (gpointer data); - gboolean repeat; - int counter; -}; - -enum fsa_data_type { - fsa_dt_none, - fsa_dt_ha_msg, - fsa_dt_xml, - fsa_dt_lrm, -}; - -typedef struct fsa_data_s fsa_data_t; -struct fsa_data_s { - int id; - enum crmd_fsa_input fsa_input; - enum crmd_fsa_cause fsa_cause; - long long actions; - const char *origin; - void *data; - enum fsa_data_type data_type; -}; - -extern enum crmd_fsa_state s_crmd_fsa(enum crmd_fsa_cause cause); - -/* Global FSA stuff */ -extern volatile gboolean do_fsa_stall; -extern volatile enum crmd_fsa_state fsa_state; -extern volatile long long fsa_input_register; -extern volatile long long fsa_actions; - -extern cib_t *fsa_cib_conn; - -extern char *fsa_our_uname; -extern char *fsa_our_uuid; -extern char *fsa_pe_ref; /* the last invocation of the PE */ -extern char *fsa_our_dc; -extern char *fsa_our_dc_version; -extern GListPtr fsa_message_queue; - -extern char *fsa_cluster_name; - -extern election_t *fsa_election; /* */ -extern fsa_timer_t *election_trigger; /* */ -extern fsa_timer_t *election_timeout; /* */ -extern fsa_timer_t *shutdown_escalation_timer; /* */ -extern fsa_timer_t *transition_timer; -extern fsa_timer_t *integration_timer; -extern fsa_timer_t *finalization_timer; -extern fsa_timer_t *wait_timer; -extern fsa_timer_t *recheck_timer; - -extern crm_trigger_t *fsa_source; -extern crm_trigger_t *config_read; - -/* these two should be moved elsewhere... */ -extern void do_update_cib_nodes(gboolean overwrite, const char *caller); -int crmd_cib_smart_opt(void); - -# define AM_I_DC is_set(fsa_input_register, R_THE_DC) -# define AM_I_OPERATIONAL (is_set(fsa_input_register, R_STARTING)==FALSE) -extern unsigned long long saved_ccm_membership_id; -extern gboolean ever_had_quorum; - -# include -# include - -# define trigger_fsa(source) crm_trace("Triggering FSA: %s", __FUNCTION__); \ - mainloop_set_trigger(source); - -#endif diff --git a/crmd/fsa_defines.h b/crmd/fsa_defines.h deleted file mode 100644 index 2dfc3b60733..00000000000 --- a/crmd/fsa_defines.h +++ /dev/null @@ -1,485 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef FSA_DEFINES__H -# define FSA_DEFINES__H - -/*====================================== - * States the DC/CRMd can be in - *======================================*/ -enum crmd_fsa_state { - S_IDLE = 0, /* Nothing happening */ - - S_ELECTION, /* Take part in the election algorithm as - * described below - */ - S_INTEGRATION, /* integrate that status of new nodes (which is - * all of them if we have just been elected DC) - * to form a complete and up-to-date picture of - * the CIB - */ - S_FINALIZE_JOIN, /* integrate that status of new nodes (which is - * all of them if we have just been elected DC) - * to form a complete and up-to-date picture of - * the CIB - */ - S_NOT_DC, /* we are in crmd/slave mode */ - S_POLICY_ENGINE, /* Determine next stable state of the cluster */ - S_RECOVERY, /* Something bad happened, check everything is ok - * before continuing and attempt to recover if - * required - */ - S_RELEASE_DC, /* we were the DC, but now we arent anymore, - * possibly by our own request, and we should - * release all unnecessary sub-systems, finish - * any pending actions, do general cleanup and - * unset anything that makes us think we are - * special :) - */ - S_STARTING, /* we are just starting out */ - S_PENDING, /* we are not a full/active member yet */ - S_STOPPING, /* We are in the final stages of shutting down */ - S_TERMINATE, /* We are going to shutdown, this is the equiv of - * "Sending TERM signal to all processes" in Linux - * and in worst case scenarios could be considered - * a self STONITH - */ - S_TRANSITION_ENGINE, /* Attempt to make the calculated next stable - * state of the cluster a reality - */ - - S_HALT, /* Freeze - don't do anything - * Something bad happened that needs the admin to fix - * Wait for I_ELECTION - */ - - /* ----------- Last input found in table is above ---------- */ - S_ILLEGAL /* This is an illegal FSA state */ - /* (must be last) */ -}; - -# define MAXSTATE S_ILLEGAL -/* - A state diagram can be constructed from the dc_fsa.dot with the - following command: - - dot -Tpng crmd_fsa.dot > crmd_fsa.png - -Description: - - Once we start and do some basic sanity checks, we go into the - S_NOT_DC state and await instructions from the DC or input from - the cluster layer which indicates the election algorithm needs to run. - - If the election algorithm is triggered we enter the S_ELECTION state - from where we can either go back to the S_NOT_DC state or progress - to the S_INTEGRATION state (or S_RELEASE_DC if we used to be the DC - but arent anymore). - - The election algorithm has been adapted from - http://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR521 - - Loosely known as the Bully Algorithm, its major points are: - - Election is initiated by any node (N) notices that the controller - is no longer responding - - Concurrent multiple elections are possible - - Algorithm - + N sends ELECTION messages to all nodes that occur earlier in - the cluster layer's membership list. - + If no one responds, N wins and becomes controller - + N sends out CONTROLLER messages to all other nodes in the - partition - + If one of higher-ups answers, it takes over. N is done. - - Once the election is complete, if we are the DC, we enter the - S_INTEGRATION state which is a DC-in-waiting style state. We are - the DC, but we shouldn't do anything yet because we may not have an - up-to-date picture of the cluster. There may of course be times - when this fails, so we should go back to the S_RECOVERY stage and - check everything is ok. We may also end up here if a new node came - online, since each node is authorative on itself and we would want - to incorporate its information into the CIB. - - Once we have the latest CIB, we then enter the S_POLICY_ENGINE state - where invoke the Policy Engine. It is possible that between - invoking the Policy Engine and receiving an answer, that we receive - more input. In this case we would discard the orginal result and - invoke it again. - - Once we are satisfied with the output from the Policy Engine we - enter S_TRANSITION_ENGINE and feed the Policy Engine's output to the - Transition Engine who attempts to make the Policy Engine's - calculation a reality. If the transition completes successfully, - we enter S_IDLE, otherwise we go back to S_POLICY_ENGINE with the - current unstable state and try again. - - Of course we may be asked to shutdown at any time, however we must - progress to S_NOT_DC before doing so. Once we have handed over DC - duties to another node, we can then shut down like everyone else, - that is by asking the DC for permission and waiting it to take all - our resources away. - - The case where we are the DC and the only node in the cluster is a - special case and handled as an escalation which takes us to - S_SHUTDOWN. Similarly if any other point in the shutdown - fails or stalls, this is escalated and we end up in S_TERMINATE. - - At any point, the CRMd/DC can relay messages for its sub-systems, - but outbound messages (from sub-systems) should probably be blocked - until S_INTEGRATION (for the DC case) or the join protocol has - completed (for the CRMd case) - -*/ - -/*====================================== - * - * Inputs/Events/Stimuli to be given to the finite state machine - * - * Some of these a true events, and others a synthesised based on - * the "register" (see below) and the contents or source of messages. - * - * At this point, my plan is to have a loop of some sort that keeps - * going until receiving I_NULL - * - *======================================*/ -enum crmd_fsa_input { -/* 0 */ - I_NULL, /* Nothing happened */ -/* 1 */ - - I_CIB_OP, /* An update to the CIB occurred */ - I_CIB_UPDATE, /* An update to the CIB occurred */ - I_DC_TIMEOUT, /* We have lost communication with the DC */ - I_ELECTION, /* Someone started an election */ - I_PE_CALC, /* The Policy Engine needs to be invoked */ - I_RELEASE_DC, /* The election completed and we were not - * elected, but we were the DC beforehand - */ - I_ELECTION_DC, /* The election completed and we were (re-)elected - * DC - */ - I_ERROR, /* Something bad happened (more serious than - * I_FAIL) and may not have been due to the action - * being performed. For example, we may have lost - * our connection to the CIB. - */ -/* 9 */ - I_FAIL, /* The action failed to complete successfully */ - I_INTEGRATED, - I_FINALIZED, - I_NODE_JOIN, /* A node has entered the cluster */ - I_NOT_DC, /* We are not and were not the DC before or after - * the current operation or state - */ - I_RECOVERED, /* The recovery process completed successfully */ - I_RELEASE_FAIL, /* We could not give up DC status for some reason - */ - I_RELEASE_SUCCESS, /* We are no longer the DC */ - I_RESTART, /* The current set of actions needs to be - * restarted - */ - I_TE_SUCCESS, /* Some non-resource, non-cluster-layer action is required - * of us, eg. ping - */ -/* 20 */ - I_ROUTER, /* Do our job as router and forward this to the - * right place - */ - I_SHUTDOWN, /* We are asking to shutdown */ - I_STOP, /* We have been told to shutdown */ - I_TERMINATE, /* Actually exit */ - I_STARTUP, - I_PE_SUCCESS, /* The action completed successfully */ - - I_JOIN_OFFER, /* The DC is offering membership */ - I_JOIN_REQUEST, /* The client is requesting membership */ - I_JOIN_RESULT, /* If not the DC: The result of a join request - * Else: A client is responding with its local state info - */ - - I_WAIT_FOR_EVENT, /* we may be waiting for an async task to "happen" - * and until it does, we can't do anything else - */ - - I_DC_HEARTBEAT, /* The DC is telling us that it is alive and well */ - - I_LRM_EVENT, - -/* 30 */ - I_PENDING, - I_HALT, - - /* ------------ Last input found in table is above ----------- */ - I_ILLEGAL /* This is an illegal value for an FSA input */ - /* (must be last) */ -}; - -# define MAXINPUT I_ILLEGAL - -# define I_MESSAGE I_ROUTER - -/*====================================== - * - * actions - * - * Some of the actions below will always occur together for now, but I can - * foresee that this may not always be the case. So I've split them up so - * that if they ever do need to be called independently in the future, it - * won't be a problem. - * - * For example, separating A_LRM_CONNECT from A_STARTUP might be useful - * if we ever try to recover from a faulty or disconnected LRM. - * - *======================================*/ - - /* Don't do anything */ -# define A_NOTHING 0x0000000000000000ULL - -/* -- Startup actions -- */ - /* Hook to perform any actions (other than connecting to other daemons) - * that might be needed as part of the startup. - */ -# define A_STARTUP 0x0000000000000001ULL - /* Hook to perform any actions that might be needed as part - * after startup is successful. - */ -# define A_STARTED 0x0000000000000002ULL - /* Connect to cluster layer */ -# define A_HA_CONNECT 0x0000000000000004ULL -# define A_HA_DISCONNECT 0x0000000000000008ULL - -# define A_INTEGRATE_TIMER_START 0x0000000000000010ULL -# define A_INTEGRATE_TIMER_STOP 0x0000000000000020ULL -# define A_FINALIZE_TIMER_START 0x0000000000000040ULL -# define A_FINALIZE_TIMER_STOP 0x0000000000000080ULL - -/* -- Election actions -- */ -# define A_DC_TIMER_START 0x0000000000000100ULL -# define A_DC_TIMER_STOP 0x0000000000000200ULL -# define A_ELECTION_COUNT 0x0000000000000400ULL -# define A_ELECTION_VOTE 0x0000000000000800ULL - -# define A_ELECTION_START 0x0000000000001000ULL - -/* -- Message processing -- */ - /* Process the queue of requests */ -# define A_MSG_PROCESS 0x0000000000002000ULL - /* Send the message to the correct recipient */ -# define A_MSG_ROUTE 0x0000000000004000ULL - - /* Send a welcome message to new node(s) */ -# define A_DC_JOIN_OFFER_ONE 0x0000000000008000ULL - -/* -- Server Join protocol actions -- */ - /* Send a welcome message to all nodes */ -# define A_DC_JOIN_OFFER_ALL 0x0000000000010000ULL - /* Process the remote node's ack of our join message */ -# define A_DC_JOIN_PROCESS_REQ 0x0000000000020000ULL - /* Send out the reults of the Join phase */ -# define A_DC_JOIN_FINALIZE 0x0000000000040000ULL - /* Send out the reults of the Join phase */ -# define A_DC_JOIN_PROCESS_ACK 0x0000000000080000ULL - -/* -- Client Join protocol actions -- */ -# define A_CL_JOIN_QUERY 0x0000000000100000ULL -# define A_CL_JOIN_ANNOUNCE 0x0000000000200000ULL - /* Request membership to the DC list */ -# define A_CL_JOIN_REQUEST 0x0000000000400000ULL - /* Did the DC accept or reject the request */ -# define A_CL_JOIN_RESULT 0x0000000000800000ULL - -/* -- Recovery, DC start/stop -- */ - /* Something bad happened, try to recover */ -# define A_RECOVER 0x0000000001000000ULL - /* Hook to perform any actions (apart from starting, the TE, PE - * and gathering the latest CIB) that might be necessary before - * giving up the responsibilities of being the DC. - */ -# define A_DC_RELEASE 0x0000000002000000ULL - /* */ -# define A_DC_RELEASED 0x0000000004000000ULL - /* Hook to perform any actions (apart from starting, the TE, PE - * and gathering the latest CIB) that might be necessary before - * taking over the responsibilities of being the DC. - */ -# define A_DC_TAKEOVER 0x0000000008000000ULL - -/* -- Shutdown actions -- */ -# define A_SHUTDOWN 0x0000000010000000ULL -# define A_STOP 0x0000000020000000ULL -# define A_EXIT_0 0x0000000040000000ULL -# define A_EXIT_1 0x0000000080000000ULL - -# define A_SHUTDOWN_REQ 0x0000000100000000ULL -# define A_ELECTION_CHECK 0x0000000200000000ULL -# define A_DC_JOIN_FINAL 0x0000000400000000ULL - -/* -- CIB actions -- */ -# define A_CIB_START 0x0000020000000000ULL -# define A_CIB_STOP 0x0000040000000000ULL - -/* -- Transition Engine actions -- */ - /* Attempt to reach the newly calculated cluster state. This is - * only called once per transition (except if it is asked to - * stop the transition or start a new one). - * Once given a cluster state to reach, the TE will determine - * tasks that can be performed in parallel, execute them, wait - * for replies and then determine the next set until the new - * state is reached or no further tasks can be taken. - */ -# define A_TE_INVOKE 0x0000100000000000ULL -# define A_TE_START 0x0000200000000000ULL -# define A_TE_STOP 0x0000400000000000ULL -# define A_TE_CANCEL 0x0000800000000000ULL -# define A_TE_HALT 0x0001000000000000ULL - -/* -- Policy Engine actions -- */ - /* Calculate the next state for the cluster. This is only - * invoked once per needed calculation. - */ -# define A_PE_INVOKE 0x0002000000000000ULL -# define A_PE_START 0x0004000000000000ULL -# define A_PE_STOP 0x0008000000000000ULL -/* -- Misc actions -- */ - /* Add a system generate "block" so that resources arent moved - * to or are activly moved away from the affected node. This - * way we can return quickly even if busy with other things. - */ -# define A_NODE_BLOCK 0x0010000000000000ULL - /* Update our information in the local CIB */ -# define A_UPDATE_NODESTATUS 0x0020000000000000ULL -# define A_READCONFIG 0x0080000000000000ULL - -/* -- LRM Actions -- */ - /* Connect to the Local Resource Manager */ -# define A_LRM_CONNECT 0x0100000000000000ULL - /* Disconnect from the Local Resource Manager */ -# define A_LRM_DISCONNECT 0x0200000000000000ULL -# define A_LRM_INVOKE 0x0400000000000000ULL -# define A_LRM_EVENT 0x0800000000000000ULL - -/* -- Logging actions -- */ -# define A_LOG 0x1000000000000000ULL -# define A_ERROR 0x2000000000000000ULL -# define A_WARN 0x4000000000000000ULL - -# define O_EXIT (A_SHUTDOWN|A_STOP|A_LRM_DISCONNECT|A_HA_DISCONNECT|A_EXIT_0|A_CIB_STOP) -# define O_RELEASE (A_DC_TIMER_STOP|A_DC_RELEASE|A_PE_STOP|A_TE_STOP|A_DC_RELEASED) -# define O_PE_RESTART (A_PE_START|A_PE_STOP) -# define O_TE_RESTART (A_TE_START|A_TE_STOP) -# define O_CIB_RESTART (A_CIB_START|A_CIB_STOP) -# define O_LRM_RECONNECT (A_LRM_CONNECT|A_LRM_DISCONNECT) -# define O_DC_TIMER_RESTART (A_DC_TIMER_STOP|A_DC_TIMER_START) -/*====================================== - * - * "register" contents - * - * Things we may want to remember regardless of which state we are in. - * - * These also count as inputs for synthesizing I_* - * - *======================================*/ -# define R_THE_DC 0x00000001ULL - /* Are we the DC? */ -# define R_STARTING 0x00000002ULL - /* Are we starting up? */ -# define R_SHUTDOWN 0x00000004ULL - /* Are we trying to shut down? */ -# define R_STAYDOWN 0x00000008ULL - /* Should we restart? */ - -# define R_JOIN_OK 0x00000010ULL /* Have we completed the join process */ -# define R_READ_CONFIG 0x00000040ULL -# define R_INVOKE_PE 0x00000080ULL - /* Does the PE needed to be invoked at - the next appropriate point? */ - -# define R_CIB_CONNECTED 0x00000100ULL - /* Is the CIB connected? */ -# define R_PE_CONNECTED 0x00000200ULL - /* Is the Policy Engine connected? */ -# define R_TE_CONNECTED 0x00000400ULL - /* Is the Transition Engine connected? */ -# define R_LRM_CONNECTED 0x00000800ULL - /* Is the Local Resource Manager - connected? */ - -# define R_CIB_REQUIRED 0x00001000ULL - /* Is the CIB required? */ -# define R_PE_REQUIRED 0x00002000ULL - /* Is the Policy Engine required? */ -# define R_TE_REQUIRED 0x00004000ULL - /* Is the Transition Engine required? */ -# define R_ST_REQUIRED 0x00008000ULL - /* Is the Stonith daemon required? */ - -# define R_CIB_DONE 0x00010000ULL - /* Have we calculated the CIB? */ -# define R_HAVE_CIB 0x00020000ULL /* Do we have an up-to-date CIB */ -# define R_CIB_ASKED 0x00040000ULL /* Have we asked for an up-to-date CIB */ - -# define R_MEMBERSHIP 0x00100000ULL /* Have we got cluster layer data yet */ -# define R_PEER_DATA 0x00200000ULL /* Have we got T_CL_STATUS data yet */ - -# define R_HA_DISCONNECTED 0x00400000ULL /* did we sign out of our own accord */ - -# define R_REQ_PEND 0x01000000ULL - /* Are there Requests waiting for - processing? */ -# define R_PE_PEND 0x02000000ULL - /* Has the PE been invoked and we're - awaiting a reply? */ -# define R_TE_PEND 0x04000000ULL - /* Has the TE been invoked and we're - awaiting completion? */ -# define R_RESP_PEND 0x08000000ULL - /* Do we have clients waiting on a - response? if so perhaps we shouldn't - stop yet */ - -# define R_IN_TRANSITION 0x10000000ULL - /* */ -# define R_SENT_RSC_STOP 0x20000000ULL /* Have we sent a stop action to all - * resources in preparation for - * shutting down */ - -# define R_IN_RECOVERY 0x80000000ULL - -/* - * Magic RC used within CRMd to indicate direct nacks - * (operation is invalid in current state) - */ -#define CRM_DIRECT_NACK_RC (99) - -enum crmd_fsa_cause { - C_UNKNOWN = 0, - C_STARTUP, - C_IPC_MESSAGE, - C_HA_MESSAGE, - C_CRMD_STATUS_CALLBACK, - C_LRM_OP_CALLBACK, - C_TIMER_POPPED, - C_SHUTDOWN, - C_FSA_INTERNAL, -}; - -extern const char *fsa_input2string(enum crmd_fsa_input input); -extern const char *fsa_state2string(enum crmd_fsa_state state); -extern const char *fsa_cause2string(enum crmd_fsa_cause cause); -extern const char *fsa_action2string(long long action); - -#endif diff --git a/crmd/fsa_proto.h b/crmd/fsa_proto.h deleted file mode 100644 index b905cc49982..00000000000 --- a/crmd/fsa_proto.h +++ /dev/null @@ -1,307 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef XML_FSA_PROTO__H -# define XML_FSA_PROTO__H - -extern xmlNode *do_lrm_query(gboolean, const char *node_name); - -/* A_READCONFIG */ -void - -do_read_config(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input current_input, fsa_data_t * msg_data); - -/* A_PE_INVOKE */ -void - -do_pe_invoke(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input current_input, fsa_data_t * msg_data); - -/* A_ERROR */ -void - -do_error(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_LOG */ -void - -do_log(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_STARTUP */ -void - -do_startup(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_CIB_START, STOP, RESTART */ -void - -do_cib_control(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_HA_CONNECT */ -void - -do_ha_control(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_LRM_CONNECT */ -void - -do_lrm_control(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_PE_START, STOP, RESTART */ -void - -do_pe_control(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_TE_START, STOP, RESTART */ -void - -do_te_control(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_STARTED */ -void - -do_started(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_MSG_ROUTE */ -void - -do_msg_route(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_RECOVER */ -void - -do_recover(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_ELECTION_VOTE */ -void - -do_election_vote(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_ELECTION_COUNT */ -void - -do_election_count_vote(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_ELECTION_CHECK */ -void - -do_election_check(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_DC_TIMER_STOP */ -void - -do_timer_control(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_DC_TAKEOVER */ -void - -do_dc_takeover(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_DC_RELEASE */ -void - -do_dc_release(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_DC_JOIN_OFFER_ALL */ -void - -do_dc_join_offer_all(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_DC_JOIN_OFFER_ONE */ -void - -do_dc_join_offer_one(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_DC_JOIN_ACK */ -void - -do_dc_join_ack(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_DC_JOIN_REQ */ -void - -do_dc_join_filter_offer(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_DC_JOIN_FINALIZE */ -void - -do_dc_join_finalize(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_CL_JOIN_QUERY */ -/* is there a DC out there? */ -void - -do_cl_join_query(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input current_input, fsa_data_t * msg_data); - -/* A_CL_JOIN_ANNOUNCE */ -void - -do_cl_join_announce(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input current_input, fsa_data_t * msg_data); - -/* A_CL_JOIN_REQUEST */ -void - -do_cl_join_offer_respond(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input current_input, fsa_data_t * msg_data); - -/* A_CL_JOIN_RESULT */ -void - -do_cl_join_finalize_respond(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input current_input, fsa_data_t * msg_data); - -/* A_UPDATE_NODESTATUS */ -void - -do_update_node_status(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_LRM_INVOKE */ -void - -do_lrm_invoke(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_LRM_EVENT */ -void - -do_lrm_event(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_TE_INVOKE, A_TE_CANCEL */ -void - -do_te_invoke(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_TE_INVOKE */ -void - -do_te_copyto(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_SHUTDOWN_REQ */ -void - -do_shutdown_req(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_SHUTDOWN */ -void - -do_shutdown(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_STOP */ -void - -do_stop(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -/* A_EXIT_0, A_EXIT_1 */ -void - -do_exit(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data); - -void - -do_dc_join_final(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, - enum crmd_fsa_input current_input, fsa_data_t * msg_data); - -#endif diff --git a/crmd/membership.h b/crmd/membership.h deleted file mode 100644 index dabc0819d11..00000000000 --- a/crmd/membership.h +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void post_cache_update(int instance); - -extern gboolean check_join_state(enum crmd_fsa_state cur_state, const char *source); - -#define proc_flags (crm_proc_crmd | crm_get_cluster_proc()) diff --git a/crmd/misc.c b/crmd/misc.c deleted file mode 100644 index eaa4398b9dc..00000000000 --- a/crmd/misc.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include - -#include -#include -#include -#include - -#include -#include - -/* A_LOG, A_WARN, A_ERROR */ -void -do_log(long long action, - enum crmd_fsa_cause cause, - enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) -{ - unsigned log_type = LOG_TRACE; - - if (action & A_LOG) { - log_type = LOG_INFO; - } else if (action & A_WARN) { - log_type = LOG_WARNING; - } else if (action & A_ERROR) { - log_type = LOG_ERR; - } - - do_crm_log(log_type, "Input %s received in state %s from %s", - fsa_input2string(msg_data->fsa_input), - fsa_state2string(cur_state), msg_data->origin); - - if (msg_data->data_type == fsa_dt_ha_msg) { - ha_msg_input_t *input = fsa_typed_data(msg_data->data_type); - - crm_log_xml_debug(input->msg, __FUNCTION__); - - } else if (msg_data->data_type == fsa_dt_xml) { - xmlNode *input = fsa_typed_data(msg_data->data_type); - - crm_log_xml_debug(input, __FUNCTION__); - - } else if (msg_data->data_type == fsa_dt_lrm) { - lrmd_event_data_t *input = fsa_typed_data(msg_data->data_type); - - do_crm_log(log_type, - "Resource %s: Call ID %d returned %d (%d)." - " New status if rc=0: %s", - input->rsc_id, input->call_id, input->rc, - input->op_status, (char *)input->user_data); - } -} diff --git a/crmd/te_callbacks.h b/crmd/te_callbacks.h deleted file mode 100644 index 8c13f327852..00000000000 --- a/crmd/te_callbacks.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef TE_CALLBACKS__H -# define TE_CALLBACKS__H - -extern void cib_fencing_updated(xmlNode * msg, int call_id, int rc, - xmlNode * output, void *user_data); - -extern void cib_action_updated(xmlNode * msg, int call_id, int rc, - xmlNode * output, void *user_data); - -extern gboolean action_timer_callback(gpointer data); - -extern gboolean te_graph_trigger(gpointer user_data); - -extern void te_update_diff(const char *event, xmlNode * msg); - -extern void tengine_stonith_callback(stonith_t * stonith, stonith_callback_data_t * data); - -void update_stonith_max_attempts(const char* value); - -#endif diff --git a/cts/CM_common.py b/cts/CM_common.py index 807701d154e..648a02268a4 100755 --- a/cts/CM_common.py +++ b/cts/CM_common.py @@ -303,35 +303,35 @@ def Components(self): "(ERROR|error): crm_log_message_adv:", "(ERROR|error): MSG: No message to dump", "pending LRM operations at shutdown", - "Lost connection to the CIB service", + "Lost connection to the CIB manager", "Connection to the CIB terminated...", - "Sending message to CIB service FAILED", + "Sending message to the CIB manager FAILED", "Action A_RECOVER .* not supported", "(ERROR|error): stonithd_op_result_ready: not signed on", "pingd.*(ERROR|error): send_update: Could not send update", "send_ipc_message: IPC Channel to .* is not connected", "unconfirmed_actions: Waiting on .* unconfirmed actions", "cib_native_msgready: Message pending on command channel", - r": Performing A_EXIT_1 - forcefully exiting the CRMd", + r": Performing A_EXIT_1 - forcefully exiting ", r"Resource .* was active at shutdown. You may ignore this error if it is unmanaged.", ] stonith_ignore = [ r"Updating failcount for child_DoFencing", r"(ERROR|error).*: Sign-in failed: triggered a retry", - "lrmd.*(ERROR|error): stonithd_receive_ops_result failed.", + "pacemaker-execd.*(ERROR|error): stonithd_receive_ops_result failed.", ] stonith_ignore.extend(common_ignore) ccm = Process(self, "ccm", triggersreboot=self.fastfail, pats = [ "State transition .* S_RECOVERY", - "crmd.*Action A_RECOVER .* not supported", - r"crmd.*: Input I_TERMINATE .*from do_recover", - r"crmd.*: Could not recover from internal error", - "crmd.*I_ERROR.*crmd_cib_connection_destroy", + "pacemaker-controld.*Action A_RECOVER .* not supported", + r"pacemaker-controld.*: Input I_TERMINATE .*from do_recover", + r"pacemaker-controld.*: Could not recover from internal error", + "pacemaker-controld.*I_ERROR.*crmd_cib_connection_destroy", # these status numbers are likely wrong now - r"crmd.*exited with status 2", + r"pacemaker-controld.*exited with status 2", r"attrd.*exited with status 1", r"cib.*exited with status 2", @@ -347,30 +347,31 @@ def Components(self): "State transition S_STARTING -> S_PENDING", ], badnews_ignore = common_ignore) - cib = Process(self, "cib", triggersreboot=self.fastfail, pats = [ + based = Process(self, "pacemaker-based", triggersreboot=self.fastfail, pats = [ "State transition .* S_RECOVERY", - "Lost connection to the CIB service", - "Connection to the CIB terminated...", - r"crmd.*: Input I_TERMINATE .*from do_recover", - "crmd.*I_ERROR.*crmd_cib_connection_destroy", - r"crmd.*: Could not recover from internal error", + "Lost connection to the CIB manager", + "Connection to the CIB manager terminated", + r"pacemaker-controld.*: Input I_TERMINATE .*from do_recover", + "pacemaker-controld.*I_ERROR.*crmd_cib_connection_destroy", + r"pacemaker-controld.*: Could not recover from internal error", # these status numbers are likely wrong now - r"crmd.*exited with status 2", + r"pacemaker-controld.*exited with status 2", r"attrd.*exited with status 1", ], badnews_ignore = common_ignore) - lrmd = Process(self, "lrmd", triggersreboot=self.fastfail, pats = [ + execd = Process(self, "pacemaker-execd", triggersreboot=self.fastfail, pats = [ "State transition .* S_RECOVERY", "LRM Connection failed", - "crmd.*I_ERROR.*lrm_connection_destroy", + "pacemaker-controld.*I_ERROR.*lrm_connection_destroy", "State transition S_STARTING -> S_PENDING", - r"crmd.*: Input I_TERMINATE .*from do_recover", - r"crmd.*: Could not recover from internal error", + r"pacemaker-controld.*: Input I_TERMINATE .*from do_recover", + r"pacemaker-controld.*: Could not recover from internal error", # this status number is likely wrong now - r"crmd.*exited with status 2", + r"pacemaker-controld.*exited with status 2", ], badnews_ignore = common_ignore) - crmd = Process(self, "crmd", triggersreboot=self.fastfail, pats = [ + controld = Process(self, "pacemaker-controld", triggersreboot=self.fastfail, + pats = [ # "WARN: determine_online_status: Node .* is unclean", # "Scheduling Node .* for STONITH", # "Executing .* fencing operation", @@ -379,19 +380,19 @@ def Components(self): "State transition S_STARTING -> S_PENDING", ], badnews_ignore = common_ignore) - pengine = Process(self, "pengine", triggersreboot=self.fastfail, pats = [ + schedulerd = Process(self, "pacemaker-schedulerd", triggersreboot=self.fastfail, pats = [ "State transition .* S_RECOVERY", - r"crmd.*: Input I_TERMINATE .*from do_recover", - r"crmd.*: Could not recover from internal error", - r"crmd.*CRIT.*: Connection to the Policy Engine failed", - "crmd.*I_ERROR.*save_cib_contents", + r"pacemaker-controld.*: Input I_TERMINATE .*from do_recover", + r"pacemaker-controld.*: Could not recover from internal error", + r"pacemaker-controld.*CRIT.*: Connection to the scheduler failed", + "pacemaker-controld.*I_ERROR.*save_cib_contents", # this status number is likely wrong now - r"crmd.*exited with status 2", + r"pacemaker-controld.*exited with status 2", ], badnews_ignore = common_ignore, dc_only=1) if self.Env["DoFencing"] == 1 : complist.append(Process(self, "stoniths", triggersreboot=self.fastfail, dc_pats = [ - r"crmd.*CRIT.*: Fencing daemon connection failed", + r"pacemaker-controld.*CRIT.*: Fencing daemon connection failed", "Attempting connection to fencing daemon", ], badnews_ignore = stonith_ignore)) @@ -399,24 +400,23 @@ def Components(self): ccm.pats.extend([ # these status numbers are likely wrong now r"attrd.*exited with status 1", - r"cib.*exited with status 2", - r"crmd.*exited with status 2", + r"pacemaker-(based|controld).*exited with status 2", ]) - cib.pats.extend([ + based.pats.extend([ # these status numbers are likely wrong now r"attrd.*exited with status 1", - r"crmd.*exited with status 2", + r"pacemaker-controld.*exited with status 2", ]) - lrmd.pats.extend([ + execd.pats.extend([ # these status numbers are likely wrong now - r"crmd.*exited with status 2", + r"pacemaker-controld.*exited with status 2", ]) complist.append(ccm) - complist.append(cib) - complist.append(lrmd) - complist.append(crmd) - complist.append(pengine) + complist.append(based) + complist.append(execd) + complist.append(controld) + complist.append(schedulerd) return complist diff --git a/cts/CM_corosync.py b/cts/CM_corosync.py index 959b7932e38..4c5a21c286a 100644 --- a/cts/CM_corosync.py +++ b/cts/CM_corosync.py @@ -1,5 +1,5 @@ -''' Corosync-specific class for Pacemaker's Cluster Test Suite (CTS) -''' +""" Corosync-specific class for Pacemaker's Cluster Test Suite (CTS) +""" # Pacemaker targets compatibility with Python 2.7 and 3.2+ from __future__ import print_function, unicode_literals, absolute_import, division @@ -26,25 +26,18 @@ def __init__(self, Environment, randseed=None, name=None): def Components(self): complist = [] if not len(list(self.fullcomplist.keys())): - for c in ["cib", "lrmd", "crmd", "attrd" ]: + for c in [ "pacemaker-based", "pacemaker-controld", "pacemaker-attrd", "pacemaker-execd", "pacemaker-fenced" ]: self.fullcomplist[c] = Process( self, c, pats = self.templates.get_component(self.name, c), badnews_ignore = self.templates.get_component(self.name, "%s-ignore" % c), common_ignore = self.templates.get_component(self.name, "common-ignore")) - # pengine uses dc_pats instead of pats - self.fullcomplist["pengine"] = Process( - self, "pengine", - dc_pats = self.templates.get_component(self.name, "pengine"), - badnews_ignore = self.templates.get_component(self.name, "pengine-ignore"), - common_ignore = self.templates.get_component(self.name, "common-ignore")) - - # stonith-ng's process name is different from its component name - self.fullcomplist["stonith-ng"] = Process( - self, "stonith-ng", process="stonithd", - pats = self.templates.get_component(self.name, "stonith"), - badnews_ignore = self.templates.get_component(self.name, "stonith-ignore"), + # the scheduler uses dc_pats instead of pats + self.fullcomplist["pacemaker-schedulerd"] = Process( + self, "pacemaker-schedulerd", + dc_pats = self.templates.get_component(self.name, "pacemaker-schedulerd"), + badnews_ignore = self.templates.get_component(self.name, "pacemaker-schedulerd-ignore"), common_ignore = self.templates.get_component(self.name, "common-ignore")) # add (or replace) extra components @@ -63,7 +56,7 @@ def Components(self): if key in vgrind: self.log("Filtering %s from the component list as it is being profiled by valgrind" % key) continue - if key == "stonith-ng" and not self.Env["DoFencing"]: + if key == "pacemaker-fenced" and not self.Env["DoFencing"]: continue complist.append(self.fullcomplist[key]) diff --git a/cts/CTSaudits.py b/cts/CTSaudits.py index 5880648f8ea..aa18d64813e 100755 --- a/cts/CTSaudits.py +++ b/cts/CTSaudits.py @@ -1,26 +1,11 @@ -'''CTS: Cluster Testing System: Audit module - ''' -from __future__ import absolute_import - -__copyright__ = ''' -Copyright (C) 2000, 2001,2005 Alan Robertson -Licensed under the GNU GPL. -''' - -# -# This program 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. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +""" Auditing classes for Pacemaker's Cluster Test Suite (CTS) +""" + +# Pacemaker targets compatibility with Python 2.7 and 3.2+ +from __future__ import print_function, unicode_literals, absolute_import, division + +__copyright__ = "Copyright 2000-2018 Alan Robertson " +__license__ = "GNU General Public License version 2 or later (GPLv2+) WITHOUT ANY WARRANTY" import time, re, uuid from cts.watcher import LogWatcher @@ -534,7 +519,7 @@ def __call__(self): return rc -class CrmdStateAudit(ClusterAudit): +class ControllerStateAudit(ClusterAudit): def __init__(self, cm): self.CM = cm self.Stats = {"calls":0 @@ -593,7 +578,7 @@ def __call__(self): return passed def name(self): - return "CrmdStateAudit" + return "ControllerStateAudit" def is_applicable(self): # @TODO Due to long-ago refactoring, this name test would never match, @@ -863,7 +848,7 @@ def is_applicable(self): AllAuditClasses.append(DiskAudit) AllAuditClasses.append(FileAudit) AllAuditClasses.append(LogAudit) -AllAuditClasses.append(CrmdStateAudit) +AllAuditClasses.append(ControllerStateAudit) AllAuditClasses.append(PartitionAudit) AllAuditClasses.append(PrimitiveAudit) AllAuditClasses.append(GroupAudit) diff --git a/cts/CTStests.py b/cts/CTStests.py index aed0856eb90..fca2fc6d710 100644 --- a/cts/CTStests.py +++ b/cts/CTStests.py @@ -480,7 +480,7 @@ def __call__(self, node): self.debug("Waiting for the cluster to recover") self.CM.cluster_stable() - self.debug("Waiting STONITHd node to come back up") + self.debug("Waiting for fenced node to come back up") self.CM.ns.WaitForAllNodesToComeUp(self.Env["nodes"], 600) self.logger.log("Fencing command on %s failed to fence %s (rc=%d)" % (origin, node, rc)) @@ -499,7 +499,7 @@ def __call__(self, node): self.debug("Waiting for the cluster to recover") self.CM.cluster_stable() - self.debug("Waiting STONITHd node to come back up") + self.debug("Waiting for fenced node to come back up") self.CM.ns.WaitForAllNodesToComeUp(self.Env["nodes"], 600) self.debug("Waiting for the cluster to re-stabilize with all nodes") @@ -713,7 +713,7 @@ def __call__(self, node): # FIXME! This should use the CM class to get the pattern # then it would be applicable in general watchpats = [] - watchpats.append("crmd.*Connecting to cluster infrastructure") + watchpats.append("pacemaker-controld.*Connecting to cluster infrastructure") watch = self.create_watch(watchpats, self.Env["DeadTime"]+10) watch.setwatch() @@ -902,8 +902,8 @@ def __call__(self, node): def errorstoignore(self): '''Return list of errors which should be ignored''' return [ - r"cib.*: \*\*\*\*\*\*\*\*\*\*\*\*\*", - r"cib.*: .* avoid confusing Valgrind", + r"pacemaker-based.*: \*\*\*\*\*\*\*\*\*\*\*\*\*", + r"pacemaker-based.*: .* avoid confusing Valgrind", r"HA_VALGRIND_ENABLED", ] @@ -1087,7 +1087,7 @@ def toggleMaintenanceMode(self, node, action): # fail the resource right after turning Maintenance mode on # verify it is not recovered until maintenance mode is turned off if action == "On": - pats.append(r"pengine.*:\s+warning:.*Processing failed op %s for %s on" % (self.action, self.rid)) + pats.append(r"schedulerd.*:\s+warning:.*Processing failed op %s for %s on" % (self.action, self.rid)) else: pats.append(self.templates["Pat:RscOpOK"] % ("stop", self.rid)) pats.append(self.templates["Pat:RscOpOK"] % ("start", self.rid)) @@ -1236,9 +1236,8 @@ def errorstoignore(self): '''Return list of errors which should be ignored''' return [ r"Updating failcount for %s" % self.rid, - r"pengine.*: Recover %s\s*\(.*\)" % self.rid, + r"schedulerd.*: Recover %s\s*\(.*\)" % self.rid, r"Unknown operation: fail", - r"(ERROR|error): sending stonithRA op to stonithd failed.", self.templates["Pat:RscOpOK"] % (self.action, self.rid), r"(ERROR|error).*: Action %s_%s_%d .* initiated outside of a transition" % (self.rid, self.action, self.interval), ] @@ -1296,7 +1295,7 @@ def __call__(self, node): self.debug("Shooting %s aka. %s" % (rsc.clone_id, rsc.id)) pats = [] - pats.append(r"pengine.*:\s+warning:.*Processing failed op %s for (%s|%s) on" % (self.action, + pats.append(r"schedulerd.*:\s+warning:.*Processing failed op %s for (%s|%s) on" % (self.action, rsc.id, rsc.clone_id)) if rsc.managed(): @@ -1337,9 +1336,8 @@ def errorstoignore(self): '''Return list of errors which should be ignored''' return [ r"Updating failcount for %s" % self.rid, - r"pengine.*: Recover (%s|%s)\s*\(.*\)" % (self.rid, self.rid_alt), + r"schedulerd.*: Recover (%s|%s)\s*\(.*\)" % (self.rid, self.rid_alt), r"Unknown operation: fail", - r"(ERROR|error): sending stonithRA op to stonithd failed.", self.templates["Pat:RscOpOK"] % (self.action, self.rid), r"(ERROR|error).*: Action %s_%s_%d .* initiated outside of a transition" % (self.rid, self.action, self.interval), ] @@ -1391,7 +1389,7 @@ def __call__(self, node): if node_is_dc: self.patterns.extend(chosen.dc_pats) - if chosen.name == "stonith": + if chosen.name == "pacemaker-fenced": # Ignore actions for STONITH resources (rc, lines) = self.rsh(node, "crm_resource -c", None) for line in lines: @@ -1422,7 +1420,7 @@ def __call__(self, node): self.debug("Waiting for the cluster to recover") self.CM.cluster_stable() - self.debug("Waiting for any STONITHd node to come back up") + self.debug("Waiting for any fenced node to come back up") self.CM.ns.WaitForAllNodesToComeUp(self.Env["nodes"], 600) self.debug("Waiting for the cluster to re-stabilize with all nodes") @@ -1632,7 +1630,7 @@ def errorstoignore(self): return [ r"Another DC detected:", r"(ERROR|error).*: .*Application of an update diff failed", - r"crmd.*:.*not in our membership list", + r"pacemaker-controld.*:.*not in our membership list", r"CRIT:.*node.*returning after partition", ] @@ -1711,8 +1709,8 @@ def __call__(self, node): self.incr("calls") pats = [] - # Conveniently, pengine will display this message when disabling management, - # even if fencing is not enabled, so we can rely on it. + # Conveniently, the scheduler will display this message when disabling + # management, even if fencing is not enabled, so we can rely on it. managed = self.create_watch(["Delaying fencing operations"], 60) managed.setwatch() @@ -2234,7 +2232,7 @@ def __call__(self, node): self.resource_offset = self.resource_offset + 1 r_id = "bsc-rsc-%s-%d" % (node, self.resource_offset) - start_pat = "crmd.*%s_start_0.*confirmed.*ok" + start_pat = "pacemaker-controld.*%s_start_0.*confirmed.*ok" patterns = [] patterns.append(start_pat % r_id) @@ -2569,16 +2567,15 @@ def errorstoignore(self): '''Return list of errors which should be ignored''' return [ r"Updating failcount for ping", - r"pengine.*: Recover (ping|lxc-ms|container)\s*\(.*\)", + r"schedulerd.*: Recover (ping|lxc-ms|container)\s*\(.*\)", # The orphaned lxc-ms resource causes an expected transition error - # that is a result of the pengine not having knowledge that the - # ms resource used to be a clone. As a result it looks like that + # that is a result of the scheduler not having knowledge that the + # promotable resource used to be a clone. As a result, it looks like that # resource is running in multiple locations when it shouldn't... But in # this instance we know why this error is occurring and that it is expected. r"Calculated [Tt]ransition .*pe-error", r"Resource lxc-ms .* is active on 2 nodes attempting recovery", r"Unknown operation: fail", - r"(ERROR|error): sending stonithRA op to stonithd failed.", r"VirtualDomain.*ERROR: Unable to determine emulator", ] @@ -2708,7 +2705,7 @@ def kill_pcmk_remote(self, node): # We kill the process to prevent a graceful stop, # then stop it to prevent the OS from restarting it. - self.rsh(node, "killall -9 pacemaker_remoted") + self.rsh(node, "killall -9 pacemaker-remoted") self.stop_pcmk_remote(node) def start_metal(self, node): @@ -2964,7 +2961,7 @@ def is_applicable(self): return False for node in self.Env["nodes"]: - rc = self.rsh(node, "type pacemaker_remoted >/dev/null 2>&1") + rc = self.rsh(node, "which pacemaker-remoted >/dev/null 2>&1") if rc != 0: return False return True @@ -3046,9 +3043,9 @@ def errorstoignore(self): ignore_pats = [ r"Lost connection to Pacemaker Remote node", r"Software caused connection abort", - r"crmd.*:\s+error.*: Operation remote-.*_monitor", - r"crmd.*:\s+error.*: Result of monitor operation for remote-.*", - r"pengine.*:\s+Recover remote-.*\s*\(.*\)", + r"pacemaker-controld.*:\s+error.*: Operation remote-.*_monitor", + r"pacemaker-controld.*:\s+error.*: Result of monitor operation for remote-.*", + r"schedulerd.*:\s+Recover remote-.*\s*\(.*\)", r"Calculated [Tt]ransition .*pe-error", r"error.*: Resource .*ocf::.* is active on 2 nodes attempting recovery", ] @@ -3105,7 +3102,7 @@ def __call__(self, node): def errorstoignore(self): ignore_pats = [ - r"pengine.*: Recover remote-rsc\s*\(.*\)", + r"schedulerd.*: Recover remote-rsc\s*\(.*\)", r"Dummy.*: No process state file found", ] diff --git a/cts/Makefile.am b/cts/Makefile.am index 8243fa59d30..f04de24061e 100644 --- a/cts/Makefile.am +++ b/cts/Makefile.am @@ -16,8 +16,8 @@ EXTRA_DIST = $(cts_SCRIPTS) $(cts_DATA) # and command-specific test data should be in a command-specific subdirectory. # testdir = $(datadir)/$(PACKAGE)/tests -test_SCRIPTS = cts-coverage cts-regression cts-cli cts-lrmd cts-pengine \ - cts-stonithd +test_SCRIPTS = cts-coverage cts-regression cts-cli cts-exec cts-scheduler \ + cts-fencing test_DATA = README.md valgrind-pcmk.suppressions ctslibdir = $(pythondir)/cts @@ -56,25 +56,25 @@ clidir = $(testdir)/cli cli_DATA = cli/regression.dates.exp cli/regression.tools.exp \ cli/regression.acls.exp cli/regression.validity.exp -PE_TESTS = $(wildcard pengine/*.scores) -pedir = $(testdir)/pengine +PE_TESTS = $(wildcard scheduler/*.scores) +pedir = $(testdir)/scheduler pe_DATA = $(PE_TESTS) \ $(PE_TESTS:%.scores=%.xml) \ $(PE_TESTS:%.scores=%.exp) \ $(PE_TESTS:%.scores=%.dot) \ $(PE_TESTS:%.scores=%.summary) \ - $(wildcard pengine/*.stderr) + $(wildcard scheduler/*.stderr) -# For "make check", run a single pengine test -TESTS = pengine/bug-rh-1097457.xml +# For "make check", run a single scheduler test +TESTS = scheduler/bug-rh-1097457.xml TEST_EXTENSIONS = .xml -XML_LOG_COMPILER = ./cts-pengine +XML_LOG_COMPILER = ./cts-scheduler AM_XML_LOG_FLAGS = -V --run -pe-list: - echo $(shell ls -1 pengine/*.xml) +scheduler-list: + echo $(shell ls -1 scheduler/*.xml) clean-local: - rm -f pengine/*.pe.* + rm -f scheduler/*.pe.* SUBDIRS = benchmark diff --git a/cts/README.md b/cts/README.md index c6eba68f3fc..3f603c24f44 100644 --- a/cts/README.md +++ b/cts/README.md @@ -126,7 +126,7 @@ Valgrind is a program for detecting memory management problems (such as use-after-free errors). If you have valgrind installed, you can enable it by setting the following environment variables on all cluster nodes: - PCMK_valgrind_enabled=attrd,cib,crmd,lrmd,pengine,stonith-ng + PCMK_valgrind_enabled=pacemaker-attrd,pacemaker-controld,pacemaker-execd,pacemaker-fenced,cib,pacemaker-schedulerd VALGRIND_OPTS="--leak-check=full --trace-children=no --num-callers=25 --log-file=/var/lib/pacemaker/valgrind-%p --suppressions=/usr/share/pacemaker/tests/valgrind-pcmk.suppressions @@ -134,7 +134,7 @@ setting the following environment variables on all cluster nodes: and running CTS with these options: - --valgrind-tests --valgrind-procs="attrd cib crmd lrmd pengine stonith-ng" + --valgrind-tests --valgrind-procs="pacemaker-attrd pacemaker-controld pacemaker-execd cib pacemaker-schedulerd pacemaker-fenced" These options should only be set while specifically testing memory management, because they may slow down the cluster significantly, and they will disable @@ -176,11 +176,11 @@ variables may be set differently on different nodes. ### Remote node testing -If the pacemaker_remoted daemon is installed on all cluster nodes, CTS will +If the pacemaker-remoted daemon is installed on all cluster nodes, CTS will enable remote node tests. The remote node tests choose a random node, stop the cluster on it, start -pacemaker_remote on it, and add an ocf:pacemaker:remote resource to turn it +pacemaker-remoted on it, and add an ocf:pacemaker:remote resource to turn it into a remote node. When the test is done, CTS will turn the node back into a cluster node. @@ -201,14 +201,14 @@ to the hostnames. Example: When running the remote node tests, the pacemaker components on the cluster nodes can be run under valgrind as described in the "Memory testing" section. -However, pacemaker_remote cannot be run under valgrind that way, because it is +However, pacemaker-remoted cannot be run under valgrind that way, because it is started by the OS's regular boot system and not by pacemaker. Details vary by system, but the goal is to set the VALGRIND_OPTS environment -variable and then start pacemaker_remoted by prefixing it with the path to +variable and then start pacemaker-remoted by prefixing it with the path to valgrind. -The init script and systemd service file provided with pacemaker_remote will +The init script and systemd service file provided with pacemaker-remoted will load the pacemaker environment variables from the same location used by other pacemaker components, so VALGRIND_OPTS will be set correctly if using one of those. @@ -220,7 +220,7 @@ valgrind. For example: cat >/etc/systemd/system/pacemaker_remote.service.d/valgrind.conf <): Permission denied =#=#=#= End test: niceguy: Set enable-acl - Insufficient privileges (4) =#=#=#= * Passed: crm_attribute - niceguy: Set enable-acl =#=#=#= Begin test: niceguy: Set stonith-enabled =#=#=#= -__xml_acl_post_process: Creation of nvpair=cib-bootstrap-options-stonith-enabled is allowed +__xml_acl_post_process trace: Creation of nvpair=cib-bootstrap-options-stonith-enabled is allowed =#=#=#= Current cib after: niceguy: Set stonith-enabled =#=#=#= @@ -376,8 +376,8 @@ __xml_acl_post_process: Creation of nvpair=cib-bootstrap-options-stonith-enabled =#=#=#= End test: niceguy: Set stonith-enabled - OK (0) =#=#=#= * Passed: crm_attribute - niceguy: Set stonith-enabled =#=#=#= Begin test: niceguy: Create a resource =#=#=#= -__xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy']: default -__xml_acl_post_process: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy'] +__xml_acl_check trace: 400 access denied to /cib/configuration/resources/primitive[@id='dummy']: default +__xml_acl_post_process trace: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy'] Call failed: Permission denied =#=#=#= End test: niceguy: Create a resource - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Create a resource @@ -533,10 +533,10 @@ Error performing operation: Permission denied =#=#=#= End test: l33t-haxor: Remove a resource meta attribute - Insufficient privileges (4) =#=#=#= * Passed: crm_resource - l33t-haxor: Remove a resource meta attribute =#=#=#= Begin test: niceguy: Create a resource meta attribute =#=#=#= -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity -__xml_acl_post_process: Creation of nvpair=dummy-meta_attributes-target-role is allowed +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity +__xml_acl_post_process trace: Creation of nvpair=dummy-meta_attributes-target-role is allowed Set 'dummy' option: id=dummy-meta_attributes-target-role set=dummy-meta_attributes name=target-role=Stopped =#=#=#= Current cib after: niceguy: Create a resource meta attribute =#=#=#= @@ -591,9 +591,9 @@ Set 'dummy' option: id=dummy-meta_attributes-target-role set=dummy-meta_attribut =#=#=#= End test: niceguy: Create a resource meta attribute - OK (0) =#=#=#= * Passed: crm_resource - niceguy: Create a resource meta attribute =#=#=#= Begin test: niceguy: Query a resource meta attribute =#=#=#= -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Stopped =#=#=#= Current cib after: niceguy: Query a resource meta attribute =#=#=#= @@ -647,9 +647,9 @@ Stopped =#=#=#= End test: niceguy: Query a resource meta attribute - OK (0) =#=#=#= * Passed: crm_resource - niceguy: Query a resource meta attribute =#=#=#= Begin test: niceguy: Remove a resource meta attribute =#=#=#= -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Deleted 'dummy' option: id=dummy-meta_attributes-target-role name=target-role =#=#=#= Current cib after: niceguy: Remove a resource meta attribute =#=#=#= @@ -701,10 +701,10 @@ Deleted 'dummy' option: id=dummy-meta_attributes-target-role name=target-role =#=#=#= End test: niceguy: Remove a resource meta attribute - OK (0) =#=#=#= * Passed: crm_resource - niceguy: Remove a resource meta attribute =#=#=#= Begin test: niceguy: Create a resource meta attribute =#=#=#= -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity -__xml_acl_post_process: Creation of nvpair=dummy-meta_attributes-target-role is allowed +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity +__xml_acl_post_process trace: Creation of nvpair=dummy-meta_attributes-target-role is allowed Set 'dummy' option: id=dummy-meta_attributes-target-role set=dummy-meta_attributes name=target-role=Started =#=#=#= Current cib after: niceguy: Create a resource meta attribute =#=#=#= @@ -808,8 +808,8 @@ Set 'dummy' option: id=dummy-meta_attributes-target-role set=dummy-meta_attribut =#=#=#= Begin test: niceguy: Replace - remove acls =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/acls: default +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/acls: default Call failed: Permission denied =#=#=#= End test: niceguy: Replace - remove acls - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - remove acls @@ -863,9 +863,9 @@ Call failed: Permission denied =#=#=#= Begin test: niceguy: Replace - create resource =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy2']: default -__xml_acl_post_process: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy2'] +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/resources/primitive[@id='dummy2']: default +__xml_acl_post_process trace: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy2'] Call failed: Permission denied =#=#=#= End test: niceguy: Replace - create resource - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - create resource @@ -918,8 +918,8 @@ Call failed: Permission denied =#=#=#= Begin test: niceguy: Replace - modify attribute (deny) =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl'][@value]: default +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl'][@value]: default Call failed: Permission denied =#=#=#= End test: niceguy: Replace - modify attribute (deny) - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - modify attribute (deny) @@ -972,8 +972,8 @@ Call failed: Permission denied =#=#=#= Begin test: niceguy: Replace - delete attribute (deny) =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl']: default +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl']: default Call failed: Permission denied =#=#=#= End test: niceguy: Replace - delete attribute (deny) - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - delete attribute (deny) @@ -1026,8 +1026,8 @@ Call failed: Permission denied =#=#=#= Begin test: niceguy: Replace - create attribute (deny) =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy'][@description]: default +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/resources/primitive[@id='dummy'][@description]: default Call failed: Permission denied =#=#=#= End test: niceguy: Replace - create attribute (deny) - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - create attribute (deny) @@ -1184,28 +1184,28 @@ Call failed: Permission denied !#!#!#!#! Upgrading to latest CIB schema and re-testing !#!#!#!#! =#=#=#= Begin test: root: Upgrade to latest CIB schema =#=#=#= -__xml_acl_post_process: Creation of acl_permission=observer-read-1 is allowed -__xml_acl_post_process: Creation of acl_permission=observer-write-1 is allowed -__xml_acl_post_process: Creation of acl_permission=observer-write-2 is allowed -__xml_acl_post_process: Creation of acl_permission=admin-read-1 is allowed -__xml_acl_post_process: Creation of acl_permission=admin-write-1 is allowed -__xml_acl_post_process: Creation of acl_target=l33t-haxor is allowed -__xml_acl_post_process: Creation of role=auto-l33t-haxor is allowed -__xml_acl_post_process: Creation of acl_role=auto-l33t-haxor is allowed -__xml_acl_post_process: Creation of acl_permission=crook-nothing is allowed -__xml_acl_post_process: Creation of acl_target=niceguy is allowed -__xml_acl_post_process: Creation of role=observer is allowed -__xml_acl_post_process: Creation of acl_target=bob is allowed -__xml_acl_post_process: Creation of role=admin is allowed -__xml_acl_post_process: Creation of acl_target=badidea is allowed -__xml_acl_post_process: Creation of role=auto-badidea is allowed -__xml_acl_post_process: Creation of acl_role=auto-badidea is allowed -__xml_acl_post_process: Creation of acl_permission=badidea-resources is allowed -__xml_acl_post_process: Creation of acl_target=betteridea is allowed -__xml_acl_post_process: Creation of role=auto-betteridea is allowed -__xml_acl_post_process: Creation of acl_role=auto-betteridea is allowed -__xml_acl_post_process: Creation of acl_permission=betteridea-nothing is allowed -__xml_acl_post_process: Creation of acl_permission=betteridea-resources is allowed +__xml_acl_post_process trace: Creation of acl_permission=observer-read-1 is allowed +__xml_acl_post_process trace: Creation of acl_permission=observer-write-1 is allowed +__xml_acl_post_process trace: Creation of acl_permission=observer-write-2 is allowed +__xml_acl_post_process trace: Creation of acl_permission=admin-read-1 is allowed +__xml_acl_post_process trace: Creation of acl_permission=admin-write-1 is allowed +__xml_acl_post_process trace: Creation of acl_target=l33t-haxor is allowed +__xml_acl_post_process trace: Creation of role=auto-l33t-haxor is allowed +__xml_acl_post_process trace: Creation of acl_role=auto-l33t-haxor is allowed +__xml_acl_post_process trace: Creation of acl_permission=crook-nothing is allowed +__xml_acl_post_process trace: Creation of acl_target=niceguy is allowed +__xml_acl_post_process trace: Creation of role=observer is allowed +__xml_acl_post_process trace: Creation of acl_target=bob is allowed +__xml_acl_post_process trace: Creation of role=admin is allowed +__xml_acl_post_process trace: Creation of acl_target=badidea is allowed +__xml_acl_post_process trace: Creation of role=auto-badidea is allowed +__xml_acl_post_process trace: Creation of acl_role=auto-badidea is allowed +__xml_acl_post_process trace: Creation of acl_permission=badidea-resources is allowed +__xml_acl_post_process trace: Creation of acl_target=betteridea is allowed +__xml_acl_post_process trace: Creation of role=auto-betteridea is allowed +__xml_acl_post_process trace: Creation of acl_role=auto-betteridea is allowed +__xml_acl_post_process trace: Creation of acl_permission=betteridea-nothing is allowed +__xml_acl_post_process trace: Creation of acl_permission=betteridea-resources is allowed =#=#=#= Current cib after: root: Upgrade to latest CIB schema =#=#=#= @@ -1275,10 +1275,10 @@ Error performing operation: Permission denied =#=#=#= End test: unknownguy: Set stonith-enabled - Insufficient privileges (4) =#=#=#= * Passed: crm_attribute - unknownguy: Set stonith-enabled =#=#=#= Begin test: unknownguy: Create a resource =#=#=#= -__xml_acl_check: Ordinary user unknownguy cannot access the CIB without any defined ACLs -__xml_acl_check: Ordinary user unknownguy cannot access the CIB without any defined ACLs -__xml_acl_check: Ordinary user unknownguy cannot access the CIB without any defined ACLs -__xml_acl_check: Ordinary user unknownguy cannot access the CIB without any defined ACLs +__xml_acl_check trace: Ordinary user unknownguy cannot access the CIB without any defined ACLs +__xml_acl_check trace: Ordinary user unknownguy cannot access the CIB without any defined ACLs +__xml_acl_check trace: Ordinary user unknownguy cannot access the CIB without any defined ACLs +__xml_acl_check trace: Ordinary user unknownguy cannot access the CIB without any defined ACLs Call failed: Permission denied =#=#=#= End test: unknownguy: Create a resource - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - unknownguy: Create a resource @@ -1295,8 +1295,8 @@ Error performing operation: Permission denied =#=#=#= End test: l33t-haxor: Set stonith-enabled - Insufficient privileges (4) =#=#=#= * Passed: crm_attribute - l33t-haxor: Set stonith-enabled =#=#=#= Begin test: l33t-haxor: Create a resource =#=#=#= -__xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy']: parent -__xml_acl_post_process: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy'] +__xml_acl_check trace: 400 access denied to /cib/configuration/resources/primitive[@id='dummy']: parent +__xml_acl_post_process trace: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy'] Call failed: Permission denied =#=#=#= End test: l33t-haxor: Create a resource - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - l33t-haxor: Create a resource @@ -1355,7 +1355,7 @@ Call failed: Permission denied =#=#=#= End test: niceguy: Query configuration - OK (0) =#=#=#= * Passed: cibadmin - niceguy: Query configuration =#=#=#= Begin test: niceguy: Set enable-acl =#=#=#= -__xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl'][@value]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl'][@value]: default Error performing operation: Permission denied Error setting enable-acl=false (section=crm_config, set=): Permission denied =#=#=#= End test: niceguy: Set enable-acl - Insufficient privileges (4) =#=#=#= @@ -1416,8 +1416,8 @@ Error setting enable-acl=false (section=crm_config, set=): Permission deni =#=#=#= End test: niceguy: Set stonith-enabled - OK (0) =#=#=#= * Passed: crm_attribute - niceguy: Set stonith-enabled =#=#=#= Begin test: niceguy: Create a resource =#=#=#= -__xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy']: default -__xml_acl_post_process: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy'] +__xml_acl_check trace: 400 access denied to /cib/configuration/resources/primitive[@id='dummy']: default +__xml_acl_post_process trace: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy'] Call failed: Permission denied =#=#=#= End test: niceguy: Create a resource - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Create a resource @@ -1600,10 +1600,10 @@ Error performing operation: Permission denied =#=#=#= End test: l33t-haxor: Remove a resource meta attribute - Insufficient privileges (4) =#=#=#= * Passed: crm_resource - l33t-haxor: Remove a resource meta attribute =#=#=#= Begin test: niceguy: Create a resource meta attribute =#=#=#= -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity -__xml_acl_post_process: Creation of nvpair=dummy-meta_attributes-target-role is allowed +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity +__xml_acl_post_process trace: Creation of nvpair=dummy-meta_attributes-target-role is allowed Set 'dummy' option: id=dummy-meta_attributes-target-role set=dummy-meta_attributes name=target-role=Stopped =#=#=#= Current cib after: niceguy: Create a resource meta attribute =#=#=#= @@ -1667,9 +1667,9 @@ Set 'dummy' option: id=dummy-meta_attributes-target-role set=dummy-meta_attribut =#=#=#= End test: niceguy: Create a resource meta attribute - OK (0) =#=#=#= * Passed: crm_resource - niceguy: Create a resource meta attribute =#=#=#= Begin test: niceguy: Query a resource meta attribute =#=#=#= -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Stopped =#=#=#= Current cib after: niceguy: Query a resource meta attribute =#=#=#= @@ -1732,9 +1732,9 @@ Stopped =#=#=#= End test: niceguy: Query a resource meta attribute - OK (0) =#=#=#= * Passed: crm_resource - niceguy: Query a resource meta attribute =#=#=#= Begin test: niceguy: Remove a resource meta attribute =#=#=#= -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Deleted 'dummy' option: id=dummy-meta_attributes-target-role name=target-role =#=#=#= Current cib after: niceguy: Remove a resource meta attribute =#=#=#= @@ -1795,10 +1795,10 @@ Deleted 'dummy' option: id=dummy-meta_attributes-target-role name=target-role =#=#=#= End test: niceguy: Remove a resource meta attribute - OK (0) =#=#=#= * Passed: crm_resource - niceguy: Remove a resource meta attribute =#=#=#= Begin test: niceguy: Create a resource meta attribute =#=#=#= -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity -__xml_acl_post_process: Creation of nvpair=dummy-meta_attributes-target-role is allowed +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity +__xml_acl_post_process trace: Creation of nvpair=dummy-meta_attributes-target-role is allowed Set 'dummy' option: id=dummy-meta_attributes-target-role set=dummy-meta_attributes name=target-role=Started =#=#=#= Current cib after: niceguy: Create a resource meta attribute =#=#=#= @@ -1911,8 +1911,8 @@ Set 'dummy' option: id=dummy-meta_attributes-target-role set=dummy-meta_attribut =#=#=#= Begin test: niceguy: Replace - remove acls =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/acls: default +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/acls: default Call failed: Permission denied =#=#=#= End test: niceguy: Replace - remove acls - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - remove acls @@ -1975,9 +1975,9 @@ Call failed: Permission denied =#=#=#= Begin test: niceguy: Replace - create resource =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy2']: default -__xml_acl_post_process: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy2'] +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/resources/primitive[@id='dummy2']: default +__xml_acl_post_process trace: Cannot add new node primitive at /cib/configuration/resources/primitive[@id='dummy2'] Call failed: Permission denied =#=#=#= End test: niceguy: Replace - create resource - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - create resource @@ -2039,8 +2039,8 @@ Call failed: Permission denied =#=#=#= Begin test: niceguy: Replace - modify attribute (deny) =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl'][@value]: default +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl'][@value]: default Call failed: Permission denied =#=#=#= End test: niceguy: Replace - modify attribute (deny) - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - modify attribute (deny) @@ -2102,8 +2102,8 @@ Call failed: Permission denied =#=#=#= Begin test: niceguy: Replace - delete attribute (deny) =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl']: default +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl']: default Call failed: Permission denied =#=#=#= End test: niceguy: Replace - delete attribute (deny) - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - delete attribute (deny) @@ -2165,8 +2165,8 @@ Call failed: Permission denied =#=#=#= Begin test: niceguy: Replace - create attribute (deny) =#=#=#= -__xml_acl_check: 400 access denied to /cib[@epoch]: default -__xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy'][@description]: default +__xml_acl_check trace: 400 access denied to /cib[@epoch]: default +__xml_acl_check trace: 400 access denied to /cib/configuration/resources/primitive[@id='dummy'][@description]: default Call failed: Permission denied =#=#=#= End test: niceguy: Replace - create attribute (deny) - Insufficient privileges (4) =#=#=#= * Passed: cibadmin - niceguy: Replace - create attribute (deny) diff --git a/cts/cli/regression.validity.exp b/cts/cli/regression.validity.exp index 8da151c02eb..d195b13aadf 100644 --- a/cts/cli/regression.validity.exp +++ b/cts/cli/regression.validity.exp @@ -37,62 +37,62 @@ Call failed: Update does not conform to the configured schema =#=#=#= End test: Try to make resulting CIB invalid (enum violation) - Invalid configuration (78) =#=#=#= * Passed: cibadmin - Try to make resulting CIB invalid (enum violation) =#=#=#= Begin test: Run crm_simulate with invalid CIB (enum violation) =#=#=#= -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-1.2' validation (1 of X) +update_validation debug: Testing 'pacemaker-1.2' validation (1 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-1.2 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-1.3' validation (2 of X) +update_validation trace: pacemaker-1.2 validation failed +update_validation debug: Testing 'pacemaker-1.3' validation (2 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-1.3 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.0' validation (3 of X) +update_validation trace: pacemaker-1.3 validation failed +update_validation debug: Testing 'pacemaker-2.0' validation (3 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.0 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.1' validation (4 of X) +update_validation trace: pacemaker-2.0 validation failed +update_validation debug: Testing 'pacemaker-2.1' validation (4 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.1 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.2' validation (5 of X) +update_validation trace: pacemaker-2.1 validation failed +update_validation debug: Testing 'pacemaker-2.2' validation (5 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.2 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.3' validation (6 of X) +update_validation trace: pacemaker-2.2 validation failed +update_validation debug: Testing 'pacemaker-2.3' validation (6 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.3 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.4' validation (7 of X) +update_validation trace: pacemaker-2.3 validation failed +update_validation debug: Testing 'pacemaker-2.4' validation (7 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.4 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.5' validation (8 of X) +update_validation trace: pacemaker-2.4 validation failed +update_validation debug: Testing 'pacemaker-2.5' validation (8 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.5 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.6' validation (9 of X) +update_validation trace: pacemaker-2.5 validation failed +update_validation debug: Testing 'pacemaker-2.6' validation (9 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.6 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.7' validation (10 of X) +update_validation trace: pacemaker-2.6 validation failed +update_validation debug: Testing 'pacemaker-2.7' validation (10 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.7 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.8' validation (11 of X) +update_validation trace: pacemaker-2.7 validation failed +update_validation debug: Testing 'pacemaker-2.8' validation (11 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.8 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.9' validation (12 of X) +update_validation trace: pacemaker-2.8 validation failed +update_validation debug: Testing 'pacemaker-2.9' validation (12 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.9 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.10' validation (13 of X) +update_validation trace: pacemaker-2.9 validation failed +update_validation debug: Testing 'pacemaker-2.10' validation (13 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-2.10 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-3.0' validation (14 of X) +update_validation trace: pacemaker-2.10 validation failed +update_validation debug: Testing 'pacemaker-3.0' validation (14 of X) element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -( schemas.c:NNN ) trace: update_validation: pacemaker-3.0 validation failed +update_validation trace: pacemaker-3.0 validation failed Your current configuration pacemaker-1.2 could not validate with any schema in range [pacemaker-1.2, pacemaker-3.0], cannot upgrade to pacemaker-3.0. =#=#=#= End test: Run crm_simulate with invalid CIB (enum violation) - Invalid configuration (78) =#=#=#= * Passed: crm_simulate - Run crm_simulate with invalid CIB (enum violation) @@ -131,52 +131,52 @@ Call failed: Update does not conform to the configured schema =#=#=#= End test: Try to make resulting CIB invalid (unrecognized validate-with) - Invalid configuration (78) =#=#=#= * Passed: cibadmin - Try to make resulting CIB invalid (unrecognized validate-with) =#=#=#= Begin test: Run crm_simulate with invalid CIB (unrecognized validate-with) =#=#=#= -( schemas.c:NNN ) debug: update_validation: Unknown validation schema -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-1.0' validation (0 of X) +update_validation debug: Unknown validation schema +update_validation debug: Testing 'pacemaker-1.0' validation (0 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-1.0 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-1.2' validation (1 of X) +update_validation trace: pacemaker-1.0 validation failed +update_validation debug: Testing 'pacemaker-1.2' validation (1 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-1.2 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-1.3' validation (2 of X) +update_validation trace: pacemaker-1.2 validation failed +update_validation debug: Testing 'pacemaker-1.3' validation (2 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-1.3 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.0' validation (3 of X) +update_validation trace: pacemaker-1.3 validation failed +update_validation debug: Testing 'pacemaker-2.0' validation (3 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.0 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.1' validation (4 of X) +update_validation trace: pacemaker-2.0 validation failed +update_validation debug: Testing 'pacemaker-2.1' validation (4 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.1 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.2' validation (5 of X) +update_validation trace: pacemaker-2.1 validation failed +update_validation debug: Testing 'pacemaker-2.2' validation (5 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.2 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.3' validation (6 of X) +update_validation trace: pacemaker-2.2 validation failed +update_validation debug: Testing 'pacemaker-2.3' validation (6 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.3 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.4' validation (7 of X) +update_validation trace: pacemaker-2.3 validation failed +update_validation debug: Testing 'pacemaker-2.4' validation (7 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.4 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.5' validation (8 of X) +update_validation trace: pacemaker-2.4 validation failed +update_validation debug: Testing 'pacemaker-2.5' validation (8 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.5 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.6' validation (9 of X) +update_validation trace: pacemaker-2.5 validation failed +update_validation debug: Testing 'pacemaker-2.6' validation (9 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.6 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.7' validation (10 of X) +update_validation trace: pacemaker-2.6 validation failed +update_validation debug: Testing 'pacemaker-2.7' validation (10 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.7 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.8' validation (11 of X) +update_validation trace: pacemaker-2.7 validation failed +update_validation debug: Testing 'pacemaker-2.8' validation (11 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.8 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.9' validation (12 of X) +update_validation trace: pacemaker-2.8 validation failed +update_validation debug: Testing 'pacemaker-2.9' validation (12 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.9 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.10' validation (13 of X) +update_validation trace: pacemaker-2.9 validation failed +update_validation debug: Testing 'pacemaker-2.10' validation (13 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-2.10 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-3.0' validation (14 of X) +update_validation trace: pacemaker-2.10 validation failed +update_validation debug: Testing 'pacemaker-3.0' validation (14 of X) element cib: Relax-NG validity error : Invalid attribute validate-with for element cib -( schemas.c:NNN ) trace: update_validation: pacemaker-3.0 validation failed +update_validation trace: pacemaker-3.0 validation failed Your current configuration pacemaker-9999.0 could not validate with any schema in range [unknown, pacemaker-3.0], cannot upgrade to pacemaker-3.0. =#=#=#= End test: Run crm_simulate with invalid CIB (unrecognized validate-with) - Invalid configuration (78) =#=#=#= * Passed: crm_simulate - Run crm_simulate with invalid CIB (unrecognized validate-with) @@ -216,51 +216,51 @@ Call failed: Update does not conform to the configured schema =#=#=#= End test: Try to make resulting CIB invalid, but possibly recoverable (valid with X.Y+1) - Invalid configuration (78) =#=#=#= * Passed: cibadmin - Try to make resulting CIB invalid, but possibly recoverable (valid with X.Y+1) =#=#=#= Begin test: Run crm_simulate with invalid, but possibly recoverable CIB (valid with X.Y+1) =#=#=#= -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-1.2' validation (1 of X) +update_validation debug: Testing 'pacemaker-1.2' validation (1 of X) element tags: Relax-NG validity error : Element configuration has extra content: tags -( schemas.c:NNN ) trace: update_validation: pacemaker-1.2 validation failed -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-1.3' validation (2 of X) -( schemas.c:NNN ) debug: update_validation: Upgrading pacemaker-1.3-style configuration to pacemaker-2.0 with upgrade-1.3.xsl -( schemas.c:NNN ) info: update_validation: Transformation upgrade-1.3.xsl successful -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.0' validation (3 of X) -( schemas.c:NNN ) debug: update_validation: pacemaker-2.0-style configuration is also valid for pacemaker-2.1 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.1' validation (4 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.1 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.1-style configuration is also valid for pacemaker-2.2 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.2' validation (5 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.2 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.2-style configuration is also valid for pacemaker-2.3 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.3' validation (6 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.3 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.3-style configuration is also valid for pacemaker-2.4 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.4' validation (7 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.4 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.4-style configuration is also valid for pacemaker-2.5 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.5' validation (8 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.5 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.5-style configuration is also valid for pacemaker-2.6 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.6' validation (9 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.6 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.6-style configuration is also valid for pacemaker-2.7 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.7' validation (10 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.7 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.7-style configuration is also valid for pacemaker-2.8 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.8' validation (11 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.8 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.8-style configuration is also valid for pacemaker-2.9 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.9' validation (12 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.9 -( schemas.c:NNN ) debug: update_validation: pacemaker-2.9-style configuration is also valid for pacemaker-2.10 -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.10' validation (13 of X) -( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.10 -( schemas.c:NNN ) debug: update_validation: Upgrading pacemaker-2.10-style configuration to pacemaker-3.0 with upgrade-2.10.xsl -( schemas.c:NNN ) info: update_validation: Transformation upgrade-2.10.xsl successful -( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-3.0' validation (14 of X) -( schemas.c:NNN ) trace: update_validation: Stopping at pacemaker-3.0 -( schemas.c:NNN ) info: update_validation: Transformed the configuration from pacemaker-1.2 to pacemaker-3.0 -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +update_validation trace: pacemaker-1.2 validation failed +update_validation debug: Testing 'pacemaker-1.3' validation (2 of X) +update_validation debug: Upgrading pacemaker-1.3-style configuration to pacemaker-2.0 with upgrade-1.3.xsl +update_validation info: Transformation upgrade-1.3.xsl successful +update_validation debug: Testing 'pacemaker-2.0' validation (3 of X) +update_validation debug: pacemaker-2.0-style configuration is also valid for pacemaker-2.1 +update_validation debug: Testing 'pacemaker-2.1' validation (4 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.1 +update_validation debug: pacemaker-2.1-style configuration is also valid for pacemaker-2.2 +update_validation debug: Testing 'pacemaker-2.2' validation (5 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.2 +update_validation debug: pacemaker-2.2-style configuration is also valid for pacemaker-2.3 +update_validation debug: Testing 'pacemaker-2.3' validation (6 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.3 +update_validation debug: pacemaker-2.3-style configuration is also valid for pacemaker-2.4 +update_validation debug: Testing 'pacemaker-2.4' validation (7 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.4 +update_validation debug: pacemaker-2.4-style configuration is also valid for pacemaker-2.5 +update_validation debug: Testing 'pacemaker-2.5' validation (8 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.5 +update_validation debug: pacemaker-2.5-style configuration is also valid for pacemaker-2.6 +update_validation debug: Testing 'pacemaker-2.6' validation (9 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.6 +update_validation debug: pacemaker-2.6-style configuration is also valid for pacemaker-2.7 +update_validation debug: Testing 'pacemaker-2.7' validation (10 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.7 +update_validation debug: pacemaker-2.7-style configuration is also valid for pacemaker-2.8 +update_validation debug: Testing 'pacemaker-2.8' validation (11 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.8 +update_validation debug: pacemaker-2.8-style configuration is also valid for pacemaker-2.9 +update_validation debug: Testing 'pacemaker-2.9' validation (12 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.9 +update_validation debug: pacemaker-2.9-style configuration is also valid for pacemaker-2.10 +update_validation debug: Testing 'pacemaker-2.10' validation (13 of X) +update_validation debug: Configuration valid for schema: pacemaker-2.10 +update_validation debug: Upgrading pacemaker-2.10-style configuration to pacemaker-3.0 with upgrade-2.10.xsl +update_validation info: Transformation upgrade-2.10.xsl successful +update_validation debug: Testing 'pacemaker-3.0' validation (14 of X) +update_validation trace: Stopping at pacemaker-3.0 +update_validation info: Transformed the configuration from pacemaker-1.2 to pacemaker-3.0 +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Current cluster status: @@ -268,9 +268,9 @@ Current cluster status: dummy2 (ocf::pacemaker:Dummy): Stopped Transition Summary: -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Executing cluster transition: @@ -301,9 +301,9 @@ Revised cluster status: * Passed: cibadmin - Make resulting CIB valid, although without validate-with attribute =#=#=#= Begin test: Run crm_simulate with valid CIB, but without validate-with attribute =#=#=#= Configuration validation is currently disabled. It is highly encouraged and prevents many common cluster issues. -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Current cluster status: @@ -311,9 +311,9 @@ Current cluster status: dummy2 (ocf::pacemaker:Dummy): Stopped Transition Summary: -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Executing cluster transition: @@ -408,10 +408,10 @@ validity.bad.xml:10: element rsc_order: Relax-NG validity error : Invalid attrib validity.bad.xml:10: element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order validity.bad.xml:10: element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order validity.bad.xml:10: element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity -(constraints.:NNN ) error: unpack_simple_rsc_order: Cannot invert rsc_order constraint ord_1-2. Please specify the inverse manually. +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_simple_rsc_order error: Cannot invert rsc_order constraint ord_1-2. Please specify the inverse manually. Current cluster status: @@ -419,9 +419,9 @@ Current cluster status: dummy2 (ocf::pacemaker:Dummy): Stopped Transition Summary: -error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined -error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option -error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity +unpack_resources error: Resource start-up disabled since no STONITH resources have been defined +unpack_resources error: Either configure some or disable STONITH with the stonith-enabled option +unpack_resources error: NOTE: Clusters with shared data need STONITH to ensure data integrity Executing cluster transition: diff --git a/cts/cts-cli.in b/cts/cts-cli.in index 853785c7ab9..610b2bf9544 100755 --- a/cts/cts-cli.in +++ b/cts/cts-cli.in @@ -842,14 +842,10 @@ for t in $tests; do -e 's/crm_feature_set="[^"]*" //'\ -e 's/validate-with="[^"]*" //'\ -e 's/Created new pacemaker-.* configuration/Created new pacemaker configuration/'\ - -e 's/.*__xml_acl_check/__xml_acl_check/g'\ - -e 's/.*__xml_acl_post_process/__xml_acl_post_process/g'\ - -e 's/.*error: unpack_resources:/error: unpack_resources:/g'\ + -e 's/.*\(__xml_acl_check\|__xml_acl_post_process\|unpack_resources\|update_validation\|unpack_simple_rsc_order\)@.*\.c:[0-9][0-9]*)/\1/g' \ -e 's/ last-rc-change=\"[0-9]*\"//'\ -e 's|^/tmp/cts-cli\.validity\.bad.xml\.[^:]*:|validity.bad.xml:|'\ -e 's/^Entity: line [0-9][0-9]*: //'\ - -e 's/schemas\.c:\([0-9][0-9]*\)/schemas.c:NNN/' \ - -e 's/constraints\.:\([0-9][0-9]*\)/constraints.:NNN/' \ -e 's/\(validation ([0-9][0-9]* of \)[0-9][0-9]*\().*\)/\1X\2/' \ "$TMPFILE" > "${TMPFILE}.$$" mv -- "${TMPFILE}.$$" "$TMPFILE" diff --git a/cts/cts-lrmd.in b/cts/cts-exec.in similarity index 95% rename from cts/cts-lrmd.in rename to cts/cts-exec.in index 4d92faf1e9e..0d62616d98c 100644 --- a/cts/cts-lrmd.in +++ b/cts/cts-exec.in @@ -1,5 +1,5 @@ #!@PYTHON@ -""" Regression tests for Pacemaker's lrmd +""" Regression tests for Pacemaker's pacemaker-execd """ # Pacemaker targets compatibility with Python 2.7 and 3.2+ @@ -70,15 +70,18 @@ def update_path(): """ Set the PATH environment variable appropriately for the tests """ new_path = os.environ['PATH'] - if os.path.exists("%s/cts-lrmd.in" % TEST_DIR): + if os.path.exists("%s/cts-exec.in" % TEST_DIR): print("Running tests from the source tree: %s (%s)" % (BUILD_DIR, TEST_DIR)) - new_path = "%s/lrmd:%s" % (BUILD_DIR, new_path) # For lrmd, lrmd_test and pacemaker_remoted + # For pacemaker-execd, cts-exec-helper, and pacemaker-remoted + new_path = "%s/daemons/execd:%s" % (BUILD_DIR, new_path) new_path = "%s/tools:%s" % (BUILD_DIR, new_path) # For crm_resource - new_path = "%s/fencing:%s" % (BUILD_DIR, new_path) # For stonithd + # For pacemaker-fenced + new_path = "%s/daemons/fenced:%s" % (BUILD_DIR, new_path) else: print("Running tests from the install tree: @CRM_DAEMON_DIR@ (not %s)" % TEST_DIR) - new_path = "@CRM_DAEMON_DIR@:%s" % (new_path) # For stonithd, lrmd, lrmd_test and pacemaker_remoted + # For pacemaker-execd, cts-exec-helper, pacemaker-fenced, and pacemaker-remoted + new_path = "@CRM_DAEMON_DIR@:%s" % (new_path) print('Using PATH="{}"'.format(new_path)) os.environ['PATH'] = new_path @@ -156,7 +159,7 @@ class OutputFoundError(TestError): class Test(object): - """ Executor for a single lrmd regression test """ + """ Executor for a single pacemaker-execd regression test """ def __init__(self, name, description, verbose=0, tls=0): self.name = name @@ -164,11 +167,11 @@ class Test(object): self.cmds = [] if tls: - self.daemon_location = "pacemaker_remoted" + self.daemon_location = "pacemaker-remoted" else: - self.daemon_location = "lrmd" + self.daemon_location = "pacemaker-execd" - self.test_tool_location = "lrmd_test" + self.test_tool_location = "cts-exec-helper" self.verbose = verbose self.tls = tls @@ -176,7 +179,7 @@ class Test(object): self.cmd_tool_output = "" self.result_exitcode = CrmExit.OK - self.lrmd_process = None + self.execd_process = None self.stonith_process = None self.executed = 0 @@ -207,19 +210,19 @@ class Test(object): """ Prepare the host for running a test """ ### make sure we are in full control here ### - cmd = shlex.split("killall -q -9 stonithd lt-stonithd lrmd lt-lrmd lrmd_test lt-lrmd_test pacemaker_remoted") + cmd = shlex.split("killall -q -9 pacemaker-fenced lt-pacemaker-fenced pacemaker-execd lt-pacemaker-execd cts-exec-helper lt-cts-exec-helper pacemaker-remoted") test = subprocess.Popen(cmd, stdout=subprocess.PIPE) test.wait() additional_args = "" if self.tls == 0: - self.stonith_process = subprocess.Popen(shlex.split("stonithd -s")) + self.stonith_process = subprocess.Popen(shlex.split("pacemaker-fenced -s")) if self.verbose: additional_args = additional_args + " -V" - self.lrmd_process = subprocess.Popen(shlex.split("%s %s -l /tmp/lrmd-regression.log" + self.execd_process = subprocess.Popen(shlex.split("%s %s -l /tmp/pacemaker-execd-regression.log" % (self.daemon_location, additional_args))) time.sleep(1) @@ -227,22 +230,22 @@ class Test(object): def clean_environment(self): """ Clean up the host after running a test """ - if self.lrmd_process: - self.lrmd_process.terminate() - self.lrmd_process.wait() + if self.execd_process: + self.execd_process.terminate() + self.execd_process.wait() if self.verbose: print("Daemon output") - logfile = io.open('/tmp/lrmd-regression.log', 'rt', errors='replace') + logfile = io.open('/tmp/pacemaker-execd-regression.log', 'rt', errors='replace') for line in logfile: print(line.strip().encode('utf-8', 'replace')) - os.remove('/tmp/lrmd-regression.log') + os.remove('/tmp/pacemaker-execd-regression.log') if self.stonith_process: self.stonith_process.terminate() self.stonith_process.wait() - self.lrmd_process = None + self.execd_process = None self.stonith_process = None def add_sys_cmd(self, cmd, args): @@ -256,17 +259,17 @@ class Test(object): self.__new_cmd(self.test_tool_location, args, CrmExit.OK, match, 0, no_match) def add_cmd(self, args): - """ Add an lrmd_test command to be executed as part of this test """ + """ Add a cts-exec-helper command to be executed as part of this test """ self.__new_cmd(self.test_tool_location, args, CrmExit.OK, "") def add_cmd_and_kill(self, kill_proc, args): - """ Add an lrmd_test command and system command to be executed as part of this test """ + """ Add a cts-exec-helper command and system command to be executed as part of this test """ self.__new_cmd(self.test_tool_location, args, CrmExit.OK, "", kill=kill_proc) def add_expected_fail_cmd(self, args, exitcode=CrmExit.ERROR): - """ Add an lrmd_test command to be executed as part of this test and expected to fail """ + """ Add a cts-exec-helper command to be executed as part of this test and expected to fail """ self.__new_cmd(self.test_tool_location, args, exitcode, "") @@ -295,7 +298,7 @@ class Test(object): ### Typically, the kill argument is used to detect some sort of ### failure. Without yielding for a few seconds here, the process ### launched earlier that is listening for the failure may not have - ### time to connect to the lrmd. + ### time to connect to pacemaker-execd. time.sleep(2) subprocess.Popen(shlex.split(args['kill'])) @@ -371,7 +374,7 @@ class Test(object): return res class Tests(object): - """ Collection of all lrmd regression tests """ + """ Collection of all pacemaker-execd regression tests """ def __init__(self, verbose=0, tls=0): self.tests = [] @@ -407,7 +410,7 @@ class Tests(object): "ocf_stop_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:ocf_test_rsc action:stop rc:ok op_status:complete\" ", "ocf_monitor_line" : '-c exec -r ocf_test_rsc -a monitor -i 2s ' + self.action_timeout, "ocf_monitor_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:ocf_test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout, - "ocf_cancel_line" : '-c cancel -r ocf_test_rsc -a monitor -i 2s -t 6000 ', + "ocf_cancel_line" : '-c cancel -r ocf_test_rsc -a monitor -i 2s ' + self.action_timeout, "ocf_cancel_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:ocf_test_rsc action:monitor rc:ok op_status:Cancelled\" ", "systemd_reg_line" : "-c register_rsc -r systemd_test_rsc " + @@ -421,9 +424,8 @@ class Tests(object): "systemd_stop_line" : "-c exec -r \"systemd_test_rsc\" -a \"stop\" "+self.action_timeout, "systemd_stop_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:systemd_test_rsc action:stop rc:ok op_status:complete\" ", "systemd_monitor_line" : '-c exec -r systemd_test_rsc -a monitor -i 2s ' + self.action_timeout, - # not sure why this one takes so much longer - "systemd_monitor_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:systemd_test_rsc action:monitor rc:ok op_status:complete\" -t 12000 ", - "systemd_cancel_line" : '-c cancel -r systemd_test_rsc -a monitor -i 2s -t 6000 ', + "systemd_monitor_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:systemd_test_rsc action:monitor rc:ok op_status:complete\" -t 15000 ", + "systemd_cancel_line" : '-c cancel -r systemd_test_rsc -a monitor -i 2s ' + self.action_timeout, "systemd_cancel_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:systemd_test_rsc action:monitor rc:ok op_status:Cancelled\" ", "upstart_reg_line" : "-c register_rsc -r upstart_test_rsc "+self.action_timeout+" -C upstart -T pacemaker-cts-dummyd", @@ -435,8 +437,8 @@ class Tests(object): "upstart_stop_line" : "-c exec -r \"upstart_test_rsc\" -a \"stop\" "+self.action_timeout, "upstart_stop_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:upstart_test_rsc action:stop rc:ok op_status:complete\" ", "upstart_monitor_line" : '-c exec -r upstart_test_rsc -a monitor -i 2s ' + self.action_timeout, - "upstart_monitor_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:upstart_test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout, - "upstart_cancel_line" : '-c cancel -r upstart_test_rsc -a monitor -i 2s -t 6000 ', + "upstart_monitor_event" : '-l "NEW_EVENT event_type:exec_complete rsc_id:upstart_test_rsc action:monitor rc:ok op_status:complete" -t 15000', + "upstart_cancel_line" : '-c cancel -r upstart_test_rsc -a monitor -i 2s ' + self.action_timeout, "upstart_cancel_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:upstart_test_rsc action:monitor rc:ok op_status:Cancelled\" ", "service_reg_line" : "-c register_rsc -r service_test_rsc "+self.action_timeout+" -C service -T LSBDummy", @@ -449,7 +451,7 @@ class Tests(object): "service_stop_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:service_test_rsc action:stop rc:ok op_status:complete\" ", "service_monitor_line" : '-c exec -r service_test_rsc -a monitor -i 2s ' + self.action_timeout, "service_monitor_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:service_test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout, - "service_cancel_line" : '-c cancel -r service_test_rsc -a monitor -i 2s -t 6000 ', + "service_cancel_line" : '-c cancel -r service_test_rsc -a monitor -i 2s ' + self.action_timeout, "service_cancel_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:service_test_rsc action:monitor rc:ok op_status:Cancelled\" ", "lsb_reg_line" : "-c register_rsc -r lsb_test_rsc "+self.action_timeout+" -C lsb -T LSBDummy", @@ -462,20 +464,20 @@ class Tests(object): "lsb_stop_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:lsb_test_rsc action:stop rc:ok op_status:complete\" ", "lsb_monitor_line" : '-c exec -r lsb_test_rsc -a status -i 2s ' + self.action_timeout, "lsb_monitor_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:lsb_test_rsc action:status rc:ok op_status:complete\" "+self.action_timeout, - "lsb_cancel_line" : '-c cancel -r lsb_test_rsc -a status -i 2s -t 6000 ', + "lsb_cancel_line" : '-c cancel -r lsb_test_rsc -a status -i 2s ' + self.action_timeout, "lsb_cancel_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:lsb_test_rsc action:status rc:ok op_status:Cancelled\" ", "stonith_reg_line" : "-c register_rsc -r stonith_test_rsc "+self.action_timeout+" -C stonith -P pacemaker -T fence_dummy_monitor", "stonith_reg_event" : "-l \"NEW_EVENT event_type:register rsc_id:stonith_test_rsc action:none rc:ok op_status:complete\" ", "stonith_unreg_line" : "-c unregister_rsc -r \"stonith_test_rsc\" "+self.action_timeout, "stonith_unreg_event" : "-l \"NEW_EVENT event_type:unregister rsc_id:stonith_test_rsc action:none rc:ok op_status:complete\"", - "stonith_start_line" : "-c exec -r \"stonith_test_rsc\" -a \"start\" -t 8000 ", + "stonith_start_line" : '-c exec -r stonith_test_rsc -a start ' + self.action_timeout, "stonith_start_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:stonith_test_rsc action:start rc:ok op_status:complete\" ", "stonith_stop_line" : "-c exec -r \"stonith_test_rsc\" -a \"stop\" "+self.action_timeout, "stonith_stop_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:stonith_test_rsc action:stop rc:ok op_status:complete\" ", "stonith_monitor_line" : '-c exec -r stonith_test_rsc -a monitor -i 2s ' + self.action_timeout, "stonith_monitor_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:stonith_test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout, - "stonith_cancel_line" : '-c cancel -r stonith_test_rsc -a monitor -i 2s -t 6000 ', + "stonith_cancel_line" : '-c cancel -r stonith_test_rsc -a monitor -i 2s ' + self.action_timeout, "stonith_cancel_event" : "-l \"NEW_EVENT event_type:exec_complete rsc_id:stonith_test_rsc action:monitor rc:ok op_status:Cancelled\" ", } @@ -699,7 +701,7 @@ done test.add_cmd(common_cmds["%s_unreg_line" % (rsc)] + " " + common_cmds["%s_unreg_event" % (rsc)]) def build_negative_tests(self): - """ Register tests related to how the lrmd handles failures """ + """ Register tests related to how pacemaker-execd handles failures """ ### ocf start timeout test ### test = self.new_test("ocf_start_timeout", "Force start timeout to occur, verify start failure.") @@ -730,7 +732,7 @@ done ### stonith component fail ### common_cmds = self.common_cmds - test = self.new_test("stonith_component_fail", "Kill stonith component after lrmd connects") + test = self.new_test("stonith_component_fail", "Kill stonith component after pacemaker-execd connects") test.add_cmd(common_cmds["stonith_reg_line"] + " " + common_cmds["stonith_reg_event"]) test.add_cmd(common_cmds["stonith_start_line"] + " " + common_cmds["stonith_start_event"]) @@ -738,7 +740,7 @@ done '-l "NEW_EVENT event_type:exec_complete rsc_id:stonith_test_rsc action:monitor rc:ok op_status:complete" ' + self.action_timeout) - test.add_cmd_and_kill("killall -9 -q stonithd lt-stonithd", + test.add_cmd_and_kill("killall -9 -q pacemaker-fenced lt-pacemaker-fenced", '-l "NEW_EVENT event_type:exec_complete rsc_id:stonith_test_rsc action:monitor rc:unknown error op_status:error" -t 15000') test.add_cmd(common_cmds["stonith_unreg_line"] + " " + common_cmds["stonith_unreg_event"]) @@ -760,8 +762,8 @@ done test.add_cmd('-l "NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete"' + self.action_timeout) test.add_cmd_and_kill("rm -f @localstatedir@/run/Dummy-test_rsc.state", - '-l "NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete" -t 6000') - test.add_cmd('-c cancel -r test_rsc -a monitor -i 1s -t 6000 ' + '-l "NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete" ' + self.action_timeout) + test.add_cmd('-c cancel -r test_rsc -a monitor -i 1s ' + self.action_timeout + "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:Cancelled\" ") test.add_expected_fail_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete\" " + self.action_timeout, CrmExit.TIMEOUT) @@ -781,8 +783,9 @@ done + self.action_timeout + ' -o -l "NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete" ') test.add_expected_fail_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout, CrmExit.TIMEOUT) - test.add_cmd_and_kill("rm -f @localstatedir@/run/Dummy-test_rsc.state", "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete\" -t 6000") - test.add_cmd('-c cancel -r test_rsc -a monitor -i 1s -t 6000 ' + test.add_cmd_and_kill('rm -f @localstatedir@/run/Dummy-test_rsc.state', '-l "NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete"' + self.action_timeout) + test.add_cmd('-c cancel -r test_rsc -a monitor -i 1s' + + self.action_timeout + "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:Cancelled\" ") test.add_expected_fail_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete\" "+self.action_timeout, CrmExit.TIMEOUT) test.add_expected_fail_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout, CrmExit.TIMEOUT) @@ -805,8 +808,8 @@ done test.add_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout) test.add_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout) test.add_cmd_and_kill("killall -9 -q pacemaker-cts-dummyd", - "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete\" -t 8000") - test.add_cmd('-c cancel -r test_rsc -a monitor -i 1s -t 6000 ' + '-l "NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete"' + self.action_timeout) + test.add_cmd('-c cancel -r test_rsc -a monitor -i 1s' + self.action_timeout + "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:Cancelled\" ") test.add_expected_fail_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete\" "+self.action_timeout, CrmExit.TIMEOUT) test.add_expected_fail_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout, CrmExit.TIMEOUT) @@ -826,8 +829,9 @@ done "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" ") test.add_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout) test.add_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout) - test.add_cmd_and_kill("killall -9 -q dd", "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete\" -t 8000") - test.add_cmd('-c cancel -r test_rsc -a monitor -i 1s -t 6000 ' + test.add_cmd_and_kill('killall -9 -q dd', '-l "NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete"' + self.action_timeout) + test.add_cmd('-c cancel -r test_rsc -a monitor -i 1s' + + self.action_timeout + "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:Cancelled\" ") test.add_expected_fail_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:complete\" "+self.action_timeout, CrmExit.TIMEOUT) test.add_expected_fail_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout, CrmExit.TIMEOUT) @@ -846,9 +850,11 @@ done + self.action_timeout + "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" ") test.add_cmd("-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:ok op_status:complete\" "+self.action_timeout) - test.add_expected_fail_cmd('-c cancel -r test_rsc -a monitor -i 2s -t 6000 ' ### interval is wrong, should fail + ### interval is wrong, should fail + test.add_expected_fail_cmd('-c cancel -r test_rsc -a monitor -i 2s' + self.action_timeout + "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:Cancelled\" ") - test.add_expected_fail_cmd('-c cancel -r test_rsc -a stop -i 1s -t 6000 ' ### action name is wrong, should fail + ### action name is wrong, should fail + test.add_expected_fail_cmd('-c cancel -r test_rsc -a stop -i 1s' + self.action_timeout + "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:monitor rc:not running op_status:Cancelled\" ") test.add_cmd("-c unregister_rsc -r \"test_rsc\" " + self.action_timeout + "-l \"NEW_EVENT event_type:unregister rsc_id:test_rsc action:none rc:ok op_status:complete\" ") @@ -1226,7 +1232,7 @@ class TestOptions(object): print("\t [--list-tests | -l] Print out all registered tests.") print("\t [--run-only | -r 'testname'] Run a specific test") print("\t [--verbose | -V] Verbose output") - print("\t [--pacemaker-remote | -R Test pacemaker-remote binary instead of lrmd.") + print("\t [--pacemaker-remote | -R Test pacemaker-remoted binary instead of pacemaker-execd") print("\t [--run-only-pattern | -p 'string'] Run only tests containing the string value") print("\n\tExample: Run only the test 'start_stop'") print("\t\t " + sys.argv[0] + " --run-only start_stop") @@ -1235,7 +1241,7 @@ class TestOptions(object): def main(argv): - """ Run lrmd regression tests as specified by arguments """ + """ Run pacemaker-execd regression tests as specified by arguments """ update_path() diff --git a/cts/cts-stonithd.in b/cts/cts-fencing.in similarity index 99% rename from cts/cts-stonithd.in rename to cts/cts-fencing.in index 8a1a8793bea..67fb339c5c8 100644 --- a/cts/cts-stonithd.in +++ b/cts/cts-fencing.in @@ -1,11 +1,11 @@ #!@PYTHON@ -""" Regression tests for Pacemaker's stonithd +""" Regression tests for Pacemaker's fencer """ # Pacemaker targets compatibility with Python 2.7 and 3.2+ from __future__ import print_function, unicode_literals, absolute_import, division -__copyright__ = "Copyright (C) 2012-2018 Andrew Beekhof " +__copyright__ = "Copyright 2012-2018 Andrew Beekhof " __license__ = "GNU General Public License version 2 or later (GPLv2+) WITHOUT ANY WARRANTY" import io @@ -184,16 +184,16 @@ class Test(object): # Make sure we are in full control killall("pacemakerd") - killall("stonithd") + killall("pacemaker-fenced") if self.verbose: self.stonith_options = self.stonith_options + " -V" - print("Starting stonithd with %s" % self.stonith_options) + print("Starting pacemaker-fenced with %s" % self.stonith_options) if os.path.exists("/tmp/stonith-regression.log"): os.remove('/tmp/stonith-regression.log') - cmd = "@CRM_DAEMON_DIR@/stonithd %s -l /tmp/stonith-regression.log" % self.stonith_options + cmd = "@CRM_DAEMON_DIR@/pacemaker-fenced %s -l /tmp/stonith-regression.log" % self.stonith_options self.stonith_process = subprocess.Popen(shlex.split(cmd)) time.sleep(1) @@ -497,10 +497,10 @@ class Tests(object): verbose_arg = "-V" test = self.new_test("standalone_low_level_api_test", "Sanity test client api in standalone mode.") - test.add_cmd("@CRM_DAEMON_DIR@/stonith-test", "-t %s" % (verbose_arg)) + test.add_cmd("@CRM_DAEMON_DIR@/cts-fence-helper", "-t %s" % (verbose_arg)) test = self.new_test("cpg_low_level_api_test", "Sanity test client api using mainloop and cpg.", 1) - test.add_cmd("@CRM_DAEMON_DIR@/stonith-test", "-m %s" % (verbose_arg)) + test.add_cmd("@CRM_DAEMON_DIR@/cts-fence-helper", "-m %s" % (verbose_arg)) def build_custom_timeout_tests(self): """ Register tests to verify custom timeout usage """ diff --git a/cts/cts-regression.in b/cts/cts-regression.in index 78fbdda21ba..d458a5e9899 100755 --- a/cts/cts-regression.in +++ b/cts/cts-regression.in @@ -16,13 +16,13 @@ Options: -V, --verbose Increase test verbosity -v, --valgrind Run test commands under valgrind -Tests (default tests are 'pengine cli lrmd'): - pengine Policy engine +Tests (default tests are 'scheduler cli'): + scheduler Action scheduler cli Command-line tools - lrmd Local resource manager - pacemaker_remote Local resource manager in remote mode - fencing Fencing daemon - all Synonym for 'pengine cli lrmd fencing'" + exec Local resource agent executor + pacemaker_remote Resource agent executor in remote mode + fencing Fencer + all Synonym for 'scheduler cli exec fencing'" # If readlink supports -e (i.e. GNU), use it readlink -e / >/dev/null 2>/dev/null @@ -78,7 +78,7 @@ add_test() { local TEST="$1" case "$TEST" in - pengine|lrmd|pacemaker_remote|fencing|cli) + scheduler|exec|pacemaker_remote|fencing|cli) if [[ ! $tests =~ $TEST ]]; then tests="$tests $TEST" fi @@ -98,27 +98,27 @@ run_test() { info "Executing the $t regression tests" info "============================================================" case $t in - pengine) - if [ -x $test_home/cts-pengine ]; then - $test_home/cts-pengine $verbose $valgrind + scheduler) + if [ -x $test_home/cts-scheduler ]; then + $test_home/cts-scheduler $verbose $valgrind rc=$? else - error "pengine regression test not found" + error "scheduler regression test not found" rc=$CRM_EX_NOT_INSTALLED fi ;; - lrmd) - if [ -x $test_home/cts-lrmd ]; then - run_as_root $test_home/cts-lrmd + exec) + if [ -x $test_home/cts-exec ]; then + run_as_root $test_home/cts-exec rc=$? else - error "lrmd regression test not found" + error "executor regression test not found" rc=$CRM_EX_NOT_INSTALLED fi ;; pacemaker_remote) - if [ -x $test_home/cts-lrmd ]; then - run_as_root $test_home/cts-lrmd -R + if [ -x $test_home/cts-exec ]; then + run_as_root $test_home/cts-exec -R rc=$? else error "pacemaker_remote regression test not found" @@ -126,8 +126,8 @@ run_test() { fi ;; fencing) - if [ -x $test_home/cts-stonithd ]; then - run_as_root $test_home/cts-stonithd + if [ -x $test_home/cts-fencing ]; then + run_as_root $test_home/cts-fencing rc=$? else error "fencing regression test not found" @@ -187,14 +187,14 @@ while [ $# -gt 0 ] ; do valgrind="-v" shift ;; - pengine|lrmd|pacemaker_remote|fencing|cli) + scheduler|exec|pacemaker_remote|fencing|cli) add_test $1 shift ;; all) - add_test pengine + add_test scheduler add_test cli - add_test lrmd + add_test exec add_test fencing shift ;; @@ -208,9 +208,8 @@ while [ $# -gt 0 ] ; do done if [ -z "$tests" ]; then - add_test pengine + add_test scheduler add_test cli - add_test lrmd fi run_tests $tests diff --git a/cts/cts-pengine.in b/cts/cts-scheduler.in similarity index 99% rename from cts/cts-pengine.in rename to cts/cts-scheduler.in index 9a47475094b..1520bd43998 100644 --- a/cts/cts-pengine.in +++ b/cts/cts-scheduler.in @@ -6,7 +6,7 @@ # or later (GPLv2+) WITHOUT ANY WARRANTY. # -USAGE_TEXT="Usage: cts-pengine [] +USAGE_TEXT="Usage: cts-scheduler [] Options: --help Display this text, then exit -V, --verbose Display any differences from expected output @@ -31,7 +31,7 @@ else test_home="$(dirname $0)" fi -io_dir="$test_home/pengine" +io_dir="$test_home/scheduler" failed="$test_home/.regression.failed.diff" test_binary= testcmd_options= @@ -84,7 +84,7 @@ function show_test() { printf " Test %-25s $*\n" "$name:" } -# Normalize policy engine output for comparison +# Normalize scheduler output for comparison normalize() { for NORMALIZE_FILE in "$@"; do # sed -i is not portable :-( @@ -1219,7 +1219,7 @@ do_test bundle-replicas-change "Change bundle from 1 replica to multiple" echo "" do_test whitebox-fail1 "Fail whitebox container rsc." -do_test whitebox-fail2 "Fail whitebox container rsc lrmd connection." +do_test whitebox-fail2 "Fail cluster connection to guest node" do_test whitebox-fail3 "Failed containers should not run nested on remote nodes." do_test whitebox-start "Start whitebox container with resources assigned to it" do_test whitebox-stop "Stop whitebox container with resources assigned to it" diff --git a/cts/cts.in b/cts/cts.in index 93ac1d3a3ed..df0e5de2fae 100755 --- a/cts/cts.in +++ b/cts/cts.in @@ -17,7 +17,6 @@ fi logfile=0 summary=0 verbose=0 -pengine=0 watch=0 saved=0 tests="" @@ -82,7 +81,7 @@ while true; do -S) summary=1; saved=1; shift;; -s) summary=1; shift;; -v) verbose=`expr $verbose + 1`; shift;; - -p) pengine=1; shift;; + -p) shift;; -e) patterns="$patterns -e `echo $2 | sed 's/ /\\\W/g'`"; shift; shift;; -l) logfile=1; shift;; -w) watch=1; shift;; @@ -115,7 +114,7 @@ while true; do cat << EOF > $cts_root/CTSvars.py class CTSvars: CTS_home="$local_root/cts" - Fencing_home="$local_root/fencing" + Fencing_home="$local_root/daemons/fenced" CRM_CONFIG_DIR="/var/lib/pacemaker/cib" CRM_DAEMON_USER="hacluster" CRM_DAEMON_DIR="/usr/libexec/pacemaker" @@ -135,7 +134,7 @@ EOF chmod +x $cts_root/crm_report cp $cts_root/LSBDummy.in $cts_root/LSBDummy - chmod +x $local_root/fencing/fence_* + chmod +x $local_root/daemons/fenced/fence_* sed -i.sed s:@OCF_ROOT_DIR@:/usr/lib/ocf: $cts_root/LSBDummy echo "Make sure you add $cts_root to your PATH and set a value for \$cluster_name in .bashrc" diff --git a/cts/environment.py b/cts/environment.py index 6bcf097af85..72eb3a1a47d 100644 --- a/cts/environment.py +++ b/cts/environment.py @@ -1,27 +1,11 @@ -''' -Classes related to producing and searching logs -''' -from __future__ import print_function - -__copyright__=''' -Copyright (C) 2014 Andrew Beekhof -Licensed under the GNU GPL. -''' - -# -# This program 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. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +""" Test environment classes for Pacemaker's Cluster Test Suite (CTS) +""" + +# Pacemaker targets compatibility with Python 2.7 and 3.2+ +from __future__ import print_function, unicode_literals, absolute_import, division + +__copyright__ = "Copyright 2014-2018 Andrew Beekhof " +__license__ = "GNU General Public License version 2 or later (GPLv2+) WITHOUT ANY WARRANTY" import sys, time, os, socket, random @@ -62,7 +46,7 @@ def __init__(self, args): self["notification-recipient"] = "/var/lib/pacemaker/notify.log" self["loop-minutes"] = 60 self["valgrind-prefix"] = None - self["valgrind-procs"] = "attrd cib crmd lrmd pengine stonith-ng" + self["valgrind-procs"] = "pacemaker-attrd pacemaker-based pacemaker-controld pacemaker-execd pacemaker-fenced pacemaker-schedulerd" self["valgrind-opts"] = """--leak-check=full --show-reachable=yes --trace-children=no --num-callers=25 --gen-suppressions=all --suppressions="""+CTSvars.CTS_home+"""/cts.supp""" self["experimental-tests"] = 0 diff --git a/cts/lxc_autogen.sh.in b/cts/lxc_autogen.sh.in index ab828311df2..1479296af8e 100644 --- a/cts/lxc_autogen.sh.in +++ b/cts/lxc_autogen.sh.in @@ -1,4 +1,10 @@ #!@BASH_PATH@ +# +# Copyright 2013-2018 David Vossel +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# containers="2" download=0 @@ -107,9 +113,9 @@ if [ $verify -eq 1 ]; then echo "rsync is required" fi - which pacemaker_remoted > /dev/null 2>&1 + which pacemaker-remoted > /dev/null 2>&1 if [ $? -ne 0 ]; then - echo "pacemaker_remoted is required" + echo "pacemaker-remoted is required" fi fi @@ -324,7 +330,7 @@ ip route add default via $addr.1 hostname lxc$c df > $working_dir/lxc$c-filesystem/disk_usage.txt export PCMK_debugfile=@CRM_LOG_DIR@/pacemaker_remote_lxc$c.log -/usr/sbin/pacemaker_remoted +/usr/sbin/pacemaker-remoted END chmod 711 lxc$c-filesystem/launch-helper diff --git a/cts/patterns.py b/cts/patterns.py index 57e4af6332b..2c914083f53 100644 --- a/cts/patterns.py +++ b/cts/patterns.py @@ -18,6 +18,9 @@ def __init__(self, name): patternvariants[name] = self self.ignore = [ "avoid confusing Valgrind", + + # Logging bug in some versions of libvirtd + r"libvirtd.*: internal error: Failed to parse PCI config address", ] self.BadNews = [] self.components = {} @@ -27,7 +30,7 @@ def __init__(self, name): "CibAddXml" : "cibadmin --modify -c --xml-text %s", "CibDelXpath" : "cibadmin --delete --xpath %s", # 300,000 == 5 minutes - "RscRunning" : CTSvars.CRM_DAEMON_DIR + "/lrmd_test -R -r %s", + "RscRunning" : CTSvars.CRM_DAEMON_DIR + "/cts-exec-helper -R -r %s", "CIBfile" : "%s:"+CTSvars.CRM_CONFIG_DIR+"/cib.xml", "TmpDir" : "/tmp", @@ -51,7 +54,7 @@ def __init__(self, name): "StandbyQueryCmd" : "crm_attribute -qG -U %s -n standby -l forever -d off 2>/dev/null", } self.search = { - "Pat:DC_IDLE" : "crmd.*State transition.*-> S_IDLE", + "Pat:DC_IDLE" : "pacemaker-controld.*State transition.*-> S_IDLE", # This won't work if we have multiple partitions "Pat:Local_started" : "%s\W.*The local CRM is operational", @@ -63,12 +66,12 @@ def __init__(self, name): "Pat:TransitionComplete" : "Transition status: Complete: complete", "Pat:Fencing_start" : "(Initiating remote operation|Requesting peer fencing ).* (for|of) %s", - "Pat:Fencing_ok" : r"stonith.*:\s*Operation .* of %s by .* for .*@.*: OK", - "Pat:Fencing_recover" : r"pengine.*: Recover %s", + "Pat:Fencing_ok" : r"pacemaker-fenced.*:\s*Operation .* of %s by .* for .*@.*: OK", + "Pat:Fencing_recover" : r"schedulerd.*: Recover %s", - "Pat:RscOpOK" : r"crmd.*:\s+Result of %s operation for %s.*: (0 \()?ok", - "Pat:RscRemoteOpOK" : r"crmd.*:\s+Result of %s operation for %s on %s: (0 \()?ok", - "Pat:NodeFenced" : r"crmd.*:\s* Peer %s was terminated \(.*\) by .* on behalf of .*: OK", + "Pat:RscOpOK" : r"pacemaker-controld.*:\s+Result of %s operation for %s.*: (0 \()?ok", + "Pat:RscRemoteOpOK" : r"pacemaker-controld.*:\s+Result of %s operation for %s on %s: (0 \()?ok", + "Pat:NodeFenced" : r"pacemaker-controld.*:\s* Peer %s was terminated \(.*\) by .* on behalf of .*: OK", "Pat:FenceOpOK" : "Operation .* for host '%s' with device .* returned: 0", } @@ -112,7 +115,7 @@ def __init__(self, name): self.commands.update({ "StartCmd" : "service corosync start && service pacemaker start", - "StopCmd" : "service pacemaker stop; [ ! -e /usr/sbin/pacemaker_remoted ] || service pacemaker_remote stop; service corosync stop", + "StopCmd" : "service pacemaker stop; [ ! -e /usr/sbin/pacemaker-remoted ] || service pacemaker_remote stop; service corosync stop", "EpochCmd" : "crm_node -e", "QuorumCmd" : "crm_node -q", @@ -123,8 +126,8 @@ def __init__(self, name): # Close enough ... "Corosync Cluster Engine exiting normally" isn't # printed reliably. "Pat:We_stopped" : "%s\W.*Unloading all Corosync service engines", - "Pat:They_stopped" : "%s\W.*crmd.*Node %s(\[|\s).*state is now lost", - "Pat:They_dead" : "crmd.*Node %s(\[|\s).*state is now lost", + "Pat:They_stopped" : "%s\W.*pacemaker-controld.*Node %s(\[|\s).*state is now lost", + "Pat:They_dead" : "pacemaker-controld.*Node %s(\[|\s).*state is now lost", "Pat:ChildExit" : r"\[[0-9]+\] exited with status [0-9]+ \(", "Pat:ChildKilled" : r"%s\W.*pacemakerd.*%s\[[0-9]+\] terminated with signal 9", @@ -142,9 +145,8 @@ def __init__(self, name): r"Parse error: Ignoring unknown option .*nodename", r"error.*: Operation 'reboot' .* with device 'FencingFail' returned:", r"getinfo response error: 1$", - "sbd.* error: inquisitor_child: DEBUG MODE IS ACTIVE", - r"sbd.* pcmk:\s*error:.*Connection to cib_ro failed", - r"sbd.* pcmk:\s*error:.*Connection to cib_ro.* closed .I/O condition=17", + r"sbd.* error: inquisitor_child: DEBUG MODE IS ACTIVE", + r"sbd.* pcmk:\s*error:.*Connection to cib_ro.* (failed|closed)", ] self.BadNews = [ @@ -159,8 +161,8 @@ def __init__(self, name): r"input=I_INTEGRATED cause=C_TIMER_POPPED", r"input=I_FINALIZED cause=C_TIMER_POPPED", r"input=I_ERROR", - r"(pacemakerd|lrmd|crmd):.*, exiting", - r"pengine.*Attempting recovery of resource", + r"(pacemakerd|pacemaker-execd|pacemaker-controld):.*, exiting", + r"schedulerd.*Attempting recovery of resource", r"is taking more than 2x its timeout", r"Confirm not received from", r"Welcome reply not received from", @@ -173,7 +175,7 @@ def __init__(self, name): r"Parameters to .* action changed:", r"Parameters to .* changed", r"\[[0-9]+\] terminated with signal [0-9]+ \(", - r"pengine:.*Recover .*\(.* -\> .*\)", + r"schedulerd:.*Recover .*\(.* -\> .*\)", r"rsyslogd.* imuxsock lost .* messages from pid .* due to rate-limiting", r"Peer is not part of our cluster", r"We appear to be in an election loop", @@ -191,7 +193,7 @@ def __init__(self, name): #r"No need to invoke the TE", #r"ping.*: DEBUG: Updated connected = 0", #r"Digest mis-match:", - r"crmd:.*Transition failed: terminated", + r"pacemaker-controld:.*Transition failed: terminated", r"Local CIB .* differs from .*:", r"warn.*:\s*Continuing but .* will NOT be used", r"warn.*:\s*Cluster configuration file .* is corrupt", @@ -201,130 +203,116 @@ def __init__(self, name): ] self.components["common-ignore"] = [ - "Pending action:", - "error: crm_log_message_adv:", - r"resource( was|s were) active at shutdown", - "pending LRM operations at shutdown", - "Lost connection to the CIB service", - "Connection to the CIB terminated...", - "Sending message to CIB service FAILED", - "apply_xml_diff:.*Diff application failed!", - r"crmd.*:\s*Action A_RECOVER .* not supported", - "unconfirmed_actions:.*Waiting on .* unconfirmed actions", - "cib_native_msgready:.*Message pending on command channel", - r"crmd.*:\s*Performing A_EXIT_1 - forcefully exiting the CRMd", - "verify_stopped:.*Resource .* was active at shutdown. You may ignore this error if it is unmanaged.", - "error: attrd_connection_destroy:.*Lost connection to attrd", - r".*:\s*Executing .* fencing operation \(.*\) on ", - r".*:\s*Requesting fencing \([^)]+\) of node ", - r"(Blackbox dump requested|Problem detected)", -# "error: native_create_actions: Resource .*stonith::.* is active on 2 nodes attempting recovery", -# "error: process_pe_message: Transition .* ERRORs found during PE processing", - ] + r"Pending action:", + r"resource( was|s were) active at shutdown", + r"pending LRM operations at shutdown", + r"Lost connection to the CIB manager", + r"pacemaker-controld.*:\s*Action A_RECOVER .* not supported", + r"pacemaker-controld.*:\s*Performing A_EXIT_1 - forcefully exiting ", + r".*:\s*Executing .* fencing operation \(.*\) on ", + r".*:\s*Requesting fencing \([^)]+\) of node ", + r"(Blackbox dump requested|Problem detected)", +# "Resource .*stonith::.* is active on 2 nodes attempting recovery", +# "Transition .* ERRORs found during PE processing", + ] self.components["corosync-ignore"] = [ r"error:.*Connection to the CPG API failed: Library error", r"\[[0-9]+\] exited with status [0-9]+ \(", - r"cib.*error:.*Corosync connection lost", - r"stonith-ng.*error:.*Corosync connection terminated", - r"lrmd.*error:.*Connection to stonith-ng.* (failed|closed)", - r"lrmd.*error:.*LRMD lost STONITH connection", - r"crmd.*State transition .* S_RECOVERY", - r"crmd.*error:.*Input (I_ERROR|I_TERMINATE ) .*received in state", - r"crmd.*error:.*Could not recover from internal error", + r"pacemaker-based.*error:.*Corosync connection lost", + r"pacemaker-fenced.*error:.*Corosync connection terminated", + r"pacemaker-controld.*State transition .* S_RECOVERY", + r"pacemaker-controld.*error:.*Input (I_ERROR|I_TERMINATE ) .*received in state", + r"pacemaker-controld.*error:.*Could not recover from internal error", r"error:.*Connection to cib_(shm|rw).* (failed|closed)", - r"error:.*STONITH connection failed", - r"error: Connection to stonith-ng.* (failed|closed)", + r"error:.*Connection to (fencer|stonith-ng).* (closed|failed|lost)", r"crit: Fencing daemon connection failed", ] self.components["corosync"] = [ - r"pacemakerd.*error:.*Connection destroyed", - r"attrd.*:\s*(crit|error):.*Lost connection to (Corosync|CIB) service", - r"stonith.*:\s*(Corosync connection terminated|Shutting down)", - r"cib.*:\s*Corosync connection lost!\s+Exiting.", - r"crmd.*:\s*(connection terminated|Disconnected from Corosync)", - r"pengine.*Scheduling Node .* for STONITH", - r"crmd.*:\s*Peer .* was terminated \(.*\) by .* for .*:\s*OK", + # We expect each daemon to lose its cluster connection. + # However, if the CIB manager loses its connection first, + # it's possible for another daemon to lose that connection and + # exit before losing the cluster connection. + r"pacemakerd.*:\s*(crit|error):.*Lost connection to cluster layer", + r"pacemaker-attrd.*:\s*(crit|error):.*Lost connection to (cluster layer|the CIB manager)", + r"pacemaker-based.*:\s*(crit|error):.*Lost connection to cluster layer", + r"pacemaker-controld.*:\s*(crit|error):.*Lost connection to (cluster layer|the CIB manager)", + r"pacemaker-fenced.*:\s*(crit|error):.*Lost connection to (cluster layer|the CIB manager)", + r"schedulerd.*Scheduling Node .* for STONITH", + r"pacemaker-controld.*:\s*Peer .* was terminated \(.*\) by .* on behalf of .*:\s*OK", ] - self.components["cib-ignore"] = [ - "lrmd.*Connection to stonith-ng failed", - "lrmd.*Connection to stonith-ng.* closed", - "lrmd.*LRMD lost STONITH connection", - "lrmd.*STONITH connection failed, finalizing .* pending operations", - ] - - self.components["cib"] = [ - "State transition .* S_RECOVERY", - r"Respawning failed child process: (attrd|crmd)", - "Connection to cib_.* failed", - "Connection to cib_.* closed", - r"crmd.*:.*Connection to the CIB terminated...", - r"attrd.*:.*(Lost connection to CIB service|Connection to the CIB terminated)", - r"crmd\[[0-9]+\] exited with status 1 \(", - r"attrd\[[0-9]+\] exited with status 102 \(", - r"crmd.*: Input I_TERMINATE .*from do_recover", - "crmd.*I_ERROR.*crmd_cib_connection_destroy", - "crmd.*Could not recover from internal error", - ] + self.components["pacemaker-based"] = [ + r"pacemakerd.* pacemaker-attrd\[[0-9]+\] exited with status 102", + r"pacemakerd.* pacemaker-controld\[[0-9]+\] exited with status 1", + r"pacemakerd.* Respawning failed child process: pacemaker-attrd", + r"pacemakerd.* Respawning failed child process: pacemaker-based", + r"pacemakerd.* Respawning failed child process: pacemaker-controld", + r"pacemakerd.* Respawning failed child process: pacemaker-fenced", + r"pacemaker-.* Connection to cib_.* (failed|closed)", + r"pacemaker-attrd.*:.*Lost connection to the CIB manager", + r"pacemaker-controld.*:.*Lost connection to the CIB manager", + r"pacemaker-controld.*I_ERROR.*crmd_cib_connection_destroy", + r"pacemaker-controld.* State transition .* S_RECOVERY", + r"pacemaker-controld.*: Input I_TERMINATE .*from do_recover", + r"pacemaker-controld.*Could not recover from internal error", + ] + self.components["pacemaker-based-ignore"] = [ + r"pacemaker-execd.*Connection to (fencer|stonith-ng).* (closed|failed|lost)", + ] - self.components["lrmd"] = [ - "State transition .* S_RECOVERY", - "LRM Connection failed", - r"Respawning failed child process: crmd", - "Connection to lrmd failed", - "Connection to lrmd.* closed", - "crmd.*I_ERROR.*lrm_connection_destroy", - r"crmd\[[0-9]+\] exited with status 1 \(", - r"crmd.*: Input I_TERMINATE .*from do_recover", - "crmd.*Could not recover from internal error", - ] - self.components["lrmd-ignore"] = [] + self.components["pacemaker-execd"] = [ + r"pacemaker-controld.*Connection to (pacemaker-execd|lrmd|executor) (failed|closed)", + r"pacemaker-controld.*I_ERROR.*lrm_connection_destroy", + r"pacemaker-controld.*State transition .* S_RECOVERY", + r"pacemaker-controld.*: Input I_TERMINATE .*from do_recover", + r"pacemaker-controld.*Could not recover from internal error", + r"pacemakerd.*pacemaker-execd.* terminated with signal 9", + r"pacemakerd.*pacemaker-controld\[[0-9]+\] exited with status 1", + r"pacemakerd.*Respawning failed child process: pacemaker-execd", + r"pacemakerd.*Respawning failed child process: pacemaker-controld", + ] + self.components["pacemaker-execd-ignore"] = [] - self.components["crmd"] = [ + self.components["pacemaker-controld"] = [ # "WARN: determine_online_status: Node .* is unclean", # "Scheduling Node .* for STONITH", # "Executing .* fencing operation", # Only if the node wasn't the DC: "State transition S_IDLE", "State transition .* -> S_IDLE", ] - self.components["crmd-ignore"] = [] + self.components["pacemaker-controld-ignore"] = [] - self.components["attrd"] = [] - self.components["attrd-ignore"] = [] + self.components["pacemaker-attrd"] = [] + self.components["pacemaker-attrd-ignore"] = [] - self.components["pengine"] = [ + self.components["pacemaker-schedulerd"] = [ "State transition .* S_RECOVERY", - r"Respawning failed child process: crmd", - r"crmd\[[0-9]+\] exited with status 1 \(", + r"Respawning failed child process: pacemaker-controld", + r"pacemaker-controld\[[0-9]+\] exited with status 1 \(", "Connection to pengine failed", "Connection to pengine.* closed", - "Connection to the Policy Engine failed", - "crmd.*I_ERROR.*save_cib_contents", - r"crmd.*: Input I_TERMINATE .*from do_recover", - "crmd.*Could not recover from internal error", + r"Connection to the scheduler failed", + "pacemaker-controld.*I_ERROR.*save_cib_contents", + r"pacemaker-controld.*: Input I_TERMINATE .*from do_recover", + "pacemaker-controld.*Could not recover from internal error", ] - self.components["pengine-ignore"] = [] - - self.components["stonith"] = [ - "Connection to stonith-ng failed", - "LRMD lost STONITH connection", - "Connection to stonith-ng.* closed", - "Fencing daemon connection failed", - r"crmd.*:\s*warn.*:\s*Callback already present", + self.components["pacemaker-schedulerd-ignore"] = [] + + self.components["pacemaker-fenced"] = [ + r"error:.*Connection to (fencer|stonith-ng).* (closed|failed|lost)", + r"Fencing daemon connection failed", + r"pacemaker-controld.*:\s*warn.*:\s*Callback already present", ] - self.components["stonith-ignore"] = [ - r"pengine.*: Recover Fencing", - r"Updating failcount for Fencing", - r"error:.*Connection to stonith-ng failed", - r"error:.*Connection to stonith-ng.*closed \(I/O condition=17\)", + self.components["pacemaker-fenced-ignore"] = [ + r"error:.*Connection to (fencer|stonith-ng).* (closed|failed|lost)", r"crit:.*Fencing daemon connection failed", r"error:.*Sign-in failed: triggered a retry", - "STONITH connection failed, finalizing .* pending operations.", - r"crmd.*:\s+Result of .* operation for Fencing.*Error", + r"Connection to (fencer|stonith-ng) failed, finalizing .* pending operations", + r"pacemaker-controld.*:\s+Result of .* operation for Fencing.*Error", ] - self.components["stonith-ignore"].extend(self.components["common-ignore"]) + self.components["pacemaker-fenced-ignore"].extend(self.components["common-ignore"]) class crm_corosync_docker(crm_corosync): diff --git a/cts/pengine/1-a-then-bm-move-b.dot b/cts/scheduler/1-a-then-bm-move-b.dot similarity index 100% rename from cts/pengine/1-a-then-bm-move-b.dot rename to cts/scheduler/1-a-then-bm-move-b.dot diff --git a/cts/pengine/1-a-then-bm-move-b.exp b/cts/scheduler/1-a-then-bm-move-b.exp similarity index 100% rename from cts/pengine/1-a-then-bm-move-b.exp rename to cts/scheduler/1-a-then-bm-move-b.exp diff --git a/cts/pengine/1-a-then-bm-move-b.scores b/cts/scheduler/1-a-then-bm-move-b.scores similarity index 100% rename from cts/pengine/1-a-then-bm-move-b.scores rename to cts/scheduler/1-a-then-bm-move-b.scores diff --git a/cts/pengine/1-a-then-bm-move-b.summary b/cts/scheduler/1-a-then-bm-move-b.summary similarity index 100% rename from cts/pengine/1-a-then-bm-move-b.summary rename to cts/scheduler/1-a-then-bm-move-b.summary diff --git a/cts/pengine/1-a-then-bm-move-b.xml b/cts/scheduler/1-a-then-bm-move-b.xml similarity index 100% rename from cts/pengine/1-a-then-bm-move-b.xml rename to cts/scheduler/1-a-then-bm-move-b.xml diff --git a/cts/pengine/10-a-then-bm-b-move-a-clone.dot b/cts/scheduler/10-a-then-bm-b-move-a-clone.dot similarity index 100% rename from cts/pengine/10-a-then-bm-b-move-a-clone.dot rename to cts/scheduler/10-a-then-bm-b-move-a-clone.dot diff --git a/cts/pengine/10-a-then-bm-b-move-a-clone.exp b/cts/scheduler/10-a-then-bm-b-move-a-clone.exp similarity index 100% rename from cts/pengine/10-a-then-bm-b-move-a-clone.exp rename to cts/scheduler/10-a-then-bm-b-move-a-clone.exp diff --git a/cts/pengine/10-a-then-bm-b-move-a-clone.scores b/cts/scheduler/10-a-then-bm-b-move-a-clone.scores similarity index 100% rename from cts/pengine/10-a-then-bm-b-move-a-clone.scores rename to cts/scheduler/10-a-then-bm-b-move-a-clone.scores diff --git a/cts/pengine/10-a-then-bm-b-move-a-clone.summary b/cts/scheduler/10-a-then-bm-b-move-a-clone.summary similarity index 100% rename from cts/pengine/10-a-then-bm-b-move-a-clone.summary rename to cts/scheduler/10-a-then-bm-b-move-a-clone.summary diff --git a/cts/pengine/10-a-then-bm-b-move-a-clone.xml b/cts/scheduler/10-a-then-bm-b-move-a-clone.xml similarity index 100% rename from cts/pengine/10-a-then-bm-b-move-a-clone.xml rename to cts/scheduler/10-a-then-bm-b-move-a-clone.xml diff --git a/cts/pengine/11-a-then-bm-b-move-a-clone-starting.dot b/cts/scheduler/11-a-then-bm-b-move-a-clone-starting.dot similarity index 100% rename from cts/pengine/11-a-then-bm-b-move-a-clone-starting.dot rename to cts/scheduler/11-a-then-bm-b-move-a-clone-starting.dot diff --git a/cts/pengine/11-a-then-bm-b-move-a-clone-starting.exp b/cts/scheduler/11-a-then-bm-b-move-a-clone-starting.exp similarity index 100% rename from cts/pengine/11-a-then-bm-b-move-a-clone-starting.exp rename to cts/scheduler/11-a-then-bm-b-move-a-clone-starting.exp diff --git a/cts/pengine/11-a-then-bm-b-move-a-clone-starting.scores b/cts/scheduler/11-a-then-bm-b-move-a-clone-starting.scores similarity index 100% rename from cts/pengine/11-a-then-bm-b-move-a-clone-starting.scores rename to cts/scheduler/11-a-then-bm-b-move-a-clone-starting.scores diff --git a/cts/pengine/11-a-then-bm-b-move-a-clone-starting.summary b/cts/scheduler/11-a-then-bm-b-move-a-clone-starting.summary similarity index 100% rename from cts/pengine/11-a-then-bm-b-move-a-clone-starting.summary rename to cts/scheduler/11-a-then-bm-b-move-a-clone-starting.summary diff --git a/cts/pengine/11-a-then-bm-b-move-a-clone-starting.xml b/cts/scheduler/11-a-then-bm-b-move-a-clone-starting.xml similarity index 100% rename from cts/pengine/11-a-then-bm-b-move-a-clone-starting.xml rename to cts/scheduler/11-a-then-bm-b-move-a-clone-starting.xml diff --git a/cts/pengine/1360.dot b/cts/scheduler/1360.dot similarity index 100% rename from cts/pengine/1360.dot rename to cts/scheduler/1360.dot diff --git a/cts/pengine/1360.exp b/cts/scheduler/1360.exp similarity index 100% rename from cts/pengine/1360.exp rename to cts/scheduler/1360.exp diff --git a/cts/pengine/1360.scores b/cts/scheduler/1360.scores similarity index 100% rename from cts/pengine/1360.scores rename to cts/scheduler/1360.scores diff --git a/cts/pengine/1360.summary b/cts/scheduler/1360.summary similarity index 100% rename from cts/pengine/1360.summary rename to cts/scheduler/1360.summary diff --git a/cts/pengine/1360.xml b/cts/scheduler/1360.xml similarity index 100% rename from cts/pengine/1360.xml rename to cts/scheduler/1360.xml diff --git a/cts/pengine/1484.dot b/cts/scheduler/1484.dot similarity index 100% rename from cts/pengine/1484.dot rename to cts/scheduler/1484.dot diff --git a/cts/pengine/1484.exp b/cts/scheduler/1484.exp similarity index 100% rename from cts/pengine/1484.exp rename to cts/scheduler/1484.exp diff --git a/cts/pengine/1484.scores b/cts/scheduler/1484.scores similarity index 100% rename from cts/pengine/1484.scores rename to cts/scheduler/1484.scores diff --git a/cts/pengine/1484.summary b/cts/scheduler/1484.summary similarity index 100% rename from cts/pengine/1484.summary rename to cts/scheduler/1484.summary diff --git a/cts/pengine/1484.xml b/cts/scheduler/1484.xml similarity index 100% rename from cts/pengine/1484.xml rename to cts/scheduler/1484.xml diff --git a/cts/pengine/1494.dot b/cts/scheduler/1494.dot similarity index 100% rename from cts/pengine/1494.dot rename to cts/scheduler/1494.dot diff --git a/cts/pengine/1494.exp b/cts/scheduler/1494.exp similarity index 100% rename from cts/pengine/1494.exp rename to cts/scheduler/1494.exp diff --git a/cts/pengine/1494.scores b/cts/scheduler/1494.scores similarity index 100% rename from cts/pengine/1494.scores rename to cts/scheduler/1494.scores diff --git a/cts/pengine/1494.summary b/cts/scheduler/1494.summary similarity index 100% rename from cts/pengine/1494.summary rename to cts/scheduler/1494.summary diff --git a/cts/pengine/1494.xml b/cts/scheduler/1494.xml similarity index 100% rename from cts/pengine/1494.xml rename to cts/scheduler/1494.xml diff --git a/cts/pengine/2-am-then-b-move-a.dot b/cts/scheduler/2-am-then-b-move-a.dot similarity index 100% rename from cts/pengine/2-am-then-b-move-a.dot rename to cts/scheduler/2-am-then-b-move-a.dot diff --git a/cts/pengine/2-am-then-b-move-a.exp b/cts/scheduler/2-am-then-b-move-a.exp similarity index 100% rename from cts/pengine/2-am-then-b-move-a.exp rename to cts/scheduler/2-am-then-b-move-a.exp diff --git a/cts/pengine/2-am-then-b-move-a.scores b/cts/scheduler/2-am-then-b-move-a.scores similarity index 100% rename from cts/pengine/2-am-then-b-move-a.scores rename to cts/scheduler/2-am-then-b-move-a.scores diff --git a/cts/pengine/2-am-then-b-move-a.summary b/cts/scheduler/2-am-then-b-move-a.summary similarity index 100% rename from cts/pengine/2-am-then-b-move-a.summary rename to cts/scheduler/2-am-then-b-move-a.summary diff --git a/cts/pengine/2-am-then-b-move-a.xml b/cts/scheduler/2-am-then-b-move-a.xml similarity index 100% rename from cts/pengine/2-am-then-b-move-a.xml rename to cts/scheduler/2-am-then-b-move-a.xml diff --git a/cts/pengine/3-am-then-bm-both-migrate.dot b/cts/scheduler/3-am-then-bm-both-migrate.dot similarity index 100% rename from cts/pengine/3-am-then-bm-both-migrate.dot rename to cts/scheduler/3-am-then-bm-both-migrate.dot diff --git a/cts/pengine/3-am-then-bm-both-migrate.exp b/cts/scheduler/3-am-then-bm-both-migrate.exp similarity index 100% rename from cts/pengine/3-am-then-bm-both-migrate.exp rename to cts/scheduler/3-am-then-bm-both-migrate.exp diff --git a/cts/pengine/3-am-then-bm-both-migrate.scores b/cts/scheduler/3-am-then-bm-both-migrate.scores similarity index 100% rename from cts/pengine/3-am-then-bm-both-migrate.scores rename to cts/scheduler/3-am-then-bm-both-migrate.scores diff --git a/cts/pengine/3-am-then-bm-both-migrate.summary b/cts/scheduler/3-am-then-bm-both-migrate.summary similarity index 100% rename from cts/pengine/3-am-then-bm-both-migrate.summary rename to cts/scheduler/3-am-then-bm-both-migrate.summary diff --git a/cts/pengine/3-am-then-bm-both-migrate.xml b/cts/scheduler/3-am-then-bm-both-migrate.xml similarity index 100% rename from cts/pengine/3-am-then-bm-both-migrate.xml rename to cts/scheduler/3-am-then-bm-both-migrate.xml diff --git a/cts/pengine/4-am-then-bm-b-not-migratable.dot b/cts/scheduler/4-am-then-bm-b-not-migratable.dot similarity index 100% rename from cts/pengine/4-am-then-bm-b-not-migratable.dot rename to cts/scheduler/4-am-then-bm-b-not-migratable.dot diff --git a/cts/pengine/4-am-then-bm-b-not-migratable.exp b/cts/scheduler/4-am-then-bm-b-not-migratable.exp similarity index 100% rename from cts/pengine/4-am-then-bm-b-not-migratable.exp rename to cts/scheduler/4-am-then-bm-b-not-migratable.exp diff --git a/cts/pengine/4-am-then-bm-b-not-migratable.scores b/cts/scheduler/4-am-then-bm-b-not-migratable.scores similarity index 100% rename from cts/pengine/4-am-then-bm-b-not-migratable.scores rename to cts/scheduler/4-am-then-bm-b-not-migratable.scores diff --git a/cts/pengine/4-am-then-bm-b-not-migratable.summary b/cts/scheduler/4-am-then-bm-b-not-migratable.summary similarity index 100% rename from cts/pengine/4-am-then-bm-b-not-migratable.summary rename to cts/scheduler/4-am-then-bm-b-not-migratable.summary diff --git a/cts/pengine/4-am-then-bm-b-not-migratable.xml b/cts/scheduler/4-am-then-bm-b-not-migratable.xml similarity index 100% rename from cts/pengine/4-am-then-bm-b-not-migratable.xml rename to cts/scheduler/4-am-then-bm-b-not-migratable.xml diff --git a/cts/pengine/5-am-then-bm-a-not-migratable.dot b/cts/scheduler/5-am-then-bm-a-not-migratable.dot similarity index 100% rename from cts/pengine/5-am-then-bm-a-not-migratable.dot rename to cts/scheduler/5-am-then-bm-a-not-migratable.dot diff --git a/cts/pengine/5-am-then-bm-a-not-migratable.exp b/cts/scheduler/5-am-then-bm-a-not-migratable.exp similarity index 100% rename from cts/pengine/5-am-then-bm-a-not-migratable.exp rename to cts/scheduler/5-am-then-bm-a-not-migratable.exp diff --git a/cts/pengine/5-am-then-bm-a-not-migratable.scores b/cts/scheduler/5-am-then-bm-a-not-migratable.scores similarity index 100% rename from cts/pengine/5-am-then-bm-a-not-migratable.scores rename to cts/scheduler/5-am-then-bm-a-not-migratable.scores diff --git a/cts/pengine/5-am-then-bm-a-not-migratable.summary b/cts/scheduler/5-am-then-bm-a-not-migratable.summary similarity index 100% rename from cts/pengine/5-am-then-bm-a-not-migratable.summary rename to cts/scheduler/5-am-then-bm-a-not-migratable.summary diff --git a/cts/pengine/5-am-then-bm-a-not-migratable.xml b/cts/scheduler/5-am-then-bm-a-not-migratable.xml similarity index 100% rename from cts/pengine/5-am-then-bm-a-not-migratable.xml rename to cts/scheduler/5-am-then-bm-a-not-migratable.xml diff --git a/cts/pengine/594.dot b/cts/scheduler/594.dot similarity index 100% rename from cts/pengine/594.dot rename to cts/scheduler/594.dot diff --git a/cts/pengine/594.exp b/cts/scheduler/594.exp similarity index 100% rename from cts/pengine/594.exp rename to cts/scheduler/594.exp diff --git a/cts/pengine/594.scores b/cts/scheduler/594.scores similarity index 100% rename from cts/pengine/594.scores rename to cts/scheduler/594.scores diff --git a/cts/pengine/594.summary b/cts/scheduler/594.summary similarity index 100% rename from cts/pengine/594.summary rename to cts/scheduler/594.summary diff --git a/cts/pengine/594.xml b/cts/scheduler/594.xml similarity index 100% rename from cts/pengine/594.xml rename to cts/scheduler/594.xml diff --git a/cts/pengine/6-migrate-group.dot b/cts/scheduler/6-migrate-group.dot similarity index 100% rename from cts/pengine/6-migrate-group.dot rename to cts/scheduler/6-migrate-group.dot diff --git a/cts/pengine/6-migrate-group.exp b/cts/scheduler/6-migrate-group.exp similarity index 100% rename from cts/pengine/6-migrate-group.exp rename to cts/scheduler/6-migrate-group.exp diff --git a/cts/pengine/6-migrate-group.scores b/cts/scheduler/6-migrate-group.scores similarity index 100% rename from cts/pengine/6-migrate-group.scores rename to cts/scheduler/6-migrate-group.scores diff --git a/cts/pengine/6-migrate-group.summary b/cts/scheduler/6-migrate-group.summary similarity index 100% rename from cts/pengine/6-migrate-group.summary rename to cts/scheduler/6-migrate-group.summary diff --git a/cts/pengine/6-migrate-group.xml b/cts/scheduler/6-migrate-group.xml similarity index 100% rename from cts/pengine/6-migrate-group.xml rename to cts/scheduler/6-migrate-group.xml diff --git a/cts/pengine/662.dot b/cts/scheduler/662.dot similarity index 100% rename from cts/pengine/662.dot rename to cts/scheduler/662.dot diff --git a/cts/pengine/662.exp b/cts/scheduler/662.exp similarity index 100% rename from cts/pengine/662.exp rename to cts/scheduler/662.exp diff --git a/cts/pengine/662.scores b/cts/scheduler/662.scores similarity index 100% rename from cts/pengine/662.scores rename to cts/scheduler/662.scores diff --git a/cts/pengine/662.summary b/cts/scheduler/662.summary similarity index 100% rename from cts/pengine/662.summary rename to cts/scheduler/662.summary diff --git a/cts/pengine/662.xml b/cts/scheduler/662.xml similarity index 100% rename from cts/pengine/662.xml rename to cts/scheduler/662.xml diff --git a/cts/pengine/696.dot b/cts/scheduler/696.dot similarity index 100% rename from cts/pengine/696.dot rename to cts/scheduler/696.dot diff --git a/cts/pengine/696.exp b/cts/scheduler/696.exp similarity index 100% rename from cts/pengine/696.exp rename to cts/scheduler/696.exp diff --git a/cts/pengine/696.scores b/cts/scheduler/696.scores similarity index 100% rename from cts/pengine/696.scores rename to cts/scheduler/696.scores diff --git a/cts/pengine/696.summary b/cts/scheduler/696.summary similarity index 100% rename from cts/pengine/696.summary rename to cts/scheduler/696.summary diff --git a/cts/pengine/696.xml b/cts/scheduler/696.xml similarity index 100% rename from cts/pengine/696.xml rename to cts/scheduler/696.xml diff --git a/cts/pengine/7-migrate-group-one-unmigratable.dot b/cts/scheduler/7-migrate-group-one-unmigratable.dot similarity index 100% rename from cts/pengine/7-migrate-group-one-unmigratable.dot rename to cts/scheduler/7-migrate-group-one-unmigratable.dot diff --git a/cts/pengine/7-migrate-group-one-unmigratable.exp b/cts/scheduler/7-migrate-group-one-unmigratable.exp similarity index 100% rename from cts/pengine/7-migrate-group-one-unmigratable.exp rename to cts/scheduler/7-migrate-group-one-unmigratable.exp diff --git a/cts/pengine/7-migrate-group-one-unmigratable.scores b/cts/scheduler/7-migrate-group-one-unmigratable.scores similarity index 100% rename from cts/pengine/7-migrate-group-one-unmigratable.scores rename to cts/scheduler/7-migrate-group-one-unmigratable.scores diff --git a/cts/pengine/7-migrate-group-one-unmigratable.summary b/cts/scheduler/7-migrate-group-one-unmigratable.summary similarity index 100% rename from cts/pengine/7-migrate-group-one-unmigratable.summary rename to cts/scheduler/7-migrate-group-one-unmigratable.summary diff --git a/cts/pengine/7-migrate-group-one-unmigratable.xml b/cts/scheduler/7-migrate-group-one-unmigratable.xml similarity index 100% rename from cts/pengine/7-migrate-group-one-unmigratable.xml rename to cts/scheduler/7-migrate-group-one-unmigratable.xml diff --git a/cts/pengine/726.dot b/cts/scheduler/726.dot similarity index 100% rename from cts/pengine/726.dot rename to cts/scheduler/726.dot diff --git a/cts/pengine/726.exp b/cts/scheduler/726.exp similarity index 100% rename from cts/pengine/726.exp rename to cts/scheduler/726.exp diff --git a/cts/pengine/726.scores b/cts/scheduler/726.scores similarity index 100% rename from cts/pengine/726.scores rename to cts/scheduler/726.scores diff --git a/cts/pengine/726.summary b/cts/scheduler/726.summary similarity index 100% rename from cts/pengine/726.summary rename to cts/scheduler/726.summary diff --git a/cts/pengine/726.xml b/cts/scheduler/726.xml similarity index 100% rename from cts/pengine/726.xml rename to cts/scheduler/726.xml diff --git a/cts/pengine/735.dot b/cts/scheduler/735.dot similarity index 100% rename from cts/pengine/735.dot rename to cts/scheduler/735.dot diff --git a/cts/pengine/735.exp b/cts/scheduler/735.exp similarity index 100% rename from cts/pengine/735.exp rename to cts/scheduler/735.exp diff --git a/cts/pengine/735.scores b/cts/scheduler/735.scores similarity index 100% rename from cts/pengine/735.scores rename to cts/scheduler/735.scores diff --git a/cts/pengine/735.summary b/cts/scheduler/735.summary similarity index 100% rename from cts/pengine/735.summary rename to cts/scheduler/735.summary diff --git a/cts/pengine/735.xml b/cts/scheduler/735.xml similarity index 100% rename from cts/pengine/735.xml rename to cts/scheduler/735.xml diff --git a/cts/pengine/764.dot b/cts/scheduler/764.dot similarity index 100% rename from cts/pengine/764.dot rename to cts/scheduler/764.dot diff --git a/cts/pengine/764.exp b/cts/scheduler/764.exp similarity index 100% rename from cts/pengine/764.exp rename to cts/scheduler/764.exp diff --git a/cts/pengine/764.scores b/cts/scheduler/764.scores similarity index 100% rename from cts/pengine/764.scores rename to cts/scheduler/764.scores diff --git a/cts/pengine/764.summary b/cts/scheduler/764.summary similarity index 100% rename from cts/pengine/764.summary rename to cts/scheduler/764.summary diff --git a/cts/pengine/764.xml b/cts/scheduler/764.xml similarity index 100% rename from cts/pengine/764.xml rename to cts/scheduler/764.xml diff --git a/cts/pengine/797.dot b/cts/scheduler/797.dot similarity index 100% rename from cts/pengine/797.dot rename to cts/scheduler/797.dot diff --git a/cts/pengine/797.exp b/cts/scheduler/797.exp similarity index 100% rename from cts/pengine/797.exp rename to cts/scheduler/797.exp diff --git a/cts/pengine/797.scores b/cts/scheduler/797.scores similarity index 100% rename from cts/pengine/797.scores rename to cts/scheduler/797.scores diff --git a/cts/pengine/797.summary b/cts/scheduler/797.summary similarity index 100% rename from cts/pengine/797.summary rename to cts/scheduler/797.summary diff --git a/cts/pengine/797.xml b/cts/scheduler/797.xml similarity index 100% rename from cts/pengine/797.xml rename to cts/scheduler/797.xml diff --git a/cts/pengine/8-am-then-bm-a-migrating-b-stopping.dot b/cts/scheduler/8-am-then-bm-a-migrating-b-stopping.dot similarity index 100% rename from cts/pengine/8-am-then-bm-a-migrating-b-stopping.dot rename to cts/scheduler/8-am-then-bm-a-migrating-b-stopping.dot diff --git a/cts/pengine/8-am-then-bm-a-migrating-b-stopping.exp b/cts/scheduler/8-am-then-bm-a-migrating-b-stopping.exp similarity index 100% rename from cts/pengine/8-am-then-bm-a-migrating-b-stopping.exp rename to cts/scheduler/8-am-then-bm-a-migrating-b-stopping.exp diff --git a/cts/pengine/8-am-then-bm-a-migrating-b-stopping.scores b/cts/scheduler/8-am-then-bm-a-migrating-b-stopping.scores similarity index 100% rename from cts/pengine/8-am-then-bm-a-migrating-b-stopping.scores rename to cts/scheduler/8-am-then-bm-a-migrating-b-stopping.scores diff --git a/cts/pengine/8-am-then-bm-a-migrating-b-stopping.summary b/cts/scheduler/8-am-then-bm-a-migrating-b-stopping.summary similarity index 100% rename from cts/pengine/8-am-then-bm-a-migrating-b-stopping.summary rename to cts/scheduler/8-am-then-bm-a-migrating-b-stopping.summary diff --git a/cts/pengine/8-am-then-bm-a-migrating-b-stopping.xml b/cts/scheduler/8-am-then-bm-a-migrating-b-stopping.xml similarity index 100% rename from cts/pengine/8-am-then-bm-a-migrating-b-stopping.xml rename to cts/scheduler/8-am-then-bm-a-migrating-b-stopping.xml diff --git a/cts/pengine/829.dot b/cts/scheduler/829.dot similarity index 100% rename from cts/pengine/829.dot rename to cts/scheduler/829.dot diff --git a/cts/pengine/829.exp b/cts/scheduler/829.exp similarity index 100% rename from cts/pengine/829.exp rename to cts/scheduler/829.exp diff --git a/cts/pengine/829.scores b/cts/scheduler/829.scores similarity index 100% rename from cts/pengine/829.scores rename to cts/scheduler/829.scores diff --git a/cts/pengine/829.summary b/cts/scheduler/829.summary similarity index 100% rename from cts/pengine/829.summary rename to cts/scheduler/829.summary diff --git a/cts/pengine/829.xml b/cts/scheduler/829.xml similarity index 100% rename from cts/pengine/829.xml rename to cts/scheduler/829.xml diff --git a/cts/pengine/9-am-then-bm-b-migrating-a-stopping.dot b/cts/scheduler/9-am-then-bm-b-migrating-a-stopping.dot similarity index 100% rename from cts/pengine/9-am-then-bm-b-migrating-a-stopping.dot rename to cts/scheduler/9-am-then-bm-b-migrating-a-stopping.dot diff --git a/cts/pengine/9-am-then-bm-b-migrating-a-stopping.exp b/cts/scheduler/9-am-then-bm-b-migrating-a-stopping.exp similarity index 100% rename from cts/pengine/9-am-then-bm-b-migrating-a-stopping.exp rename to cts/scheduler/9-am-then-bm-b-migrating-a-stopping.exp diff --git a/cts/pengine/9-am-then-bm-b-migrating-a-stopping.scores b/cts/scheduler/9-am-then-bm-b-migrating-a-stopping.scores similarity index 100% rename from cts/pengine/9-am-then-bm-b-migrating-a-stopping.scores rename to cts/scheduler/9-am-then-bm-b-migrating-a-stopping.scores diff --git a/cts/pengine/9-am-then-bm-b-migrating-a-stopping.summary b/cts/scheduler/9-am-then-bm-b-migrating-a-stopping.summary similarity index 100% rename from cts/pengine/9-am-then-bm-b-migrating-a-stopping.summary rename to cts/scheduler/9-am-then-bm-b-migrating-a-stopping.summary diff --git a/cts/pengine/9-am-then-bm-b-migrating-a-stopping.xml b/cts/scheduler/9-am-then-bm-b-migrating-a-stopping.xml similarity index 100% rename from cts/pengine/9-am-then-bm-b-migrating-a-stopping.xml rename to cts/scheduler/9-am-then-bm-b-migrating-a-stopping.xml diff --git a/cts/pengine/994-2.dot b/cts/scheduler/994-2.dot similarity index 100% rename from cts/pengine/994-2.dot rename to cts/scheduler/994-2.dot diff --git a/cts/pengine/994-2.exp b/cts/scheduler/994-2.exp similarity index 100% rename from cts/pengine/994-2.exp rename to cts/scheduler/994-2.exp diff --git a/cts/pengine/994-2.scores b/cts/scheduler/994-2.scores similarity index 100% rename from cts/pengine/994-2.scores rename to cts/scheduler/994-2.scores diff --git a/cts/pengine/994-2.summary b/cts/scheduler/994-2.summary similarity index 100% rename from cts/pengine/994-2.summary rename to cts/scheduler/994-2.summary diff --git a/cts/pengine/994-2.xml b/cts/scheduler/994-2.xml similarity index 100% rename from cts/pengine/994-2.xml rename to cts/scheduler/994-2.xml diff --git a/cts/pengine/994.dot b/cts/scheduler/994.dot similarity index 100% rename from cts/pengine/994.dot rename to cts/scheduler/994.dot diff --git a/cts/pengine/994.exp b/cts/scheduler/994.exp similarity index 100% rename from cts/pengine/994.exp rename to cts/scheduler/994.exp diff --git a/cts/pengine/994.scores b/cts/scheduler/994.scores similarity index 100% rename from cts/pengine/994.scores rename to cts/scheduler/994.scores diff --git a/cts/pengine/994.summary b/cts/scheduler/994.summary similarity index 100% rename from cts/pengine/994.summary rename to cts/scheduler/994.summary diff --git a/cts/pengine/994.xml b/cts/scheduler/994.xml similarity index 100% rename from cts/pengine/994.xml rename to cts/scheduler/994.xml diff --git a/cts/pengine/a-demote-then-b-migrate.dot b/cts/scheduler/a-demote-then-b-migrate.dot similarity index 100% rename from cts/pengine/a-demote-then-b-migrate.dot rename to cts/scheduler/a-demote-then-b-migrate.dot diff --git a/cts/pengine/a-demote-then-b-migrate.exp b/cts/scheduler/a-demote-then-b-migrate.exp similarity index 100% rename from cts/pengine/a-demote-then-b-migrate.exp rename to cts/scheduler/a-demote-then-b-migrate.exp diff --git a/cts/pengine/a-demote-then-b-migrate.scores b/cts/scheduler/a-demote-then-b-migrate.scores similarity index 100% rename from cts/pengine/a-demote-then-b-migrate.scores rename to cts/scheduler/a-demote-then-b-migrate.scores diff --git a/cts/pengine/a-demote-then-b-migrate.summary b/cts/scheduler/a-demote-then-b-migrate.summary similarity index 100% rename from cts/pengine/a-demote-then-b-migrate.summary rename to cts/scheduler/a-demote-then-b-migrate.summary diff --git a/cts/pengine/a-demote-then-b-migrate.xml b/cts/scheduler/a-demote-then-b-migrate.xml similarity index 100% rename from cts/pengine/a-demote-then-b-migrate.xml rename to cts/scheduler/a-demote-then-b-migrate.xml diff --git a/cts/pengine/a-promote-then-b-migrate.dot b/cts/scheduler/a-promote-then-b-migrate.dot similarity index 100% rename from cts/pengine/a-promote-then-b-migrate.dot rename to cts/scheduler/a-promote-then-b-migrate.dot diff --git a/cts/pengine/a-promote-then-b-migrate.exp b/cts/scheduler/a-promote-then-b-migrate.exp similarity index 100% rename from cts/pengine/a-promote-then-b-migrate.exp rename to cts/scheduler/a-promote-then-b-migrate.exp diff --git a/cts/pengine/a-promote-then-b-migrate.scores b/cts/scheduler/a-promote-then-b-migrate.scores similarity index 100% rename from cts/pengine/a-promote-then-b-migrate.scores rename to cts/scheduler/a-promote-then-b-migrate.scores diff --git a/cts/pengine/a-promote-then-b-migrate.summary b/cts/scheduler/a-promote-then-b-migrate.summary similarity index 100% rename from cts/pengine/a-promote-then-b-migrate.summary rename to cts/scheduler/a-promote-then-b-migrate.summary diff --git a/cts/pengine/a-promote-then-b-migrate.xml b/cts/scheduler/a-promote-then-b-migrate.xml similarity index 100% rename from cts/pengine/a-promote-then-b-migrate.xml rename to cts/scheduler/a-promote-then-b-migrate.xml diff --git a/cts/pengine/anti-colocation-master.dot b/cts/scheduler/anti-colocation-master.dot similarity index 100% rename from cts/pengine/anti-colocation-master.dot rename to cts/scheduler/anti-colocation-master.dot diff --git a/cts/pengine/anti-colocation-master.exp b/cts/scheduler/anti-colocation-master.exp similarity index 100% rename from cts/pengine/anti-colocation-master.exp rename to cts/scheduler/anti-colocation-master.exp diff --git a/cts/pengine/anti-colocation-master.scores b/cts/scheduler/anti-colocation-master.scores similarity index 100% rename from cts/pengine/anti-colocation-master.scores rename to cts/scheduler/anti-colocation-master.scores diff --git a/cts/pengine/anti-colocation-master.summary b/cts/scheduler/anti-colocation-master.summary similarity index 100% rename from cts/pengine/anti-colocation-master.summary rename to cts/scheduler/anti-colocation-master.summary diff --git a/cts/pengine/anti-colocation-master.xml b/cts/scheduler/anti-colocation-master.xml similarity index 100% rename from cts/pengine/anti-colocation-master.xml rename to cts/scheduler/anti-colocation-master.xml diff --git a/cts/pengine/anti-colocation-order.dot b/cts/scheduler/anti-colocation-order.dot similarity index 100% rename from cts/pengine/anti-colocation-order.dot rename to cts/scheduler/anti-colocation-order.dot diff --git a/cts/pengine/anti-colocation-order.exp b/cts/scheduler/anti-colocation-order.exp similarity index 100% rename from cts/pengine/anti-colocation-order.exp rename to cts/scheduler/anti-colocation-order.exp diff --git a/cts/pengine/anti-colocation-order.scores b/cts/scheduler/anti-colocation-order.scores similarity index 100% rename from cts/pengine/anti-colocation-order.scores rename to cts/scheduler/anti-colocation-order.scores diff --git a/cts/pengine/anti-colocation-order.summary b/cts/scheduler/anti-colocation-order.summary similarity index 100% rename from cts/pengine/anti-colocation-order.summary rename to cts/scheduler/anti-colocation-order.summary diff --git a/cts/pengine/anti-colocation-order.xml b/cts/scheduler/anti-colocation-order.xml similarity index 100% rename from cts/pengine/anti-colocation-order.xml rename to cts/scheduler/anti-colocation-order.xml diff --git a/cts/pengine/anti-colocation-slave.dot b/cts/scheduler/anti-colocation-slave.dot similarity index 100% rename from cts/pengine/anti-colocation-slave.dot rename to cts/scheduler/anti-colocation-slave.dot diff --git a/cts/pengine/anti-colocation-slave.exp b/cts/scheduler/anti-colocation-slave.exp similarity index 100% rename from cts/pengine/anti-colocation-slave.exp rename to cts/scheduler/anti-colocation-slave.exp diff --git a/cts/pengine/anti-colocation-slave.scores b/cts/scheduler/anti-colocation-slave.scores similarity index 100% rename from cts/pengine/anti-colocation-slave.scores rename to cts/scheduler/anti-colocation-slave.scores diff --git a/cts/pengine/anti-colocation-slave.summary b/cts/scheduler/anti-colocation-slave.summary similarity index 100% rename from cts/pengine/anti-colocation-slave.summary rename to cts/scheduler/anti-colocation-slave.summary diff --git a/cts/pengine/anti-colocation-slave.xml b/cts/scheduler/anti-colocation-slave.xml similarity index 100% rename from cts/pengine/anti-colocation-slave.xml rename to cts/scheduler/anti-colocation-slave.xml diff --git a/cts/pengine/asymmetric.dot b/cts/scheduler/asymmetric.dot similarity index 100% rename from cts/pengine/asymmetric.dot rename to cts/scheduler/asymmetric.dot diff --git a/cts/pengine/asymmetric.exp b/cts/scheduler/asymmetric.exp similarity index 100% rename from cts/pengine/asymmetric.exp rename to cts/scheduler/asymmetric.exp diff --git a/cts/pengine/asymmetric.scores b/cts/scheduler/asymmetric.scores similarity index 100% rename from cts/pengine/asymmetric.scores rename to cts/scheduler/asymmetric.scores diff --git a/cts/pengine/asymmetric.summary b/cts/scheduler/asymmetric.summary similarity index 100% rename from cts/pengine/asymmetric.summary rename to cts/scheduler/asymmetric.summary diff --git a/cts/pengine/asymmetric.xml b/cts/scheduler/asymmetric.xml similarity index 100% rename from cts/pengine/asymmetric.xml rename to cts/scheduler/asymmetric.xml diff --git a/cts/pengine/asymmetrical-order-move.dot b/cts/scheduler/asymmetrical-order-move.dot similarity index 100% rename from cts/pengine/asymmetrical-order-move.dot rename to cts/scheduler/asymmetrical-order-move.dot diff --git a/cts/pengine/asymmetrical-order-move.exp b/cts/scheduler/asymmetrical-order-move.exp similarity index 100% rename from cts/pengine/asymmetrical-order-move.exp rename to cts/scheduler/asymmetrical-order-move.exp diff --git a/cts/pengine/asymmetrical-order-move.scores b/cts/scheduler/asymmetrical-order-move.scores similarity index 100% rename from cts/pengine/asymmetrical-order-move.scores rename to cts/scheduler/asymmetrical-order-move.scores diff --git a/cts/pengine/asymmetrical-order-move.summary b/cts/scheduler/asymmetrical-order-move.summary similarity index 100% rename from cts/pengine/asymmetrical-order-move.summary rename to cts/scheduler/asymmetrical-order-move.summary diff --git a/cts/pengine/asymmetrical-order-move.xml b/cts/scheduler/asymmetrical-order-move.xml similarity index 100% rename from cts/pengine/asymmetrical-order-move.xml rename to cts/scheduler/asymmetrical-order-move.xml diff --git a/cts/pengine/attrs1.dot b/cts/scheduler/attrs1.dot similarity index 100% rename from cts/pengine/attrs1.dot rename to cts/scheduler/attrs1.dot diff --git a/cts/pengine/attrs1.exp b/cts/scheduler/attrs1.exp similarity index 100% rename from cts/pengine/attrs1.exp rename to cts/scheduler/attrs1.exp diff --git a/cts/pengine/attrs1.scores b/cts/scheduler/attrs1.scores similarity index 100% rename from cts/pengine/attrs1.scores rename to cts/scheduler/attrs1.scores diff --git a/cts/pengine/attrs1.summary b/cts/scheduler/attrs1.summary similarity index 100% rename from cts/pengine/attrs1.summary rename to cts/scheduler/attrs1.summary diff --git a/cts/pengine/attrs1.te.exp b/cts/scheduler/attrs1.te.exp similarity index 100% rename from cts/pengine/attrs1.te.exp rename to cts/scheduler/attrs1.te.exp diff --git a/cts/pengine/attrs1.xml b/cts/scheduler/attrs1.xml similarity index 100% rename from cts/pengine/attrs1.xml rename to cts/scheduler/attrs1.xml diff --git a/cts/pengine/attrs2.dot b/cts/scheduler/attrs2.dot similarity index 100% rename from cts/pengine/attrs2.dot rename to cts/scheduler/attrs2.dot diff --git a/cts/pengine/attrs2.exp b/cts/scheduler/attrs2.exp similarity index 100% rename from cts/pengine/attrs2.exp rename to cts/scheduler/attrs2.exp diff --git a/cts/pengine/attrs2.scores b/cts/scheduler/attrs2.scores similarity index 100% rename from cts/pengine/attrs2.scores rename to cts/scheduler/attrs2.scores diff --git a/cts/pengine/attrs2.summary b/cts/scheduler/attrs2.summary similarity index 100% rename from cts/pengine/attrs2.summary rename to cts/scheduler/attrs2.summary diff --git a/cts/pengine/attrs2.te.exp b/cts/scheduler/attrs2.te.exp similarity index 100% rename from cts/pengine/attrs2.te.exp rename to cts/scheduler/attrs2.te.exp diff --git a/cts/pengine/attrs2.xml b/cts/scheduler/attrs2.xml similarity index 100% rename from cts/pengine/attrs2.xml rename to cts/scheduler/attrs2.xml diff --git a/cts/pengine/attrs3.dot b/cts/scheduler/attrs3.dot similarity index 100% rename from cts/pengine/attrs3.dot rename to cts/scheduler/attrs3.dot diff --git a/cts/pengine/attrs3.exp b/cts/scheduler/attrs3.exp similarity index 100% rename from cts/pengine/attrs3.exp rename to cts/scheduler/attrs3.exp diff --git a/cts/pengine/attrs3.scores b/cts/scheduler/attrs3.scores similarity index 100% rename from cts/pengine/attrs3.scores rename to cts/scheduler/attrs3.scores diff --git a/cts/pengine/attrs3.summary b/cts/scheduler/attrs3.summary similarity index 100% rename from cts/pengine/attrs3.summary rename to cts/scheduler/attrs3.summary diff --git a/cts/pengine/attrs3.te.exp b/cts/scheduler/attrs3.te.exp similarity index 100% rename from cts/pengine/attrs3.te.exp rename to cts/scheduler/attrs3.te.exp diff --git a/cts/pengine/attrs3.xml b/cts/scheduler/attrs3.xml similarity index 100% rename from cts/pengine/attrs3.xml rename to cts/scheduler/attrs3.xml diff --git a/cts/pengine/attrs4.dot b/cts/scheduler/attrs4.dot similarity index 100% rename from cts/pengine/attrs4.dot rename to cts/scheduler/attrs4.dot diff --git a/cts/pengine/attrs4.exp b/cts/scheduler/attrs4.exp similarity index 100% rename from cts/pengine/attrs4.exp rename to cts/scheduler/attrs4.exp diff --git a/cts/pengine/attrs4.scores b/cts/scheduler/attrs4.scores similarity index 100% rename from cts/pengine/attrs4.scores rename to cts/scheduler/attrs4.scores diff --git a/cts/pengine/attrs4.summary b/cts/scheduler/attrs4.summary similarity index 100% rename from cts/pengine/attrs4.summary rename to cts/scheduler/attrs4.summary diff --git a/cts/pengine/attrs4.te.exp b/cts/scheduler/attrs4.te.exp similarity index 100% rename from cts/pengine/attrs4.te.exp rename to cts/scheduler/attrs4.te.exp diff --git a/cts/pengine/attrs4.xml b/cts/scheduler/attrs4.xml similarity index 100% rename from cts/pengine/attrs4.xml rename to cts/scheduler/attrs4.xml diff --git a/cts/pengine/attrs5.dot b/cts/scheduler/attrs5.dot similarity index 100% rename from cts/pengine/attrs5.dot rename to cts/scheduler/attrs5.dot diff --git a/cts/pengine/attrs5.exp b/cts/scheduler/attrs5.exp similarity index 100% rename from cts/pengine/attrs5.exp rename to cts/scheduler/attrs5.exp diff --git a/cts/pengine/attrs5.scores b/cts/scheduler/attrs5.scores similarity index 100% rename from cts/pengine/attrs5.scores rename to cts/scheduler/attrs5.scores diff --git a/cts/pengine/attrs5.summary b/cts/scheduler/attrs5.summary similarity index 100% rename from cts/pengine/attrs5.summary rename to cts/scheduler/attrs5.summary diff --git a/cts/pengine/attrs5.te.exp b/cts/scheduler/attrs5.te.exp similarity index 100% rename from cts/pengine/attrs5.te.exp rename to cts/scheduler/attrs5.te.exp diff --git a/cts/pengine/attrs5.xml b/cts/scheduler/attrs5.xml similarity index 100% rename from cts/pengine/attrs5.xml rename to cts/scheduler/attrs5.xml diff --git a/cts/pengine/attrs6.dot b/cts/scheduler/attrs6.dot similarity index 100% rename from cts/pengine/attrs6.dot rename to cts/scheduler/attrs6.dot diff --git a/cts/pengine/attrs6.exp b/cts/scheduler/attrs6.exp similarity index 100% rename from cts/pengine/attrs6.exp rename to cts/scheduler/attrs6.exp diff --git a/cts/pengine/attrs6.scores b/cts/scheduler/attrs6.scores similarity index 100% rename from cts/pengine/attrs6.scores rename to cts/scheduler/attrs6.scores diff --git a/cts/pengine/attrs6.summary b/cts/scheduler/attrs6.summary similarity index 100% rename from cts/pengine/attrs6.summary rename to cts/scheduler/attrs6.summary diff --git a/cts/pengine/attrs6.te.exp b/cts/scheduler/attrs6.te.exp similarity index 100% rename from cts/pengine/attrs6.te.exp rename to cts/scheduler/attrs6.te.exp diff --git a/cts/pengine/attrs6.xml b/cts/scheduler/attrs6.xml similarity index 100% rename from cts/pengine/attrs6.xml rename to cts/scheduler/attrs6.xml diff --git a/cts/pengine/attrs7.dot b/cts/scheduler/attrs7.dot similarity index 100% rename from cts/pengine/attrs7.dot rename to cts/scheduler/attrs7.dot diff --git a/cts/pengine/attrs7.exp b/cts/scheduler/attrs7.exp similarity index 100% rename from cts/pengine/attrs7.exp rename to cts/scheduler/attrs7.exp diff --git a/cts/pengine/attrs7.scores b/cts/scheduler/attrs7.scores similarity index 100% rename from cts/pengine/attrs7.scores rename to cts/scheduler/attrs7.scores diff --git a/cts/pengine/attrs7.summary b/cts/scheduler/attrs7.summary similarity index 100% rename from cts/pengine/attrs7.summary rename to cts/scheduler/attrs7.summary diff --git a/cts/pengine/attrs7.te.exp b/cts/scheduler/attrs7.te.exp similarity index 100% rename from cts/pengine/attrs7.te.exp rename to cts/scheduler/attrs7.te.exp diff --git a/cts/pengine/attrs7.xml b/cts/scheduler/attrs7.xml similarity index 100% rename from cts/pengine/attrs7.xml rename to cts/scheduler/attrs7.xml diff --git a/cts/pengine/attrs8.dot b/cts/scheduler/attrs8.dot similarity index 100% rename from cts/pengine/attrs8.dot rename to cts/scheduler/attrs8.dot diff --git a/cts/pengine/attrs8.exp b/cts/scheduler/attrs8.exp similarity index 100% rename from cts/pengine/attrs8.exp rename to cts/scheduler/attrs8.exp diff --git a/cts/pengine/attrs8.scores b/cts/scheduler/attrs8.scores similarity index 100% rename from cts/pengine/attrs8.scores rename to cts/scheduler/attrs8.scores diff --git a/cts/pengine/attrs8.summary b/cts/scheduler/attrs8.summary similarity index 100% rename from cts/pengine/attrs8.summary rename to cts/scheduler/attrs8.summary diff --git a/cts/pengine/attrs8.xml b/cts/scheduler/attrs8.xml similarity index 100% rename from cts/pengine/attrs8.xml rename to cts/scheduler/attrs8.xml diff --git a/cts/pengine/balanced.dot b/cts/scheduler/balanced.dot similarity index 100% rename from cts/pengine/balanced.dot rename to cts/scheduler/balanced.dot diff --git a/cts/pengine/balanced.exp b/cts/scheduler/balanced.exp similarity index 100% rename from cts/pengine/balanced.exp rename to cts/scheduler/balanced.exp diff --git a/cts/pengine/balanced.scores b/cts/scheduler/balanced.scores similarity index 100% rename from cts/pengine/balanced.scores rename to cts/scheduler/balanced.scores diff --git a/cts/pengine/balanced.summary b/cts/scheduler/balanced.summary similarity index 100% rename from cts/pengine/balanced.summary rename to cts/scheduler/balanced.summary diff --git a/cts/pengine/balanced.xml b/cts/scheduler/balanced.xml similarity index 100% rename from cts/pengine/balanced.xml rename to cts/scheduler/balanced.xml diff --git a/cts/pengine/base-score.dot b/cts/scheduler/base-score.dot similarity index 100% rename from cts/pengine/base-score.dot rename to cts/scheduler/base-score.dot diff --git a/cts/pengine/base-score.exp b/cts/scheduler/base-score.exp similarity index 100% rename from cts/pengine/base-score.exp rename to cts/scheduler/base-score.exp diff --git a/cts/pengine/base-score.scores b/cts/scheduler/base-score.scores similarity index 100% rename from cts/pengine/base-score.scores rename to cts/scheduler/base-score.scores diff --git a/cts/pengine/base-score.summary b/cts/scheduler/base-score.summary similarity index 100% rename from cts/pengine/base-score.summary rename to cts/scheduler/base-score.summary diff --git a/cts/pengine/base-score.xml b/cts/scheduler/base-score.xml similarity index 100% rename from cts/pengine/base-score.xml rename to cts/scheduler/base-score.xml diff --git a/cts/pengine/bnc-515172.dot b/cts/scheduler/bnc-515172.dot similarity index 100% rename from cts/pengine/bnc-515172.dot rename to cts/scheduler/bnc-515172.dot diff --git a/cts/pengine/bnc-515172.exp b/cts/scheduler/bnc-515172.exp similarity index 100% rename from cts/pengine/bnc-515172.exp rename to cts/scheduler/bnc-515172.exp diff --git a/cts/pengine/bnc-515172.scores b/cts/scheduler/bnc-515172.scores similarity index 100% rename from cts/pengine/bnc-515172.scores rename to cts/scheduler/bnc-515172.scores diff --git a/cts/pengine/bnc-515172.summary b/cts/scheduler/bnc-515172.summary similarity index 100% rename from cts/pengine/bnc-515172.summary rename to cts/scheduler/bnc-515172.summary diff --git a/cts/pengine/bnc-515172.xml b/cts/scheduler/bnc-515172.xml similarity index 100% rename from cts/pengine/bnc-515172.xml rename to cts/scheduler/bnc-515172.xml diff --git a/cts/pengine/bug-1572-1.dot b/cts/scheduler/bug-1572-1.dot similarity index 100% rename from cts/pengine/bug-1572-1.dot rename to cts/scheduler/bug-1572-1.dot diff --git a/cts/pengine/bug-1572-1.exp b/cts/scheduler/bug-1572-1.exp similarity index 100% rename from cts/pengine/bug-1572-1.exp rename to cts/scheduler/bug-1572-1.exp diff --git a/cts/pengine/bug-1572-1.scores b/cts/scheduler/bug-1572-1.scores similarity index 100% rename from cts/pengine/bug-1572-1.scores rename to cts/scheduler/bug-1572-1.scores diff --git a/cts/pengine/bug-1572-1.summary b/cts/scheduler/bug-1572-1.summary similarity index 100% rename from cts/pengine/bug-1572-1.summary rename to cts/scheduler/bug-1572-1.summary diff --git a/cts/pengine/bug-1572-1.xml b/cts/scheduler/bug-1572-1.xml similarity index 100% rename from cts/pengine/bug-1572-1.xml rename to cts/scheduler/bug-1572-1.xml diff --git a/cts/pengine/bug-1572-2.dot b/cts/scheduler/bug-1572-2.dot similarity index 100% rename from cts/pengine/bug-1572-2.dot rename to cts/scheduler/bug-1572-2.dot diff --git a/cts/pengine/bug-1572-2.exp b/cts/scheduler/bug-1572-2.exp similarity index 100% rename from cts/pengine/bug-1572-2.exp rename to cts/scheduler/bug-1572-2.exp diff --git a/cts/pengine/bug-1572-2.scores b/cts/scheduler/bug-1572-2.scores similarity index 100% rename from cts/pengine/bug-1572-2.scores rename to cts/scheduler/bug-1572-2.scores diff --git a/cts/pengine/bug-1572-2.summary b/cts/scheduler/bug-1572-2.summary similarity index 100% rename from cts/pengine/bug-1572-2.summary rename to cts/scheduler/bug-1572-2.summary diff --git a/cts/pengine/bug-1572-2.xml b/cts/scheduler/bug-1572-2.xml similarity index 100% rename from cts/pengine/bug-1572-2.xml rename to cts/scheduler/bug-1572-2.xml diff --git a/cts/pengine/bug-1573.dot b/cts/scheduler/bug-1573.dot similarity index 100% rename from cts/pengine/bug-1573.dot rename to cts/scheduler/bug-1573.dot diff --git a/cts/pengine/bug-1573.exp b/cts/scheduler/bug-1573.exp similarity index 100% rename from cts/pengine/bug-1573.exp rename to cts/scheduler/bug-1573.exp diff --git a/cts/pengine/bug-1573.scores b/cts/scheduler/bug-1573.scores similarity index 100% rename from cts/pengine/bug-1573.scores rename to cts/scheduler/bug-1573.scores diff --git a/cts/pengine/bug-1573.summary b/cts/scheduler/bug-1573.summary similarity index 100% rename from cts/pengine/bug-1573.summary rename to cts/scheduler/bug-1573.summary diff --git a/cts/pengine/bug-1573.xml b/cts/scheduler/bug-1573.xml similarity index 100% rename from cts/pengine/bug-1573.xml rename to cts/scheduler/bug-1573.xml diff --git a/cts/pengine/bug-1685.dot b/cts/scheduler/bug-1685.dot similarity index 100% rename from cts/pengine/bug-1685.dot rename to cts/scheduler/bug-1685.dot diff --git a/cts/pengine/bug-1685.exp b/cts/scheduler/bug-1685.exp similarity index 100% rename from cts/pengine/bug-1685.exp rename to cts/scheduler/bug-1685.exp diff --git a/cts/pengine/bug-1685.scores b/cts/scheduler/bug-1685.scores similarity index 100% rename from cts/pengine/bug-1685.scores rename to cts/scheduler/bug-1685.scores diff --git a/cts/pengine/bug-1685.summary b/cts/scheduler/bug-1685.summary similarity index 100% rename from cts/pengine/bug-1685.summary rename to cts/scheduler/bug-1685.summary diff --git a/cts/pengine/bug-1685.xml b/cts/scheduler/bug-1685.xml similarity index 100% rename from cts/pengine/bug-1685.xml rename to cts/scheduler/bug-1685.xml diff --git a/cts/pengine/bug-1718.dot b/cts/scheduler/bug-1718.dot similarity index 100% rename from cts/pengine/bug-1718.dot rename to cts/scheduler/bug-1718.dot diff --git a/cts/pengine/bug-1718.exp b/cts/scheduler/bug-1718.exp similarity index 100% rename from cts/pengine/bug-1718.exp rename to cts/scheduler/bug-1718.exp diff --git a/cts/pengine/bug-1718.scores b/cts/scheduler/bug-1718.scores similarity index 100% rename from cts/pengine/bug-1718.scores rename to cts/scheduler/bug-1718.scores diff --git a/cts/pengine/bug-1718.summary b/cts/scheduler/bug-1718.summary similarity index 100% rename from cts/pengine/bug-1718.summary rename to cts/scheduler/bug-1718.summary diff --git a/cts/pengine/bug-1718.xml b/cts/scheduler/bug-1718.xml similarity index 100% rename from cts/pengine/bug-1718.xml rename to cts/scheduler/bug-1718.xml diff --git a/cts/pengine/bug-1765.dot b/cts/scheduler/bug-1765.dot similarity index 100% rename from cts/pengine/bug-1765.dot rename to cts/scheduler/bug-1765.dot diff --git a/cts/pengine/bug-1765.exp b/cts/scheduler/bug-1765.exp similarity index 100% rename from cts/pengine/bug-1765.exp rename to cts/scheduler/bug-1765.exp diff --git a/cts/pengine/bug-1765.scores b/cts/scheduler/bug-1765.scores similarity index 100% rename from cts/pengine/bug-1765.scores rename to cts/scheduler/bug-1765.scores diff --git a/cts/pengine/bug-1765.summary b/cts/scheduler/bug-1765.summary similarity index 100% rename from cts/pengine/bug-1765.summary rename to cts/scheduler/bug-1765.summary diff --git a/cts/pengine/bug-1765.xml b/cts/scheduler/bug-1765.xml similarity index 100% rename from cts/pengine/bug-1765.xml rename to cts/scheduler/bug-1765.xml diff --git a/cts/pengine/bug-1820-1.dot b/cts/scheduler/bug-1820-1.dot similarity index 100% rename from cts/pengine/bug-1820-1.dot rename to cts/scheduler/bug-1820-1.dot diff --git a/cts/pengine/bug-1820-1.exp b/cts/scheduler/bug-1820-1.exp similarity index 100% rename from cts/pengine/bug-1820-1.exp rename to cts/scheduler/bug-1820-1.exp diff --git a/cts/pengine/bug-1820-1.scores b/cts/scheduler/bug-1820-1.scores similarity index 100% rename from cts/pengine/bug-1820-1.scores rename to cts/scheduler/bug-1820-1.scores diff --git a/cts/pengine/bug-1820-1.summary b/cts/scheduler/bug-1820-1.summary similarity index 100% rename from cts/pengine/bug-1820-1.summary rename to cts/scheduler/bug-1820-1.summary diff --git a/cts/pengine/bug-1820-1.xml b/cts/scheduler/bug-1820-1.xml similarity index 100% rename from cts/pengine/bug-1820-1.xml rename to cts/scheduler/bug-1820-1.xml diff --git a/cts/pengine/bug-1820.dot b/cts/scheduler/bug-1820.dot similarity index 100% rename from cts/pengine/bug-1820.dot rename to cts/scheduler/bug-1820.dot diff --git a/cts/pengine/bug-1820.exp b/cts/scheduler/bug-1820.exp similarity index 100% rename from cts/pengine/bug-1820.exp rename to cts/scheduler/bug-1820.exp diff --git a/cts/pengine/bug-1820.scores b/cts/scheduler/bug-1820.scores similarity index 100% rename from cts/pengine/bug-1820.scores rename to cts/scheduler/bug-1820.scores diff --git a/cts/pengine/bug-1820.summary b/cts/scheduler/bug-1820.summary similarity index 100% rename from cts/pengine/bug-1820.summary rename to cts/scheduler/bug-1820.summary diff --git a/cts/pengine/bug-1820.xml b/cts/scheduler/bug-1820.xml similarity index 100% rename from cts/pengine/bug-1820.xml rename to cts/scheduler/bug-1820.xml diff --git a/cts/pengine/bug-1822.dot b/cts/scheduler/bug-1822.dot similarity index 100% rename from cts/pengine/bug-1822.dot rename to cts/scheduler/bug-1822.dot diff --git a/cts/pengine/bug-1822.exp b/cts/scheduler/bug-1822.exp similarity index 100% rename from cts/pengine/bug-1822.exp rename to cts/scheduler/bug-1822.exp diff --git a/cts/pengine/bug-1822.scores b/cts/scheduler/bug-1822.scores similarity index 100% rename from cts/pengine/bug-1822.scores rename to cts/scheduler/bug-1822.scores diff --git a/cts/pengine/bug-1822.summary b/cts/scheduler/bug-1822.summary similarity index 100% rename from cts/pengine/bug-1822.summary rename to cts/scheduler/bug-1822.summary diff --git a/cts/pengine/bug-1822.xml b/cts/scheduler/bug-1822.xml similarity index 100% rename from cts/pengine/bug-1822.xml rename to cts/scheduler/bug-1822.xml diff --git a/cts/pengine/bug-5007-masterslave_colocation.dot b/cts/scheduler/bug-5007-masterslave_colocation.dot similarity index 100% rename from cts/pengine/bug-5007-masterslave_colocation.dot rename to cts/scheduler/bug-5007-masterslave_colocation.dot diff --git a/cts/pengine/bug-5007-masterslave_colocation.exp b/cts/scheduler/bug-5007-masterslave_colocation.exp similarity index 100% rename from cts/pengine/bug-5007-masterslave_colocation.exp rename to cts/scheduler/bug-5007-masterslave_colocation.exp diff --git a/cts/pengine/bug-5007-masterslave_colocation.scores b/cts/scheduler/bug-5007-masterslave_colocation.scores similarity index 100% rename from cts/pengine/bug-5007-masterslave_colocation.scores rename to cts/scheduler/bug-5007-masterslave_colocation.scores diff --git a/cts/pengine/bug-5007-masterslave_colocation.summary b/cts/scheduler/bug-5007-masterslave_colocation.summary similarity index 100% rename from cts/pengine/bug-5007-masterslave_colocation.summary rename to cts/scheduler/bug-5007-masterslave_colocation.summary diff --git a/cts/pengine/bug-5007-masterslave_colocation.xml b/cts/scheduler/bug-5007-masterslave_colocation.xml similarity index 100% rename from cts/pengine/bug-5007-masterslave_colocation.xml rename to cts/scheduler/bug-5007-masterslave_colocation.xml diff --git a/cts/pengine/bug-5014-A-start-B-start.dot b/cts/scheduler/bug-5014-A-start-B-start.dot similarity index 100% rename from cts/pengine/bug-5014-A-start-B-start.dot rename to cts/scheduler/bug-5014-A-start-B-start.dot diff --git a/cts/pengine/bug-5014-A-start-B-start.exp b/cts/scheduler/bug-5014-A-start-B-start.exp similarity index 100% rename from cts/pengine/bug-5014-A-start-B-start.exp rename to cts/scheduler/bug-5014-A-start-B-start.exp diff --git a/cts/pengine/bug-5014-A-start-B-start.scores b/cts/scheduler/bug-5014-A-start-B-start.scores similarity index 100% rename from cts/pengine/bug-5014-A-start-B-start.scores rename to cts/scheduler/bug-5014-A-start-B-start.scores diff --git a/cts/pengine/bug-5014-A-start-B-start.summary b/cts/scheduler/bug-5014-A-start-B-start.summary similarity index 100% rename from cts/pengine/bug-5014-A-start-B-start.summary rename to cts/scheduler/bug-5014-A-start-B-start.summary diff --git a/cts/pengine/bug-5014-A-start-B-start.xml b/cts/scheduler/bug-5014-A-start-B-start.xml similarity index 100% rename from cts/pengine/bug-5014-A-start-B-start.xml rename to cts/scheduler/bug-5014-A-start-B-start.xml diff --git a/cts/pengine/bug-5014-A-stop-B-started.dot b/cts/scheduler/bug-5014-A-stop-B-started.dot similarity index 100% rename from cts/pengine/bug-5014-A-stop-B-started.dot rename to cts/scheduler/bug-5014-A-stop-B-started.dot diff --git a/cts/pengine/bug-5014-A-stop-B-started.exp b/cts/scheduler/bug-5014-A-stop-B-started.exp similarity index 100% rename from cts/pengine/bug-5014-A-stop-B-started.exp rename to cts/scheduler/bug-5014-A-stop-B-started.exp diff --git a/cts/pengine/bug-5014-A-stop-B-started.scores b/cts/scheduler/bug-5014-A-stop-B-started.scores similarity index 100% rename from cts/pengine/bug-5014-A-stop-B-started.scores rename to cts/scheduler/bug-5014-A-stop-B-started.scores diff --git a/cts/pengine/bug-5014-A-stop-B-started.summary b/cts/scheduler/bug-5014-A-stop-B-started.summary similarity index 100% rename from cts/pengine/bug-5014-A-stop-B-started.summary rename to cts/scheduler/bug-5014-A-stop-B-started.summary diff --git a/cts/pengine/bug-5014-A-stop-B-started.xml b/cts/scheduler/bug-5014-A-stop-B-started.xml similarity index 100% rename from cts/pengine/bug-5014-A-stop-B-started.xml rename to cts/scheduler/bug-5014-A-stop-B-started.xml diff --git a/cts/pengine/bug-5014-A-stopped-B-stopped.dot b/cts/scheduler/bug-5014-A-stopped-B-stopped.dot similarity index 100% rename from cts/pengine/bug-5014-A-stopped-B-stopped.dot rename to cts/scheduler/bug-5014-A-stopped-B-stopped.dot diff --git a/cts/pengine/bug-5014-A-stopped-B-stopped.exp b/cts/scheduler/bug-5014-A-stopped-B-stopped.exp similarity index 100% rename from cts/pengine/bug-5014-A-stopped-B-stopped.exp rename to cts/scheduler/bug-5014-A-stopped-B-stopped.exp diff --git a/cts/pengine/bug-5014-A-stopped-B-stopped.scores b/cts/scheduler/bug-5014-A-stopped-B-stopped.scores similarity index 100% rename from cts/pengine/bug-5014-A-stopped-B-stopped.scores rename to cts/scheduler/bug-5014-A-stopped-B-stopped.scores diff --git a/cts/pengine/bug-5014-A-stopped-B-stopped.summary b/cts/scheduler/bug-5014-A-stopped-B-stopped.summary similarity index 100% rename from cts/pengine/bug-5014-A-stopped-B-stopped.summary rename to cts/scheduler/bug-5014-A-stopped-B-stopped.summary diff --git a/cts/pengine/bug-5014-A-stopped-B-stopped.xml b/cts/scheduler/bug-5014-A-stopped-B-stopped.xml similarity index 100% rename from cts/pengine/bug-5014-A-stopped-B-stopped.xml rename to cts/scheduler/bug-5014-A-stopped-B-stopped.xml diff --git a/cts/pengine/bug-5014-CLONE-A-start-B-start.dot b/cts/scheduler/bug-5014-CLONE-A-start-B-start.dot similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-start-B-start.dot rename to cts/scheduler/bug-5014-CLONE-A-start-B-start.dot diff --git a/cts/pengine/bug-5014-CLONE-A-start-B-start.exp b/cts/scheduler/bug-5014-CLONE-A-start-B-start.exp similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-start-B-start.exp rename to cts/scheduler/bug-5014-CLONE-A-start-B-start.exp diff --git a/cts/pengine/bug-5014-CLONE-A-start-B-start.scores b/cts/scheduler/bug-5014-CLONE-A-start-B-start.scores similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-start-B-start.scores rename to cts/scheduler/bug-5014-CLONE-A-start-B-start.scores diff --git a/cts/pengine/bug-5014-CLONE-A-start-B-start.summary b/cts/scheduler/bug-5014-CLONE-A-start-B-start.summary similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-start-B-start.summary rename to cts/scheduler/bug-5014-CLONE-A-start-B-start.summary diff --git a/cts/pengine/bug-5014-CLONE-A-start-B-start.xml b/cts/scheduler/bug-5014-CLONE-A-start-B-start.xml similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-start-B-start.xml rename to cts/scheduler/bug-5014-CLONE-A-start-B-start.xml diff --git a/cts/pengine/bug-5014-CLONE-A-stop-B-started.dot b/cts/scheduler/bug-5014-CLONE-A-stop-B-started.dot similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-stop-B-started.dot rename to cts/scheduler/bug-5014-CLONE-A-stop-B-started.dot diff --git a/cts/pengine/bug-5014-CLONE-A-stop-B-started.exp b/cts/scheduler/bug-5014-CLONE-A-stop-B-started.exp similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-stop-B-started.exp rename to cts/scheduler/bug-5014-CLONE-A-stop-B-started.exp diff --git a/cts/pengine/bug-5014-CLONE-A-stop-B-started.scores b/cts/scheduler/bug-5014-CLONE-A-stop-B-started.scores similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-stop-B-started.scores rename to cts/scheduler/bug-5014-CLONE-A-stop-B-started.scores diff --git a/cts/pengine/bug-5014-CLONE-A-stop-B-started.summary b/cts/scheduler/bug-5014-CLONE-A-stop-B-started.summary similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-stop-B-started.summary rename to cts/scheduler/bug-5014-CLONE-A-stop-B-started.summary diff --git a/cts/pengine/bug-5014-CLONE-A-stop-B-started.xml b/cts/scheduler/bug-5014-CLONE-A-stop-B-started.xml similarity index 100% rename from cts/pengine/bug-5014-CLONE-A-stop-B-started.xml rename to cts/scheduler/bug-5014-CLONE-A-stop-B-started.xml diff --git a/cts/pengine/bug-5014-CthenAthenB-C-stopped.dot b/cts/scheduler/bug-5014-CthenAthenB-C-stopped.dot similarity index 100% rename from cts/pengine/bug-5014-CthenAthenB-C-stopped.dot rename to cts/scheduler/bug-5014-CthenAthenB-C-stopped.dot diff --git a/cts/pengine/bug-5014-CthenAthenB-C-stopped.exp b/cts/scheduler/bug-5014-CthenAthenB-C-stopped.exp similarity index 100% rename from cts/pengine/bug-5014-CthenAthenB-C-stopped.exp rename to cts/scheduler/bug-5014-CthenAthenB-C-stopped.exp diff --git a/cts/pengine/bug-5014-CthenAthenB-C-stopped.scores b/cts/scheduler/bug-5014-CthenAthenB-C-stopped.scores similarity index 100% rename from cts/pengine/bug-5014-CthenAthenB-C-stopped.scores rename to cts/scheduler/bug-5014-CthenAthenB-C-stopped.scores diff --git a/cts/pengine/bug-5014-CthenAthenB-C-stopped.summary b/cts/scheduler/bug-5014-CthenAthenB-C-stopped.summary similarity index 100% rename from cts/pengine/bug-5014-CthenAthenB-C-stopped.summary rename to cts/scheduler/bug-5014-CthenAthenB-C-stopped.summary diff --git a/cts/pengine/bug-5014-CthenAthenB-C-stopped.xml b/cts/scheduler/bug-5014-CthenAthenB-C-stopped.xml similarity index 100% rename from cts/pengine/bug-5014-CthenAthenB-C-stopped.xml rename to cts/scheduler/bug-5014-CthenAthenB-C-stopped.xml diff --git a/cts/pengine/bug-5014-GROUP-A-start-B-start.dot b/cts/scheduler/bug-5014-GROUP-A-start-B-start.dot similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-start-B-start.dot rename to cts/scheduler/bug-5014-GROUP-A-start-B-start.dot diff --git a/cts/pengine/bug-5014-GROUP-A-start-B-start.exp b/cts/scheduler/bug-5014-GROUP-A-start-B-start.exp similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-start-B-start.exp rename to cts/scheduler/bug-5014-GROUP-A-start-B-start.exp diff --git a/cts/pengine/bug-5014-GROUP-A-start-B-start.scores b/cts/scheduler/bug-5014-GROUP-A-start-B-start.scores similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-start-B-start.scores rename to cts/scheduler/bug-5014-GROUP-A-start-B-start.scores diff --git a/cts/pengine/bug-5014-GROUP-A-start-B-start.summary b/cts/scheduler/bug-5014-GROUP-A-start-B-start.summary similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-start-B-start.summary rename to cts/scheduler/bug-5014-GROUP-A-start-B-start.summary diff --git a/cts/pengine/bug-5014-GROUP-A-start-B-start.xml b/cts/scheduler/bug-5014-GROUP-A-start-B-start.xml similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-start-B-start.xml rename to cts/scheduler/bug-5014-GROUP-A-start-B-start.xml diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-started.dot b/cts/scheduler/bug-5014-GROUP-A-stopped-B-started.dot similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-started.dot rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-started.dot diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-started.exp b/cts/scheduler/bug-5014-GROUP-A-stopped-B-started.exp similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-started.exp rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-started.exp diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-started.scores b/cts/scheduler/bug-5014-GROUP-A-stopped-B-started.scores similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-started.scores rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-started.scores diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-started.summary b/cts/scheduler/bug-5014-GROUP-A-stopped-B-started.summary similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-started.summary rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-started.summary diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-started.xml b/cts/scheduler/bug-5014-GROUP-A-stopped-B-started.xml similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-started.xml rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-started.xml diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.dot b/cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.dot similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.dot rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.dot diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.exp b/cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.exp similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.exp rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.exp diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.scores b/cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.scores similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.scores rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.scores diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.summary b/cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.summary similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.summary rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.summary diff --git a/cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.xml b/cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.xml similarity index 100% rename from cts/pengine/bug-5014-GROUP-A-stopped-B-stopped.xml rename to cts/scheduler/bug-5014-GROUP-A-stopped-B-stopped.xml diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-false.dot b/cts/scheduler/bug-5014-ordered-set-symmetrical-false.dot similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-false.dot rename to cts/scheduler/bug-5014-ordered-set-symmetrical-false.dot diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-false.exp b/cts/scheduler/bug-5014-ordered-set-symmetrical-false.exp similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-false.exp rename to cts/scheduler/bug-5014-ordered-set-symmetrical-false.exp diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-false.scores b/cts/scheduler/bug-5014-ordered-set-symmetrical-false.scores similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-false.scores rename to cts/scheduler/bug-5014-ordered-set-symmetrical-false.scores diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-false.summary b/cts/scheduler/bug-5014-ordered-set-symmetrical-false.summary similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-false.summary rename to cts/scheduler/bug-5014-ordered-set-symmetrical-false.summary diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-false.xml b/cts/scheduler/bug-5014-ordered-set-symmetrical-false.xml similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-false.xml rename to cts/scheduler/bug-5014-ordered-set-symmetrical-false.xml diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-true.dot b/cts/scheduler/bug-5014-ordered-set-symmetrical-true.dot similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-true.dot rename to cts/scheduler/bug-5014-ordered-set-symmetrical-true.dot diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-true.exp b/cts/scheduler/bug-5014-ordered-set-symmetrical-true.exp similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-true.exp rename to cts/scheduler/bug-5014-ordered-set-symmetrical-true.exp diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-true.scores b/cts/scheduler/bug-5014-ordered-set-symmetrical-true.scores similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-true.scores rename to cts/scheduler/bug-5014-ordered-set-symmetrical-true.scores diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-true.summary b/cts/scheduler/bug-5014-ordered-set-symmetrical-true.summary similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-true.summary rename to cts/scheduler/bug-5014-ordered-set-symmetrical-true.summary diff --git a/cts/pengine/bug-5014-ordered-set-symmetrical-true.xml b/cts/scheduler/bug-5014-ordered-set-symmetrical-true.xml similarity index 100% rename from cts/pengine/bug-5014-ordered-set-symmetrical-true.xml rename to cts/scheduler/bug-5014-ordered-set-symmetrical-true.xml diff --git a/cts/pengine/bug-5025-1.dot b/cts/scheduler/bug-5025-1.dot similarity index 100% rename from cts/pengine/bug-5025-1.dot rename to cts/scheduler/bug-5025-1.dot diff --git a/cts/pengine/bug-5025-1.exp b/cts/scheduler/bug-5025-1.exp similarity index 100% rename from cts/pengine/bug-5025-1.exp rename to cts/scheduler/bug-5025-1.exp diff --git a/cts/pengine/bug-5025-1.scores b/cts/scheduler/bug-5025-1.scores similarity index 100% rename from cts/pengine/bug-5025-1.scores rename to cts/scheduler/bug-5025-1.scores diff --git a/cts/pengine/bug-5025-1.summary b/cts/scheduler/bug-5025-1.summary similarity index 100% rename from cts/pengine/bug-5025-1.summary rename to cts/scheduler/bug-5025-1.summary diff --git a/cts/pengine/bug-5025-1.xml b/cts/scheduler/bug-5025-1.xml similarity index 100% rename from cts/pengine/bug-5025-1.xml rename to cts/scheduler/bug-5025-1.xml diff --git a/cts/pengine/bug-5025-2.dot b/cts/scheduler/bug-5025-2.dot similarity index 100% rename from cts/pengine/bug-5025-2.dot rename to cts/scheduler/bug-5025-2.dot diff --git a/cts/pengine/bug-5025-2.exp b/cts/scheduler/bug-5025-2.exp similarity index 100% rename from cts/pengine/bug-5025-2.exp rename to cts/scheduler/bug-5025-2.exp diff --git a/cts/pengine/bug-5025-2.scores b/cts/scheduler/bug-5025-2.scores similarity index 100% rename from cts/pengine/bug-5025-2.scores rename to cts/scheduler/bug-5025-2.scores diff --git a/cts/pengine/bug-5025-2.summary b/cts/scheduler/bug-5025-2.summary similarity index 100% rename from cts/pengine/bug-5025-2.summary rename to cts/scheduler/bug-5025-2.summary diff --git a/cts/pengine/bug-5025-2.xml b/cts/scheduler/bug-5025-2.xml similarity index 100% rename from cts/pengine/bug-5025-2.xml rename to cts/scheduler/bug-5025-2.xml diff --git a/cts/pengine/bug-5025-3.dot b/cts/scheduler/bug-5025-3.dot similarity index 100% rename from cts/pengine/bug-5025-3.dot rename to cts/scheduler/bug-5025-3.dot diff --git a/cts/pengine/bug-5025-3.exp b/cts/scheduler/bug-5025-3.exp similarity index 100% rename from cts/pengine/bug-5025-3.exp rename to cts/scheduler/bug-5025-3.exp diff --git a/cts/pengine/bug-5025-3.scores b/cts/scheduler/bug-5025-3.scores similarity index 100% rename from cts/pengine/bug-5025-3.scores rename to cts/scheduler/bug-5025-3.scores diff --git a/cts/pengine/bug-5025-3.summary b/cts/scheduler/bug-5025-3.summary similarity index 100% rename from cts/pengine/bug-5025-3.summary rename to cts/scheduler/bug-5025-3.summary diff --git a/cts/pengine/bug-5025-3.xml b/cts/scheduler/bug-5025-3.xml similarity index 100% rename from cts/pengine/bug-5025-3.xml rename to cts/scheduler/bug-5025-3.xml diff --git a/cts/pengine/bug-5025-4.dot b/cts/scheduler/bug-5025-4.dot similarity index 100% rename from cts/pengine/bug-5025-4.dot rename to cts/scheduler/bug-5025-4.dot diff --git a/cts/pengine/bug-5025-4.exp b/cts/scheduler/bug-5025-4.exp similarity index 100% rename from cts/pengine/bug-5025-4.exp rename to cts/scheduler/bug-5025-4.exp diff --git a/cts/pengine/bug-5025-4.scores b/cts/scheduler/bug-5025-4.scores similarity index 100% rename from cts/pengine/bug-5025-4.scores rename to cts/scheduler/bug-5025-4.scores diff --git a/cts/pengine/bug-5025-4.summary b/cts/scheduler/bug-5025-4.summary similarity index 100% rename from cts/pengine/bug-5025-4.summary rename to cts/scheduler/bug-5025-4.summary diff --git a/cts/pengine/bug-5025-4.xml b/cts/scheduler/bug-5025-4.xml similarity index 100% rename from cts/pengine/bug-5025-4.xml rename to cts/scheduler/bug-5025-4.xml diff --git a/cts/pengine/bug-5028-bottom.dot b/cts/scheduler/bug-5028-bottom.dot similarity index 100% rename from cts/pengine/bug-5028-bottom.dot rename to cts/scheduler/bug-5028-bottom.dot diff --git a/cts/pengine/bug-5028-bottom.exp b/cts/scheduler/bug-5028-bottom.exp similarity index 100% rename from cts/pengine/bug-5028-bottom.exp rename to cts/scheduler/bug-5028-bottom.exp diff --git a/cts/pengine/bug-5028-bottom.scores b/cts/scheduler/bug-5028-bottom.scores similarity index 100% rename from cts/pengine/bug-5028-bottom.scores rename to cts/scheduler/bug-5028-bottom.scores diff --git a/cts/pengine/bug-5028-bottom.summary b/cts/scheduler/bug-5028-bottom.summary similarity index 100% rename from cts/pengine/bug-5028-bottom.summary rename to cts/scheduler/bug-5028-bottom.summary diff --git a/cts/pengine/bug-5028-bottom.xml b/cts/scheduler/bug-5028-bottom.xml similarity index 100% rename from cts/pengine/bug-5028-bottom.xml rename to cts/scheduler/bug-5028-bottom.xml diff --git a/cts/pengine/bug-5028-detach.dot b/cts/scheduler/bug-5028-detach.dot similarity index 100% rename from cts/pengine/bug-5028-detach.dot rename to cts/scheduler/bug-5028-detach.dot diff --git a/cts/pengine/bug-5028-detach.exp b/cts/scheduler/bug-5028-detach.exp similarity index 100% rename from cts/pengine/bug-5028-detach.exp rename to cts/scheduler/bug-5028-detach.exp diff --git a/cts/pengine/bug-5028-detach.scores b/cts/scheduler/bug-5028-detach.scores similarity index 100% rename from cts/pengine/bug-5028-detach.scores rename to cts/scheduler/bug-5028-detach.scores diff --git a/cts/pengine/bug-5028-detach.summary b/cts/scheduler/bug-5028-detach.summary similarity index 100% rename from cts/pengine/bug-5028-detach.summary rename to cts/scheduler/bug-5028-detach.summary diff --git a/cts/pengine/bug-5028-detach.xml b/cts/scheduler/bug-5028-detach.xml similarity index 100% rename from cts/pengine/bug-5028-detach.xml rename to cts/scheduler/bug-5028-detach.xml diff --git a/cts/pengine/bug-5028.dot b/cts/scheduler/bug-5028.dot similarity index 100% rename from cts/pengine/bug-5028.dot rename to cts/scheduler/bug-5028.dot diff --git a/cts/pengine/bug-5028.exp b/cts/scheduler/bug-5028.exp similarity index 100% rename from cts/pengine/bug-5028.exp rename to cts/scheduler/bug-5028.exp diff --git a/cts/pengine/bug-5028.scores b/cts/scheduler/bug-5028.scores similarity index 100% rename from cts/pengine/bug-5028.scores rename to cts/scheduler/bug-5028.scores diff --git a/cts/pengine/bug-5028.summary b/cts/scheduler/bug-5028.summary similarity index 100% rename from cts/pengine/bug-5028.summary rename to cts/scheduler/bug-5028.summary diff --git a/cts/pengine/bug-5028.xml b/cts/scheduler/bug-5028.xml similarity index 100% rename from cts/pengine/bug-5028.xml rename to cts/scheduler/bug-5028.xml diff --git a/cts/pengine/bug-5038.dot b/cts/scheduler/bug-5038.dot similarity index 100% rename from cts/pengine/bug-5038.dot rename to cts/scheduler/bug-5038.dot diff --git a/cts/pengine/bug-5038.exp b/cts/scheduler/bug-5038.exp similarity index 100% rename from cts/pengine/bug-5038.exp rename to cts/scheduler/bug-5038.exp diff --git a/cts/pengine/bug-5038.scores b/cts/scheduler/bug-5038.scores similarity index 100% rename from cts/pengine/bug-5038.scores rename to cts/scheduler/bug-5038.scores diff --git a/cts/pengine/bug-5038.summary b/cts/scheduler/bug-5038.summary similarity index 100% rename from cts/pengine/bug-5038.summary rename to cts/scheduler/bug-5038.summary diff --git a/cts/pengine/bug-5038.xml b/cts/scheduler/bug-5038.xml similarity index 100% rename from cts/pengine/bug-5038.xml rename to cts/scheduler/bug-5038.xml diff --git a/cts/pengine/bug-5059.dot b/cts/scheduler/bug-5059.dot similarity index 100% rename from cts/pengine/bug-5059.dot rename to cts/scheduler/bug-5059.dot diff --git a/cts/pengine/bug-5059.exp b/cts/scheduler/bug-5059.exp similarity index 100% rename from cts/pengine/bug-5059.exp rename to cts/scheduler/bug-5059.exp diff --git a/cts/pengine/bug-5059.scores b/cts/scheduler/bug-5059.scores similarity index 100% rename from cts/pengine/bug-5059.scores rename to cts/scheduler/bug-5059.scores diff --git a/cts/pengine/bug-5059.summary b/cts/scheduler/bug-5059.summary similarity index 100% rename from cts/pengine/bug-5059.summary rename to cts/scheduler/bug-5059.summary diff --git a/cts/pengine/bug-5059.xml b/cts/scheduler/bug-5059.xml similarity index 100% rename from cts/pengine/bug-5059.xml rename to cts/scheduler/bug-5059.xml diff --git a/cts/pengine/bug-5069-op-disabled.dot b/cts/scheduler/bug-5069-op-disabled.dot similarity index 100% rename from cts/pengine/bug-5069-op-disabled.dot rename to cts/scheduler/bug-5069-op-disabled.dot diff --git a/cts/pengine/bug-5069-op-disabled.exp b/cts/scheduler/bug-5069-op-disabled.exp similarity index 100% rename from cts/pengine/bug-5069-op-disabled.exp rename to cts/scheduler/bug-5069-op-disabled.exp diff --git a/cts/pengine/bug-5069-op-disabled.scores b/cts/scheduler/bug-5069-op-disabled.scores similarity index 100% rename from cts/pengine/bug-5069-op-disabled.scores rename to cts/scheduler/bug-5069-op-disabled.scores diff --git a/cts/pengine/bug-5069-op-disabled.summary b/cts/scheduler/bug-5069-op-disabled.summary similarity index 100% rename from cts/pengine/bug-5069-op-disabled.summary rename to cts/scheduler/bug-5069-op-disabled.summary diff --git a/cts/pengine/bug-5069-op-disabled.xml b/cts/scheduler/bug-5069-op-disabled.xml similarity index 100% rename from cts/pengine/bug-5069-op-disabled.xml rename to cts/scheduler/bug-5069-op-disabled.xml diff --git a/cts/pengine/bug-5069-op-enabled.dot b/cts/scheduler/bug-5069-op-enabled.dot similarity index 100% rename from cts/pengine/bug-5069-op-enabled.dot rename to cts/scheduler/bug-5069-op-enabled.dot diff --git a/cts/pengine/bug-5069-op-enabled.exp b/cts/scheduler/bug-5069-op-enabled.exp similarity index 100% rename from cts/pengine/bug-5069-op-enabled.exp rename to cts/scheduler/bug-5069-op-enabled.exp diff --git a/cts/pengine/bug-5069-op-enabled.scores b/cts/scheduler/bug-5069-op-enabled.scores similarity index 100% rename from cts/pengine/bug-5069-op-enabled.scores rename to cts/scheduler/bug-5069-op-enabled.scores diff --git a/cts/pengine/bug-5069-op-enabled.summary b/cts/scheduler/bug-5069-op-enabled.summary similarity index 100% rename from cts/pengine/bug-5069-op-enabled.summary rename to cts/scheduler/bug-5069-op-enabled.summary diff --git a/cts/pengine/bug-5069-op-enabled.xml b/cts/scheduler/bug-5069-op-enabled.xml similarity index 100% rename from cts/pengine/bug-5069-op-enabled.xml rename to cts/scheduler/bug-5069-op-enabled.xml diff --git a/cts/pengine/bug-5140-require-all-false.dot b/cts/scheduler/bug-5140-require-all-false.dot similarity index 100% rename from cts/pengine/bug-5140-require-all-false.dot rename to cts/scheduler/bug-5140-require-all-false.dot diff --git a/cts/pengine/bug-5140-require-all-false.exp b/cts/scheduler/bug-5140-require-all-false.exp similarity index 100% rename from cts/pengine/bug-5140-require-all-false.exp rename to cts/scheduler/bug-5140-require-all-false.exp diff --git a/cts/pengine/bug-5140-require-all-false.scores b/cts/scheduler/bug-5140-require-all-false.scores similarity index 100% rename from cts/pengine/bug-5140-require-all-false.scores rename to cts/scheduler/bug-5140-require-all-false.scores diff --git a/cts/pengine/bug-5140-require-all-false.summary b/cts/scheduler/bug-5140-require-all-false.summary similarity index 100% rename from cts/pengine/bug-5140-require-all-false.summary rename to cts/scheduler/bug-5140-require-all-false.summary diff --git a/cts/pengine/bug-5140-require-all-false.xml b/cts/scheduler/bug-5140-require-all-false.xml similarity index 100% rename from cts/pengine/bug-5140-require-all-false.xml rename to cts/scheduler/bug-5140-require-all-false.xml diff --git a/cts/pengine/bug-5143-ms-shuffle.dot b/cts/scheduler/bug-5143-ms-shuffle.dot similarity index 100% rename from cts/pengine/bug-5143-ms-shuffle.dot rename to cts/scheduler/bug-5143-ms-shuffle.dot diff --git a/cts/pengine/bug-5143-ms-shuffle.exp b/cts/scheduler/bug-5143-ms-shuffle.exp similarity index 100% rename from cts/pengine/bug-5143-ms-shuffle.exp rename to cts/scheduler/bug-5143-ms-shuffle.exp diff --git a/cts/pengine/bug-5143-ms-shuffle.scores b/cts/scheduler/bug-5143-ms-shuffle.scores similarity index 100% rename from cts/pengine/bug-5143-ms-shuffle.scores rename to cts/scheduler/bug-5143-ms-shuffle.scores diff --git a/cts/pengine/bug-5143-ms-shuffle.summary b/cts/scheduler/bug-5143-ms-shuffle.summary similarity index 100% rename from cts/pengine/bug-5143-ms-shuffle.summary rename to cts/scheduler/bug-5143-ms-shuffle.summary diff --git a/cts/pengine/bug-5143-ms-shuffle.xml b/cts/scheduler/bug-5143-ms-shuffle.xml similarity index 100% rename from cts/pengine/bug-5143-ms-shuffle.xml rename to cts/scheduler/bug-5143-ms-shuffle.xml diff --git a/cts/pengine/bug-5186-partial-migrate.dot b/cts/scheduler/bug-5186-partial-migrate.dot similarity index 100% rename from cts/pengine/bug-5186-partial-migrate.dot rename to cts/scheduler/bug-5186-partial-migrate.dot diff --git a/cts/pengine/bug-5186-partial-migrate.exp b/cts/scheduler/bug-5186-partial-migrate.exp similarity index 100% rename from cts/pengine/bug-5186-partial-migrate.exp rename to cts/scheduler/bug-5186-partial-migrate.exp diff --git a/cts/pengine/bug-5186-partial-migrate.scores b/cts/scheduler/bug-5186-partial-migrate.scores similarity index 100% rename from cts/pengine/bug-5186-partial-migrate.scores rename to cts/scheduler/bug-5186-partial-migrate.scores diff --git a/cts/pengine/bug-5186-partial-migrate.summary b/cts/scheduler/bug-5186-partial-migrate.summary similarity index 100% rename from cts/pengine/bug-5186-partial-migrate.summary rename to cts/scheduler/bug-5186-partial-migrate.summary diff --git a/cts/pengine/bug-5186-partial-migrate.xml b/cts/scheduler/bug-5186-partial-migrate.xml similarity index 100% rename from cts/pengine/bug-5186-partial-migrate.xml rename to cts/scheduler/bug-5186-partial-migrate.xml diff --git a/cts/pengine/bug-cl-5168.dot b/cts/scheduler/bug-cl-5168.dot similarity index 100% rename from cts/pengine/bug-cl-5168.dot rename to cts/scheduler/bug-cl-5168.dot diff --git a/cts/pengine/bug-cl-5168.exp b/cts/scheduler/bug-cl-5168.exp similarity index 100% rename from cts/pengine/bug-cl-5168.exp rename to cts/scheduler/bug-cl-5168.exp diff --git a/cts/pengine/bug-cl-5168.scores b/cts/scheduler/bug-cl-5168.scores similarity index 100% rename from cts/pengine/bug-cl-5168.scores rename to cts/scheduler/bug-cl-5168.scores diff --git a/cts/pengine/bug-cl-5168.summary b/cts/scheduler/bug-cl-5168.summary similarity index 100% rename from cts/pengine/bug-cl-5168.summary rename to cts/scheduler/bug-cl-5168.summary diff --git a/cts/pengine/bug-cl-5168.xml b/cts/scheduler/bug-cl-5168.xml similarity index 100% rename from cts/pengine/bug-cl-5168.xml rename to cts/scheduler/bug-cl-5168.xml diff --git a/cts/pengine/bug-cl-5170.dot b/cts/scheduler/bug-cl-5170.dot similarity index 100% rename from cts/pengine/bug-cl-5170.dot rename to cts/scheduler/bug-cl-5170.dot diff --git a/cts/pengine/bug-cl-5170.exp b/cts/scheduler/bug-cl-5170.exp similarity index 100% rename from cts/pengine/bug-cl-5170.exp rename to cts/scheduler/bug-cl-5170.exp diff --git a/cts/pengine/bug-cl-5170.scores b/cts/scheduler/bug-cl-5170.scores similarity index 100% rename from cts/pengine/bug-cl-5170.scores rename to cts/scheduler/bug-cl-5170.scores diff --git a/cts/pengine/bug-cl-5170.summary b/cts/scheduler/bug-cl-5170.summary similarity index 100% rename from cts/pengine/bug-cl-5170.summary rename to cts/scheduler/bug-cl-5170.summary diff --git a/cts/pengine/bug-cl-5170.xml b/cts/scheduler/bug-cl-5170.xml similarity index 100% rename from cts/pengine/bug-cl-5170.xml rename to cts/scheduler/bug-cl-5170.xml diff --git a/cts/pengine/bug-cl-5212.dot b/cts/scheduler/bug-cl-5212.dot similarity index 100% rename from cts/pengine/bug-cl-5212.dot rename to cts/scheduler/bug-cl-5212.dot diff --git a/cts/pengine/bug-cl-5212.exp b/cts/scheduler/bug-cl-5212.exp similarity index 100% rename from cts/pengine/bug-cl-5212.exp rename to cts/scheduler/bug-cl-5212.exp diff --git a/cts/pengine/bug-cl-5212.scores b/cts/scheduler/bug-cl-5212.scores similarity index 100% rename from cts/pengine/bug-cl-5212.scores rename to cts/scheduler/bug-cl-5212.scores diff --git a/cts/pengine/bug-cl-5212.summary b/cts/scheduler/bug-cl-5212.summary similarity index 100% rename from cts/pengine/bug-cl-5212.summary rename to cts/scheduler/bug-cl-5212.summary diff --git a/cts/pengine/bug-cl-5212.xml b/cts/scheduler/bug-cl-5212.xml similarity index 100% rename from cts/pengine/bug-cl-5212.xml rename to cts/scheduler/bug-cl-5212.xml diff --git a/cts/pengine/bug-cl-5213.dot b/cts/scheduler/bug-cl-5213.dot similarity index 100% rename from cts/pengine/bug-cl-5213.dot rename to cts/scheduler/bug-cl-5213.dot diff --git a/cts/pengine/bug-cl-5213.exp b/cts/scheduler/bug-cl-5213.exp similarity index 100% rename from cts/pengine/bug-cl-5213.exp rename to cts/scheduler/bug-cl-5213.exp diff --git a/cts/pengine/bug-cl-5213.scores b/cts/scheduler/bug-cl-5213.scores similarity index 100% rename from cts/pengine/bug-cl-5213.scores rename to cts/scheduler/bug-cl-5213.scores diff --git a/cts/pengine/bug-cl-5213.summary b/cts/scheduler/bug-cl-5213.summary similarity index 100% rename from cts/pengine/bug-cl-5213.summary rename to cts/scheduler/bug-cl-5213.summary diff --git a/cts/pengine/bug-cl-5213.xml b/cts/scheduler/bug-cl-5213.xml similarity index 100% rename from cts/pengine/bug-cl-5213.xml rename to cts/scheduler/bug-cl-5213.xml diff --git a/cts/pengine/bug-cl-5219.dot b/cts/scheduler/bug-cl-5219.dot similarity index 100% rename from cts/pengine/bug-cl-5219.dot rename to cts/scheduler/bug-cl-5219.dot diff --git a/cts/pengine/bug-cl-5219.exp b/cts/scheduler/bug-cl-5219.exp similarity index 100% rename from cts/pengine/bug-cl-5219.exp rename to cts/scheduler/bug-cl-5219.exp diff --git a/cts/pengine/bug-cl-5219.scores b/cts/scheduler/bug-cl-5219.scores similarity index 100% rename from cts/pengine/bug-cl-5219.scores rename to cts/scheduler/bug-cl-5219.scores diff --git a/cts/pengine/bug-cl-5219.summary b/cts/scheduler/bug-cl-5219.summary similarity index 100% rename from cts/pengine/bug-cl-5219.summary rename to cts/scheduler/bug-cl-5219.summary diff --git a/cts/pengine/bug-cl-5219.xml b/cts/scheduler/bug-cl-5219.xml similarity index 100% rename from cts/pengine/bug-cl-5219.xml rename to cts/scheduler/bug-cl-5219.xml diff --git a/cts/pengine/bug-cl-5247.dot b/cts/scheduler/bug-cl-5247.dot similarity index 100% rename from cts/pengine/bug-cl-5247.dot rename to cts/scheduler/bug-cl-5247.dot diff --git a/cts/pengine/bug-cl-5247.exp b/cts/scheduler/bug-cl-5247.exp similarity index 100% rename from cts/pengine/bug-cl-5247.exp rename to cts/scheduler/bug-cl-5247.exp diff --git a/cts/pengine/bug-cl-5247.scores b/cts/scheduler/bug-cl-5247.scores similarity index 100% rename from cts/pengine/bug-cl-5247.scores rename to cts/scheduler/bug-cl-5247.scores diff --git a/cts/pengine/bug-cl-5247.summary b/cts/scheduler/bug-cl-5247.summary similarity index 100% rename from cts/pengine/bug-cl-5247.summary rename to cts/scheduler/bug-cl-5247.summary diff --git a/cts/pengine/bug-cl-5247.xml b/cts/scheduler/bug-cl-5247.xml similarity index 100% rename from cts/pengine/bug-cl-5247.xml rename to cts/scheduler/bug-cl-5247.xml diff --git a/cts/pengine/bug-lf-1852.dot b/cts/scheduler/bug-lf-1852.dot similarity index 100% rename from cts/pengine/bug-lf-1852.dot rename to cts/scheduler/bug-lf-1852.dot diff --git a/cts/pengine/bug-lf-1852.exp b/cts/scheduler/bug-lf-1852.exp similarity index 100% rename from cts/pengine/bug-lf-1852.exp rename to cts/scheduler/bug-lf-1852.exp diff --git a/cts/pengine/bug-lf-1852.scores b/cts/scheduler/bug-lf-1852.scores similarity index 100% rename from cts/pengine/bug-lf-1852.scores rename to cts/scheduler/bug-lf-1852.scores diff --git a/cts/pengine/bug-lf-1852.summary b/cts/scheduler/bug-lf-1852.summary similarity index 100% rename from cts/pengine/bug-lf-1852.summary rename to cts/scheduler/bug-lf-1852.summary diff --git a/cts/pengine/bug-lf-1852.xml b/cts/scheduler/bug-lf-1852.xml similarity index 100% rename from cts/pengine/bug-lf-1852.xml rename to cts/scheduler/bug-lf-1852.xml diff --git a/cts/pengine/bug-lf-1920.dot b/cts/scheduler/bug-lf-1920.dot similarity index 100% rename from cts/pengine/bug-lf-1920.dot rename to cts/scheduler/bug-lf-1920.dot diff --git a/cts/pengine/bug-lf-1920.exp b/cts/scheduler/bug-lf-1920.exp similarity index 100% rename from cts/pengine/bug-lf-1920.exp rename to cts/scheduler/bug-lf-1920.exp diff --git a/cts/pengine/bug-lf-1920.scores b/cts/scheduler/bug-lf-1920.scores similarity index 100% rename from cts/pengine/bug-lf-1920.scores rename to cts/scheduler/bug-lf-1920.scores diff --git a/cts/pengine/bug-lf-1920.summary b/cts/scheduler/bug-lf-1920.summary similarity index 100% rename from cts/pengine/bug-lf-1920.summary rename to cts/scheduler/bug-lf-1920.summary diff --git a/cts/pengine/bug-lf-1920.xml b/cts/scheduler/bug-lf-1920.xml similarity index 100% rename from cts/pengine/bug-lf-1920.xml rename to cts/scheduler/bug-lf-1920.xml diff --git a/cts/pengine/bug-lf-2106.dot b/cts/scheduler/bug-lf-2106.dot similarity index 100% rename from cts/pengine/bug-lf-2106.dot rename to cts/scheduler/bug-lf-2106.dot diff --git a/cts/pengine/bug-lf-2106.exp b/cts/scheduler/bug-lf-2106.exp similarity index 100% rename from cts/pengine/bug-lf-2106.exp rename to cts/scheduler/bug-lf-2106.exp diff --git a/cts/pengine/bug-lf-2106.scores b/cts/scheduler/bug-lf-2106.scores similarity index 100% rename from cts/pengine/bug-lf-2106.scores rename to cts/scheduler/bug-lf-2106.scores diff --git a/cts/pengine/bug-lf-2106.summary b/cts/scheduler/bug-lf-2106.summary similarity index 100% rename from cts/pengine/bug-lf-2106.summary rename to cts/scheduler/bug-lf-2106.summary diff --git a/cts/pengine/bug-lf-2106.xml b/cts/scheduler/bug-lf-2106.xml similarity index 100% rename from cts/pengine/bug-lf-2106.xml rename to cts/scheduler/bug-lf-2106.xml diff --git a/cts/pengine/bug-lf-2153.dot b/cts/scheduler/bug-lf-2153.dot similarity index 100% rename from cts/pengine/bug-lf-2153.dot rename to cts/scheduler/bug-lf-2153.dot diff --git a/cts/pengine/bug-lf-2153.exp b/cts/scheduler/bug-lf-2153.exp similarity index 100% rename from cts/pengine/bug-lf-2153.exp rename to cts/scheduler/bug-lf-2153.exp diff --git a/cts/pengine/bug-lf-2153.scores b/cts/scheduler/bug-lf-2153.scores similarity index 100% rename from cts/pengine/bug-lf-2153.scores rename to cts/scheduler/bug-lf-2153.scores diff --git a/cts/pengine/bug-lf-2153.summary b/cts/scheduler/bug-lf-2153.summary similarity index 100% rename from cts/pengine/bug-lf-2153.summary rename to cts/scheduler/bug-lf-2153.summary diff --git a/cts/pengine/bug-lf-2153.xml b/cts/scheduler/bug-lf-2153.xml similarity index 100% rename from cts/pengine/bug-lf-2153.xml rename to cts/scheduler/bug-lf-2153.xml diff --git a/cts/pengine/bug-lf-2160.dot b/cts/scheduler/bug-lf-2160.dot similarity index 100% rename from cts/pengine/bug-lf-2160.dot rename to cts/scheduler/bug-lf-2160.dot diff --git a/cts/pengine/bug-lf-2160.exp b/cts/scheduler/bug-lf-2160.exp similarity index 100% rename from cts/pengine/bug-lf-2160.exp rename to cts/scheduler/bug-lf-2160.exp diff --git a/cts/pengine/bug-lf-2160.scores b/cts/scheduler/bug-lf-2160.scores similarity index 100% rename from cts/pengine/bug-lf-2160.scores rename to cts/scheduler/bug-lf-2160.scores diff --git a/cts/pengine/bug-lf-2160.summary b/cts/scheduler/bug-lf-2160.summary similarity index 100% rename from cts/pengine/bug-lf-2160.summary rename to cts/scheduler/bug-lf-2160.summary diff --git a/cts/pengine/bug-lf-2160.xml b/cts/scheduler/bug-lf-2160.xml similarity index 100% rename from cts/pengine/bug-lf-2160.xml rename to cts/scheduler/bug-lf-2160.xml diff --git a/cts/pengine/bug-lf-2171.dot b/cts/scheduler/bug-lf-2171.dot similarity index 100% rename from cts/pengine/bug-lf-2171.dot rename to cts/scheduler/bug-lf-2171.dot diff --git a/cts/pengine/bug-lf-2171.exp b/cts/scheduler/bug-lf-2171.exp similarity index 100% rename from cts/pengine/bug-lf-2171.exp rename to cts/scheduler/bug-lf-2171.exp diff --git a/cts/pengine/bug-lf-2171.scores b/cts/scheduler/bug-lf-2171.scores similarity index 100% rename from cts/pengine/bug-lf-2171.scores rename to cts/scheduler/bug-lf-2171.scores diff --git a/cts/pengine/bug-lf-2171.summary b/cts/scheduler/bug-lf-2171.summary similarity index 100% rename from cts/pengine/bug-lf-2171.summary rename to cts/scheduler/bug-lf-2171.summary diff --git a/cts/pengine/bug-lf-2171.xml b/cts/scheduler/bug-lf-2171.xml similarity index 100% rename from cts/pengine/bug-lf-2171.xml rename to cts/scheduler/bug-lf-2171.xml diff --git a/cts/pengine/bug-lf-2213.dot b/cts/scheduler/bug-lf-2213.dot similarity index 100% rename from cts/pengine/bug-lf-2213.dot rename to cts/scheduler/bug-lf-2213.dot diff --git a/cts/pengine/bug-lf-2213.exp b/cts/scheduler/bug-lf-2213.exp similarity index 100% rename from cts/pengine/bug-lf-2213.exp rename to cts/scheduler/bug-lf-2213.exp diff --git a/cts/pengine/bug-lf-2213.scores b/cts/scheduler/bug-lf-2213.scores similarity index 100% rename from cts/pengine/bug-lf-2213.scores rename to cts/scheduler/bug-lf-2213.scores diff --git a/cts/pengine/bug-lf-2213.summary b/cts/scheduler/bug-lf-2213.summary similarity index 100% rename from cts/pengine/bug-lf-2213.summary rename to cts/scheduler/bug-lf-2213.summary diff --git a/cts/pengine/bug-lf-2213.xml b/cts/scheduler/bug-lf-2213.xml similarity index 100% rename from cts/pengine/bug-lf-2213.xml rename to cts/scheduler/bug-lf-2213.xml diff --git a/cts/pengine/bug-lf-2317.dot b/cts/scheduler/bug-lf-2317.dot similarity index 100% rename from cts/pengine/bug-lf-2317.dot rename to cts/scheduler/bug-lf-2317.dot diff --git a/cts/pengine/bug-lf-2317.exp b/cts/scheduler/bug-lf-2317.exp similarity index 100% rename from cts/pengine/bug-lf-2317.exp rename to cts/scheduler/bug-lf-2317.exp diff --git a/cts/pengine/bug-lf-2317.scores b/cts/scheduler/bug-lf-2317.scores similarity index 100% rename from cts/pengine/bug-lf-2317.scores rename to cts/scheduler/bug-lf-2317.scores diff --git a/cts/pengine/bug-lf-2317.summary b/cts/scheduler/bug-lf-2317.summary similarity index 100% rename from cts/pengine/bug-lf-2317.summary rename to cts/scheduler/bug-lf-2317.summary diff --git a/cts/pengine/bug-lf-2317.xml b/cts/scheduler/bug-lf-2317.xml similarity index 100% rename from cts/pengine/bug-lf-2317.xml rename to cts/scheduler/bug-lf-2317.xml diff --git a/cts/pengine/bug-lf-2358.dot b/cts/scheduler/bug-lf-2358.dot similarity index 100% rename from cts/pengine/bug-lf-2358.dot rename to cts/scheduler/bug-lf-2358.dot diff --git a/cts/pengine/bug-lf-2358.exp b/cts/scheduler/bug-lf-2358.exp similarity index 100% rename from cts/pengine/bug-lf-2358.exp rename to cts/scheduler/bug-lf-2358.exp diff --git a/cts/pengine/bug-lf-2358.scores b/cts/scheduler/bug-lf-2358.scores similarity index 100% rename from cts/pengine/bug-lf-2358.scores rename to cts/scheduler/bug-lf-2358.scores diff --git a/cts/pengine/bug-lf-2358.summary b/cts/scheduler/bug-lf-2358.summary similarity index 100% rename from cts/pengine/bug-lf-2358.summary rename to cts/scheduler/bug-lf-2358.summary diff --git a/cts/pengine/bug-lf-2358.xml b/cts/scheduler/bug-lf-2358.xml similarity index 100% rename from cts/pengine/bug-lf-2358.xml rename to cts/scheduler/bug-lf-2358.xml diff --git a/cts/pengine/bug-lf-2361.dot b/cts/scheduler/bug-lf-2361.dot similarity index 100% rename from cts/pengine/bug-lf-2361.dot rename to cts/scheduler/bug-lf-2361.dot diff --git a/cts/pengine/bug-lf-2361.exp b/cts/scheduler/bug-lf-2361.exp similarity index 100% rename from cts/pengine/bug-lf-2361.exp rename to cts/scheduler/bug-lf-2361.exp diff --git a/cts/pengine/bug-lf-2361.scores b/cts/scheduler/bug-lf-2361.scores similarity index 100% rename from cts/pengine/bug-lf-2361.scores rename to cts/scheduler/bug-lf-2361.scores diff --git a/cts/pengine/bug-lf-2361.summary b/cts/scheduler/bug-lf-2361.summary similarity index 100% rename from cts/pengine/bug-lf-2361.summary rename to cts/scheduler/bug-lf-2361.summary diff --git a/cts/pengine/bug-lf-2361.xml b/cts/scheduler/bug-lf-2361.xml similarity index 100% rename from cts/pengine/bug-lf-2361.xml rename to cts/scheduler/bug-lf-2361.xml diff --git a/cts/pengine/bug-lf-2422.dot b/cts/scheduler/bug-lf-2422.dot similarity index 100% rename from cts/pengine/bug-lf-2422.dot rename to cts/scheduler/bug-lf-2422.dot diff --git a/cts/pengine/bug-lf-2422.exp b/cts/scheduler/bug-lf-2422.exp similarity index 100% rename from cts/pengine/bug-lf-2422.exp rename to cts/scheduler/bug-lf-2422.exp diff --git a/cts/pengine/bug-lf-2422.scores b/cts/scheduler/bug-lf-2422.scores similarity index 100% rename from cts/pengine/bug-lf-2422.scores rename to cts/scheduler/bug-lf-2422.scores diff --git a/cts/pengine/bug-lf-2422.summary b/cts/scheduler/bug-lf-2422.summary similarity index 100% rename from cts/pengine/bug-lf-2422.summary rename to cts/scheduler/bug-lf-2422.summary diff --git a/cts/pengine/bug-lf-2422.xml b/cts/scheduler/bug-lf-2422.xml similarity index 100% rename from cts/pengine/bug-lf-2422.xml rename to cts/scheduler/bug-lf-2422.xml diff --git a/cts/pengine/bug-lf-2435.dot b/cts/scheduler/bug-lf-2435.dot similarity index 100% rename from cts/pengine/bug-lf-2435.dot rename to cts/scheduler/bug-lf-2435.dot diff --git a/cts/pengine/bug-lf-2435.exp b/cts/scheduler/bug-lf-2435.exp similarity index 100% rename from cts/pengine/bug-lf-2435.exp rename to cts/scheduler/bug-lf-2435.exp diff --git a/cts/pengine/bug-lf-2435.scores b/cts/scheduler/bug-lf-2435.scores similarity index 100% rename from cts/pengine/bug-lf-2435.scores rename to cts/scheduler/bug-lf-2435.scores diff --git a/cts/pengine/bug-lf-2435.summary b/cts/scheduler/bug-lf-2435.summary similarity index 100% rename from cts/pengine/bug-lf-2435.summary rename to cts/scheduler/bug-lf-2435.summary diff --git a/cts/pengine/bug-lf-2435.xml b/cts/scheduler/bug-lf-2435.xml similarity index 100% rename from cts/pengine/bug-lf-2435.xml rename to cts/scheduler/bug-lf-2435.xml diff --git a/cts/pengine/bug-lf-2445.dot b/cts/scheduler/bug-lf-2445.dot similarity index 100% rename from cts/pengine/bug-lf-2445.dot rename to cts/scheduler/bug-lf-2445.dot diff --git a/cts/pengine/bug-lf-2445.exp b/cts/scheduler/bug-lf-2445.exp similarity index 100% rename from cts/pengine/bug-lf-2445.exp rename to cts/scheduler/bug-lf-2445.exp diff --git a/cts/pengine/bug-lf-2445.scores b/cts/scheduler/bug-lf-2445.scores similarity index 100% rename from cts/pengine/bug-lf-2445.scores rename to cts/scheduler/bug-lf-2445.scores diff --git a/cts/pengine/bug-lf-2445.summary b/cts/scheduler/bug-lf-2445.summary similarity index 100% rename from cts/pengine/bug-lf-2445.summary rename to cts/scheduler/bug-lf-2445.summary diff --git a/cts/pengine/bug-lf-2445.xml b/cts/scheduler/bug-lf-2445.xml similarity index 100% rename from cts/pengine/bug-lf-2445.xml rename to cts/scheduler/bug-lf-2445.xml diff --git a/cts/pengine/bug-lf-2453.dot b/cts/scheduler/bug-lf-2453.dot similarity index 100% rename from cts/pengine/bug-lf-2453.dot rename to cts/scheduler/bug-lf-2453.dot diff --git a/cts/pengine/bug-lf-2453.exp b/cts/scheduler/bug-lf-2453.exp similarity index 100% rename from cts/pengine/bug-lf-2453.exp rename to cts/scheduler/bug-lf-2453.exp diff --git a/cts/pengine/bug-lf-2453.scores b/cts/scheduler/bug-lf-2453.scores similarity index 100% rename from cts/pengine/bug-lf-2453.scores rename to cts/scheduler/bug-lf-2453.scores diff --git a/cts/pengine/bug-lf-2453.summary b/cts/scheduler/bug-lf-2453.summary similarity index 100% rename from cts/pengine/bug-lf-2453.summary rename to cts/scheduler/bug-lf-2453.summary diff --git a/cts/pengine/bug-lf-2453.xml b/cts/scheduler/bug-lf-2453.xml similarity index 100% rename from cts/pengine/bug-lf-2453.xml rename to cts/scheduler/bug-lf-2453.xml diff --git a/cts/pengine/bug-lf-2474.dot b/cts/scheduler/bug-lf-2474.dot similarity index 100% rename from cts/pengine/bug-lf-2474.dot rename to cts/scheduler/bug-lf-2474.dot diff --git a/cts/pengine/bug-lf-2474.exp b/cts/scheduler/bug-lf-2474.exp similarity index 100% rename from cts/pengine/bug-lf-2474.exp rename to cts/scheduler/bug-lf-2474.exp diff --git a/cts/pengine/bug-lf-2474.scores b/cts/scheduler/bug-lf-2474.scores similarity index 100% rename from cts/pengine/bug-lf-2474.scores rename to cts/scheduler/bug-lf-2474.scores diff --git a/cts/pengine/bug-lf-2474.summary b/cts/scheduler/bug-lf-2474.summary similarity index 100% rename from cts/pengine/bug-lf-2474.summary rename to cts/scheduler/bug-lf-2474.summary diff --git a/cts/pengine/bug-lf-2474.xml b/cts/scheduler/bug-lf-2474.xml similarity index 100% rename from cts/pengine/bug-lf-2474.xml rename to cts/scheduler/bug-lf-2474.xml diff --git a/cts/pengine/bug-lf-2493.dot b/cts/scheduler/bug-lf-2493.dot similarity index 100% rename from cts/pengine/bug-lf-2493.dot rename to cts/scheduler/bug-lf-2493.dot diff --git a/cts/pengine/bug-lf-2493.exp b/cts/scheduler/bug-lf-2493.exp similarity index 100% rename from cts/pengine/bug-lf-2493.exp rename to cts/scheduler/bug-lf-2493.exp diff --git a/cts/pengine/bug-lf-2493.scores b/cts/scheduler/bug-lf-2493.scores similarity index 100% rename from cts/pengine/bug-lf-2493.scores rename to cts/scheduler/bug-lf-2493.scores diff --git a/cts/pengine/bug-lf-2493.summary b/cts/scheduler/bug-lf-2493.summary similarity index 100% rename from cts/pengine/bug-lf-2493.summary rename to cts/scheduler/bug-lf-2493.summary diff --git a/cts/pengine/bug-lf-2493.xml b/cts/scheduler/bug-lf-2493.xml similarity index 100% rename from cts/pengine/bug-lf-2493.xml rename to cts/scheduler/bug-lf-2493.xml diff --git a/cts/pengine/bug-lf-2508.dot b/cts/scheduler/bug-lf-2508.dot similarity index 100% rename from cts/pengine/bug-lf-2508.dot rename to cts/scheduler/bug-lf-2508.dot diff --git a/cts/pengine/bug-lf-2508.exp b/cts/scheduler/bug-lf-2508.exp similarity index 100% rename from cts/pengine/bug-lf-2508.exp rename to cts/scheduler/bug-lf-2508.exp diff --git a/cts/pengine/bug-lf-2508.scores b/cts/scheduler/bug-lf-2508.scores similarity index 100% rename from cts/pengine/bug-lf-2508.scores rename to cts/scheduler/bug-lf-2508.scores diff --git a/cts/pengine/bug-lf-2508.summary b/cts/scheduler/bug-lf-2508.summary similarity index 100% rename from cts/pengine/bug-lf-2508.summary rename to cts/scheduler/bug-lf-2508.summary diff --git a/cts/pengine/bug-lf-2508.xml b/cts/scheduler/bug-lf-2508.xml similarity index 100% rename from cts/pengine/bug-lf-2508.xml rename to cts/scheduler/bug-lf-2508.xml diff --git a/cts/pengine/bug-lf-2544.dot b/cts/scheduler/bug-lf-2544.dot similarity index 100% rename from cts/pengine/bug-lf-2544.dot rename to cts/scheduler/bug-lf-2544.dot diff --git a/cts/pengine/bug-lf-2544.exp b/cts/scheduler/bug-lf-2544.exp similarity index 100% rename from cts/pengine/bug-lf-2544.exp rename to cts/scheduler/bug-lf-2544.exp diff --git a/cts/pengine/bug-lf-2544.scores b/cts/scheduler/bug-lf-2544.scores similarity index 100% rename from cts/pengine/bug-lf-2544.scores rename to cts/scheduler/bug-lf-2544.scores diff --git a/cts/pengine/bug-lf-2544.summary b/cts/scheduler/bug-lf-2544.summary similarity index 100% rename from cts/pengine/bug-lf-2544.summary rename to cts/scheduler/bug-lf-2544.summary diff --git a/cts/pengine/bug-lf-2544.xml b/cts/scheduler/bug-lf-2544.xml similarity index 100% rename from cts/pengine/bug-lf-2544.xml rename to cts/scheduler/bug-lf-2544.xml diff --git a/cts/pengine/bug-lf-2551.dot b/cts/scheduler/bug-lf-2551.dot similarity index 100% rename from cts/pengine/bug-lf-2551.dot rename to cts/scheduler/bug-lf-2551.dot diff --git a/cts/pengine/bug-lf-2551.exp b/cts/scheduler/bug-lf-2551.exp similarity index 100% rename from cts/pengine/bug-lf-2551.exp rename to cts/scheduler/bug-lf-2551.exp diff --git a/cts/pengine/bug-lf-2551.scores b/cts/scheduler/bug-lf-2551.scores similarity index 100% rename from cts/pengine/bug-lf-2551.scores rename to cts/scheduler/bug-lf-2551.scores diff --git a/cts/pengine/bug-lf-2551.summary b/cts/scheduler/bug-lf-2551.summary similarity index 100% rename from cts/pengine/bug-lf-2551.summary rename to cts/scheduler/bug-lf-2551.summary diff --git a/cts/pengine/bug-lf-2551.xml b/cts/scheduler/bug-lf-2551.xml similarity index 100% rename from cts/pengine/bug-lf-2551.xml rename to cts/scheduler/bug-lf-2551.xml diff --git a/cts/pengine/bug-lf-2574.dot b/cts/scheduler/bug-lf-2574.dot similarity index 100% rename from cts/pengine/bug-lf-2574.dot rename to cts/scheduler/bug-lf-2574.dot diff --git a/cts/pengine/bug-lf-2574.exp b/cts/scheduler/bug-lf-2574.exp similarity index 100% rename from cts/pengine/bug-lf-2574.exp rename to cts/scheduler/bug-lf-2574.exp diff --git a/cts/pengine/bug-lf-2574.scores b/cts/scheduler/bug-lf-2574.scores similarity index 100% rename from cts/pengine/bug-lf-2574.scores rename to cts/scheduler/bug-lf-2574.scores diff --git a/cts/pengine/bug-lf-2574.summary b/cts/scheduler/bug-lf-2574.summary similarity index 100% rename from cts/pengine/bug-lf-2574.summary rename to cts/scheduler/bug-lf-2574.summary diff --git a/cts/pengine/bug-lf-2574.xml b/cts/scheduler/bug-lf-2574.xml similarity index 100% rename from cts/pengine/bug-lf-2574.xml rename to cts/scheduler/bug-lf-2574.xml diff --git a/cts/pengine/bug-lf-2581.dot b/cts/scheduler/bug-lf-2581.dot similarity index 100% rename from cts/pengine/bug-lf-2581.dot rename to cts/scheduler/bug-lf-2581.dot diff --git a/cts/pengine/bug-lf-2581.exp b/cts/scheduler/bug-lf-2581.exp similarity index 100% rename from cts/pengine/bug-lf-2581.exp rename to cts/scheduler/bug-lf-2581.exp diff --git a/cts/pengine/bug-lf-2581.scores b/cts/scheduler/bug-lf-2581.scores similarity index 100% rename from cts/pengine/bug-lf-2581.scores rename to cts/scheduler/bug-lf-2581.scores diff --git a/cts/pengine/bug-lf-2581.summary b/cts/scheduler/bug-lf-2581.summary similarity index 100% rename from cts/pengine/bug-lf-2581.summary rename to cts/scheduler/bug-lf-2581.summary diff --git a/cts/pengine/bug-lf-2581.xml b/cts/scheduler/bug-lf-2581.xml similarity index 100% rename from cts/pengine/bug-lf-2581.xml rename to cts/scheduler/bug-lf-2581.xml diff --git a/cts/pengine/bug-lf-2606.dot b/cts/scheduler/bug-lf-2606.dot similarity index 100% rename from cts/pengine/bug-lf-2606.dot rename to cts/scheduler/bug-lf-2606.dot diff --git a/cts/pengine/bug-lf-2606.exp b/cts/scheduler/bug-lf-2606.exp similarity index 100% rename from cts/pengine/bug-lf-2606.exp rename to cts/scheduler/bug-lf-2606.exp diff --git a/cts/pengine/bug-lf-2606.scores b/cts/scheduler/bug-lf-2606.scores similarity index 100% rename from cts/pengine/bug-lf-2606.scores rename to cts/scheduler/bug-lf-2606.scores diff --git a/cts/pengine/bug-lf-2606.summary b/cts/scheduler/bug-lf-2606.summary similarity index 100% rename from cts/pengine/bug-lf-2606.summary rename to cts/scheduler/bug-lf-2606.summary diff --git a/cts/pengine/bug-lf-2606.xml b/cts/scheduler/bug-lf-2606.xml similarity index 100% rename from cts/pengine/bug-lf-2606.xml rename to cts/scheduler/bug-lf-2606.xml diff --git a/cts/pengine/bug-lf-2613.dot b/cts/scheduler/bug-lf-2613.dot similarity index 100% rename from cts/pengine/bug-lf-2613.dot rename to cts/scheduler/bug-lf-2613.dot diff --git a/cts/pengine/bug-lf-2613.exp b/cts/scheduler/bug-lf-2613.exp similarity index 100% rename from cts/pengine/bug-lf-2613.exp rename to cts/scheduler/bug-lf-2613.exp diff --git a/cts/pengine/bug-lf-2613.scores b/cts/scheduler/bug-lf-2613.scores similarity index 100% rename from cts/pengine/bug-lf-2613.scores rename to cts/scheduler/bug-lf-2613.scores diff --git a/cts/pengine/bug-lf-2613.summary b/cts/scheduler/bug-lf-2613.summary similarity index 100% rename from cts/pengine/bug-lf-2613.summary rename to cts/scheduler/bug-lf-2613.summary diff --git a/cts/pengine/bug-lf-2613.xml b/cts/scheduler/bug-lf-2613.xml similarity index 100% rename from cts/pengine/bug-lf-2613.xml rename to cts/scheduler/bug-lf-2613.xml diff --git a/cts/pengine/bug-lf-2619.dot b/cts/scheduler/bug-lf-2619.dot similarity index 100% rename from cts/pengine/bug-lf-2619.dot rename to cts/scheduler/bug-lf-2619.dot diff --git a/cts/pengine/bug-lf-2619.exp b/cts/scheduler/bug-lf-2619.exp similarity index 100% rename from cts/pengine/bug-lf-2619.exp rename to cts/scheduler/bug-lf-2619.exp diff --git a/cts/pengine/bug-lf-2619.scores b/cts/scheduler/bug-lf-2619.scores similarity index 100% rename from cts/pengine/bug-lf-2619.scores rename to cts/scheduler/bug-lf-2619.scores diff --git a/cts/pengine/bug-lf-2619.summary b/cts/scheduler/bug-lf-2619.summary similarity index 100% rename from cts/pengine/bug-lf-2619.summary rename to cts/scheduler/bug-lf-2619.summary diff --git a/cts/pengine/bug-lf-2619.xml b/cts/scheduler/bug-lf-2619.xml similarity index 100% rename from cts/pengine/bug-lf-2619.xml rename to cts/scheduler/bug-lf-2619.xml diff --git a/cts/pengine/bug-n-385265-2.dot b/cts/scheduler/bug-n-385265-2.dot similarity index 100% rename from cts/pengine/bug-n-385265-2.dot rename to cts/scheduler/bug-n-385265-2.dot diff --git a/cts/pengine/bug-n-385265-2.exp b/cts/scheduler/bug-n-385265-2.exp similarity index 100% rename from cts/pengine/bug-n-385265-2.exp rename to cts/scheduler/bug-n-385265-2.exp diff --git a/cts/pengine/bug-n-385265-2.scores b/cts/scheduler/bug-n-385265-2.scores similarity index 100% rename from cts/pengine/bug-n-385265-2.scores rename to cts/scheduler/bug-n-385265-2.scores diff --git a/cts/pengine/bug-n-385265-2.summary b/cts/scheduler/bug-n-385265-2.summary similarity index 100% rename from cts/pengine/bug-n-385265-2.summary rename to cts/scheduler/bug-n-385265-2.summary diff --git a/cts/pengine/bug-n-385265-2.xml b/cts/scheduler/bug-n-385265-2.xml similarity index 100% rename from cts/pengine/bug-n-385265-2.xml rename to cts/scheduler/bug-n-385265-2.xml diff --git a/cts/pengine/bug-n-385265.dot b/cts/scheduler/bug-n-385265.dot similarity index 100% rename from cts/pengine/bug-n-385265.dot rename to cts/scheduler/bug-n-385265.dot diff --git a/cts/pengine/bug-n-385265.exp b/cts/scheduler/bug-n-385265.exp similarity index 100% rename from cts/pengine/bug-n-385265.exp rename to cts/scheduler/bug-n-385265.exp diff --git a/cts/pengine/bug-n-385265.scores b/cts/scheduler/bug-n-385265.scores similarity index 100% rename from cts/pengine/bug-n-385265.scores rename to cts/scheduler/bug-n-385265.scores diff --git a/cts/pengine/bug-n-385265.summary b/cts/scheduler/bug-n-385265.summary similarity index 100% rename from cts/pengine/bug-n-385265.summary rename to cts/scheduler/bug-n-385265.summary diff --git a/cts/pengine/bug-n-385265.xml b/cts/scheduler/bug-n-385265.xml similarity index 100% rename from cts/pengine/bug-n-385265.xml rename to cts/scheduler/bug-n-385265.xml diff --git a/cts/pengine/bug-n-387749.dot b/cts/scheduler/bug-n-387749.dot similarity index 100% rename from cts/pengine/bug-n-387749.dot rename to cts/scheduler/bug-n-387749.dot diff --git a/cts/pengine/bug-n-387749.exp b/cts/scheduler/bug-n-387749.exp similarity index 100% rename from cts/pengine/bug-n-387749.exp rename to cts/scheduler/bug-n-387749.exp diff --git a/cts/pengine/bug-n-387749.scores b/cts/scheduler/bug-n-387749.scores similarity index 100% rename from cts/pengine/bug-n-387749.scores rename to cts/scheduler/bug-n-387749.scores diff --git a/cts/pengine/bug-n-387749.summary b/cts/scheduler/bug-n-387749.summary similarity index 100% rename from cts/pengine/bug-n-387749.summary rename to cts/scheduler/bug-n-387749.summary diff --git a/cts/pengine/bug-n-387749.xml b/cts/scheduler/bug-n-387749.xml similarity index 100% rename from cts/pengine/bug-n-387749.xml rename to cts/scheduler/bug-n-387749.xml diff --git a/cts/pengine/bug-pm-11.dot b/cts/scheduler/bug-pm-11.dot similarity index 100% rename from cts/pengine/bug-pm-11.dot rename to cts/scheduler/bug-pm-11.dot diff --git a/cts/pengine/bug-pm-11.exp b/cts/scheduler/bug-pm-11.exp similarity index 100% rename from cts/pengine/bug-pm-11.exp rename to cts/scheduler/bug-pm-11.exp diff --git a/cts/pengine/bug-pm-11.scores b/cts/scheduler/bug-pm-11.scores similarity index 100% rename from cts/pengine/bug-pm-11.scores rename to cts/scheduler/bug-pm-11.scores diff --git a/cts/pengine/bug-pm-11.summary b/cts/scheduler/bug-pm-11.summary similarity index 100% rename from cts/pengine/bug-pm-11.summary rename to cts/scheduler/bug-pm-11.summary diff --git a/cts/pengine/bug-pm-11.xml b/cts/scheduler/bug-pm-11.xml similarity index 100% rename from cts/pengine/bug-pm-11.xml rename to cts/scheduler/bug-pm-11.xml diff --git a/cts/pengine/bug-pm-12.dot b/cts/scheduler/bug-pm-12.dot similarity index 100% rename from cts/pengine/bug-pm-12.dot rename to cts/scheduler/bug-pm-12.dot diff --git a/cts/pengine/bug-pm-12.exp b/cts/scheduler/bug-pm-12.exp similarity index 100% rename from cts/pengine/bug-pm-12.exp rename to cts/scheduler/bug-pm-12.exp diff --git a/cts/pengine/bug-pm-12.scores b/cts/scheduler/bug-pm-12.scores similarity index 100% rename from cts/pengine/bug-pm-12.scores rename to cts/scheduler/bug-pm-12.scores diff --git a/cts/pengine/bug-pm-12.summary b/cts/scheduler/bug-pm-12.summary similarity index 100% rename from cts/pengine/bug-pm-12.summary rename to cts/scheduler/bug-pm-12.summary diff --git a/cts/pengine/bug-pm-12.xml b/cts/scheduler/bug-pm-12.xml similarity index 100% rename from cts/pengine/bug-pm-12.xml rename to cts/scheduler/bug-pm-12.xml diff --git a/cts/pengine/bug-rh-1097457.dot b/cts/scheduler/bug-rh-1097457.dot similarity index 100% rename from cts/pengine/bug-rh-1097457.dot rename to cts/scheduler/bug-rh-1097457.dot diff --git a/cts/pengine/bug-rh-1097457.exp b/cts/scheduler/bug-rh-1097457.exp similarity index 100% rename from cts/pengine/bug-rh-1097457.exp rename to cts/scheduler/bug-rh-1097457.exp diff --git a/cts/pengine/bug-rh-1097457.scores b/cts/scheduler/bug-rh-1097457.scores similarity index 100% rename from cts/pengine/bug-rh-1097457.scores rename to cts/scheduler/bug-rh-1097457.scores diff --git a/cts/pengine/bug-rh-1097457.summary b/cts/scheduler/bug-rh-1097457.summary similarity index 100% rename from cts/pengine/bug-rh-1097457.summary rename to cts/scheduler/bug-rh-1097457.summary diff --git a/cts/pengine/bug-rh-1097457.xml b/cts/scheduler/bug-rh-1097457.xml similarity index 100% rename from cts/pengine/bug-rh-1097457.xml rename to cts/scheduler/bug-rh-1097457.xml diff --git a/cts/pengine/bug-rh-880249.dot b/cts/scheduler/bug-rh-880249.dot similarity index 100% rename from cts/pengine/bug-rh-880249.dot rename to cts/scheduler/bug-rh-880249.dot diff --git a/cts/pengine/bug-rh-880249.exp b/cts/scheduler/bug-rh-880249.exp similarity index 100% rename from cts/pengine/bug-rh-880249.exp rename to cts/scheduler/bug-rh-880249.exp diff --git a/cts/pengine/bug-rh-880249.scores b/cts/scheduler/bug-rh-880249.scores similarity index 100% rename from cts/pengine/bug-rh-880249.scores rename to cts/scheduler/bug-rh-880249.scores diff --git a/cts/pengine/bug-rh-880249.summary b/cts/scheduler/bug-rh-880249.summary similarity index 100% rename from cts/pengine/bug-rh-880249.summary rename to cts/scheduler/bug-rh-880249.summary diff --git a/cts/pengine/bug-rh-880249.xml b/cts/scheduler/bug-rh-880249.xml similarity index 100% rename from cts/pengine/bug-rh-880249.xml rename to cts/scheduler/bug-rh-880249.xml diff --git a/cts/pengine/bug-suse-707150.dot b/cts/scheduler/bug-suse-707150.dot similarity index 100% rename from cts/pengine/bug-suse-707150.dot rename to cts/scheduler/bug-suse-707150.dot diff --git a/cts/pengine/bug-suse-707150.exp b/cts/scheduler/bug-suse-707150.exp similarity index 100% rename from cts/pengine/bug-suse-707150.exp rename to cts/scheduler/bug-suse-707150.exp diff --git a/cts/pengine/bug-suse-707150.scores b/cts/scheduler/bug-suse-707150.scores similarity index 100% rename from cts/pengine/bug-suse-707150.scores rename to cts/scheduler/bug-suse-707150.scores diff --git a/cts/pengine/bug-suse-707150.summary b/cts/scheduler/bug-suse-707150.summary similarity index 100% rename from cts/pengine/bug-suse-707150.summary rename to cts/scheduler/bug-suse-707150.summary diff --git a/cts/pengine/bug-suse-707150.xml b/cts/scheduler/bug-suse-707150.xml similarity index 100% rename from cts/pengine/bug-suse-707150.xml rename to cts/scheduler/bug-suse-707150.xml diff --git a/cts/pengine/bundle-nested-colocation.dot b/cts/scheduler/bundle-nested-colocation.dot similarity index 100% rename from cts/pengine/bundle-nested-colocation.dot rename to cts/scheduler/bundle-nested-colocation.dot diff --git a/cts/pengine/bundle-nested-colocation.exp b/cts/scheduler/bundle-nested-colocation.exp similarity index 100% rename from cts/pengine/bundle-nested-colocation.exp rename to cts/scheduler/bundle-nested-colocation.exp diff --git a/cts/pengine/bundle-nested-colocation.scores b/cts/scheduler/bundle-nested-colocation.scores similarity index 100% rename from cts/pengine/bundle-nested-colocation.scores rename to cts/scheduler/bundle-nested-colocation.scores diff --git a/cts/pengine/bundle-nested-colocation.summary b/cts/scheduler/bundle-nested-colocation.summary similarity index 100% rename from cts/pengine/bundle-nested-colocation.summary rename to cts/scheduler/bundle-nested-colocation.summary diff --git a/cts/pengine/bundle-nested-colocation.xml b/cts/scheduler/bundle-nested-colocation.xml similarity index 100% rename from cts/pengine/bundle-nested-colocation.xml rename to cts/scheduler/bundle-nested-colocation.xml diff --git a/cts/pengine/bundle-order-fencing.dot b/cts/scheduler/bundle-order-fencing.dot similarity index 100% rename from cts/pengine/bundle-order-fencing.dot rename to cts/scheduler/bundle-order-fencing.dot diff --git a/cts/pengine/bundle-order-fencing.exp b/cts/scheduler/bundle-order-fencing.exp similarity index 100% rename from cts/pengine/bundle-order-fencing.exp rename to cts/scheduler/bundle-order-fencing.exp diff --git a/cts/pengine/bundle-order-fencing.scores b/cts/scheduler/bundle-order-fencing.scores similarity index 100% rename from cts/pengine/bundle-order-fencing.scores rename to cts/scheduler/bundle-order-fencing.scores diff --git a/cts/pengine/bundle-order-fencing.summary b/cts/scheduler/bundle-order-fencing.summary similarity index 100% rename from cts/pengine/bundle-order-fencing.summary rename to cts/scheduler/bundle-order-fencing.summary diff --git a/cts/pengine/bundle-order-fencing.xml b/cts/scheduler/bundle-order-fencing.xml similarity index 100% rename from cts/pengine/bundle-order-fencing.xml rename to cts/scheduler/bundle-order-fencing.xml diff --git a/cts/pengine/bundle-order-partial-start-2.dot b/cts/scheduler/bundle-order-partial-start-2.dot similarity index 100% rename from cts/pengine/bundle-order-partial-start-2.dot rename to cts/scheduler/bundle-order-partial-start-2.dot diff --git a/cts/pengine/bundle-order-partial-start-2.exp b/cts/scheduler/bundle-order-partial-start-2.exp similarity index 100% rename from cts/pengine/bundle-order-partial-start-2.exp rename to cts/scheduler/bundle-order-partial-start-2.exp diff --git a/cts/pengine/bundle-order-partial-start-2.scores b/cts/scheduler/bundle-order-partial-start-2.scores similarity index 100% rename from cts/pengine/bundle-order-partial-start-2.scores rename to cts/scheduler/bundle-order-partial-start-2.scores diff --git a/cts/pengine/bundle-order-partial-start-2.summary b/cts/scheduler/bundle-order-partial-start-2.summary similarity index 100% rename from cts/pengine/bundle-order-partial-start-2.summary rename to cts/scheduler/bundle-order-partial-start-2.summary diff --git a/cts/pengine/bundle-order-partial-start-2.xml b/cts/scheduler/bundle-order-partial-start-2.xml similarity index 100% rename from cts/pengine/bundle-order-partial-start-2.xml rename to cts/scheduler/bundle-order-partial-start-2.xml diff --git a/cts/pengine/bundle-order-partial-start.dot b/cts/scheduler/bundle-order-partial-start.dot similarity index 100% rename from cts/pengine/bundle-order-partial-start.dot rename to cts/scheduler/bundle-order-partial-start.dot diff --git a/cts/pengine/bundle-order-partial-start.exp b/cts/scheduler/bundle-order-partial-start.exp similarity index 100% rename from cts/pengine/bundle-order-partial-start.exp rename to cts/scheduler/bundle-order-partial-start.exp diff --git a/cts/pengine/bundle-order-partial-start.scores b/cts/scheduler/bundle-order-partial-start.scores similarity index 100% rename from cts/pengine/bundle-order-partial-start.scores rename to cts/scheduler/bundle-order-partial-start.scores diff --git a/cts/pengine/bundle-order-partial-start.summary b/cts/scheduler/bundle-order-partial-start.summary similarity index 100% rename from cts/pengine/bundle-order-partial-start.summary rename to cts/scheduler/bundle-order-partial-start.summary diff --git a/cts/pengine/bundle-order-partial-start.xml b/cts/scheduler/bundle-order-partial-start.xml similarity index 100% rename from cts/pengine/bundle-order-partial-start.xml rename to cts/scheduler/bundle-order-partial-start.xml diff --git a/cts/pengine/bundle-order-partial-stop.dot b/cts/scheduler/bundle-order-partial-stop.dot similarity index 100% rename from cts/pengine/bundle-order-partial-stop.dot rename to cts/scheduler/bundle-order-partial-stop.dot diff --git a/cts/pengine/bundle-order-partial-stop.exp b/cts/scheduler/bundle-order-partial-stop.exp similarity index 100% rename from cts/pengine/bundle-order-partial-stop.exp rename to cts/scheduler/bundle-order-partial-stop.exp diff --git a/cts/pengine/bundle-order-partial-stop.scores b/cts/scheduler/bundle-order-partial-stop.scores similarity index 100% rename from cts/pengine/bundle-order-partial-stop.scores rename to cts/scheduler/bundle-order-partial-stop.scores diff --git a/cts/pengine/bundle-order-partial-stop.summary b/cts/scheduler/bundle-order-partial-stop.summary similarity index 100% rename from cts/pengine/bundle-order-partial-stop.summary rename to cts/scheduler/bundle-order-partial-stop.summary diff --git a/cts/pengine/bundle-order-partial-stop.xml b/cts/scheduler/bundle-order-partial-stop.xml similarity index 100% rename from cts/pengine/bundle-order-partial-stop.xml rename to cts/scheduler/bundle-order-partial-stop.xml diff --git a/cts/pengine/bundle-order-partial.dot b/cts/scheduler/bundle-order-partial.dot similarity index 100% rename from cts/pengine/bundle-order-partial.dot rename to cts/scheduler/bundle-order-partial.dot diff --git a/cts/pengine/bundle-order-partial.exp b/cts/scheduler/bundle-order-partial.exp similarity index 100% rename from cts/pengine/bundle-order-partial.exp rename to cts/scheduler/bundle-order-partial.exp diff --git a/cts/pengine/bundle-order-partial.scores b/cts/scheduler/bundle-order-partial.scores similarity index 100% rename from cts/pengine/bundle-order-partial.scores rename to cts/scheduler/bundle-order-partial.scores diff --git a/cts/pengine/bundle-order-partial.summary b/cts/scheduler/bundle-order-partial.summary similarity index 100% rename from cts/pengine/bundle-order-partial.summary rename to cts/scheduler/bundle-order-partial.summary diff --git a/cts/pengine/bundle-order-partial.xml b/cts/scheduler/bundle-order-partial.xml similarity index 100% rename from cts/pengine/bundle-order-partial.xml rename to cts/scheduler/bundle-order-partial.xml diff --git a/cts/pengine/bundle-order-startup-clone-2.dot b/cts/scheduler/bundle-order-startup-clone-2.dot similarity index 100% rename from cts/pengine/bundle-order-startup-clone-2.dot rename to cts/scheduler/bundle-order-startup-clone-2.dot diff --git a/cts/pengine/bundle-order-startup-clone-2.exp b/cts/scheduler/bundle-order-startup-clone-2.exp similarity index 100% rename from cts/pengine/bundle-order-startup-clone-2.exp rename to cts/scheduler/bundle-order-startup-clone-2.exp diff --git a/cts/pengine/bundle-order-startup-clone-2.scores b/cts/scheduler/bundle-order-startup-clone-2.scores similarity index 100% rename from cts/pengine/bundle-order-startup-clone-2.scores rename to cts/scheduler/bundle-order-startup-clone-2.scores diff --git a/cts/pengine/bundle-order-startup-clone-2.summary b/cts/scheduler/bundle-order-startup-clone-2.summary similarity index 100% rename from cts/pengine/bundle-order-startup-clone-2.summary rename to cts/scheduler/bundle-order-startup-clone-2.summary diff --git a/cts/pengine/bundle-order-startup-clone-2.xml b/cts/scheduler/bundle-order-startup-clone-2.xml similarity index 100% rename from cts/pengine/bundle-order-startup-clone-2.xml rename to cts/scheduler/bundle-order-startup-clone-2.xml diff --git a/cts/pengine/bundle-order-startup-clone.dot b/cts/scheduler/bundle-order-startup-clone.dot similarity index 100% rename from cts/pengine/bundle-order-startup-clone.dot rename to cts/scheduler/bundle-order-startup-clone.dot diff --git a/cts/pengine/bundle-order-startup-clone.exp b/cts/scheduler/bundle-order-startup-clone.exp similarity index 100% rename from cts/pengine/bundle-order-startup-clone.exp rename to cts/scheduler/bundle-order-startup-clone.exp diff --git a/cts/pengine/bundle-order-startup-clone.scores b/cts/scheduler/bundle-order-startup-clone.scores similarity index 100% rename from cts/pengine/bundle-order-startup-clone.scores rename to cts/scheduler/bundle-order-startup-clone.scores diff --git a/cts/pengine/bundle-order-startup-clone.summary b/cts/scheduler/bundle-order-startup-clone.summary similarity index 100% rename from cts/pengine/bundle-order-startup-clone.summary rename to cts/scheduler/bundle-order-startup-clone.summary diff --git a/cts/pengine/bundle-order-startup-clone.xml b/cts/scheduler/bundle-order-startup-clone.xml similarity index 100% rename from cts/pengine/bundle-order-startup-clone.xml rename to cts/scheduler/bundle-order-startup-clone.xml diff --git a/cts/pengine/bundle-order-startup.dot b/cts/scheduler/bundle-order-startup.dot similarity index 100% rename from cts/pengine/bundle-order-startup.dot rename to cts/scheduler/bundle-order-startup.dot diff --git a/cts/pengine/bundle-order-startup.exp b/cts/scheduler/bundle-order-startup.exp similarity index 100% rename from cts/pengine/bundle-order-startup.exp rename to cts/scheduler/bundle-order-startup.exp diff --git a/cts/pengine/bundle-order-startup.scores b/cts/scheduler/bundle-order-startup.scores similarity index 100% rename from cts/pengine/bundle-order-startup.scores rename to cts/scheduler/bundle-order-startup.scores diff --git a/cts/pengine/bundle-order-startup.summary b/cts/scheduler/bundle-order-startup.summary similarity index 100% rename from cts/pengine/bundle-order-startup.summary rename to cts/scheduler/bundle-order-startup.summary diff --git a/cts/pengine/bundle-order-startup.xml b/cts/scheduler/bundle-order-startup.xml similarity index 100% rename from cts/pengine/bundle-order-startup.xml rename to cts/scheduler/bundle-order-startup.xml diff --git a/cts/pengine/bundle-order-stop-clone.dot b/cts/scheduler/bundle-order-stop-clone.dot similarity index 100% rename from cts/pengine/bundle-order-stop-clone.dot rename to cts/scheduler/bundle-order-stop-clone.dot diff --git a/cts/pengine/bundle-order-stop-clone.exp b/cts/scheduler/bundle-order-stop-clone.exp similarity index 100% rename from cts/pengine/bundle-order-stop-clone.exp rename to cts/scheduler/bundle-order-stop-clone.exp diff --git a/cts/pengine/bundle-order-stop-clone.scores b/cts/scheduler/bundle-order-stop-clone.scores similarity index 100% rename from cts/pengine/bundle-order-stop-clone.scores rename to cts/scheduler/bundle-order-stop-clone.scores diff --git a/cts/pengine/bundle-order-stop-clone.summary b/cts/scheduler/bundle-order-stop-clone.summary similarity index 100% rename from cts/pengine/bundle-order-stop-clone.summary rename to cts/scheduler/bundle-order-stop-clone.summary diff --git a/cts/pengine/bundle-order-stop-clone.xml b/cts/scheduler/bundle-order-stop-clone.xml similarity index 100% rename from cts/pengine/bundle-order-stop-clone.xml rename to cts/scheduler/bundle-order-stop-clone.xml diff --git a/cts/pengine/bundle-order-stop-on-remote.dot b/cts/scheduler/bundle-order-stop-on-remote.dot similarity index 100% rename from cts/pengine/bundle-order-stop-on-remote.dot rename to cts/scheduler/bundle-order-stop-on-remote.dot diff --git a/cts/pengine/bundle-order-stop-on-remote.exp b/cts/scheduler/bundle-order-stop-on-remote.exp similarity index 100% rename from cts/pengine/bundle-order-stop-on-remote.exp rename to cts/scheduler/bundle-order-stop-on-remote.exp diff --git a/cts/pengine/bundle-order-stop-on-remote.scores b/cts/scheduler/bundle-order-stop-on-remote.scores similarity index 100% rename from cts/pengine/bundle-order-stop-on-remote.scores rename to cts/scheduler/bundle-order-stop-on-remote.scores diff --git a/cts/pengine/bundle-order-stop-on-remote.summary b/cts/scheduler/bundle-order-stop-on-remote.summary similarity index 100% rename from cts/pengine/bundle-order-stop-on-remote.summary rename to cts/scheduler/bundle-order-stop-on-remote.summary diff --git a/cts/pengine/bundle-order-stop-on-remote.xml b/cts/scheduler/bundle-order-stop-on-remote.xml similarity index 100% rename from cts/pengine/bundle-order-stop-on-remote.xml rename to cts/scheduler/bundle-order-stop-on-remote.xml diff --git a/cts/pengine/bundle-order-stop.dot b/cts/scheduler/bundle-order-stop.dot similarity index 100% rename from cts/pengine/bundle-order-stop.dot rename to cts/scheduler/bundle-order-stop.dot diff --git a/cts/pengine/bundle-order-stop.exp b/cts/scheduler/bundle-order-stop.exp similarity index 100% rename from cts/pengine/bundle-order-stop.exp rename to cts/scheduler/bundle-order-stop.exp diff --git a/cts/pengine/bundle-order-stop.scores b/cts/scheduler/bundle-order-stop.scores similarity index 100% rename from cts/pengine/bundle-order-stop.scores rename to cts/scheduler/bundle-order-stop.scores diff --git a/cts/pengine/bundle-order-stop.summary b/cts/scheduler/bundle-order-stop.summary similarity index 100% rename from cts/pengine/bundle-order-stop.summary rename to cts/scheduler/bundle-order-stop.summary diff --git a/cts/pengine/bundle-order-stop.xml b/cts/scheduler/bundle-order-stop.xml similarity index 100% rename from cts/pengine/bundle-order-stop.xml rename to cts/scheduler/bundle-order-stop.xml diff --git a/cts/pengine/bundle-probe-order-1.dot b/cts/scheduler/bundle-probe-order-1.dot similarity index 100% rename from cts/pengine/bundle-probe-order-1.dot rename to cts/scheduler/bundle-probe-order-1.dot diff --git a/cts/pengine/bundle-probe-order-1.exp b/cts/scheduler/bundle-probe-order-1.exp similarity index 100% rename from cts/pengine/bundle-probe-order-1.exp rename to cts/scheduler/bundle-probe-order-1.exp diff --git a/cts/pengine/bundle-probe-order-1.scores b/cts/scheduler/bundle-probe-order-1.scores similarity index 100% rename from cts/pengine/bundle-probe-order-1.scores rename to cts/scheduler/bundle-probe-order-1.scores diff --git a/cts/pengine/bundle-probe-order-1.summary b/cts/scheduler/bundle-probe-order-1.summary similarity index 100% rename from cts/pengine/bundle-probe-order-1.summary rename to cts/scheduler/bundle-probe-order-1.summary diff --git a/cts/pengine/bundle-probe-order-1.xml b/cts/scheduler/bundle-probe-order-1.xml similarity index 100% rename from cts/pengine/bundle-probe-order-1.xml rename to cts/scheduler/bundle-probe-order-1.xml diff --git a/cts/pengine/bundle-probe-order-2.dot b/cts/scheduler/bundle-probe-order-2.dot similarity index 100% rename from cts/pengine/bundle-probe-order-2.dot rename to cts/scheduler/bundle-probe-order-2.dot diff --git a/cts/pengine/bundle-probe-order-2.exp b/cts/scheduler/bundle-probe-order-2.exp similarity index 100% rename from cts/pengine/bundle-probe-order-2.exp rename to cts/scheduler/bundle-probe-order-2.exp diff --git a/cts/pengine/bundle-probe-order-2.scores b/cts/scheduler/bundle-probe-order-2.scores similarity index 100% rename from cts/pengine/bundle-probe-order-2.scores rename to cts/scheduler/bundle-probe-order-2.scores diff --git a/cts/pengine/bundle-probe-order-2.summary b/cts/scheduler/bundle-probe-order-2.summary similarity index 100% rename from cts/pengine/bundle-probe-order-2.summary rename to cts/scheduler/bundle-probe-order-2.summary diff --git a/cts/pengine/bundle-probe-order-2.xml b/cts/scheduler/bundle-probe-order-2.xml similarity index 100% rename from cts/pengine/bundle-probe-order-2.xml rename to cts/scheduler/bundle-probe-order-2.xml diff --git a/cts/pengine/bundle-probe-order-3.dot b/cts/scheduler/bundle-probe-order-3.dot similarity index 100% rename from cts/pengine/bundle-probe-order-3.dot rename to cts/scheduler/bundle-probe-order-3.dot diff --git a/cts/pengine/bundle-probe-order-3.exp b/cts/scheduler/bundle-probe-order-3.exp similarity index 100% rename from cts/pengine/bundle-probe-order-3.exp rename to cts/scheduler/bundle-probe-order-3.exp diff --git a/cts/pengine/bundle-probe-order-3.scores b/cts/scheduler/bundle-probe-order-3.scores similarity index 100% rename from cts/pengine/bundle-probe-order-3.scores rename to cts/scheduler/bundle-probe-order-3.scores diff --git a/cts/pengine/bundle-probe-order-3.summary b/cts/scheduler/bundle-probe-order-3.summary similarity index 100% rename from cts/pengine/bundle-probe-order-3.summary rename to cts/scheduler/bundle-probe-order-3.summary diff --git a/cts/pengine/bundle-probe-order-3.xml b/cts/scheduler/bundle-probe-order-3.xml similarity index 100% rename from cts/pengine/bundle-probe-order-3.xml rename to cts/scheduler/bundle-probe-order-3.xml diff --git a/cts/pengine/bundle-probe-remotes.dot b/cts/scheduler/bundle-probe-remotes.dot similarity index 100% rename from cts/pengine/bundle-probe-remotes.dot rename to cts/scheduler/bundle-probe-remotes.dot diff --git a/cts/pengine/bundle-probe-remotes.exp b/cts/scheduler/bundle-probe-remotes.exp similarity index 100% rename from cts/pengine/bundle-probe-remotes.exp rename to cts/scheduler/bundle-probe-remotes.exp diff --git a/cts/pengine/bundle-probe-remotes.scores b/cts/scheduler/bundle-probe-remotes.scores similarity index 100% rename from cts/pengine/bundle-probe-remotes.scores rename to cts/scheduler/bundle-probe-remotes.scores diff --git a/cts/pengine/bundle-probe-remotes.summary b/cts/scheduler/bundle-probe-remotes.summary similarity index 100% rename from cts/pengine/bundle-probe-remotes.summary rename to cts/scheduler/bundle-probe-remotes.summary diff --git a/cts/pengine/bundle-probe-remotes.xml b/cts/scheduler/bundle-probe-remotes.xml similarity index 100% rename from cts/pengine/bundle-probe-remotes.xml rename to cts/scheduler/bundle-probe-remotes.xml diff --git a/cts/pengine/bundle-replicas-change.dot b/cts/scheduler/bundle-replicas-change.dot similarity index 100% rename from cts/pengine/bundle-replicas-change.dot rename to cts/scheduler/bundle-replicas-change.dot diff --git a/cts/pengine/bundle-replicas-change.exp b/cts/scheduler/bundle-replicas-change.exp similarity index 98% rename from cts/pengine/bundle-replicas-change.exp rename to cts/scheduler/bundle-replicas-change.exp index 138dfcd1fa8..ce77af70485 100644 --- a/cts/pengine/bundle-replicas-change.exp +++ b/cts/scheduler/bundle-replicas-change.exp @@ -169,7 +169,7 @@ - + @@ -185,7 +185,7 @@ - + @@ -201,7 +201,7 @@ - + @@ -294,7 +294,7 @@ - + @@ -307,7 +307,7 @@ - + @@ -326,7 +326,7 @@ - + @@ -412,7 +412,7 @@ - + @@ -425,7 +425,7 @@ - + @@ -444,7 +444,7 @@ - + diff --git a/cts/pengine/bundle-replicas-change.scores b/cts/scheduler/bundle-replicas-change.scores similarity index 100% rename from cts/pengine/bundle-replicas-change.scores rename to cts/scheduler/bundle-replicas-change.scores diff --git a/cts/pengine/bundle-replicas-change.summary b/cts/scheduler/bundle-replicas-change.summary similarity index 100% rename from cts/pengine/bundle-replicas-change.summary rename to cts/scheduler/bundle-replicas-change.summary diff --git a/cts/pengine/bundle-replicas-change.xml b/cts/scheduler/bundle-replicas-change.xml similarity index 100% rename from cts/pengine/bundle-replicas-change.xml rename to cts/scheduler/bundle-replicas-change.xml diff --git a/cts/pengine/clone-anon-dup.dot b/cts/scheduler/clone-anon-dup.dot similarity index 100% rename from cts/pengine/clone-anon-dup.dot rename to cts/scheduler/clone-anon-dup.dot diff --git a/cts/pengine/clone-anon-dup.exp b/cts/scheduler/clone-anon-dup.exp similarity index 100% rename from cts/pengine/clone-anon-dup.exp rename to cts/scheduler/clone-anon-dup.exp diff --git a/cts/pengine/clone-anon-dup.scores b/cts/scheduler/clone-anon-dup.scores similarity index 100% rename from cts/pengine/clone-anon-dup.scores rename to cts/scheduler/clone-anon-dup.scores diff --git a/cts/pengine/clone-anon-dup.summary b/cts/scheduler/clone-anon-dup.summary similarity index 100% rename from cts/pengine/clone-anon-dup.summary rename to cts/scheduler/clone-anon-dup.summary diff --git a/cts/pengine/clone-anon-dup.xml b/cts/scheduler/clone-anon-dup.xml similarity index 100% rename from cts/pengine/clone-anon-dup.xml rename to cts/scheduler/clone-anon-dup.xml diff --git a/cts/pengine/clone-anon-failcount.dot b/cts/scheduler/clone-anon-failcount.dot similarity index 100% rename from cts/pengine/clone-anon-failcount.dot rename to cts/scheduler/clone-anon-failcount.dot diff --git a/cts/pengine/clone-anon-failcount.exp b/cts/scheduler/clone-anon-failcount.exp similarity index 100% rename from cts/pengine/clone-anon-failcount.exp rename to cts/scheduler/clone-anon-failcount.exp diff --git a/cts/pengine/clone-anon-failcount.scores b/cts/scheduler/clone-anon-failcount.scores similarity index 100% rename from cts/pengine/clone-anon-failcount.scores rename to cts/scheduler/clone-anon-failcount.scores diff --git a/cts/pengine/clone-anon-failcount.summary b/cts/scheduler/clone-anon-failcount.summary similarity index 100% rename from cts/pengine/clone-anon-failcount.summary rename to cts/scheduler/clone-anon-failcount.summary diff --git a/cts/pengine/clone-anon-failcount.xml b/cts/scheduler/clone-anon-failcount.xml similarity index 100% rename from cts/pengine/clone-anon-failcount.xml rename to cts/scheduler/clone-anon-failcount.xml diff --git a/cts/pengine/clone-anon-probe-1.dot b/cts/scheduler/clone-anon-probe-1.dot similarity index 100% rename from cts/pengine/clone-anon-probe-1.dot rename to cts/scheduler/clone-anon-probe-1.dot diff --git a/cts/pengine/clone-anon-probe-1.exp b/cts/scheduler/clone-anon-probe-1.exp similarity index 100% rename from cts/pengine/clone-anon-probe-1.exp rename to cts/scheduler/clone-anon-probe-1.exp diff --git a/cts/pengine/clone-anon-probe-1.scores b/cts/scheduler/clone-anon-probe-1.scores similarity index 100% rename from cts/pengine/clone-anon-probe-1.scores rename to cts/scheduler/clone-anon-probe-1.scores diff --git a/cts/pengine/clone-anon-probe-1.summary b/cts/scheduler/clone-anon-probe-1.summary similarity index 100% rename from cts/pengine/clone-anon-probe-1.summary rename to cts/scheduler/clone-anon-probe-1.summary diff --git a/cts/pengine/clone-anon-probe-1.xml b/cts/scheduler/clone-anon-probe-1.xml similarity index 100% rename from cts/pengine/clone-anon-probe-1.xml rename to cts/scheduler/clone-anon-probe-1.xml diff --git a/cts/pengine/clone-anon-probe-2.dot b/cts/scheduler/clone-anon-probe-2.dot similarity index 100% rename from cts/pengine/clone-anon-probe-2.dot rename to cts/scheduler/clone-anon-probe-2.dot diff --git a/cts/pengine/clone-anon-probe-2.exp b/cts/scheduler/clone-anon-probe-2.exp similarity index 100% rename from cts/pengine/clone-anon-probe-2.exp rename to cts/scheduler/clone-anon-probe-2.exp diff --git a/cts/pengine/clone-anon-probe-2.scores b/cts/scheduler/clone-anon-probe-2.scores similarity index 100% rename from cts/pengine/clone-anon-probe-2.scores rename to cts/scheduler/clone-anon-probe-2.scores diff --git a/cts/pengine/clone-anon-probe-2.summary b/cts/scheduler/clone-anon-probe-2.summary similarity index 100% rename from cts/pengine/clone-anon-probe-2.summary rename to cts/scheduler/clone-anon-probe-2.summary diff --git a/cts/pengine/clone-anon-probe-2.xml b/cts/scheduler/clone-anon-probe-2.xml similarity index 100% rename from cts/pengine/clone-anon-probe-2.xml rename to cts/scheduler/clone-anon-probe-2.xml diff --git a/cts/pengine/clone-colocate-instance-1.dot b/cts/scheduler/clone-colocate-instance-1.dot similarity index 100% rename from cts/pengine/clone-colocate-instance-1.dot rename to cts/scheduler/clone-colocate-instance-1.dot diff --git a/cts/pengine/clone-colocate-instance-1.exp b/cts/scheduler/clone-colocate-instance-1.exp similarity index 100% rename from cts/pengine/clone-colocate-instance-1.exp rename to cts/scheduler/clone-colocate-instance-1.exp diff --git a/cts/pengine/clone-colocate-instance-1.scores b/cts/scheduler/clone-colocate-instance-1.scores similarity index 100% rename from cts/pengine/clone-colocate-instance-1.scores rename to cts/scheduler/clone-colocate-instance-1.scores diff --git a/cts/pengine/clone-colocate-instance-1.summary b/cts/scheduler/clone-colocate-instance-1.summary similarity index 100% rename from cts/pengine/clone-colocate-instance-1.summary rename to cts/scheduler/clone-colocate-instance-1.summary diff --git a/cts/pengine/clone-colocate-instance-1.xml b/cts/scheduler/clone-colocate-instance-1.xml similarity index 100% rename from cts/pengine/clone-colocate-instance-1.xml rename to cts/scheduler/clone-colocate-instance-1.xml diff --git a/cts/pengine/clone-colocate-instance-2.dot b/cts/scheduler/clone-colocate-instance-2.dot similarity index 100% rename from cts/pengine/clone-colocate-instance-2.dot rename to cts/scheduler/clone-colocate-instance-2.dot diff --git a/cts/pengine/clone-colocate-instance-2.exp b/cts/scheduler/clone-colocate-instance-2.exp similarity index 100% rename from cts/pengine/clone-colocate-instance-2.exp rename to cts/scheduler/clone-colocate-instance-2.exp diff --git a/cts/pengine/clone-colocate-instance-2.scores b/cts/scheduler/clone-colocate-instance-2.scores similarity index 100% rename from cts/pengine/clone-colocate-instance-2.scores rename to cts/scheduler/clone-colocate-instance-2.scores diff --git a/cts/pengine/clone-colocate-instance-2.summary b/cts/scheduler/clone-colocate-instance-2.summary similarity index 100% rename from cts/pengine/clone-colocate-instance-2.summary rename to cts/scheduler/clone-colocate-instance-2.summary diff --git a/cts/pengine/clone-colocate-instance-2.xml b/cts/scheduler/clone-colocate-instance-2.xml similarity index 100% rename from cts/pengine/clone-colocate-instance-2.xml rename to cts/scheduler/clone-colocate-instance-2.xml diff --git a/cts/pengine/clone-fail-block-colocation.dot b/cts/scheduler/clone-fail-block-colocation.dot similarity index 100% rename from cts/pengine/clone-fail-block-colocation.dot rename to cts/scheduler/clone-fail-block-colocation.dot diff --git a/cts/pengine/clone-fail-block-colocation.exp b/cts/scheduler/clone-fail-block-colocation.exp similarity index 100% rename from cts/pengine/clone-fail-block-colocation.exp rename to cts/scheduler/clone-fail-block-colocation.exp diff --git a/cts/pengine/clone-fail-block-colocation.scores b/cts/scheduler/clone-fail-block-colocation.scores similarity index 100% rename from cts/pengine/clone-fail-block-colocation.scores rename to cts/scheduler/clone-fail-block-colocation.scores diff --git a/cts/pengine/clone-fail-block-colocation.summary b/cts/scheduler/clone-fail-block-colocation.summary similarity index 100% rename from cts/pengine/clone-fail-block-colocation.summary rename to cts/scheduler/clone-fail-block-colocation.summary diff --git a/cts/pengine/clone-fail-block-colocation.xml b/cts/scheduler/clone-fail-block-colocation.xml similarity index 100% rename from cts/pengine/clone-fail-block-colocation.xml rename to cts/scheduler/clone-fail-block-colocation.xml diff --git a/cts/pengine/clone-interleave-1.dot b/cts/scheduler/clone-interleave-1.dot similarity index 100% rename from cts/pengine/clone-interleave-1.dot rename to cts/scheduler/clone-interleave-1.dot diff --git a/cts/pengine/clone-interleave-1.exp b/cts/scheduler/clone-interleave-1.exp similarity index 100% rename from cts/pengine/clone-interleave-1.exp rename to cts/scheduler/clone-interleave-1.exp diff --git a/cts/pengine/clone-interleave-1.scores b/cts/scheduler/clone-interleave-1.scores similarity index 100% rename from cts/pengine/clone-interleave-1.scores rename to cts/scheduler/clone-interleave-1.scores diff --git a/cts/pengine/clone-interleave-1.summary b/cts/scheduler/clone-interleave-1.summary similarity index 100% rename from cts/pengine/clone-interleave-1.summary rename to cts/scheduler/clone-interleave-1.summary diff --git a/cts/pengine/clone-interleave-1.xml b/cts/scheduler/clone-interleave-1.xml similarity index 100% rename from cts/pengine/clone-interleave-1.xml rename to cts/scheduler/clone-interleave-1.xml diff --git a/cts/pengine/clone-interleave-2.dot b/cts/scheduler/clone-interleave-2.dot similarity index 100% rename from cts/pengine/clone-interleave-2.dot rename to cts/scheduler/clone-interleave-2.dot diff --git a/cts/pengine/clone-interleave-2.exp b/cts/scheduler/clone-interleave-2.exp similarity index 100% rename from cts/pengine/clone-interleave-2.exp rename to cts/scheduler/clone-interleave-2.exp diff --git a/cts/pengine/clone-interleave-2.scores b/cts/scheduler/clone-interleave-2.scores similarity index 100% rename from cts/pengine/clone-interleave-2.scores rename to cts/scheduler/clone-interleave-2.scores diff --git a/cts/pengine/clone-interleave-2.summary b/cts/scheduler/clone-interleave-2.summary similarity index 100% rename from cts/pengine/clone-interleave-2.summary rename to cts/scheduler/clone-interleave-2.summary diff --git a/cts/pengine/clone-interleave-2.xml b/cts/scheduler/clone-interleave-2.xml similarity index 100% rename from cts/pengine/clone-interleave-2.xml rename to cts/scheduler/clone-interleave-2.xml diff --git a/cts/pengine/clone-interleave-3.dot b/cts/scheduler/clone-interleave-3.dot similarity index 100% rename from cts/pengine/clone-interleave-3.dot rename to cts/scheduler/clone-interleave-3.dot diff --git a/cts/pengine/clone-interleave-3.exp b/cts/scheduler/clone-interleave-3.exp similarity index 100% rename from cts/pengine/clone-interleave-3.exp rename to cts/scheduler/clone-interleave-3.exp diff --git a/cts/pengine/clone-interleave-3.scores b/cts/scheduler/clone-interleave-3.scores similarity index 100% rename from cts/pengine/clone-interleave-3.scores rename to cts/scheduler/clone-interleave-3.scores diff --git a/cts/pengine/clone-interleave-3.summary b/cts/scheduler/clone-interleave-3.summary similarity index 100% rename from cts/pengine/clone-interleave-3.summary rename to cts/scheduler/clone-interleave-3.summary diff --git a/cts/pengine/clone-interleave-3.xml b/cts/scheduler/clone-interleave-3.xml similarity index 100% rename from cts/pengine/clone-interleave-3.xml rename to cts/scheduler/clone-interleave-3.xml diff --git a/cts/pengine/clone-max-zero.dot b/cts/scheduler/clone-max-zero.dot similarity index 100% rename from cts/pengine/clone-max-zero.dot rename to cts/scheduler/clone-max-zero.dot diff --git a/cts/pengine/clone-max-zero.exp b/cts/scheduler/clone-max-zero.exp similarity index 100% rename from cts/pengine/clone-max-zero.exp rename to cts/scheduler/clone-max-zero.exp diff --git a/cts/pengine/clone-max-zero.scores b/cts/scheduler/clone-max-zero.scores similarity index 100% rename from cts/pengine/clone-max-zero.scores rename to cts/scheduler/clone-max-zero.scores diff --git a/cts/pengine/clone-max-zero.summary b/cts/scheduler/clone-max-zero.summary similarity index 100% rename from cts/pengine/clone-max-zero.summary rename to cts/scheduler/clone-max-zero.summary diff --git a/cts/pengine/clone-max-zero.xml b/cts/scheduler/clone-max-zero.xml similarity index 100% rename from cts/pengine/clone-max-zero.xml rename to cts/scheduler/clone-max-zero.xml diff --git a/cts/pengine/clone-no-shuffle.dot b/cts/scheduler/clone-no-shuffle.dot similarity index 100% rename from cts/pengine/clone-no-shuffle.dot rename to cts/scheduler/clone-no-shuffle.dot diff --git a/cts/pengine/clone-no-shuffle.exp b/cts/scheduler/clone-no-shuffle.exp similarity index 100% rename from cts/pengine/clone-no-shuffle.exp rename to cts/scheduler/clone-no-shuffle.exp diff --git a/cts/pengine/clone-no-shuffle.scores b/cts/scheduler/clone-no-shuffle.scores similarity index 100% rename from cts/pengine/clone-no-shuffle.scores rename to cts/scheduler/clone-no-shuffle.scores diff --git a/cts/pengine/clone-no-shuffle.summary b/cts/scheduler/clone-no-shuffle.summary similarity index 100% rename from cts/pengine/clone-no-shuffle.summary rename to cts/scheduler/clone-no-shuffle.summary diff --git a/cts/pengine/clone-no-shuffle.xml b/cts/scheduler/clone-no-shuffle.xml similarity index 100% rename from cts/pengine/clone-no-shuffle.xml rename to cts/scheduler/clone-no-shuffle.xml diff --git a/cts/pengine/clone-order-16instances.dot b/cts/scheduler/clone-order-16instances.dot similarity index 100% rename from cts/pengine/clone-order-16instances.dot rename to cts/scheduler/clone-order-16instances.dot diff --git a/cts/pengine/clone-order-16instances.exp b/cts/scheduler/clone-order-16instances.exp similarity index 100% rename from cts/pengine/clone-order-16instances.exp rename to cts/scheduler/clone-order-16instances.exp diff --git a/cts/pengine/clone-order-16instances.scores b/cts/scheduler/clone-order-16instances.scores similarity index 100% rename from cts/pengine/clone-order-16instances.scores rename to cts/scheduler/clone-order-16instances.scores diff --git a/cts/pengine/clone-order-16instances.summary b/cts/scheduler/clone-order-16instances.summary similarity index 100% rename from cts/pengine/clone-order-16instances.summary rename to cts/scheduler/clone-order-16instances.summary diff --git a/cts/pengine/clone-order-16instances.xml b/cts/scheduler/clone-order-16instances.xml similarity index 100% rename from cts/pengine/clone-order-16instances.xml rename to cts/scheduler/clone-order-16instances.xml diff --git a/cts/pengine/clone-order-instance.dot b/cts/scheduler/clone-order-instance.dot similarity index 100% rename from cts/pengine/clone-order-instance.dot rename to cts/scheduler/clone-order-instance.dot diff --git a/cts/pengine/clone-order-instance.exp b/cts/scheduler/clone-order-instance.exp similarity index 100% rename from cts/pengine/clone-order-instance.exp rename to cts/scheduler/clone-order-instance.exp diff --git a/cts/pengine/clone-order-instance.scores b/cts/scheduler/clone-order-instance.scores similarity index 100% rename from cts/pengine/clone-order-instance.scores rename to cts/scheduler/clone-order-instance.scores diff --git a/cts/pengine/clone-order-instance.summary b/cts/scheduler/clone-order-instance.summary similarity index 100% rename from cts/pengine/clone-order-instance.summary rename to cts/scheduler/clone-order-instance.summary diff --git a/cts/pengine/clone-order-instance.xml b/cts/scheduler/clone-order-instance.xml similarity index 100% rename from cts/pengine/clone-order-instance.xml rename to cts/scheduler/clone-order-instance.xml diff --git a/cts/pengine/clone-order-primitive.dot b/cts/scheduler/clone-order-primitive.dot similarity index 100% rename from cts/pengine/clone-order-primitive.dot rename to cts/scheduler/clone-order-primitive.dot diff --git a/cts/pengine/clone-order-primitive.exp b/cts/scheduler/clone-order-primitive.exp similarity index 100% rename from cts/pengine/clone-order-primitive.exp rename to cts/scheduler/clone-order-primitive.exp diff --git a/cts/pengine/clone-order-primitive.scores b/cts/scheduler/clone-order-primitive.scores similarity index 100% rename from cts/pengine/clone-order-primitive.scores rename to cts/scheduler/clone-order-primitive.scores diff --git a/cts/pengine/clone-order-primitive.summary b/cts/scheduler/clone-order-primitive.summary similarity index 100% rename from cts/pengine/clone-order-primitive.summary rename to cts/scheduler/clone-order-primitive.summary diff --git a/cts/pengine/clone-order-primitive.xml b/cts/scheduler/clone-order-primitive.xml similarity index 100% rename from cts/pengine/clone-order-primitive.xml rename to cts/scheduler/clone-order-primitive.xml diff --git a/cts/pengine/clone-require-all-1.dot b/cts/scheduler/clone-require-all-1.dot similarity index 100% rename from cts/pengine/clone-require-all-1.dot rename to cts/scheduler/clone-require-all-1.dot diff --git a/cts/pengine/clone-require-all-1.exp b/cts/scheduler/clone-require-all-1.exp similarity index 100% rename from cts/pengine/clone-require-all-1.exp rename to cts/scheduler/clone-require-all-1.exp diff --git a/cts/pengine/clone-require-all-1.scores b/cts/scheduler/clone-require-all-1.scores similarity index 100% rename from cts/pengine/clone-require-all-1.scores rename to cts/scheduler/clone-require-all-1.scores diff --git a/cts/pengine/clone-require-all-1.summary b/cts/scheduler/clone-require-all-1.summary similarity index 100% rename from cts/pengine/clone-require-all-1.summary rename to cts/scheduler/clone-require-all-1.summary diff --git a/cts/pengine/clone-require-all-1.xml b/cts/scheduler/clone-require-all-1.xml similarity index 100% rename from cts/pengine/clone-require-all-1.xml rename to cts/scheduler/clone-require-all-1.xml diff --git a/cts/pengine/clone-require-all-2.dot b/cts/scheduler/clone-require-all-2.dot similarity index 100% rename from cts/pengine/clone-require-all-2.dot rename to cts/scheduler/clone-require-all-2.dot diff --git a/cts/pengine/clone-require-all-2.exp b/cts/scheduler/clone-require-all-2.exp similarity index 100% rename from cts/pengine/clone-require-all-2.exp rename to cts/scheduler/clone-require-all-2.exp diff --git a/cts/pengine/clone-require-all-2.scores b/cts/scheduler/clone-require-all-2.scores similarity index 100% rename from cts/pengine/clone-require-all-2.scores rename to cts/scheduler/clone-require-all-2.scores diff --git a/cts/pengine/clone-require-all-2.summary b/cts/scheduler/clone-require-all-2.summary similarity index 100% rename from cts/pengine/clone-require-all-2.summary rename to cts/scheduler/clone-require-all-2.summary diff --git a/cts/pengine/clone-require-all-2.xml b/cts/scheduler/clone-require-all-2.xml similarity index 100% rename from cts/pengine/clone-require-all-2.xml rename to cts/scheduler/clone-require-all-2.xml diff --git a/cts/pengine/clone-require-all-3.dot b/cts/scheduler/clone-require-all-3.dot similarity index 100% rename from cts/pengine/clone-require-all-3.dot rename to cts/scheduler/clone-require-all-3.dot diff --git a/cts/pengine/clone-require-all-3.exp b/cts/scheduler/clone-require-all-3.exp similarity index 100% rename from cts/pengine/clone-require-all-3.exp rename to cts/scheduler/clone-require-all-3.exp diff --git a/cts/pengine/clone-require-all-3.scores b/cts/scheduler/clone-require-all-3.scores similarity index 100% rename from cts/pengine/clone-require-all-3.scores rename to cts/scheduler/clone-require-all-3.scores diff --git a/cts/pengine/clone-require-all-3.summary b/cts/scheduler/clone-require-all-3.summary similarity index 100% rename from cts/pengine/clone-require-all-3.summary rename to cts/scheduler/clone-require-all-3.summary diff --git a/cts/pengine/clone-require-all-3.xml b/cts/scheduler/clone-require-all-3.xml similarity index 100% rename from cts/pengine/clone-require-all-3.xml rename to cts/scheduler/clone-require-all-3.xml diff --git a/cts/pengine/clone-require-all-4.dot b/cts/scheduler/clone-require-all-4.dot similarity index 100% rename from cts/pengine/clone-require-all-4.dot rename to cts/scheduler/clone-require-all-4.dot diff --git a/cts/pengine/clone-require-all-4.exp b/cts/scheduler/clone-require-all-4.exp similarity index 100% rename from cts/pengine/clone-require-all-4.exp rename to cts/scheduler/clone-require-all-4.exp diff --git a/cts/pengine/clone-require-all-4.scores b/cts/scheduler/clone-require-all-4.scores similarity index 100% rename from cts/pengine/clone-require-all-4.scores rename to cts/scheduler/clone-require-all-4.scores diff --git a/cts/pengine/clone-require-all-4.summary b/cts/scheduler/clone-require-all-4.summary similarity index 100% rename from cts/pengine/clone-require-all-4.summary rename to cts/scheduler/clone-require-all-4.summary diff --git a/cts/pengine/clone-require-all-4.xml b/cts/scheduler/clone-require-all-4.xml similarity index 100% rename from cts/pengine/clone-require-all-4.xml rename to cts/scheduler/clone-require-all-4.xml diff --git a/cts/pengine/clone-require-all-5.dot b/cts/scheduler/clone-require-all-5.dot similarity index 100% rename from cts/pengine/clone-require-all-5.dot rename to cts/scheduler/clone-require-all-5.dot diff --git a/cts/pengine/clone-require-all-5.exp b/cts/scheduler/clone-require-all-5.exp similarity index 100% rename from cts/pengine/clone-require-all-5.exp rename to cts/scheduler/clone-require-all-5.exp diff --git a/cts/pengine/clone-require-all-5.scores b/cts/scheduler/clone-require-all-5.scores similarity index 100% rename from cts/pengine/clone-require-all-5.scores rename to cts/scheduler/clone-require-all-5.scores diff --git a/cts/pengine/clone-require-all-5.summary b/cts/scheduler/clone-require-all-5.summary similarity index 100% rename from cts/pengine/clone-require-all-5.summary rename to cts/scheduler/clone-require-all-5.summary diff --git a/cts/pengine/clone-require-all-5.xml b/cts/scheduler/clone-require-all-5.xml similarity index 100% rename from cts/pengine/clone-require-all-5.xml rename to cts/scheduler/clone-require-all-5.xml diff --git a/cts/pengine/clone-require-all-6.dot b/cts/scheduler/clone-require-all-6.dot similarity index 100% rename from cts/pengine/clone-require-all-6.dot rename to cts/scheduler/clone-require-all-6.dot diff --git a/cts/pengine/clone-require-all-6.exp b/cts/scheduler/clone-require-all-6.exp similarity index 100% rename from cts/pengine/clone-require-all-6.exp rename to cts/scheduler/clone-require-all-6.exp diff --git a/cts/pengine/clone-require-all-6.scores b/cts/scheduler/clone-require-all-6.scores similarity index 100% rename from cts/pengine/clone-require-all-6.scores rename to cts/scheduler/clone-require-all-6.scores diff --git a/cts/pengine/clone-require-all-6.summary b/cts/scheduler/clone-require-all-6.summary similarity index 100% rename from cts/pengine/clone-require-all-6.summary rename to cts/scheduler/clone-require-all-6.summary diff --git a/cts/pengine/clone-require-all-6.xml b/cts/scheduler/clone-require-all-6.xml similarity index 100% rename from cts/pengine/clone-require-all-6.xml rename to cts/scheduler/clone-require-all-6.xml diff --git a/cts/pengine/clone-require-all-7.dot b/cts/scheduler/clone-require-all-7.dot similarity index 100% rename from cts/pengine/clone-require-all-7.dot rename to cts/scheduler/clone-require-all-7.dot diff --git a/cts/pengine/clone-require-all-7.exp b/cts/scheduler/clone-require-all-7.exp similarity index 100% rename from cts/pengine/clone-require-all-7.exp rename to cts/scheduler/clone-require-all-7.exp diff --git a/cts/pengine/clone-require-all-7.scores b/cts/scheduler/clone-require-all-7.scores similarity index 100% rename from cts/pengine/clone-require-all-7.scores rename to cts/scheduler/clone-require-all-7.scores diff --git a/cts/pengine/clone-require-all-7.summary b/cts/scheduler/clone-require-all-7.summary similarity index 100% rename from cts/pengine/clone-require-all-7.summary rename to cts/scheduler/clone-require-all-7.summary diff --git a/cts/pengine/clone-require-all-7.xml b/cts/scheduler/clone-require-all-7.xml similarity index 100% rename from cts/pengine/clone-require-all-7.xml rename to cts/scheduler/clone-require-all-7.xml diff --git a/cts/pengine/clone-require-all-no-interleave-1.dot b/cts/scheduler/clone-require-all-no-interleave-1.dot similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-1.dot rename to cts/scheduler/clone-require-all-no-interleave-1.dot diff --git a/cts/pengine/clone-require-all-no-interleave-1.exp b/cts/scheduler/clone-require-all-no-interleave-1.exp similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-1.exp rename to cts/scheduler/clone-require-all-no-interleave-1.exp diff --git a/cts/pengine/clone-require-all-no-interleave-1.scores b/cts/scheduler/clone-require-all-no-interleave-1.scores similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-1.scores rename to cts/scheduler/clone-require-all-no-interleave-1.scores diff --git a/cts/pengine/clone-require-all-no-interleave-1.summary b/cts/scheduler/clone-require-all-no-interleave-1.summary similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-1.summary rename to cts/scheduler/clone-require-all-no-interleave-1.summary diff --git a/cts/pengine/clone-require-all-no-interleave-1.xml b/cts/scheduler/clone-require-all-no-interleave-1.xml similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-1.xml rename to cts/scheduler/clone-require-all-no-interleave-1.xml diff --git a/cts/pengine/clone-require-all-no-interleave-2.dot b/cts/scheduler/clone-require-all-no-interleave-2.dot similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-2.dot rename to cts/scheduler/clone-require-all-no-interleave-2.dot diff --git a/cts/pengine/clone-require-all-no-interleave-2.exp b/cts/scheduler/clone-require-all-no-interleave-2.exp similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-2.exp rename to cts/scheduler/clone-require-all-no-interleave-2.exp diff --git a/cts/pengine/clone-require-all-no-interleave-2.scores b/cts/scheduler/clone-require-all-no-interleave-2.scores similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-2.scores rename to cts/scheduler/clone-require-all-no-interleave-2.scores diff --git a/cts/pengine/clone-require-all-no-interleave-2.summary b/cts/scheduler/clone-require-all-no-interleave-2.summary similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-2.summary rename to cts/scheduler/clone-require-all-no-interleave-2.summary diff --git a/cts/pengine/clone-require-all-no-interleave-2.xml b/cts/scheduler/clone-require-all-no-interleave-2.xml similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-2.xml rename to cts/scheduler/clone-require-all-no-interleave-2.xml diff --git a/cts/pengine/clone-require-all-no-interleave-3.dot b/cts/scheduler/clone-require-all-no-interleave-3.dot similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-3.dot rename to cts/scheduler/clone-require-all-no-interleave-3.dot diff --git a/cts/pengine/clone-require-all-no-interleave-3.exp b/cts/scheduler/clone-require-all-no-interleave-3.exp similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-3.exp rename to cts/scheduler/clone-require-all-no-interleave-3.exp diff --git a/cts/pengine/clone-require-all-no-interleave-3.scores b/cts/scheduler/clone-require-all-no-interleave-3.scores similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-3.scores rename to cts/scheduler/clone-require-all-no-interleave-3.scores diff --git a/cts/pengine/clone-require-all-no-interleave-3.summary b/cts/scheduler/clone-require-all-no-interleave-3.summary similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-3.summary rename to cts/scheduler/clone-require-all-no-interleave-3.summary diff --git a/cts/pengine/clone-require-all-no-interleave-3.xml b/cts/scheduler/clone-require-all-no-interleave-3.xml similarity index 100% rename from cts/pengine/clone-require-all-no-interleave-3.xml rename to cts/scheduler/clone-require-all-no-interleave-3.xml diff --git a/cts/pengine/clone_min_interleave_start_one.dot b/cts/scheduler/clone_min_interleave_start_one.dot similarity index 100% rename from cts/pengine/clone_min_interleave_start_one.dot rename to cts/scheduler/clone_min_interleave_start_one.dot diff --git a/cts/pengine/clone_min_interleave_start_one.exp b/cts/scheduler/clone_min_interleave_start_one.exp similarity index 100% rename from cts/pengine/clone_min_interleave_start_one.exp rename to cts/scheduler/clone_min_interleave_start_one.exp diff --git a/cts/pengine/clone_min_interleave_start_one.scores b/cts/scheduler/clone_min_interleave_start_one.scores similarity index 100% rename from cts/pengine/clone_min_interleave_start_one.scores rename to cts/scheduler/clone_min_interleave_start_one.scores diff --git a/cts/pengine/clone_min_interleave_start_one.summary b/cts/scheduler/clone_min_interleave_start_one.summary similarity index 100% rename from cts/pengine/clone_min_interleave_start_one.summary rename to cts/scheduler/clone_min_interleave_start_one.summary diff --git a/cts/pengine/clone_min_interleave_start_one.xml b/cts/scheduler/clone_min_interleave_start_one.xml similarity index 100% rename from cts/pengine/clone_min_interleave_start_one.xml rename to cts/scheduler/clone_min_interleave_start_one.xml diff --git a/cts/pengine/clone_min_interleave_start_two.dot b/cts/scheduler/clone_min_interleave_start_two.dot similarity index 100% rename from cts/pengine/clone_min_interleave_start_two.dot rename to cts/scheduler/clone_min_interleave_start_two.dot diff --git a/cts/pengine/clone_min_interleave_start_two.exp b/cts/scheduler/clone_min_interleave_start_two.exp similarity index 100% rename from cts/pengine/clone_min_interleave_start_two.exp rename to cts/scheduler/clone_min_interleave_start_two.exp diff --git a/cts/pengine/clone_min_interleave_start_two.scores b/cts/scheduler/clone_min_interleave_start_two.scores similarity index 100% rename from cts/pengine/clone_min_interleave_start_two.scores rename to cts/scheduler/clone_min_interleave_start_two.scores diff --git a/cts/pengine/clone_min_interleave_start_two.summary b/cts/scheduler/clone_min_interleave_start_two.summary similarity index 100% rename from cts/pengine/clone_min_interleave_start_two.summary rename to cts/scheduler/clone_min_interleave_start_two.summary diff --git a/cts/pengine/clone_min_interleave_start_two.xml b/cts/scheduler/clone_min_interleave_start_two.xml similarity index 100% rename from cts/pengine/clone_min_interleave_start_two.xml rename to cts/scheduler/clone_min_interleave_start_two.xml diff --git a/cts/pengine/clone_min_interleave_stop_one.dot b/cts/scheduler/clone_min_interleave_stop_one.dot similarity index 100% rename from cts/pengine/clone_min_interleave_stop_one.dot rename to cts/scheduler/clone_min_interleave_stop_one.dot diff --git a/cts/pengine/clone_min_interleave_stop_one.exp b/cts/scheduler/clone_min_interleave_stop_one.exp similarity index 100% rename from cts/pengine/clone_min_interleave_stop_one.exp rename to cts/scheduler/clone_min_interleave_stop_one.exp diff --git a/cts/pengine/clone_min_interleave_stop_one.scores b/cts/scheduler/clone_min_interleave_stop_one.scores similarity index 100% rename from cts/pengine/clone_min_interleave_stop_one.scores rename to cts/scheduler/clone_min_interleave_stop_one.scores diff --git a/cts/pengine/clone_min_interleave_stop_one.summary b/cts/scheduler/clone_min_interleave_stop_one.summary similarity index 100% rename from cts/pengine/clone_min_interleave_stop_one.summary rename to cts/scheduler/clone_min_interleave_stop_one.summary diff --git a/cts/pengine/clone_min_interleave_stop_one.xml b/cts/scheduler/clone_min_interleave_stop_one.xml similarity index 100% rename from cts/pengine/clone_min_interleave_stop_one.xml rename to cts/scheduler/clone_min_interleave_stop_one.xml diff --git a/cts/pengine/clone_min_interleave_stop_two.dot b/cts/scheduler/clone_min_interleave_stop_two.dot similarity index 100% rename from cts/pengine/clone_min_interleave_stop_two.dot rename to cts/scheduler/clone_min_interleave_stop_two.dot diff --git a/cts/pengine/clone_min_interleave_stop_two.exp b/cts/scheduler/clone_min_interleave_stop_two.exp similarity index 100% rename from cts/pengine/clone_min_interleave_stop_two.exp rename to cts/scheduler/clone_min_interleave_stop_two.exp diff --git a/cts/pengine/clone_min_interleave_stop_two.scores b/cts/scheduler/clone_min_interleave_stop_two.scores similarity index 100% rename from cts/pengine/clone_min_interleave_stop_two.scores rename to cts/scheduler/clone_min_interleave_stop_two.scores diff --git a/cts/pengine/clone_min_interleave_stop_two.summary b/cts/scheduler/clone_min_interleave_stop_two.summary similarity index 100% rename from cts/pengine/clone_min_interleave_stop_two.summary rename to cts/scheduler/clone_min_interleave_stop_two.summary diff --git a/cts/pengine/clone_min_interleave_stop_two.xml b/cts/scheduler/clone_min_interleave_stop_two.xml similarity index 100% rename from cts/pengine/clone_min_interleave_stop_two.xml rename to cts/scheduler/clone_min_interleave_stop_two.xml diff --git a/cts/pengine/clone_min_start_one.dot b/cts/scheduler/clone_min_start_one.dot similarity index 100% rename from cts/pengine/clone_min_start_one.dot rename to cts/scheduler/clone_min_start_one.dot diff --git a/cts/pengine/clone_min_start_one.exp b/cts/scheduler/clone_min_start_one.exp similarity index 100% rename from cts/pengine/clone_min_start_one.exp rename to cts/scheduler/clone_min_start_one.exp diff --git a/cts/pengine/clone_min_start_one.scores b/cts/scheduler/clone_min_start_one.scores similarity index 100% rename from cts/pengine/clone_min_start_one.scores rename to cts/scheduler/clone_min_start_one.scores diff --git a/cts/pengine/clone_min_start_one.summary b/cts/scheduler/clone_min_start_one.summary similarity index 100% rename from cts/pengine/clone_min_start_one.summary rename to cts/scheduler/clone_min_start_one.summary diff --git a/cts/pengine/clone_min_start_one.xml b/cts/scheduler/clone_min_start_one.xml similarity index 100% rename from cts/pengine/clone_min_start_one.xml rename to cts/scheduler/clone_min_start_one.xml diff --git a/cts/pengine/clone_min_start_two.dot b/cts/scheduler/clone_min_start_two.dot similarity index 100% rename from cts/pengine/clone_min_start_two.dot rename to cts/scheduler/clone_min_start_two.dot diff --git a/cts/pengine/clone_min_start_two.exp b/cts/scheduler/clone_min_start_two.exp similarity index 100% rename from cts/pengine/clone_min_start_two.exp rename to cts/scheduler/clone_min_start_two.exp diff --git a/cts/pengine/clone_min_start_two.scores b/cts/scheduler/clone_min_start_two.scores similarity index 100% rename from cts/pengine/clone_min_start_two.scores rename to cts/scheduler/clone_min_start_two.scores diff --git a/cts/pengine/clone_min_start_two.summary b/cts/scheduler/clone_min_start_two.summary similarity index 100% rename from cts/pengine/clone_min_start_two.summary rename to cts/scheduler/clone_min_start_two.summary diff --git a/cts/pengine/clone_min_start_two.xml b/cts/scheduler/clone_min_start_two.xml similarity index 100% rename from cts/pengine/clone_min_start_two.xml rename to cts/scheduler/clone_min_start_two.xml diff --git a/cts/pengine/clone_min_stop_all.dot b/cts/scheduler/clone_min_stop_all.dot similarity index 100% rename from cts/pengine/clone_min_stop_all.dot rename to cts/scheduler/clone_min_stop_all.dot diff --git a/cts/pengine/clone_min_stop_all.exp b/cts/scheduler/clone_min_stop_all.exp similarity index 100% rename from cts/pengine/clone_min_stop_all.exp rename to cts/scheduler/clone_min_stop_all.exp diff --git a/cts/pengine/clone_min_stop_all.scores b/cts/scheduler/clone_min_stop_all.scores similarity index 100% rename from cts/pengine/clone_min_stop_all.scores rename to cts/scheduler/clone_min_stop_all.scores diff --git a/cts/pengine/clone_min_stop_all.summary b/cts/scheduler/clone_min_stop_all.summary similarity index 100% rename from cts/pengine/clone_min_stop_all.summary rename to cts/scheduler/clone_min_stop_all.summary diff --git a/cts/pengine/clone_min_stop_all.xml b/cts/scheduler/clone_min_stop_all.xml similarity index 100% rename from cts/pengine/clone_min_stop_all.xml rename to cts/scheduler/clone_min_stop_all.xml diff --git a/cts/pengine/clone_min_stop_one.dot b/cts/scheduler/clone_min_stop_one.dot similarity index 100% rename from cts/pengine/clone_min_stop_one.dot rename to cts/scheduler/clone_min_stop_one.dot diff --git a/cts/pengine/clone_min_stop_one.exp b/cts/scheduler/clone_min_stop_one.exp similarity index 100% rename from cts/pengine/clone_min_stop_one.exp rename to cts/scheduler/clone_min_stop_one.exp diff --git a/cts/pengine/clone_min_stop_one.scores b/cts/scheduler/clone_min_stop_one.scores similarity index 100% rename from cts/pengine/clone_min_stop_one.scores rename to cts/scheduler/clone_min_stop_one.scores diff --git a/cts/pengine/clone_min_stop_one.summary b/cts/scheduler/clone_min_stop_one.summary similarity index 100% rename from cts/pengine/clone_min_stop_one.summary rename to cts/scheduler/clone_min_stop_one.summary diff --git a/cts/pengine/clone_min_stop_one.xml b/cts/scheduler/clone_min_stop_one.xml similarity index 100% rename from cts/pengine/clone_min_stop_one.xml rename to cts/scheduler/clone_min_stop_one.xml diff --git a/cts/pengine/clone_min_stop_two.dot b/cts/scheduler/clone_min_stop_two.dot similarity index 100% rename from cts/pengine/clone_min_stop_two.dot rename to cts/scheduler/clone_min_stop_two.dot diff --git a/cts/pengine/clone_min_stop_two.exp b/cts/scheduler/clone_min_stop_two.exp similarity index 100% rename from cts/pengine/clone_min_stop_two.exp rename to cts/scheduler/clone_min_stop_two.exp diff --git a/cts/pengine/clone_min_stop_two.scores b/cts/scheduler/clone_min_stop_two.scores similarity index 100% rename from cts/pengine/clone_min_stop_two.scores rename to cts/scheduler/clone_min_stop_two.scores diff --git a/cts/pengine/clone_min_stop_two.summary b/cts/scheduler/clone_min_stop_two.summary similarity index 100% rename from cts/pengine/clone_min_stop_two.summary rename to cts/scheduler/clone_min_stop_two.summary diff --git a/cts/pengine/clone_min_stop_two.xml b/cts/scheduler/clone_min_stop_two.xml similarity index 100% rename from cts/pengine/clone_min_stop_two.xml rename to cts/scheduler/clone_min_stop_two.xml diff --git a/cts/pengine/cloned-group-stop.dot b/cts/scheduler/cloned-group-stop.dot similarity index 100% rename from cts/pengine/cloned-group-stop.dot rename to cts/scheduler/cloned-group-stop.dot diff --git a/cts/pengine/cloned-group-stop.exp b/cts/scheduler/cloned-group-stop.exp similarity index 100% rename from cts/pengine/cloned-group-stop.exp rename to cts/scheduler/cloned-group-stop.exp diff --git a/cts/pengine/cloned-group-stop.scores b/cts/scheduler/cloned-group-stop.scores similarity index 100% rename from cts/pengine/cloned-group-stop.scores rename to cts/scheduler/cloned-group-stop.scores diff --git a/cts/pengine/cloned-group-stop.summary b/cts/scheduler/cloned-group-stop.summary similarity index 100% rename from cts/pengine/cloned-group-stop.summary rename to cts/scheduler/cloned-group-stop.summary diff --git a/cts/pengine/cloned-group-stop.xml b/cts/scheduler/cloned-group-stop.xml similarity index 100% rename from cts/pengine/cloned-group-stop.xml rename to cts/scheduler/cloned-group-stop.xml diff --git a/cts/pengine/cloned-group.dot b/cts/scheduler/cloned-group.dot similarity index 100% rename from cts/pengine/cloned-group.dot rename to cts/scheduler/cloned-group.dot diff --git a/cts/pengine/cloned-group.exp b/cts/scheduler/cloned-group.exp similarity index 100% rename from cts/pengine/cloned-group.exp rename to cts/scheduler/cloned-group.exp diff --git a/cts/pengine/cloned-group.scores b/cts/scheduler/cloned-group.scores similarity index 100% rename from cts/pengine/cloned-group.scores rename to cts/scheduler/cloned-group.scores diff --git a/cts/pengine/cloned-group.summary b/cts/scheduler/cloned-group.summary similarity index 100% rename from cts/pengine/cloned-group.summary rename to cts/scheduler/cloned-group.summary diff --git a/cts/pengine/cloned-group.xml b/cts/scheduler/cloned-group.xml similarity index 100% rename from cts/pengine/cloned-group.xml rename to cts/scheduler/cloned-group.xml diff --git a/cts/pengine/cloned_start_one.dot b/cts/scheduler/cloned_start_one.dot similarity index 100% rename from cts/pengine/cloned_start_one.dot rename to cts/scheduler/cloned_start_one.dot diff --git a/cts/pengine/cloned_start_one.exp b/cts/scheduler/cloned_start_one.exp similarity index 100% rename from cts/pengine/cloned_start_one.exp rename to cts/scheduler/cloned_start_one.exp diff --git a/cts/pengine/cloned_start_one.scores b/cts/scheduler/cloned_start_one.scores similarity index 100% rename from cts/pengine/cloned_start_one.scores rename to cts/scheduler/cloned_start_one.scores diff --git a/cts/pengine/cloned_start_one.summary b/cts/scheduler/cloned_start_one.summary similarity index 100% rename from cts/pengine/cloned_start_one.summary rename to cts/scheduler/cloned_start_one.summary diff --git a/cts/pengine/cloned_start_one.xml b/cts/scheduler/cloned_start_one.xml similarity index 100% rename from cts/pengine/cloned_start_one.xml rename to cts/scheduler/cloned_start_one.xml diff --git a/cts/pengine/cloned_start_two.dot b/cts/scheduler/cloned_start_two.dot similarity index 100% rename from cts/pengine/cloned_start_two.dot rename to cts/scheduler/cloned_start_two.dot diff --git a/cts/pengine/cloned_start_two.exp b/cts/scheduler/cloned_start_two.exp similarity index 100% rename from cts/pengine/cloned_start_two.exp rename to cts/scheduler/cloned_start_two.exp diff --git a/cts/pengine/cloned_start_two.scores b/cts/scheduler/cloned_start_two.scores similarity index 100% rename from cts/pengine/cloned_start_two.scores rename to cts/scheduler/cloned_start_two.scores diff --git a/cts/pengine/cloned_start_two.summary b/cts/scheduler/cloned_start_two.summary similarity index 100% rename from cts/pengine/cloned_start_two.summary rename to cts/scheduler/cloned_start_two.summary diff --git a/cts/pengine/cloned_start_two.xml b/cts/scheduler/cloned_start_two.xml similarity index 100% rename from cts/pengine/cloned_start_two.xml rename to cts/scheduler/cloned_start_two.xml diff --git a/cts/pengine/cloned_stop_one.dot b/cts/scheduler/cloned_stop_one.dot similarity index 100% rename from cts/pengine/cloned_stop_one.dot rename to cts/scheduler/cloned_stop_one.dot diff --git a/cts/pengine/cloned_stop_one.exp b/cts/scheduler/cloned_stop_one.exp similarity index 100% rename from cts/pengine/cloned_stop_one.exp rename to cts/scheduler/cloned_stop_one.exp diff --git a/cts/pengine/cloned_stop_one.scores b/cts/scheduler/cloned_stop_one.scores similarity index 100% rename from cts/pengine/cloned_stop_one.scores rename to cts/scheduler/cloned_stop_one.scores diff --git a/cts/pengine/cloned_stop_one.summary b/cts/scheduler/cloned_stop_one.summary similarity index 100% rename from cts/pengine/cloned_stop_one.summary rename to cts/scheduler/cloned_stop_one.summary diff --git a/cts/pengine/cloned_stop_one.xml b/cts/scheduler/cloned_stop_one.xml similarity index 100% rename from cts/pengine/cloned_stop_one.xml rename to cts/scheduler/cloned_stop_one.xml diff --git a/cts/pengine/cloned_stop_two.dot b/cts/scheduler/cloned_stop_two.dot similarity index 100% rename from cts/pengine/cloned_stop_two.dot rename to cts/scheduler/cloned_stop_two.dot diff --git a/cts/pengine/cloned_stop_two.exp b/cts/scheduler/cloned_stop_two.exp similarity index 100% rename from cts/pengine/cloned_stop_two.exp rename to cts/scheduler/cloned_stop_two.exp diff --git a/cts/pengine/cloned_stop_two.scores b/cts/scheduler/cloned_stop_two.scores similarity index 100% rename from cts/pengine/cloned_stop_two.scores rename to cts/scheduler/cloned_stop_two.scores diff --git a/cts/pengine/cloned_stop_two.summary b/cts/scheduler/cloned_stop_two.summary similarity index 100% rename from cts/pengine/cloned_stop_two.summary rename to cts/scheduler/cloned_stop_two.summary diff --git a/cts/pengine/cloned_stop_two.xml b/cts/scheduler/cloned_stop_two.xml similarity index 100% rename from cts/pengine/cloned_stop_two.xml rename to cts/scheduler/cloned_stop_two.xml diff --git a/cts/pengine/cluster-specific-params.dot b/cts/scheduler/cluster-specific-params.dot similarity index 100% rename from cts/pengine/cluster-specific-params.dot rename to cts/scheduler/cluster-specific-params.dot diff --git a/cts/pengine/cluster-specific-params.exp b/cts/scheduler/cluster-specific-params.exp similarity index 100% rename from cts/pengine/cluster-specific-params.exp rename to cts/scheduler/cluster-specific-params.exp diff --git a/cts/pengine/cluster-specific-params.scores b/cts/scheduler/cluster-specific-params.scores similarity index 100% rename from cts/pengine/cluster-specific-params.scores rename to cts/scheduler/cluster-specific-params.scores diff --git a/cts/pengine/cluster-specific-params.summary b/cts/scheduler/cluster-specific-params.summary similarity index 100% rename from cts/pengine/cluster-specific-params.summary rename to cts/scheduler/cluster-specific-params.summary diff --git a/cts/pengine/cluster-specific-params.xml b/cts/scheduler/cluster-specific-params.xml similarity index 100% rename from cts/pengine/cluster-specific-params.xml rename to cts/scheduler/cluster-specific-params.xml diff --git a/cts/pengine/colo_master_w_native.dot b/cts/scheduler/colo_master_w_native.dot similarity index 100% rename from cts/pengine/colo_master_w_native.dot rename to cts/scheduler/colo_master_w_native.dot diff --git a/cts/pengine/colo_master_w_native.exp b/cts/scheduler/colo_master_w_native.exp similarity index 100% rename from cts/pengine/colo_master_w_native.exp rename to cts/scheduler/colo_master_w_native.exp diff --git a/cts/pengine/colo_master_w_native.scores b/cts/scheduler/colo_master_w_native.scores similarity index 100% rename from cts/pengine/colo_master_w_native.scores rename to cts/scheduler/colo_master_w_native.scores diff --git a/cts/pengine/colo_master_w_native.summary b/cts/scheduler/colo_master_w_native.summary similarity index 100% rename from cts/pengine/colo_master_w_native.summary rename to cts/scheduler/colo_master_w_native.summary diff --git a/cts/pengine/colo_master_w_native.xml b/cts/scheduler/colo_master_w_native.xml similarity index 100% rename from cts/pengine/colo_master_w_native.xml rename to cts/scheduler/colo_master_w_native.xml diff --git a/cts/pengine/colo_slave_w_native.dot b/cts/scheduler/colo_slave_w_native.dot similarity index 100% rename from cts/pengine/colo_slave_w_native.dot rename to cts/scheduler/colo_slave_w_native.dot diff --git a/cts/pengine/colo_slave_w_native.exp b/cts/scheduler/colo_slave_w_native.exp similarity index 100% rename from cts/pengine/colo_slave_w_native.exp rename to cts/scheduler/colo_slave_w_native.exp diff --git a/cts/pengine/colo_slave_w_native.scores b/cts/scheduler/colo_slave_w_native.scores similarity index 100% rename from cts/pengine/colo_slave_w_native.scores rename to cts/scheduler/colo_slave_w_native.scores diff --git a/cts/pengine/colo_slave_w_native.summary b/cts/scheduler/colo_slave_w_native.summary similarity index 100% rename from cts/pengine/colo_slave_w_native.summary rename to cts/scheduler/colo_slave_w_native.summary diff --git a/cts/pengine/colo_slave_w_native.xml b/cts/scheduler/colo_slave_w_native.xml similarity index 100% rename from cts/pengine/colo_slave_w_native.xml rename to cts/scheduler/colo_slave_w_native.xml diff --git a/cts/pengine/coloc-attr.dot b/cts/scheduler/coloc-attr.dot similarity index 100% rename from cts/pengine/coloc-attr.dot rename to cts/scheduler/coloc-attr.dot diff --git a/cts/pengine/coloc-attr.exp b/cts/scheduler/coloc-attr.exp similarity index 100% rename from cts/pengine/coloc-attr.exp rename to cts/scheduler/coloc-attr.exp diff --git a/cts/pengine/coloc-attr.scores b/cts/scheduler/coloc-attr.scores similarity index 100% rename from cts/pengine/coloc-attr.scores rename to cts/scheduler/coloc-attr.scores diff --git a/cts/pengine/coloc-attr.summary b/cts/scheduler/coloc-attr.summary similarity index 100% rename from cts/pengine/coloc-attr.summary rename to cts/scheduler/coloc-attr.summary diff --git a/cts/pengine/coloc-attr.xml b/cts/scheduler/coloc-attr.xml similarity index 100% rename from cts/pengine/coloc-attr.xml rename to cts/scheduler/coloc-attr.xml diff --git a/cts/pengine/coloc-clone-stays-active.dot b/cts/scheduler/coloc-clone-stays-active.dot similarity index 100% rename from cts/pengine/coloc-clone-stays-active.dot rename to cts/scheduler/coloc-clone-stays-active.dot diff --git a/cts/pengine/coloc-clone-stays-active.exp b/cts/scheduler/coloc-clone-stays-active.exp similarity index 100% rename from cts/pengine/coloc-clone-stays-active.exp rename to cts/scheduler/coloc-clone-stays-active.exp diff --git a/cts/pengine/coloc-clone-stays-active.scores b/cts/scheduler/coloc-clone-stays-active.scores similarity index 100% rename from cts/pengine/coloc-clone-stays-active.scores rename to cts/scheduler/coloc-clone-stays-active.scores diff --git a/cts/pengine/coloc-clone-stays-active.summary b/cts/scheduler/coloc-clone-stays-active.summary similarity index 100% rename from cts/pengine/coloc-clone-stays-active.summary rename to cts/scheduler/coloc-clone-stays-active.summary diff --git a/cts/pengine/coloc-clone-stays-active.xml b/cts/scheduler/coloc-clone-stays-active.xml similarity index 100% rename from cts/pengine/coloc-clone-stays-active.xml rename to cts/scheduler/coloc-clone-stays-active.xml diff --git a/cts/pengine/coloc-group.dot b/cts/scheduler/coloc-group.dot similarity index 100% rename from cts/pengine/coloc-group.dot rename to cts/scheduler/coloc-group.dot diff --git a/cts/pengine/coloc-group.exp b/cts/scheduler/coloc-group.exp similarity index 100% rename from cts/pengine/coloc-group.exp rename to cts/scheduler/coloc-group.exp diff --git a/cts/pengine/coloc-group.scores b/cts/scheduler/coloc-group.scores similarity index 100% rename from cts/pengine/coloc-group.scores rename to cts/scheduler/coloc-group.scores diff --git a/cts/pengine/coloc-group.summary b/cts/scheduler/coloc-group.summary similarity index 100% rename from cts/pengine/coloc-group.summary rename to cts/scheduler/coloc-group.summary diff --git a/cts/pengine/coloc-group.xml b/cts/scheduler/coloc-group.xml similarity index 100% rename from cts/pengine/coloc-group.xml rename to cts/scheduler/coloc-group.xml diff --git a/cts/pengine/coloc-intra-set.dot b/cts/scheduler/coloc-intra-set.dot similarity index 100% rename from cts/pengine/coloc-intra-set.dot rename to cts/scheduler/coloc-intra-set.dot diff --git a/cts/pengine/coloc-intra-set.exp b/cts/scheduler/coloc-intra-set.exp similarity index 100% rename from cts/pengine/coloc-intra-set.exp rename to cts/scheduler/coloc-intra-set.exp diff --git a/cts/pengine/coloc-intra-set.scores b/cts/scheduler/coloc-intra-set.scores similarity index 100% rename from cts/pengine/coloc-intra-set.scores rename to cts/scheduler/coloc-intra-set.scores diff --git a/cts/pengine/coloc-intra-set.summary b/cts/scheduler/coloc-intra-set.summary similarity index 100% rename from cts/pengine/coloc-intra-set.summary rename to cts/scheduler/coloc-intra-set.summary diff --git a/cts/pengine/coloc-intra-set.xml b/cts/scheduler/coloc-intra-set.xml similarity index 100% rename from cts/pengine/coloc-intra-set.xml rename to cts/scheduler/coloc-intra-set.xml diff --git a/cts/pengine/coloc-list.dot b/cts/scheduler/coloc-list.dot similarity index 100% rename from cts/pengine/coloc-list.dot rename to cts/scheduler/coloc-list.dot diff --git a/cts/pengine/coloc-list.exp b/cts/scheduler/coloc-list.exp similarity index 100% rename from cts/pengine/coloc-list.exp rename to cts/scheduler/coloc-list.exp diff --git a/cts/pengine/coloc-list.scores b/cts/scheduler/coloc-list.scores similarity index 100% rename from cts/pengine/coloc-list.scores rename to cts/scheduler/coloc-list.scores diff --git a/cts/pengine/coloc-list.summary b/cts/scheduler/coloc-list.summary similarity index 100% rename from cts/pengine/coloc-list.summary rename to cts/scheduler/coloc-list.summary diff --git a/cts/pengine/coloc-list.xml b/cts/scheduler/coloc-list.xml similarity index 100% rename from cts/pengine/coloc-list.xml rename to cts/scheduler/coloc-list.xml diff --git a/cts/pengine/coloc-loop.dot b/cts/scheduler/coloc-loop.dot similarity index 100% rename from cts/pengine/coloc-loop.dot rename to cts/scheduler/coloc-loop.dot diff --git a/cts/pengine/coloc-loop.exp b/cts/scheduler/coloc-loop.exp similarity index 100% rename from cts/pengine/coloc-loop.exp rename to cts/scheduler/coloc-loop.exp diff --git a/cts/pengine/coloc-loop.scores b/cts/scheduler/coloc-loop.scores similarity index 100% rename from cts/pengine/coloc-loop.scores rename to cts/scheduler/coloc-loop.scores diff --git a/cts/pengine/coloc-loop.summary b/cts/scheduler/coloc-loop.summary similarity index 100% rename from cts/pengine/coloc-loop.summary rename to cts/scheduler/coloc-loop.summary diff --git a/cts/pengine/coloc-loop.xml b/cts/scheduler/coloc-loop.xml similarity index 100% rename from cts/pengine/coloc-loop.xml rename to cts/scheduler/coloc-loop.xml diff --git a/cts/pengine/coloc-many-one.dot b/cts/scheduler/coloc-many-one.dot similarity index 100% rename from cts/pengine/coloc-many-one.dot rename to cts/scheduler/coloc-many-one.dot diff --git a/cts/pengine/coloc-many-one.exp b/cts/scheduler/coloc-many-one.exp similarity index 100% rename from cts/pengine/coloc-many-one.exp rename to cts/scheduler/coloc-many-one.exp diff --git a/cts/pengine/coloc-many-one.scores b/cts/scheduler/coloc-many-one.scores similarity index 100% rename from cts/pengine/coloc-many-one.scores rename to cts/scheduler/coloc-many-one.scores diff --git a/cts/pengine/coloc-many-one.summary b/cts/scheduler/coloc-many-one.summary similarity index 100% rename from cts/pengine/coloc-many-one.summary rename to cts/scheduler/coloc-many-one.summary diff --git a/cts/pengine/coloc-many-one.xml b/cts/scheduler/coloc-many-one.xml similarity index 100% rename from cts/pengine/coloc-many-one.xml rename to cts/scheduler/coloc-many-one.xml diff --git a/cts/pengine/coloc-negative-group.dot b/cts/scheduler/coloc-negative-group.dot similarity index 100% rename from cts/pengine/coloc-negative-group.dot rename to cts/scheduler/coloc-negative-group.dot diff --git a/cts/pengine/coloc-negative-group.exp b/cts/scheduler/coloc-negative-group.exp similarity index 100% rename from cts/pengine/coloc-negative-group.exp rename to cts/scheduler/coloc-negative-group.exp diff --git a/cts/pengine/coloc-negative-group.scores b/cts/scheduler/coloc-negative-group.scores similarity index 100% rename from cts/pengine/coloc-negative-group.scores rename to cts/scheduler/coloc-negative-group.scores diff --git a/cts/pengine/coloc-negative-group.summary b/cts/scheduler/coloc-negative-group.summary similarity index 100% rename from cts/pengine/coloc-negative-group.summary rename to cts/scheduler/coloc-negative-group.summary diff --git a/cts/pengine/coloc-negative-group.xml b/cts/scheduler/coloc-negative-group.xml similarity index 100% rename from cts/pengine/coloc-negative-group.xml rename to cts/scheduler/coloc-negative-group.xml diff --git a/cts/pengine/coloc-slave-anti.dot b/cts/scheduler/coloc-slave-anti.dot similarity index 100% rename from cts/pengine/coloc-slave-anti.dot rename to cts/scheduler/coloc-slave-anti.dot diff --git a/cts/pengine/coloc-slave-anti.exp b/cts/scheduler/coloc-slave-anti.exp similarity index 100% rename from cts/pengine/coloc-slave-anti.exp rename to cts/scheduler/coloc-slave-anti.exp diff --git a/cts/pengine/coloc-slave-anti.scores b/cts/scheduler/coloc-slave-anti.scores similarity index 100% rename from cts/pengine/coloc-slave-anti.scores rename to cts/scheduler/coloc-slave-anti.scores diff --git a/cts/pengine/coloc-slave-anti.summary b/cts/scheduler/coloc-slave-anti.summary similarity index 100% rename from cts/pengine/coloc-slave-anti.summary rename to cts/scheduler/coloc-slave-anti.summary diff --git a/cts/pengine/coloc-slave-anti.xml b/cts/scheduler/coloc-slave-anti.xml similarity index 100% rename from cts/pengine/coloc-slave-anti.xml rename to cts/scheduler/coloc-slave-anti.xml diff --git a/cts/pengine/coloc_fp_logic.dot b/cts/scheduler/coloc_fp_logic.dot similarity index 100% rename from cts/pengine/coloc_fp_logic.dot rename to cts/scheduler/coloc_fp_logic.dot diff --git a/cts/pengine/coloc_fp_logic.exp b/cts/scheduler/coloc_fp_logic.exp similarity index 100% rename from cts/pengine/coloc_fp_logic.exp rename to cts/scheduler/coloc_fp_logic.exp diff --git a/cts/pengine/coloc_fp_logic.scores b/cts/scheduler/coloc_fp_logic.scores similarity index 100% rename from cts/pengine/coloc_fp_logic.scores rename to cts/scheduler/coloc_fp_logic.scores diff --git a/cts/pengine/coloc_fp_logic.summary b/cts/scheduler/coloc_fp_logic.summary similarity index 100% rename from cts/pengine/coloc_fp_logic.summary rename to cts/scheduler/coloc_fp_logic.summary diff --git a/cts/pengine/coloc_fp_logic.xml b/cts/scheduler/coloc_fp_logic.xml similarity index 100% rename from cts/pengine/coloc_fp_logic.xml rename to cts/scheduler/coloc_fp_logic.xml diff --git a/cts/pengine/colocate-primitive-with-clone.dot b/cts/scheduler/colocate-primitive-with-clone.dot similarity index 100% rename from cts/pengine/colocate-primitive-with-clone.dot rename to cts/scheduler/colocate-primitive-with-clone.dot diff --git a/cts/pengine/colocate-primitive-with-clone.exp b/cts/scheduler/colocate-primitive-with-clone.exp similarity index 100% rename from cts/pengine/colocate-primitive-with-clone.exp rename to cts/scheduler/colocate-primitive-with-clone.exp diff --git a/cts/pengine/colocate-primitive-with-clone.scores b/cts/scheduler/colocate-primitive-with-clone.scores similarity index 100% rename from cts/pengine/colocate-primitive-with-clone.scores rename to cts/scheduler/colocate-primitive-with-clone.scores diff --git a/cts/pengine/colocate-primitive-with-clone.summary b/cts/scheduler/colocate-primitive-with-clone.summary similarity index 100% rename from cts/pengine/colocate-primitive-with-clone.summary rename to cts/scheduler/colocate-primitive-with-clone.summary diff --git a/cts/pengine/colocate-primitive-with-clone.xml b/cts/scheduler/colocate-primitive-with-clone.xml similarity index 100% rename from cts/pengine/colocate-primitive-with-clone.xml rename to cts/scheduler/colocate-primitive-with-clone.xml diff --git a/cts/pengine/colocated-utilization-clone.dot b/cts/scheduler/colocated-utilization-clone.dot similarity index 100% rename from cts/pengine/colocated-utilization-clone.dot rename to cts/scheduler/colocated-utilization-clone.dot diff --git a/cts/pengine/colocated-utilization-clone.exp b/cts/scheduler/colocated-utilization-clone.exp similarity index 100% rename from cts/pengine/colocated-utilization-clone.exp rename to cts/scheduler/colocated-utilization-clone.exp diff --git a/cts/pengine/colocated-utilization-clone.scores b/cts/scheduler/colocated-utilization-clone.scores similarity index 100% rename from cts/pengine/colocated-utilization-clone.scores rename to cts/scheduler/colocated-utilization-clone.scores diff --git a/cts/pengine/colocated-utilization-clone.summary b/cts/scheduler/colocated-utilization-clone.summary similarity index 100% rename from cts/pengine/colocated-utilization-clone.summary rename to cts/scheduler/colocated-utilization-clone.summary diff --git a/cts/pengine/colocated-utilization-clone.xml b/cts/scheduler/colocated-utilization-clone.xml similarity index 100% rename from cts/pengine/colocated-utilization-clone.xml rename to cts/scheduler/colocated-utilization-clone.xml diff --git a/cts/pengine/colocated-utilization-group.dot b/cts/scheduler/colocated-utilization-group.dot similarity index 100% rename from cts/pengine/colocated-utilization-group.dot rename to cts/scheduler/colocated-utilization-group.dot diff --git a/cts/pengine/colocated-utilization-group.exp b/cts/scheduler/colocated-utilization-group.exp similarity index 100% rename from cts/pengine/colocated-utilization-group.exp rename to cts/scheduler/colocated-utilization-group.exp diff --git a/cts/pengine/colocated-utilization-group.scores b/cts/scheduler/colocated-utilization-group.scores similarity index 100% rename from cts/pengine/colocated-utilization-group.scores rename to cts/scheduler/colocated-utilization-group.scores diff --git a/cts/pengine/colocated-utilization-group.summary b/cts/scheduler/colocated-utilization-group.summary similarity index 100% rename from cts/pengine/colocated-utilization-group.summary rename to cts/scheduler/colocated-utilization-group.summary diff --git a/cts/pengine/colocated-utilization-group.xml b/cts/scheduler/colocated-utilization-group.xml similarity index 100% rename from cts/pengine/colocated-utilization-group.xml rename to cts/scheduler/colocated-utilization-group.xml diff --git a/cts/pengine/colocated-utilization-primitive-1.dot b/cts/scheduler/colocated-utilization-primitive-1.dot similarity index 100% rename from cts/pengine/colocated-utilization-primitive-1.dot rename to cts/scheduler/colocated-utilization-primitive-1.dot diff --git a/cts/pengine/colocated-utilization-primitive-1.exp b/cts/scheduler/colocated-utilization-primitive-1.exp similarity index 100% rename from cts/pengine/colocated-utilization-primitive-1.exp rename to cts/scheduler/colocated-utilization-primitive-1.exp diff --git a/cts/pengine/colocated-utilization-primitive-1.scores b/cts/scheduler/colocated-utilization-primitive-1.scores similarity index 100% rename from cts/pengine/colocated-utilization-primitive-1.scores rename to cts/scheduler/colocated-utilization-primitive-1.scores diff --git a/cts/pengine/colocated-utilization-primitive-1.summary b/cts/scheduler/colocated-utilization-primitive-1.summary similarity index 100% rename from cts/pengine/colocated-utilization-primitive-1.summary rename to cts/scheduler/colocated-utilization-primitive-1.summary diff --git a/cts/pengine/colocated-utilization-primitive-1.xml b/cts/scheduler/colocated-utilization-primitive-1.xml similarity index 100% rename from cts/pengine/colocated-utilization-primitive-1.xml rename to cts/scheduler/colocated-utilization-primitive-1.xml diff --git a/cts/pengine/colocated-utilization-primitive-2.dot b/cts/scheduler/colocated-utilization-primitive-2.dot similarity index 100% rename from cts/pengine/colocated-utilization-primitive-2.dot rename to cts/scheduler/colocated-utilization-primitive-2.dot diff --git a/cts/pengine/colocated-utilization-primitive-2.exp b/cts/scheduler/colocated-utilization-primitive-2.exp similarity index 100% rename from cts/pengine/colocated-utilization-primitive-2.exp rename to cts/scheduler/colocated-utilization-primitive-2.exp diff --git a/cts/pengine/colocated-utilization-primitive-2.scores b/cts/scheduler/colocated-utilization-primitive-2.scores similarity index 100% rename from cts/pengine/colocated-utilization-primitive-2.scores rename to cts/scheduler/colocated-utilization-primitive-2.scores diff --git a/cts/pengine/colocated-utilization-primitive-2.summary b/cts/scheduler/colocated-utilization-primitive-2.summary similarity index 100% rename from cts/pengine/colocated-utilization-primitive-2.summary rename to cts/scheduler/colocated-utilization-primitive-2.summary diff --git a/cts/pengine/colocated-utilization-primitive-2.xml b/cts/scheduler/colocated-utilization-primitive-2.xml similarity index 100% rename from cts/pengine/colocated-utilization-primitive-2.xml rename to cts/scheduler/colocated-utilization-primitive-2.xml diff --git a/cts/pengine/colocation_constraint_stops_master.dot b/cts/scheduler/colocation_constraint_stops_master.dot similarity index 100% rename from cts/pengine/colocation_constraint_stops_master.dot rename to cts/scheduler/colocation_constraint_stops_master.dot diff --git a/cts/pengine/colocation_constraint_stops_master.exp b/cts/scheduler/colocation_constraint_stops_master.exp similarity index 100% rename from cts/pengine/colocation_constraint_stops_master.exp rename to cts/scheduler/colocation_constraint_stops_master.exp diff --git a/cts/pengine/colocation_constraint_stops_master.scores b/cts/scheduler/colocation_constraint_stops_master.scores similarity index 100% rename from cts/pengine/colocation_constraint_stops_master.scores rename to cts/scheduler/colocation_constraint_stops_master.scores diff --git a/cts/pengine/colocation_constraint_stops_master.summary b/cts/scheduler/colocation_constraint_stops_master.summary similarity index 100% rename from cts/pengine/colocation_constraint_stops_master.summary rename to cts/scheduler/colocation_constraint_stops_master.summary diff --git a/cts/pengine/colocation_constraint_stops_master.xml b/cts/scheduler/colocation_constraint_stops_master.xml similarity index 100% rename from cts/pengine/colocation_constraint_stops_master.xml rename to cts/scheduler/colocation_constraint_stops_master.xml diff --git a/cts/pengine/colocation_constraint_stops_slave.dot b/cts/scheduler/colocation_constraint_stops_slave.dot similarity index 100% rename from cts/pengine/colocation_constraint_stops_slave.dot rename to cts/scheduler/colocation_constraint_stops_slave.dot diff --git a/cts/pengine/colocation_constraint_stops_slave.exp b/cts/scheduler/colocation_constraint_stops_slave.exp similarity index 100% rename from cts/pengine/colocation_constraint_stops_slave.exp rename to cts/scheduler/colocation_constraint_stops_slave.exp diff --git a/cts/pengine/colocation_constraint_stops_slave.scores b/cts/scheduler/colocation_constraint_stops_slave.scores similarity index 100% rename from cts/pengine/colocation_constraint_stops_slave.scores rename to cts/scheduler/colocation_constraint_stops_slave.scores diff --git a/cts/pengine/colocation_constraint_stops_slave.summary b/cts/scheduler/colocation_constraint_stops_slave.summary similarity index 100% rename from cts/pengine/colocation_constraint_stops_slave.summary rename to cts/scheduler/colocation_constraint_stops_slave.summary diff --git a/cts/pengine/colocation_constraint_stops_slave.xml b/cts/scheduler/colocation_constraint_stops_slave.xml similarity index 100% rename from cts/pengine/colocation_constraint_stops_slave.xml rename to cts/scheduler/colocation_constraint_stops_slave.xml diff --git a/cts/pengine/comments.dot b/cts/scheduler/comments.dot similarity index 100% rename from cts/pengine/comments.dot rename to cts/scheduler/comments.dot diff --git a/cts/pengine/comments.exp b/cts/scheduler/comments.exp similarity index 100% rename from cts/pengine/comments.exp rename to cts/scheduler/comments.exp diff --git a/cts/pengine/comments.scores b/cts/scheduler/comments.scores similarity index 100% rename from cts/pengine/comments.scores rename to cts/scheduler/comments.scores diff --git a/cts/pengine/comments.summary b/cts/scheduler/comments.summary similarity index 100% rename from cts/pengine/comments.summary rename to cts/scheduler/comments.summary diff --git a/cts/pengine/comments.xml b/cts/scheduler/comments.xml similarity index 100% rename from cts/pengine/comments.xml rename to cts/scheduler/comments.xml diff --git a/cts/pengine/complex_enforce_colo.dot b/cts/scheduler/complex_enforce_colo.dot similarity index 100% rename from cts/pengine/complex_enforce_colo.dot rename to cts/scheduler/complex_enforce_colo.dot diff --git a/cts/pengine/complex_enforce_colo.exp b/cts/scheduler/complex_enforce_colo.exp similarity index 100% rename from cts/pengine/complex_enforce_colo.exp rename to cts/scheduler/complex_enforce_colo.exp diff --git a/cts/pengine/complex_enforce_colo.scores b/cts/scheduler/complex_enforce_colo.scores similarity index 100% rename from cts/pengine/complex_enforce_colo.scores rename to cts/scheduler/complex_enforce_colo.scores diff --git a/cts/pengine/complex_enforce_colo.summary b/cts/scheduler/complex_enforce_colo.summary similarity index 100% rename from cts/pengine/complex_enforce_colo.summary rename to cts/scheduler/complex_enforce_colo.summary diff --git a/cts/pengine/complex_enforce_colo.xml b/cts/scheduler/complex_enforce_colo.xml similarity index 100% rename from cts/pengine/complex_enforce_colo.xml rename to cts/scheduler/complex_enforce_colo.xml diff --git a/cts/pengine/concurrent-fencing.dot b/cts/scheduler/concurrent-fencing.dot similarity index 100% rename from cts/pengine/concurrent-fencing.dot rename to cts/scheduler/concurrent-fencing.dot diff --git a/cts/pengine/concurrent-fencing.exp b/cts/scheduler/concurrent-fencing.exp similarity index 100% rename from cts/pengine/concurrent-fencing.exp rename to cts/scheduler/concurrent-fencing.exp diff --git a/cts/pengine/concurrent-fencing.scores b/cts/scheduler/concurrent-fencing.scores similarity index 100% rename from cts/pengine/concurrent-fencing.scores rename to cts/scheduler/concurrent-fencing.scores diff --git a/cts/pengine/concurrent-fencing.summary b/cts/scheduler/concurrent-fencing.summary similarity index 100% rename from cts/pengine/concurrent-fencing.summary rename to cts/scheduler/concurrent-fencing.summary diff --git a/cts/pengine/concurrent-fencing.xml b/cts/scheduler/concurrent-fencing.xml similarity index 100% rename from cts/pengine/concurrent-fencing.xml rename to cts/scheduler/concurrent-fencing.xml diff --git a/cts/pengine/container-1.dot b/cts/scheduler/container-1.dot similarity index 100% rename from cts/pengine/container-1.dot rename to cts/scheduler/container-1.dot diff --git a/cts/pengine/container-1.exp b/cts/scheduler/container-1.exp similarity index 100% rename from cts/pengine/container-1.exp rename to cts/scheduler/container-1.exp diff --git a/cts/pengine/container-1.scores b/cts/scheduler/container-1.scores similarity index 100% rename from cts/pengine/container-1.scores rename to cts/scheduler/container-1.scores diff --git a/cts/pengine/container-1.summary b/cts/scheduler/container-1.summary similarity index 100% rename from cts/pengine/container-1.summary rename to cts/scheduler/container-1.summary diff --git a/cts/pengine/container-1.xml b/cts/scheduler/container-1.xml similarity index 100% rename from cts/pengine/container-1.xml rename to cts/scheduler/container-1.xml diff --git a/cts/pengine/container-2.dot b/cts/scheduler/container-2.dot similarity index 100% rename from cts/pengine/container-2.dot rename to cts/scheduler/container-2.dot diff --git a/cts/pengine/container-2.exp b/cts/scheduler/container-2.exp similarity index 100% rename from cts/pengine/container-2.exp rename to cts/scheduler/container-2.exp diff --git a/cts/pengine/container-2.scores b/cts/scheduler/container-2.scores similarity index 100% rename from cts/pengine/container-2.scores rename to cts/scheduler/container-2.scores diff --git a/cts/pengine/container-2.summary b/cts/scheduler/container-2.summary similarity index 100% rename from cts/pengine/container-2.summary rename to cts/scheduler/container-2.summary diff --git a/cts/pengine/container-2.xml b/cts/scheduler/container-2.xml similarity index 100% rename from cts/pengine/container-2.xml rename to cts/scheduler/container-2.xml diff --git a/cts/pengine/container-3.dot b/cts/scheduler/container-3.dot similarity index 100% rename from cts/pengine/container-3.dot rename to cts/scheduler/container-3.dot diff --git a/cts/pengine/container-3.exp b/cts/scheduler/container-3.exp similarity index 100% rename from cts/pengine/container-3.exp rename to cts/scheduler/container-3.exp diff --git a/cts/pengine/container-3.scores b/cts/scheduler/container-3.scores similarity index 100% rename from cts/pengine/container-3.scores rename to cts/scheduler/container-3.scores diff --git a/cts/pengine/container-3.summary b/cts/scheduler/container-3.summary similarity index 100% rename from cts/pengine/container-3.summary rename to cts/scheduler/container-3.summary diff --git a/cts/pengine/container-3.xml b/cts/scheduler/container-3.xml similarity index 100% rename from cts/pengine/container-3.xml rename to cts/scheduler/container-3.xml diff --git a/cts/pengine/container-4.dot b/cts/scheduler/container-4.dot similarity index 100% rename from cts/pengine/container-4.dot rename to cts/scheduler/container-4.dot diff --git a/cts/pengine/container-4.exp b/cts/scheduler/container-4.exp similarity index 100% rename from cts/pengine/container-4.exp rename to cts/scheduler/container-4.exp diff --git a/cts/pengine/container-4.scores b/cts/scheduler/container-4.scores similarity index 100% rename from cts/pengine/container-4.scores rename to cts/scheduler/container-4.scores diff --git a/cts/pengine/container-4.summary b/cts/scheduler/container-4.summary similarity index 100% rename from cts/pengine/container-4.summary rename to cts/scheduler/container-4.summary diff --git a/cts/pengine/container-4.xml b/cts/scheduler/container-4.xml similarity index 100% rename from cts/pengine/container-4.xml rename to cts/scheduler/container-4.xml diff --git a/cts/pengine/container-group-1.dot b/cts/scheduler/container-group-1.dot similarity index 100% rename from cts/pengine/container-group-1.dot rename to cts/scheduler/container-group-1.dot diff --git a/cts/pengine/container-group-1.exp b/cts/scheduler/container-group-1.exp similarity index 100% rename from cts/pengine/container-group-1.exp rename to cts/scheduler/container-group-1.exp diff --git a/cts/pengine/container-group-1.scores b/cts/scheduler/container-group-1.scores similarity index 100% rename from cts/pengine/container-group-1.scores rename to cts/scheduler/container-group-1.scores diff --git a/cts/pengine/container-group-1.summary b/cts/scheduler/container-group-1.summary similarity index 100% rename from cts/pengine/container-group-1.summary rename to cts/scheduler/container-group-1.summary diff --git a/cts/pengine/container-group-1.xml b/cts/scheduler/container-group-1.xml similarity index 100% rename from cts/pengine/container-group-1.xml rename to cts/scheduler/container-group-1.xml diff --git a/cts/pengine/container-group-2.dot b/cts/scheduler/container-group-2.dot similarity index 100% rename from cts/pengine/container-group-2.dot rename to cts/scheduler/container-group-2.dot diff --git a/cts/pengine/container-group-2.exp b/cts/scheduler/container-group-2.exp similarity index 100% rename from cts/pengine/container-group-2.exp rename to cts/scheduler/container-group-2.exp diff --git a/cts/pengine/container-group-2.scores b/cts/scheduler/container-group-2.scores similarity index 100% rename from cts/pengine/container-group-2.scores rename to cts/scheduler/container-group-2.scores diff --git a/cts/pengine/container-group-2.summary b/cts/scheduler/container-group-2.summary similarity index 100% rename from cts/pengine/container-group-2.summary rename to cts/scheduler/container-group-2.summary diff --git a/cts/pengine/container-group-2.xml b/cts/scheduler/container-group-2.xml similarity index 100% rename from cts/pengine/container-group-2.xml rename to cts/scheduler/container-group-2.xml diff --git a/cts/pengine/container-group-3.dot b/cts/scheduler/container-group-3.dot similarity index 100% rename from cts/pengine/container-group-3.dot rename to cts/scheduler/container-group-3.dot diff --git a/cts/pengine/container-group-3.exp b/cts/scheduler/container-group-3.exp similarity index 100% rename from cts/pengine/container-group-3.exp rename to cts/scheduler/container-group-3.exp diff --git a/cts/pengine/container-group-3.scores b/cts/scheduler/container-group-3.scores similarity index 100% rename from cts/pengine/container-group-3.scores rename to cts/scheduler/container-group-3.scores diff --git a/cts/pengine/container-group-3.summary b/cts/scheduler/container-group-3.summary similarity index 100% rename from cts/pengine/container-group-3.summary rename to cts/scheduler/container-group-3.summary diff --git a/cts/pengine/container-group-3.xml b/cts/scheduler/container-group-3.xml similarity index 100% rename from cts/pengine/container-group-3.xml rename to cts/scheduler/container-group-3.xml diff --git a/cts/pengine/container-group-4.dot b/cts/scheduler/container-group-4.dot similarity index 100% rename from cts/pengine/container-group-4.dot rename to cts/scheduler/container-group-4.dot diff --git a/cts/pengine/container-group-4.exp b/cts/scheduler/container-group-4.exp similarity index 100% rename from cts/pengine/container-group-4.exp rename to cts/scheduler/container-group-4.exp diff --git a/cts/pengine/container-group-4.scores b/cts/scheduler/container-group-4.scores similarity index 100% rename from cts/pengine/container-group-4.scores rename to cts/scheduler/container-group-4.scores diff --git a/cts/pengine/container-group-4.summary b/cts/scheduler/container-group-4.summary similarity index 100% rename from cts/pengine/container-group-4.summary rename to cts/scheduler/container-group-4.summary diff --git a/cts/pengine/container-group-4.xml b/cts/scheduler/container-group-4.xml similarity index 100% rename from cts/pengine/container-group-4.xml rename to cts/scheduler/container-group-4.xml diff --git a/cts/pengine/container-is-remote-node.dot b/cts/scheduler/container-is-remote-node.dot similarity index 100% rename from cts/pengine/container-is-remote-node.dot rename to cts/scheduler/container-is-remote-node.dot diff --git a/cts/pengine/container-is-remote-node.exp b/cts/scheduler/container-is-remote-node.exp similarity index 100% rename from cts/pengine/container-is-remote-node.exp rename to cts/scheduler/container-is-remote-node.exp diff --git a/cts/pengine/container-is-remote-node.scores b/cts/scheduler/container-is-remote-node.scores similarity index 100% rename from cts/pengine/container-is-remote-node.scores rename to cts/scheduler/container-is-remote-node.scores diff --git a/cts/pengine/container-is-remote-node.summary b/cts/scheduler/container-is-remote-node.summary similarity index 100% rename from cts/pengine/container-is-remote-node.summary rename to cts/scheduler/container-is-remote-node.summary diff --git a/cts/pengine/container-is-remote-node.xml b/cts/scheduler/container-is-remote-node.xml similarity index 100% rename from cts/pengine/container-is-remote-node.xml rename to cts/scheduler/container-is-remote-node.xml diff --git a/cts/pengine/date-1.dot b/cts/scheduler/date-1.dot similarity index 100% rename from cts/pengine/date-1.dot rename to cts/scheduler/date-1.dot diff --git a/cts/pengine/date-1.exp b/cts/scheduler/date-1.exp similarity index 100% rename from cts/pengine/date-1.exp rename to cts/scheduler/date-1.exp diff --git a/cts/pengine/date-1.scores b/cts/scheduler/date-1.scores similarity index 100% rename from cts/pengine/date-1.scores rename to cts/scheduler/date-1.scores diff --git a/cts/pengine/date-1.summary b/cts/scheduler/date-1.summary similarity index 100% rename from cts/pengine/date-1.summary rename to cts/scheduler/date-1.summary diff --git a/cts/pengine/date-1.xml b/cts/scheduler/date-1.xml similarity index 100% rename from cts/pengine/date-1.xml rename to cts/scheduler/date-1.xml diff --git a/cts/pengine/date-2.dot b/cts/scheduler/date-2.dot similarity index 100% rename from cts/pengine/date-2.dot rename to cts/scheduler/date-2.dot diff --git a/cts/pengine/date-2.exp b/cts/scheduler/date-2.exp similarity index 100% rename from cts/pengine/date-2.exp rename to cts/scheduler/date-2.exp diff --git a/cts/pengine/date-2.scores b/cts/scheduler/date-2.scores similarity index 100% rename from cts/pengine/date-2.scores rename to cts/scheduler/date-2.scores diff --git a/cts/pengine/date-2.summary b/cts/scheduler/date-2.summary similarity index 100% rename from cts/pengine/date-2.summary rename to cts/scheduler/date-2.summary diff --git a/cts/pengine/date-2.xml b/cts/scheduler/date-2.xml similarity index 100% rename from cts/pengine/date-2.xml rename to cts/scheduler/date-2.xml diff --git a/cts/pengine/date-3.dot b/cts/scheduler/date-3.dot similarity index 100% rename from cts/pengine/date-3.dot rename to cts/scheduler/date-3.dot diff --git a/cts/pengine/date-3.exp b/cts/scheduler/date-3.exp similarity index 100% rename from cts/pengine/date-3.exp rename to cts/scheduler/date-3.exp diff --git a/cts/pengine/date-3.scores b/cts/scheduler/date-3.scores similarity index 100% rename from cts/pengine/date-3.scores rename to cts/scheduler/date-3.scores diff --git a/cts/pengine/date-3.summary b/cts/scheduler/date-3.summary similarity index 100% rename from cts/pengine/date-3.summary rename to cts/scheduler/date-3.summary diff --git a/cts/pengine/date-3.xml b/cts/scheduler/date-3.xml similarity index 100% rename from cts/pengine/date-3.xml rename to cts/scheduler/date-3.xml diff --git a/cts/pengine/empty.xml b/cts/scheduler/empty.xml similarity index 100% rename from cts/pengine/empty.xml rename to cts/scheduler/empty.xml diff --git a/cts/pengine/enforce-colo1.dot b/cts/scheduler/enforce-colo1.dot similarity index 100% rename from cts/pengine/enforce-colo1.dot rename to cts/scheduler/enforce-colo1.dot diff --git a/cts/pengine/enforce-colo1.exp b/cts/scheduler/enforce-colo1.exp similarity index 100% rename from cts/pengine/enforce-colo1.exp rename to cts/scheduler/enforce-colo1.exp diff --git a/cts/pengine/enforce-colo1.scores b/cts/scheduler/enforce-colo1.scores similarity index 100% rename from cts/pengine/enforce-colo1.scores rename to cts/scheduler/enforce-colo1.scores diff --git a/cts/pengine/enforce-colo1.summary b/cts/scheduler/enforce-colo1.summary similarity index 100% rename from cts/pengine/enforce-colo1.summary rename to cts/scheduler/enforce-colo1.summary diff --git a/cts/pengine/enforce-colo1.xml b/cts/scheduler/enforce-colo1.xml similarity index 100% rename from cts/pengine/enforce-colo1.xml rename to cts/scheduler/enforce-colo1.xml diff --git a/cts/pengine/expire-non-blocked-failure.dot b/cts/scheduler/expire-non-blocked-failure.dot similarity index 100% rename from cts/pengine/expire-non-blocked-failure.dot rename to cts/scheduler/expire-non-blocked-failure.dot diff --git a/cts/pengine/expire-non-blocked-failure.exp b/cts/scheduler/expire-non-blocked-failure.exp similarity index 100% rename from cts/pengine/expire-non-blocked-failure.exp rename to cts/scheduler/expire-non-blocked-failure.exp diff --git a/cts/pengine/expire-non-blocked-failure.scores b/cts/scheduler/expire-non-blocked-failure.scores similarity index 100% rename from cts/pengine/expire-non-blocked-failure.scores rename to cts/scheduler/expire-non-blocked-failure.scores diff --git a/cts/pengine/expire-non-blocked-failure.summary b/cts/scheduler/expire-non-blocked-failure.summary similarity index 100% rename from cts/pengine/expire-non-blocked-failure.summary rename to cts/scheduler/expire-non-blocked-failure.summary diff --git a/cts/pengine/expire-non-blocked-failure.xml b/cts/scheduler/expire-non-blocked-failure.xml similarity index 100% rename from cts/pengine/expire-non-blocked-failure.xml rename to cts/scheduler/expire-non-blocked-failure.xml diff --git a/cts/pengine/failcount-block.dot b/cts/scheduler/failcount-block.dot similarity index 100% rename from cts/pengine/failcount-block.dot rename to cts/scheduler/failcount-block.dot diff --git a/cts/pengine/failcount-block.exp b/cts/scheduler/failcount-block.exp similarity index 100% rename from cts/pengine/failcount-block.exp rename to cts/scheduler/failcount-block.exp diff --git a/cts/pengine/failcount-block.scores b/cts/scheduler/failcount-block.scores similarity index 100% rename from cts/pengine/failcount-block.scores rename to cts/scheduler/failcount-block.scores diff --git a/cts/pengine/failcount-block.summary b/cts/scheduler/failcount-block.summary similarity index 100% rename from cts/pengine/failcount-block.summary rename to cts/scheduler/failcount-block.summary diff --git a/cts/pengine/failcount-block.xml b/cts/scheduler/failcount-block.xml similarity index 100% rename from cts/pengine/failcount-block.xml rename to cts/scheduler/failcount-block.xml diff --git a/cts/pengine/failcount.dot b/cts/scheduler/failcount.dot similarity index 100% rename from cts/pengine/failcount.dot rename to cts/scheduler/failcount.dot diff --git a/cts/pengine/failcount.exp b/cts/scheduler/failcount.exp similarity index 100% rename from cts/pengine/failcount.exp rename to cts/scheduler/failcount.exp diff --git a/cts/pengine/failcount.scores b/cts/scheduler/failcount.scores similarity index 100% rename from cts/pengine/failcount.scores rename to cts/scheduler/failcount.scores diff --git a/cts/pengine/failcount.summary b/cts/scheduler/failcount.summary similarity index 100% rename from cts/pengine/failcount.summary rename to cts/scheduler/failcount.summary diff --git a/cts/pengine/failcount.xml b/cts/scheduler/failcount.xml similarity index 100% rename from cts/pengine/failcount.xml rename to cts/scheduler/failcount.xml diff --git a/cts/pengine/failed-demote-recovery-master.dot b/cts/scheduler/failed-demote-recovery-master.dot similarity index 100% rename from cts/pengine/failed-demote-recovery-master.dot rename to cts/scheduler/failed-demote-recovery-master.dot diff --git a/cts/pengine/failed-demote-recovery-master.exp b/cts/scheduler/failed-demote-recovery-master.exp similarity index 100% rename from cts/pengine/failed-demote-recovery-master.exp rename to cts/scheduler/failed-demote-recovery-master.exp diff --git a/cts/pengine/failed-demote-recovery-master.scores b/cts/scheduler/failed-demote-recovery-master.scores similarity index 100% rename from cts/pengine/failed-demote-recovery-master.scores rename to cts/scheduler/failed-demote-recovery-master.scores diff --git a/cts/pengine/failed-demote-recovery-master.summary b/cts/scheduler/failed-demote-recovery-master.summary similarity index 100% rename from cts/pengine/failed-demote-recovery-master.summary rename to cts/scheduler/failed-demote-recovery-master.summary diff --git a/cts/pengine/failed-demote-recovery-master.xml b/cts/scheduler/failed-demote-recovery-master.xml similarity index 100% rename from cts/pengine/failed-demote-recovery-master.xml rename to cts/scheduler/failed-demote-recovery-master.xml diff --git a/cts/pengine/failed-demote-recovery.dot b/cts/scheduler/failed-demote-recovery.dot similarity index 100% rename from cts/pengine/failed-demote-recovery.dot rename to cts/scheduler/failed-demote-recovery.dot diff --git a/cts/pengine/failed-demote-recovery.exp b/cts/scheduler/failed-demote-recovery.exp similarity index 100% rename from cts/pengine/failed-demote-recovery.exp rename to cts/scheduler/failed-demote-recovery.exp diff --git a/cts/pengine/failed-demote-recovery.scores b/cts/scheduler/failed-demote-recovery.scores similarity index 100% rename from cts/pengine/failed-demote-recovery.scores rename to cts/scheduler/failed-demote-recovery.scores diff --git a/cts/pengine/failed-demote-recovery.summary b/cts/scheduler/failed-demote-recovery.summary similarity index 100% rename from cts/pengine/failed-demote-recovery.summary rename to cts/scheduler/failed-demote-recovery.summary diff --git a/cts/pengine/failed-demote-recovery.xml b/cts/scheduler/failed-demote-recovery.xml similarity index 100% rename from cts/pengine/failed-demote-recovery.xml rename to cts/scheduler/failed-demote-recovery.xml diff --git a/cts/pengine/group-dependents.dot b/cts/scheduler/group-dependents.dot similarity index 100% rename from cts/pengine/group-dependents.dot rename to cts/scheduler/group-dependents.dot diff --git a/cts/pengine/group-dependents.exp b/cts/scheduler/group-dependents.exp similarity index 100% rename from cts/pengine/group-dependents.exp rename to cts/scheduler/group-dependents.exp diff --git a/cts/pengine/group-dependents.scores b/cts/scheduler/group-dependents.scores similarity index 100% rename from cts/pengine/group-dependents.scores rename to cts/scheduler/group-dependents.scores diff --git a/cts/pengine/group-dependents.summary b/cts/scheduler/group-dependents.summary similarity index 100% rename from cts/pengine/group-dependents.summary rename to cts/scheduler/group-dependents.summary diff --git a/cts/pengine/group-dependents.xml b/cts/scheduler/group-dependents.xml similarity index 100% rename from cts/pengine/group-dependents.xml rename to cts/scheduler/group-dependents.xml diff --git a/cts/pengine/group-fail.dot b/cts/scheduler/group-fail.dot similarity index 100% rename from cts/pengine/group-fail.dot rename to cts/scheduler/group-fail.dot diff --git a/cts/pengine/group-fail.exp b/cts/scheduler/group-fail.exp similarity index 100% rename from cts/pengine/group-fail.exp rename to cts/scheduler/group-fail.exp diff --git a/cts/pengine/group-fail.scores b/cts/scheduler/group-fail.scores similarity index 100% rename from cts/pengine/group-fail.scores rename to cts/scheduler/group-fail.scores diff --git a/cts/pengine/group-fail.summary b/cts/scheduler/group-fail.summary similarity index 100% rename from cts/pengine/group-fail.summary rename to cts/scheduler/group-fail.summary diff --git a/cts/pengine/group-fail.xml b/cts/scheduler/group-fail.xml similarity index 100% rename from cts/pengine/group-fail.xml rename to cts/scheduler/group-fail.xml diff --git a/cts/pengine/group-unmanaged-stopped.dot b/cts/scheduler/group-unmanaged-stopped.dot similarity index 100% rename from cts/pengine/group-unmanaged-stopped.dot rename to cts/scheduler/group-unmanaged-stopped.dot diff --git a/cts/pengine/group-unmanaged-stopped.exp b/cts/scheduler/group-unmanaged-stopped.exp similarity index 100% rename from cts/pengine/group-unmanaged-stopped.exp rename to cts/scheduler/group-unmanaged-stopped.exp diff --git a/cts/pengine/group-unmanaged-stopped.scores b/cts/scheduler/group-unmanaged-stopped.scores similarity index 100% rename from cts/pengine/group-unmanaged-stopped.scores rename to cts/scheduler/group-unmanaged-stopped.scores diff --git a/cts/pengine/group-unmanaged-stopped.summary b/cts/scheduler/group-unmanaged-stopped.summary similarity index 100% rename from cts/pengine/group-unmanaged-stopped.summary rename to cts/scheduler/group-unmanaged-stopped.summary diff --git a/cts/pengine/group-unmanaged-stopped.xml b/cts/scheduler/group-unmanaged-stopped.xml similarity index 100% rename from cts/pengine/group-unmanaged-stopped.xml rename to cts/scheduler/group-unmanaged-stopped.xml diff --git a/cts/pengine/group-unmanaged.dot b/cts/scheduler/group-unmanaged.dot similarity index 100% rename from cts/pengine/group-unmanaged.dot rename to cts/scheduler/group-unmanaged.dot diff --git a/cts/pengine/group-unmanaged.exp b/cts/scheduler/group-unmanaged.exp similarity index 100% rename from cts/pengine/group-unmanaged.exp rename to cts/scheduler/group-unmanaged.exp diff --git a/cts/pengine/group-unmanaged.scores b/cts/scheduler/group-unmanaged.scores similarity index 100% rename from cts/pengine/group-unmanaged.scores rename to cts/scheduler/group-unmanaged.scores diff --git a/cts/pengine/group-unmanaged.summary b/cts/scheduler/group-unmanaged.summary similarity index 100% rename from cts/pengine/group-unmanaged.summary rename to cts/scheduler/group-unmanaged.summary diff --git a/cts/pengine/group-unmanaged.xml b/cts/scheduler/group-unmanaged.xml similarity index 100% rename from cts/pengine/group-unmanaged.xml rename to cts/scheduler/group-unmanaged.xml diff --git a/cts/pengine/group1.dot b/cts/scheduler/group1.dot similarity index 100% rename from cts/pengine/group1.dot rename to cts/scheduler/group1.dot diff --git a/cts/pengine/group1.exp b/cts/scheduler/group1.exp similarity index 100% rename from cts/pengine/group1.exp rename to cts/scheduler/group1.exp diff --git a/cts/pengine/group1.scores b/cts/scheduler/group1.scores similarity index 100% rename from cts/pengine/group1.scores rename to cts/scheduler/group1.scores diff --git a/cts/pengine/group1.summary b/cts/scheduler/group1.summary similarity index 100% rename from cts/pengine/group1.summary rename to cts/scheduler/group1.summary diff --git a/cts/pengine/group1.te.exp b/cts/scheduler/group1.te.exp similarity index 100% rename from cts/pengine/group1.te.exp rename to cts/scheduler/group1.te.exp diff --git a/cts/pengine/group1.xml b/cts/scheduler/group1.xml similarity index 100% rename from cts/pengine/group1.xml rename to cts/scheduler/group1.xml diff --git a/cts/pengine/group10.dot b/cts/scheduler/group10.dot similarity index 100% rename from cts/pengine/group10.dot rename to cts/scheduler/group10.dot diff --git a/cts/pengine/group10.exp b/cts/scheduler/group10.exp similarity index 100% rename from cts/pengine/group10.exp rename to cts/scheduler/group10.exp diff --git a/cts/pengine/group10.scores b/cts/scheduler/group10.scores similarity index 100% rename from cts/pengine/group10.scores rename to cts/scheduler/group10.scores diff --git a/cts/pengine/group10.summary b/cts/scheduler/group10.summary similarity index 100% rename from cts/pengine/group10.summary rename to cts/scheduler/group10.summary diff --git a/cts/pengine/group10.xml b/cts/scheduler/group10.xml similarity index 100% rename from cts/pengine/group10.xml rename to cts/scheduler/group10.xml diff --git a/cts/pengine/group11.dot b/cts/scheduler/group11.dot similarity index 100% rename from cts/pengine/group11.dot rename to cts/scheduler/group11.dot diff --git a/cts/pengine/group11.exp b/cts/scheduler/group11.exp similarity index 100% rename from cts/pengine/group11.exp rename to cts/scheduler/group11.exp diff --git a/cts/pengine/group11.scores b/cts/scheduler/group11.scores similarity index 100% rename from cts/pengine/group11.scores rename to cts/scheduler/group11.scores diff --git a/cts/pengine/group11.summary b/cts/scheduler/group11.summary similarity index 100% rename from cts/pengine/group11.summary rename to cts/scheduler/group11.summary diff --git a/cts/pengine/group11.xml b/cts/scheduler/group11.xml similarity index 100% rename from cts/pengine/group11.xml rename to cts/scheduler/group11.xml diff --git a/cts/pengine/group13.dot b/cts/scheduler/group13.dot similarity index 100% rename from cts/pengine/group13.dot rename to cts/scheduler/group13.dot diff --git a/cts/pengine/group13.exp b/cts/scheduler/group13.exp similarity index 100% rename from cts/pengine/group13.exp rename to cts/scheduler/group13.exp diff --git a/cts/pengine/group13.scores b/cts/scheduler/group13.scores similarity index 100% rename from cts/pengine/group13.scores rename to cts/scheduler/group13.scores diff --git a/cts/pengine/group13.summary b/cts/scheduler/group13.summary similarity index 100% rename from cts/pengine/group13.summary rename to cts/scheduler/group13.summary diff --git a/cts/pengine/group13.xml b/cts/scheduler/group13.xml similarity index 100% rename from cts/pengine/group13.xml rename to cts/scheduler/group13.xml diff --git a/cts/pengine/group14.dot b/cts/scheduler/group14.dot similarity index 100% rename from cts/pengine/group14.dot rename to cts/scheduler/group14.dot diff --git a/cts/pengine/group14.exp b/cts/scheduler/group14.exp similarity index 100% rename from cts/pengine/group14.exp rename to cts/scheduler/group14.exp diff --git a/cts/pengine/group14.scores b/cts/scheduler/group14.scores similarity index 100% rename from cts/pengine/group14.scores rename to cts/scheduler/group14.scores diff --git a/cts/pengine/group14.summary b/cts/scheduler/group14.summary similarity index 100% rename from cts/pengine/group14.summary rename to cts/scheduler/group14.summary diff --git a/cts/pengine/group14.xml b/cts/scheduler/group14.xml similarity index 100% rename from cts/pengine/group14.xml rename to cts/scheduler/group14.xml diff --git a/cts/pengine/group15.dot b/cts/scheduler/group15.dot similarity index 100% rename from cts/pengine/group15.dot rename to cts/scheduler/group15.dot diff --git a/cts/pengine/group15.exp b/cts/scheduler/group15.exp similarity index 100% rename from cts/pengine/group15.exp rename to cts/scheduler/group15.exp diff --git a/cts/pengine/group15.scores b/cts/scheduler/group15.scores similarity index 100% rename from cts/pengine/group15.scores rename to cts/scheduler/group15.scores diff --git a/cts/pengine/group15.summary b/cts/scheduler/group15.summary similarity index 100% rename from cts/pengine/group15.summary rename to cts/scheduler/group15.summary diff --git a/cts/pengine/group15.xml b/cts/scheduler/group15.xml similarity index 100% rename from cts/pengine/group15.xml rename to cts/scheduler/group15.xml diff --git a/cts/pengine/group2.dot b/cts/scheduler/group2.dot similarity index 100% rename from cts/pengine/group2.dot rename to cts/scheduler/group2.dot diff --git a/cts/pengine/group2.exp b/cts/scheduler/group2.exp similarity index 100% rename from cts/pengine/group2.exp rename to cts/scheduler/group2.exp diff --git a/cts/pengine/group2.scores b/cts/scheduler/group2.scores similarity index 100% rename from cts/pengine/group2.scores rename to cts/scheduler/group2.scores diff --git a/cts/pengine/group2.summary b/cts/scheduler/group2.summary similarity index 100% rename from cts/pengine/group2.summary rename to cts/scheduler/group2.summary diff --git a/cts/pengine/group2.te.exp b/cts/scheduler/group2.te.exp similarity index 100% rename from cts/pengine/group2.te.exp rename to cts/scheduler/group2.te.exp diff --git a/cts/pengine/group2.xml b/cts/scheduler/group2.xml similarity index 100% rename from cts/pengine/group2.xml rename to cts/scheduler/group2.xml diff --git a/cts/pengine/group3.dot b/cts/scheduler/group3.dot similarity index 100% rename from cts/pengine/group3.dot rename to cts/scheduler/group3.dot diff --git a/cts/pengine/group3.exp b/cts/scheduler/group3.exp similarity index 100% rename from cts/pengine/group3.exp rename to cts/scheduler/group3.exp diff --git a/cts/pengine/group3.scores b/cts/scheduler/group3.scores similarity index 100% rename from cts/pengine/group3.scores rename to cts/scheduler/group3.scores diff --git a/cts/pengine/group3.summary b/cts/scheduler/group3.summary similarity index 100% rename from cts/pengine/group3.summary rename to cts/scheduler/group3.summary diff --git a/cts/pengine/group3.te.exp b/cts/scheduler/group3.te.exp similarity index 100% rename from cts/pengine/group3.te.exp rename to cts/scheduler/group3.te.exp diff --git a/cts/pengine/group3.xml b/cts/scheduler/group3.xml similarity index 100% rename from cts/pengine/group3.xml rename to cts/scheduler/group3.xml diff --git a/cts/pengine/group4.dot b/cts/scheduler/group4.dot similarity index 100% rename from cts/pengine/group4.dot rename to cts/scheduler/group4.dot diff --git a/cts/pengine/group4.exp b/cts/scheduler/group4.exp similarity index 100% rename from cts/pengine/group4.exp rename to cts/scheduler/group4.exp diff --git a/cts/pengine/group4.scores b/cts/scheduler/group4.scores similarity index 100% rename from cts/pengine/group4.scores rename to cts/scheduler/group4.scores diff --git a/cts/pengine/group4.summary b/cts/scheduler/group4.summary similarity index 100% rename from cts/pengine/group4.summary rename to cts/scheduler/group4.summary diff --git a/cts/pengine/group4.te.exp b/cts/scheduler/group4.te.exp similarity index 100% rename from cts/pengine/group4.te.exp rename to cts/scheduler/group4.te.exp diff --git a/cts/pengine/group4.xml b/cts/scheduler/group4.xml similarity index 100% rename from cts/pengine/group4.xml rename to cts/scheduler/group4.xml diff --git a/cts/pengine/group5.dot b/cts/scheduler/group5.dot similarity index 100% rename from cts/pengine/group5.dot rename to cts/scheduler/group5.dot diff --git a/cts/pengine/group5.exp b/cts/scheduler/group5.exp similarity index 100% rename from cts/pengine/group5.exp rename to cts/scheduler/group5.exp diff --git a/cts/pengine/group5.scores b/cts/scheduler/group5.scores similarity index 100% rename from cts/pengine/group5.scores rename to cts/scheduler/group5.scores diff --git a/cts/pengine/group5.summary b/cts/scheduler/group5.summary similarity index 100% rename from cts/pengine/group5.summary rename to cts/scheduler/group5.summary diff --git a/cts/pengine/group5.te.exp b/cts/scheduler/group5.te.exp similarity index 100% rename from cts/pengine/group5.te.exp rename to cts/scheduler/group5.te.exp diff --git a/cts/pengine/group5.xml b/cts/scheduler/group5.xml similarity index 100% rename from cts/pengine/group5.xml rename to cts/scheduler/group5.xml diff --git a/cts/pengine/group6.dot b/cts/scheduler/group6.dot similarity index 100% rename from cts/pengine/group6.dot rename to cts/scheduler/group6.dot diff --git a/cts/pengine/group6.exp b/cts/scheduler/group6.exp similarity index 100% rename from cts/pengine/group6.exp rename to cts/scheduler/group6.exp diff --git a/cts/pengine/group6.scores b/cts/scheduler/group6.scores similarity index 100% rename from cts/pengine/group6.scores rename to cts/scheduler/group6.scores diff --git a/cts/pengine/group6.summary b/cts/scheduler/group6.summary similarity index 100% rename from cts/pengine/group6.summary rename to cts/scheduler/group6.summary diff --git a/cts/pengine/group6.te.exp b/cts/scheduler/group6.te.exp similarity index 100% rename from cts/pengine/group6.te.exp rename to cts/scheduler/group6.te.exp diff --git a/cts/pengine/group6.xml b/cts/scheduler/group6.xml similarity index 100% rename from cts/pengine/group6.xml rename to cts/scheduler/group6.xml diff --git a/cts/pengine/group7.dot b/cts/scheduler/group7.dot similarity index 100% rename from cts/pengine/group7.dot rename to cts/scheduler/group7.dot diff --git a/cts/pengine/group7.exp b/cts/scheduler/group7.exp similarity index 100% rename from cts/pengine/group7.exp rename to cts/scheduler/group7.exp diff --git a/cts/pengine/group7.scores b/cts/scheduler/group7.scores similarity index 100% rename from cts/pengine/group7.scores rename to cts/scheduler/group7.scores diff --git a/cts/pengine/group7.summary b/cts/scheduler/group7.summary similarity index 100% rename from cts/pengine/group7.summary rename to cts/scheduler/group7.summary diff --git a/cts/pengine/group7.xml b/cts/scheduler/group7.xml similarity index 100% rename from cts/pengine/group7.xml rename to cts/scheduler/group7.xml diff --git a/cts/pengine/group8.dot b/cts/scheduler/group8.dot similarity index 100% rename from cts/pengine/group8.dot rename to cts/scheduler/group8.dot diff --git a/cts/pengine/group8.exp b/cts/scheduler/group8.exp similarity index 100% rename from cts/pengine/group8.exp rename to cts/scheduler/group8.exp diff --git a/cts/pengine/group8.scores b/cts/scheduler/group8.scores similarity index 100% rename from cts/pengine/group8.scores rename to cts/scheduler/group8.scores diff --git a/cts/pengine/group8.summary b/cts/scheduler/group8.summary similarity index 100% rename from cts/pengine/group8.summary rename to cts/scheduler/group8.summary diff --git a/cts/pengine/group8.xml b/cts/scheduler/group8.xml similarity index 100% rename from cts/pengine/group8.xml rename to cts/scheduler/group8.xml diff --git a/cts/pengine/group9.dot b/cts/scheduler/group9.dot similarity index 100% rename from cts/pengine/group9.dot rename to cts/scheduler/group9.dot diff --git a/cts/pengine/group9.exp b/cts/scheduler/group9.exp similarity index 100% rename from cts/pengine/group9.exp rename to cts/scheduler/group9.exp diff --git a/cts/pengine/group9.scores b/cts/scheduler/group9.scores similarity index 100% rename from cts/pengine/group9.scores rename to cts/scheduler/group9.scores diff --git a/cts/pengine/group9.summary b/cts/scheduler/group9.summary similarity index 100% rename from cts/pengine/group9.summary rename to cts/scheduler/group9.summary diff --git a/cts/pengine/group9.xml b/cts/scheduler/group9.xml similarity index 100% rename from cts/pengine/group9.xml rename to cts/scheduler/group9.xml diff --git a/cts/pengine/guest-node-host-dies.dot b/cts/scheduler/guest-node-host-dies.dot similarity index 100% rename from cts/pengine/guest-node-host-dies.dot rename to cts/scheduler/guest-node-host-dies.dot diff --git a/cts/pengine/guest-node-host-dies.exp b/cts/scheduler/guest-node-host-dies.exp similarity index 100% rename from cts/pengine/guest-node-host-dies.exp rename to cts/scheduler/guest-node-host-dies.exp diff --git a/cts/pengine/guest-node-host-dies.scores b/cts/scheduler/guest-node-host-dies.scores similarity index 100% rename from cts/pengine/guest-node-host-dies.scores rename to cts/scheduler/guest-node-host-dies.scores diff --git a/cts/pengine/guest-node-host-dies.summary b/cts/scheduler/guest-node-host-dies.summary similarity index 100% rename from cts/pengine/guest-node-host-dies.summary rename to cts/scheduler/guest-node-host-dies.summary diff --git a/cts/pengine/guest-node-host-dies.xml b/cts/scheduler/guest-node-host-dies.xml similarity index 100% rename from cts/pengine/guest-node-host-dies.xml rename to cts/scheduler/guest-node-host-dies.xml diff --git a/cts/pengine/history-1.dot b/cts/scheduler/history-1.dot similarity index 100% rename from cts/pengine/history-1.dot rename to cts/scheduler/history-1.dot diff --git a/cts/pengine/history-1.exp b/cts/scheduler/history-1.exp similarity index 100% rename from cts/pengine/history-1.exp rename to cts/scheduler/history-1.exp diff --git a/cts/pengine/history-1.scores b/cts/scheduler/history-1.scores similarity index 100% rename from cts/pengine/history-1.scores rename to cts/scheduler/history-1.scores diff --git a/cts/pengine/history-1.summary b/cts/scheduler/history-1.summary similarity index 100% rename from cts/pengine/history-1.summary rename to cts/scheduler/history-1.summary diff --git a/cts/pengine/history-1.xml b/cts/scheduler/history-1.xml similarity index 100% rename from cts/pengine/history-1.xml rename to cts/scheduler/history-1.xml diff --git a/cts/pengine/honor_stonith_rsc_order1.dot b/cts/scheduler/honor_stonith_rsc_order1.dot similarity index 100% rename from cts/pengine/honor_stonith_rsc_order1.dot rename to cts/scheduler/honor_stonith_rsc_order1.dot diff --git a/cts/pengine/honor_stonith_rsc_order1.exp b/cts/scheduler/honor_stonith_rsc_order1.exp similarity index 100% rename from cts/pengine/honor_stonith_rsc_order1.exp rename to cts/scheduler/honor_stonith_rsc_order1.exp diff --git a/cts/pengine/honor_stonith_rsc_order1.scores b/cts/scheduler/honor_stonith_rsc_order1.scores similarity index 100% rename from cts/pengine/honor_stonith_rsc_order1.scores rename to cts/scheduler/honor_stonith_rsc_order1.scores diff --git a/cts/pengine/honor_stonith_rsc_order1.summary b/cts/scheduler/honor_stonith_rsc_order1.summary similarity index 100% rename from cts/pengine/honor_stonith_rsc_order1.summary rename to cts/scheduler/honor_stonith_rsc_order1.summary diff --git a/cts/pengine/honor_stonith_rsc_order1.xml b/cts/scheduler/honor_stonith_rsc_order1.xml similarity index 100% rename from cts/pengine/honor_stonith_rsc_order1.xml rename to cts/scheduler/honor_stonith_rsc_order1.xml diff --git a/cts/pengine/honor_stonith_rsc_order2.dot b/cts/scheduler/honor_stonith_rsc_order2.dot similarity index 100% rename from cts/pengine/honor_stonith_rsc_order2.dot rename to cts/scheduler/honor_stonith_rsc_order2.dot diff --git a/cts/pengine/honor_stonith_rsc_order2.exp b/cts/scheduler/honor_stonith_rsc_order2.exp similarity index 100% rename from cts/pengine/honor_stonith_rsc_order2.exp rename to cts/scheduler/honor_stonith_rsc_order2.exp diff --git a/cts/pengine/honor_stonith_rsc_order2.scores b/cts/scheduler/honor_stonith_rsc_order2.scores similarity index 100% rename from cts/pengine/honor_stonith_rsc_order2.scores rename to cts/scheduler/honor_stonith_rsc_order2.scores diff --git a/cts/pengine/honor_stonith_rsc_order2.summary b/cts/scheduler/honor_stonith_rsc_order2.summary similarity index 100% rename from cts/pengine/honor_stonith_rsc_order2.summary rename to cts/scheduler/honor_stonith_rsc_order2.summary diff --git a/cts/pengine/honor_stonith_rsc_order2.xml b/cts/scheduler/honor_stonith_rsc_order2.xml similarity index 100% rename from cts/pengine/honor_stonith_rsc_order2.xml rename to cts/scheduler/honor_stonith_rsc_order2.xml diff --git a/cts/pengine/honor_stonith_rsc_order3.dot b/cts/scheduler/honor_stonith_rsc_order3.dot similarity index 100% rename from cts/pengine/honor_stonith_rsc_order3.dot rename to cts/scheduler/honor_stonith_rsc_order3.dot diff --git a/cts/pengine/honor_stonith_rsc_order3.exp b/cts/scheduler/honor_stonith_rsc_order3.exp similarity index 100% rename from cts/pengine/honor_stonith_rsc_order3.exp rename to cts/scheduler/honor_stonith_rsc_order3.exp diff --git a/cts/pengine/honor_stonith_rsc_order3.scores b/cts/scheduler/honor_stonith_rsc_order3.scores similarity index 100% rename from cts/pengine/honor_stonith_rsc_order3.scores rename to cts/scheduler/honor_stonith_rsc_order3.scores diff --git a/cts/pengine/honor_stonith_rsc_order3.summary b/cts/scheduler/honor_stonith_rsc_order3.summary similarity index 100% rename from cts/pengine/honor_stonith_rsc_order3.summary rename to cts/scheduler/honor_stonith_rsc_order3.summary diff --git a/cts/pengine/honor_stonith_rsc_order3.xml b/cts/scheduler/honor_stonith_rsc_order3.xml similarity index 100% rename from cts/pengine/honor_stonith_rsc_order3.xml rename to cts/scheduler/honor_stonith_rsc_order3.xml diff --git a/cts/pengine/honor_stonith_rsc_order4.dot b/cts/scheduler/honor_stonith_rsc_order4.dot similarity index 100% rename from cts/pengine/honor_stonith_rsc_order4.dot rename to cts/scheduler/honor_stonith_rsc_order4.dot diff --git a/cts/pengine/honor_stonith_rsc_order4.exp b/cts/scheduler/honor_stonith_rsc_order4.exp similarity index 100% rename from cts/pengine/honor_stonith_rsc_order4.exp rename to cts/scheduler/honor_stonith_rsc_order4.exp diff --git a/cts/pengine/honor_stonith_rsc_order4.scores b/cts/scheduler/honor_stonith_rsc_order4.scores similarity index 100% rename from cts/pengine/honor_stonith_rsc_order4.scores rename to cts/scheduler/honor_stonith_rsc_order4.scores diff --git a/cts/pengine/honor_stonith_rsc_order4.summary b/cts/scheduler/honor_stonith_rsc_order4.summary similarity index 100% rename from cts/pengine/honor_stonith_rsc_order4.summary rename to cts/scheduler/honor_stonith_rsc_order4.summary diff --git a/cts/pengine/honor_stonith_rsc_order4.xml b/cts/scheduler/honor_stonith_rsc_order4.xml similarity index 100% rename from cts/pengine/honor_stonith_rsc_order4.xml rename to cts/scheduler/honor_stonith_rsc_order4.xml diff --git a/cts/pengine/ignore_stonith_rsc_order1.dot b/cts/scheduler/ignore_stonith_rsc_order1.dot similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order1.dot rename to cts/scheduler/ignore_stonith_rsc_order1.dot diff --git a/cts/pengine/ignore_stonith_rsc_order1.exp b/cts/scheduler/ignore_stonith_rsc_order1.exp similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order1.exp rename to cts/scheduler/ignore_stonith_rsc_order1.exp diff --git a/cts/pengine/ignore_stonith_rsc_order1.scores b/cts/scheduler/ignore_stonith_rsc_order1.scores similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order1.scores rename to cts/scheduler/ignore_stonith_rsc_order1.scores diff --git a/cts/pengine/ignore_stonith_rsc_order1.summary b/cts/scheduler/ignore_stonith_rsc_order1.summary similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order1.summary rename to cts/scheduler/ignore_stonith_rsc_order1.summary diff --git a/cts/pengine/ignore_stonith_rsc_order1.xml b/cts/scheduler/ignore_stonith_rsc_order1.xml similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order1.xml rename to cts/scheduler/ignore_stonith_rsc_order1.xml diff --git a/cts/pengine/ignore_stonith_rsc_order2.dot b/cts/scheduler/ignore_stonith_rsc_order2.dot similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order2.dot rename to cts/scheduler/ignore_stonith_rsc_order2.dot diff --git a/cts/pengine/ignore_stonith_rsc_order2.exp b/cts/scheduler/ignore_stonith_rsc_order2.exp similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order2.exp rename to cts/scheduler/ignore_stonith_rsc_order2.exp diff --git a/cts/pengine/ignore_stonith_rsc_order2.scores b/cts/scheduler/ignore_stonith_rsc_order2.scores similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order2.scores rename to cts/scheduler/ignore_stonith_rsc_order2.scores diff --git a/cts/pengine/ignore_stonith_rsc_order2.summary b/cts/scheduler/ignore_stonith_rsc_order2.summary similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order2.summary rename to cts/scheduler/ignore_stonith_rsc_order2.summary diff --git a/cts/pengine/ignore_stonith_rsc_order2.xml b/cts/scheduler/ignore_stonith_rsc_order2.xml similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order2.xml rename to cts/scheduler/ignore_stonith_rsc_order2.xml diff --git a/cts/pengine/ignore_stonith_rsc_order3.dot b/cts/scheduler/ignore_stonith_rsc_order3.dot similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order3.dot rename to cts/scheduler/ignore_stonith_rsc_order3.dot diff --git a/cts/pengine/ignore_stonith_rsc_order3.exp b/cts/scheduler/ignore_stonith_rsc_order3.exp similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order3.exp rename to cts/scheduler/ignore_stonith_rsc_order3.exp diff --git a/cts/pengine/ignore_stonith_rsc_order3.scores b/cts/scheduler/ignore_stonith_rsc_order3.scores similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order3.scores rename to cts/scheduler/ignore_stonith_rsc_order3.scores diff --git a/cts/pengine/ignore_stonith_rsc_order3.summary b/cts/scheduler/ignore_stonith_rsc_order3.summary similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order3.summary rename to cts/scheduler/ignore_stonith_rsc_order3.summary diff --git a/cts/pengine/ignore_stonith_rsc_order3.xml b/cts/scheduler/ignore_stonith_rsc_order3.xml similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order3.xml rename to cts/scheduler/ignore_stonith_rsc_order3.xml diff --git a/cts/pengine/ignore_stonith_rsc_order4.dot b/cts/scheduler/ignore_stonith_rsc_order4.dot similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order4.dot rename to cts/scheduler/ignore_stonith_rsc_order4.dot diff --git a/cts/pengine/ignore_stonith_rsc_order4.exp b/cts/scheduler/ignore_stonith_rsc_order4.exp similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order4.exp rename to cts/scheduler/ignore_stonith_rsc_order4.exp diff --git a/cts/pengine/ignore_stonith_rsc_order4.scores b/cts/scheduler/ignore_stonith_rsc_order4.scores similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order4.scores rename to cts/scheduler/ignore_stonith_rsc_order4.scores diff --git a/cts/pengine/ignore_stonith_rsc_order4.summary b/cts/scheduler/ignore_stonith_rsc_order4.summary similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order4.summary rename to cts/scheduler/ignore_stonith_rsc_order4.summary diff --git a/cts/pengine/ignore_stonith_rsc_order4.xml b/cts/scheduler/ignore_stonith_rsc_order4.xml similarity index 100% rename from cts/pengine/ignore_stonith_rsc_order4.xml rename to cts/scheduler/ignore_stonith_rsc_order4.xml diff --git a/cts/pengine/inc0.dot b/cts/scheduler/inc0.dot similarity index 100% rename from cts/pengine/inc0.dot rename to cts/scheduler/inc0.dot diff --git a/cts/pengine/inc0.exp b/cts/scheduler/inc0.exp similarity index 100% rename from cts/pengine/inc0.exp rename to cts/scheduler/inc0.exp diff --git a/cts/pengine/inc0.scores b/cts/scheduler/inc0.scores similarity index 100% rename from cts/pengine/inc0.scores rename to cts/scheduler/inc0.scores diff --git a/cts/pengine/inc0.summary b/cts/scheduler/inc0.summary similarity index 100% rename from cts/pengine/inc0.summary rename to cts/scheduler/inc0.summary diff --git a/cts/pengine/inc0.te.exp b/cts/scheduler/inc0.te.exp similarity index 100% rename from cts/pengine/inc0.te.exp rename to cts/scheduler/inc0.te.exp diff --git a/cts/pengine/inc0.xml b/cts/scheduler/inc0.xml similarity index 100% rename from cts/pengine/inc0.xml rename to cts/scheduler/inc0.xml diff --git a/cts/pengine/inc1.dot b/cts/scheduler/inc1.dot similarity index 100% rename from cts/pengine/inc1.dot rename to cts/scheduler/inc1.dot diff --git a/cts/pengine/inc1.exp b/cts/scheduler/inc1.exp similarity index 100% rename from cts/pengine/inc1.exp rename to cts/scheduler/inc1.exp diff --git a/cts/pengine/inc1.scores b/cts/scheduler/inc1.scores similarity index 100% rename from cts/pengine/inc1.scores rename to cts/scheduler/inc1.scores diff --git a/cts/pengine/inc1.summary b/cts/scheduler/inc1.summary similarity index 100% rename from cts/pengine/inc1.summary rename to cts/scheduler/inc1.summary diff --git a/cts/pengine/inc1.te.exp b/cts/scheduler/inc1.te.exp similarity index 100% rename from cts/pengine/inc1.te.exp rename to cts/scheduler/inc1.te.exp diff --git a/cts/pengine/inc1.xml b/cts/scheduler/inc1.xml similarity index 100% rename from cts/pengine/inc1.xml rename to cts/scheduler/inc1.xml diff --git a/cts/pengine/inc10.dot b/cts/scheduler/inc10.dot similarity index 100% rename from cts/pengine/inc10.dot rename to cts/scheduler/inc10.dot diff --git a/cts/pengine/inc10.exp b/cts/scheduler/inc10.exp similarity index 100% rename from cts/pengine/inc10.exp rename to cts/scheduler/inc10.exp diff --git a/cts/pengine/inc10.scores b/cts/scheduler/inc10.scores similarity index 100% rename from cts/pengine/inc10.scores rename to cts/scheduler/inc10.scores diff --git a/cts/pengine/inc10.summary b/cts/scheduler/inc10.summary similarity index 100% rename from cts/pengine/inc10.summary rename to cts/scheduler/inc10.summary diff --git a/cts/pengine/inc10.xml b/cts/scheduler/inc10.xml similarity index 100% rename from cts/pengine/inc10.xml rename to cts/scheduler/inc10.xml diff --git a/cts/pengine/inc11.dot b/cts/scheduler/inc11.dot similarity index 100% rename from cts/pengine/inc11.dot rename to cts/scheduler/inc11.dot diff --git a/cts/pengine/inc11.exp b/cts/scheduler/inc11.exp similarity index 100% rename from cts/pengine/inc11.exp rename to cts/scheduler/inc11.exp diff --git a/cts/pengine/inc11.scores b/cts/scheduler/inc11.scores similarity index 100% rename from cts/pengine/inc11.scores rename to cts/scheduler/inc11.scores diff --git a/cts/pengine/inc11.summary b/cts/scheduler/inc11.summary similarity index 100% rename from cts/pengine/inc11.summary rename to cts/scheduler/inc11.summary diff --git a/cts/pengine/inc11.xml b/cts/scheduler/inc11.xml similarity index 100% rename from cts/pengine/inc11.xml rename to cts/scheduler/inc11.xml diff --git a/cts/pengine/inc12.dot b/cts/scheduler/inc12.dot similarity index 100% rename from cts/pengine/inc12.dot rename to cts/scheduler/inc12.dot diff --git a/cts/pengine/inc12.exp b/cts/scheduler/inc12.exp similarity index 100% rename from cts/pengine/inc12.exp rename to cts/scheduler/inc12.exp diff --git a/cts/pengine/inc12.scores b/cts/scheduler/inc12.scores similarity index 100% rename from cts/pengine/inc12.scores rename to cts/scheduler/inc12.scores diff --git a/cts/pengine/inc12.summary b/cts/scheduler/inc12.summary similarity index 100% rename from cts/pengine/inc12.summary rename to cts/scheduler/inc12.summary diff --git a/cts/pengine/inc12.xml b/cts/scheduler/inc12.xml similarity index 100% rename from cts/pengine/inc12.xml rename to cts/scheduler/inc12.xml diff --git a/cts/pengine/inc2.dot b/cts/scheduler/inc2.dot similarity index 100% rename from cts/pengine/inc2.dot rename to cts/scheduler/inc2.dot diff --git a/cts/pengine/inc2.exp b/cts/scheduler/inc2.exp similarity index 100% rename from cts/pengine/inc2.exp rename to cts/scheduler/inc2.exp diff --git a/cts/pengine/inc2.scores b/cts/scheduler/inc2.scores similarity index 100% rename from cts/pengine/inc2.scores rename to cts/scheduler/inc2.scores diff --git a/cts/pengine/inc2.summary b/cts/scheduler/inc2.summary similarity index 100% rename from cts/pengine/inc2.summary rename to cts/scheduler/inc2.summary diff --git a/cts/pengine/inc2.te.exp b/cts/scheduler/inc2.te.exp similarity index 100% rename from cts/pengine/inc2.te.exp rename to cts/scheduler/inc2.te.exp diff --git a/cts/pengine/inc2.xml b/cts/scheduler/inc2.xml similarity index 100% rename from cts/pengine/inc2.xml rename to cts/scheduler/inc2.xml diff --git a/cts/pengine/inc3.dot b/cts/scheduler/inc3.dot similarity index 100% rename from cts/pengine/inc3.dot rename to cts/scheduler/inc3.dot diff --git a/cts/pengine/inc3.exp b/cts/scheduler/inc3.exp similarity index 100% rename from cts/pengine/inc3.exp rename to cts/scheduler/inc3.exp diff --git a/cts/pengine/inc3.scores b/cts/scheduler/inc3.scores similarity index 100% rename from cts/pengine/inc3.scores rename to cts/scheduler/inc3.scores diff --git a/cts/pengine/inc3.summary b/cts/scheduler/inc3.summary similarity index 100% rename from cts/pengine/inc3.summary rename to cts/scheduler/inc3.summary diff --git a/cts/pengine/inc3.te.exp b/cts/scheduler/inc3.te.exp similarity index 100% rename from cts/pengine/inc3.te.exp rename to cts/scheduler/inc3.te.exp diff --git a/cts/pengine/inc3.xml b/cts/scheduler/inc3.xml similarity index 100% rename from cts/pengine/inc3.xml rename to cts/scheduler/inc3.xml diff --git a/cts/pengine/inc4.dot b/cts/scheduler/inc4.dot similarity index 100% rename from cts/pengine/inc4.dot rename to cts/scheduler/inc4.dot diff --git a/cts/pengine/inc4.exp b/cts/scheduler/inc4.exp similarity index 100% rename from cts/pengine/inc4.exp rename to cts/scheduler/inc4.exp diff --git a/cts/pengine/inc4.scores b/cts/scheduler/inc4.scores similarity index 100% rename from cts/pengine/inc4.scores rename to cts/scheduler/inc4.scores diff --git a/cts/pengine/inc4.summary b/cts/scheduler/inc4.summary similarity index 100% rename from cts/pengine/inc4.summary rename to cts/scheduler/inc4.summary diff --git a/cts/pengine/inc4.te.exp b/cts/scheduler/inc4.te.exp similarity index 100% rename from cts/pengine/inc4.te.exp rename to cts/scheduler/inc4.te.exp diff --git a/cts/pengine/inc4.xml b/cts/scheduler/inc4.xml similarity index 100% rename from cts/pengine/inc4.xml rename to cts/scheduler/inc4.xml diff --git a/cts/pengine/inc5.dot b/cts/scheduler/inc5.dot similarity index 100% rename from cts/pengine/inc5.dot rename to cts/scheduler/inc5.dot diff --git a/cts/pengine/inc5.exp b/cts/scheduler/inc5.exp similarity index 100% rename from cts/pengine/inc5.exp rename to cts/scheduler/inc5.exp diff --git a/cts/pengine/inc5.scores b/cts/scheduler/inc5.scores similarity index 100% rename from cts/pengine/inc5.scores rename to cts/scheduler/inc5.scores diff --git a/cts/pengine/inc5.summary b/cts/scheduler/inc5.summary similarity index 100% rename from cts/pengine/inc5.summary rename to cts/scheduler/inc5.summary diff --git a/cts/pengine/inc5.te.exp b/cts/scheduler/inc5.te.exp similarity index 100% rename from cts/pengine/inc5.te.exp rename to cts/scheduler/inc5.te.exp diff --git a/cts/pengine/inc5.xml b/cts/scheduler/inc5.xml similarity index 100% rename from cts/pengine/inc5.xml rename to cts/scheduler/inc5.xml diff --git a/cts/pengine/inc6.dot b/cts/scheduler/inc6.dot similarity index 100% rename from cts/pengine/inc6.dot rename to cts/scheduler/inc6.dot diff --git a/cts/pengine/inc6.exp b/cts/scheduler/inc6.exp similarity index 100% rename from cts/pengine/inc6.exp rename to cts/scheduler/inc6.exp diff --git a/cts/pengine/inc6.scores b/cts/scheduler/inc6.scores similarity index 100% rename from cts/pengine/inc6.scores rename to cts/scheduler/inc6.scores diff --git a/cts/pengine/inc6.summary b/cts/scheduler/inc6.summary similarity index 100% rename from cts/pengine/inc6.summary rename to cts/scheduler/inc6.summary diff --git a/cts/pengine/inc6.te.exp b/cts/scheduler/inc6.te.exp similarity index 100% rename from cts/pengine/inc6.te.exp rename to cts/scheduler/inc6.te.exp diff --git a/cts/pengine/inc6.xml b/cts/scheduler/inc6.xml similarity index 100% rename from cts/pengine/inc6.xml rename to cts/scheduler/inc6.xml diff --git a/cts/pengine/inc7.dot b/cts/scheduler/inc7.dot similarity index 100% rename from cts/pengine/inc7.dot rename to cts/scheduler/inc7.dot diff --git a/cts/pengine/inc7.exp b/cts/scheduler/inc7.exp similarity index 100% rename from cts/pengine/inc7.exp rename to cts/scheduler/inc7.exp diff --git a/cts/pengine/inc7.scores b/cts/scheduler/inc7.scores similarity index 100% rename from cts/pengine/inc7.scores rename to cts/scheduler/inc7.scores diff --git a/cts/pengine/inc7.summary b/cts/scheduler/inc7.summary similarity index 100% rename from cts/pengine/inc7.summary rename to cts/scheduler/inc7.summary diff --git a/cts/pengine/inc7.xml b/cts/scheduler/inc7.xml similarity index 100% rename from cts/pengine/inc7.xml rename to cts/scheduler/inc7.xml diff --git a/cts/pengine/inc8.dot b/cts/scheduler/inc8.dot similarity index 100% rename from cts/pengine/inc8.dot rename to cts/scheduler/inc8.dot diff --git a/cts/pengine/inc8.exp b/cts/scheduler/inc8.exp similarity index 100% rename from cts/pengine/inc8.exp rename to cts/scheduler/inc8.exp diff --git a/cts/pengine/inc8.scores b/cts/scheduler/inc8.scores similarity index 100% rename from cts/pengine/inc8.scores rename to cts/scheduler/inc8.scores diff --git a/cts/pengine/inc8.summary b/cts/scheduler/inc8.summary similarity index 100% rename from cts/pengine/inc8.summary rename to cts/scheduler/inc8.summary diff --git a/cts/pengine/inc8.xml b/cts/scheduler/inc8.xml similarity index 100% rename from cts/pengine/inc8.xml rename to cts/scheduler/inc8.xml diff --git a/cts/pengine/inc9.dot b/cts/scheduler/inc9.dot similarity index 100% rename from cts/pengine/inc9.dot rename to cts/scheduler/inc9.dot diff --git a/cts/pengine/inc9.exp b/cts/scheduler/inc9.exp similarity index 100% rename from cts/pengine/inc9.exp rename to cts/scheduler/inc9.exp diff --git a/cts/pengine/inc9.scores b/cts/scheduler/inc9.scores similarity index 100% rename from cts/pengine/inc9.scores rename to cts/scheduler/inc9.scores diff --git a/cts/pengine/inc9.summary b/cts/scheduler/inc9.summary similarity index 100% rename from cts/pengine/inc9.summary rename to cts/scheduler/inc9.summary diff --git a/cts/pengine/inc9.xml b/cts/scheduler/inc9.xml similarity index 100% rename from cts/pengine/inc9.xml rename to cts/scheduler/inc9.xml diff --git a/cts/pengine/interleave-0.dot b/cts/scheduler/interleave-0.dot similarity index 100% rename from cts/pengine/interleave-0.dot rename to cts/scheduler/interleave-0.dot diff --git a/cts/pengine/interleave-0.exp b/cts/scheduler/interleave-0.exp similarity index 100% rename from cts/pengine/interleave-0.exp rename to cts/scheduler/interleave-0.exp diff --git a/cts/pengine/interleave-0.scores b/cts/scheduler/interleave-0.scores similarity index 100% rename from cts/pengine/interleave-0.scores rename to cts/scheduler/interleave-0.scores diff --git a/cts/pengine/interleave-0.summary b/cts/scheduler/interleave-0.summary similarity index 100% rename from cts/pengine/interleave-0.summary rename to cts/scheduler/interleave-0.summary diff --git a/cts/pengine/interleave-0.xml b/cts/scheduler/interleave-0.xml similarity index 100% rename from cts/pengine/interleave-0.xml rename to cts/scheduler/interleave-0.xml diff --git a/cts/pengine/interleave-1.dot b/cts/scheduler/interleave-1.dot similarity index 100% rename from cts/pengine/interleave-1.dot rename to cts/scheduler/interleave-1.dot diff --git a/cts/pengine/interleave-1.exp b/cts/scheduler/interleave-1.exp similarity index 100% rename from cts/pengine/interleave-1.exp rename to cts/scheduler/interleave-1.exp diff --git a/cts/pengine/interleave-1.scores b/cts/scheduler/interleave-1.scores similarity index 100% rename from cts/pengine/interleave-1.scores rename to cts/scheduler/interleave-1.scores diff --git a/cts/pengine/interleave-1.summary b/cts/scheduler/interleave-1.summary similarity index 100% rename from cts/pengine/interleave-1.summary rename to cts/scheduler/interleave-1.summary diff --git a/cts/pengine/interleave-1.xml b/cts/scheduler/interleave-1.xml similarity index 100% rename from cts/pengine/interleave-1.xml rename to cts/scheduler/interleave-1.xml diff --git a/cts/pengine/interleave-2.dot b/cts/scheduler/interleave-2.dot similarity index 100% rename from cts/pengine/interleave-2.dot rename to cts/scheduler/interleave-2.dot diff --git a/cts/pengine/interleave-2.exp b/cts/scheduler/interleave-2.exp similarity index 100% rename from cts/pengine/interleave-2.exp rename to cts/scheduler/interleave-2.exp diff --git a/cts/pengine/interleave-2.scores b/cts/scheduler/interleave-2.scores similarity index 100% rename from cts/pengine/interleave-2.scores rename to cts/scheduler/interleave-2.scores diff --git a/cts/pengine/interleave-2.summary b/cts/scheduler/interleave-2.summary similarity index 100% rename from cts/pengine/interleave-2.summary rename to cts/scheduler/interleave-2.summary diff --git a/cts/pengine/interleave-2.xml b/cts/scheduler/interleave-2.xml similarity index 100% rename from cts/pengine/interleave-2.xml rename to cts/scheduler/interleave-2.xml diff --git a/cts/pengine/interleave-3.dot b/cts/scheduler/interleave-3.dot similarity index 100% rename from cts/pengine/interleave-3.dot rename to cts/scheduler/interleave-3.dot diff --git a/cts/pengine/interleave-3.exp b/cts/scheduler/interleave-3.exp similarity index 100% rename from cts/pengine/interleave-3.exp rename to cts/scheduler/interleave-3.exp diff --git a/cts/pengine/interleave-3.scores b/cts/scheduler/interleave-3.scores similarity index 100% rename from cts/pengine/interleave-3.scores rename to cts/scheduler/interleave-3.scores diff --git a/cts/pengine/interleave-3.summary b/cts/scheduler/interleave-3.summary similarity index 100% rename from cts/pengine/interleave-3.summary rename to cts/scheduler/interleave-3.summary diff --git a/cts/pengine/interleave-3.xml b/cts/scheduler/interleave-3.xml similarity index 100% rename from cts/pengine/interleave-3.xml rename to cts/scheduler/interleave-3.xml diff --git a/cts/pengine/interleave-pseudo-stop.dot b/cts/scheduler/interleave-pseudo-stop.dot similarity index 100% rename from cts/pengine/interleave-pseudo-stop.dot rename to cts/scheduler/interleave-pseudo-stop.dot diff --git a/cts/pengine/interleave-pseudo-stop.exp b/cts/scheduler/interleave-pseudo-stop.exp similarity index 100% rename from cts/pengine/interleave-pseudo-stop.exp rename to cts/scheduler/interleave-pseudo-stop.exp diff --git a/cts/pengine/interleave-pseudo-stop.scores b/cts/scheduler/interleave-pseudo-stop.scores similarity index 100% rename from cts/pengine/interleave-pseudo-stop.scores rename to cts/scheduler/interleave-pseudo-stop.scores diff --git a/cts/pengine/interleave-pseudo-stop.summary b/cts/scheduler/interleave-pseudo-stop.summary similarity index 100% rename from cts/pengine/interleave-pseudo-stop.summary rename to cts/scheduler/interleave-pseudo-stop.summary diff --git a/cts/pengine/interleave-pseudo-stop.xml b/cts/scheduler/interleave-pseudo-stop.xml similarity index 100% rename from cts/pengine/interleave-pseudo-stop.xml rename to cts/scheduler/interleave-pseudo-stop.xml diff --git a/cts/pengine/interleave-restart.dot b/cts/scheduler/interleave-restart.dot similarity index 100% rename from cts/pengine/interleave-restart.dot rename to cts/scheduler/interleave-restart.dot diff --git a/cts/pengine/interleave-restart.exp b/cts/scheduler/interleave-restart.exp similarity index 100% rename from cts/pengine/interleave-restart.exp rename to cts/scheduler/interleave-restart.exp diff --git a/cts/pengine/interleave-restart.scores b/cts/scheduler/interleave-restart.scores similarity index 100% rename from cts/pengine/interleave-restart.scores rename to cts/scheduler/interleave-restart.scores diff --git a/cts/pengine/interleave-restart.summary b/cts/scheduler/interleave-restart.summary similarity index 100% rename from cts/pengine/interleave-restart.summary rename to cts/scheduler/interleave-restart.summary diff --git a/cts/pengine/interleave-restart.xml b/cts/scheduler/interleave-restart.xml similarity index 100% rename from cts/pengine/interleave-restart.xml rename to cts/scheduler/interleave-restart.xml diff --git a/cts/pengine/interleave-stop.dot b/cts/scheduler/interleave-stop.dot similarity index 100% rename from cts/pengine/interleave-stop.dot rename to cts/scheduler/interleave-stop.dot diff --git a/cts/pengine/interleave-stop.exp b/cts/scheduler/interleave-stop.exp similarity index 100% rename from cts/pengine/interleave-stop.exp rename to cts/scheduler/interleave-stop.exp diff --git a/cts/pengine/interleave-stop.scores b/cts/scheduler/interleave-stop.scores similarity index 100% rename from cts/pengine/interleave-stop.scores rename to cts/scheduler/interleave-stop.scores diff --git a/cts/pengine/interleave-stop.summary b/cts/scheduler/interleave-stop.summary similarity index 100% rename from cts/pengine/interleave-stop.summary rename to cts/scheduler/interleave-stop.summary diff --git a/cts/pengine/interleave-stop.xml b/cts/scheduler/interleave-stop.xml similarity index 100% rename from cts/pengine/interleave-stop.xml rename to cts/scheduler/interleave-stop.xml diff --git a/cts/pengine/intervals.dot b/cts/scheduler/intervals.dot similarity index 100% rename from cts/pengine/intervals.dot rename to cts/scheduler/intervals.dot diff --git a/cts/pengine/intervals.exp b/cts/scheduler/intervals.exp similarity index 100% rename from cts/pengine/intervals.exp rename to cts/scheduler/intervals.exp diff --git a/cts/pengine/intervals.scores b/cts/scheduler/intervals.scores similarity index 100% rename from cts/pengine/intervals.scores rename to cts/scheduler/intervals.scores diff --git a/cts/pengine/intervals.summary b/cts/scheduler/intervals.summary similarity index 100% rename from cts/pengine/intervals.summary rename to cts/scheduler/intervals.summary diff --git a/cts/pengine/intervals.xml b/cts/scheduler/intervals.xml similarity index 99% rename from cts/pengine/intervals.xml rename to cts/scheduler/intervals.xml index 700002f1841..407e4b24c9c 100644 --- a/cts/pengine/intervals.xml +++ b/cts/scheduler/intervals.xml @@ -5,7 +5,7 @@ - + diff --git a/cts/pengine/load-stopped-loop-2.dot b/cts/scheduler/load-stopped-loop-2.dot similarity index 100% rename from cts/pengine/load-stopped-loop-2.dot rename to cts/scheduler/load-stopped-loop-2.dot diff --git a/cts/pengine/load-stopped-loop-2.exp b/cts/scheduler/load-stopped-loop-2.exp similarity index 100% rename from cts/pengine/load-stopped-loop-2.exp rename to cts/scheduler/load-stopped-loop-2.exp diff --git a/cts/pengine/load-stopped-loop-2.scores b/cts/scheduler/load-stopped-loop-2.scores similarity index 100% rename from cts/pengine/load-stopped-loop-2.scores rename to cts/scheduler/load-stopped-loop-2.scores diff --git a/cts/pengine/load-stopped-loop-2.summary b/cts/scheduler/load-stopped-loop-2.summary similarity index 100% rename from cts/pengine/load-stopped-loop-2.summary rename to cts/scheduler/load-stopped-loop-2.summary diff --git a/cts/pengine/load-stopped-loop-2.xml b/cts/scheduler/load-stopped-loop-2.xml similarity index 100% rename from cts/pengine/load-stopped-loop-2.xml rename to cts/scheduler/load-stopped-loop-2.xml diff --git a/cts/pengine/load-stopped-loop.dot b/cts/scheduler/load-stopped-loop.dot similarity index 100% rename from cts/pengine/load-stopped-loop.dot rename to cts/scheduler/load-stopped-loop.dot diff --git a/cts/pengine/load-stopped-loop.exp b/cts/scheduler/load-stopped-loop.exp similarity index 100% rename from cts/pengine/load-stopped-loop.exp rename to cts/scheduler/load-stopped-loop.exp diff --git a/cts/pengine/load-stopped-loop.scores b/cts/scheduler/load-stopped-loop.scores similarity index 100% rename from cts/pengine/load-stopped-loop.scores rename to cts/scheduler/load-stopped-loop.scores diff --git a/cts/pengine/load-stopped-loop.summary b/cts/scheduler/load-stopped-loop.summary similarity index 100% rename from cts/pengine/load-stopped-loop.summary rename to cts/scheduler/load-stopped-loop.summary diff --git a/cts/pengine/load-stopped-loop.xml b/cts/scheduler/load-stopped-loop.xml similarity index 100% rename from cts/pengine/load-stopped-loop.xml rename to cts/scheduler/load-stopped-loop.xml diff --git a/cts/pengine/location-sets-templates.dot b/cts/scheduler/location-sets-templates.dot similarity index 100% rename from cts/pengine/location-sets-templates.dot rename to cts/scheduler/location-sets-templates.dot diff --git a/cts/pengine/location-sets-templates.exp b/cts/scheduler/location-sets-templates.exp similarity index 100% rename from cts/pengine/location-sets-templates.exp rename to cts/scheduler/location-sets-templates.exp diff --git a/cts/pengine/location-sets-templates.scores b/cts/scheduler/location-sets-templates.scores similarity index 100% rename from cts/pengine/location-sets-templates.scores rename to cts/scheduler/location-sets-templates.scores diff --git a/cts/pengine/location-sets-templates.summary b/cts/scheduler/location-sets-templates.summary similarity index 100% rename from cts/pengine/location-sets-templates.summary rename to cts/scheduler/location-sets-templates.summary diff --git a/cts/pengine/location-sets-templates.xml b/cts/scheduler/location-sets-templates.xml similarity index 100% rename from cts/pengine/location-sets-templates.xml rename to cts/scheduler/location-sets-templates.xml diff --git a/cts/pengine/managed-0.dot b/cts/scheduler/managed-0.dot similarity index 100% rename from cts/pengine/managed-0.dot rename to cts/scheduler/managed-0.dot diff --git a/cts/pengine/managed-0.exp b/cts/scheduler/managed-0.exp similarity index 100% rename from cts/pengine/managed-0.exp rename to cts/scheduler/managed-0.exp diff --git a/cts/pengine/managed-0.scores b/cts/scheduler/managed-0.scores similarity index 100% rename from cts/pengine/managed-0.scores rename to cts/scheduler/managed-0.scores diff --git a/cts/pengine/managed-0.summary b/cts/scheduler/managed-0.summary similarity index 100% rename from cts/pengine/managed-0.summary rename to cts/scheduler/managed-0.summary diff --git a/cts/pengine/managed-0.xml b/cts/scheduler/managed-0.xml similarity index 100% rename from cts/pengine/managed-0.xml rename to cts/scheduler/managed-0.xml diff --git a/cts/pengine/managed-1.dot b/cts/scheduler/managed-1.dot similarity index 100% rename from cts/pengine/managed-1.dot rename to cts/scheduler/managed-1.dot diff --git a/cts/pengine/managed-1.exp b/cts/scheduler/managed-1.exp similarity index 100% rename from cts/pengine/managed-1.exp rename to cts/scheduler/managed-1.exp diff --git a/cts/pengine/managed-1.scores b/cts/scheduler/managed-1.scores similarity index 100% rename from cts/pengine/managed-1.scores rename to cts/scheduler/managed-1.scores diff --git a/cts/pengine/managed-1.summary b/cts/scheduler/managed-1.summary similarity index 100% rename from cts/pengine/managed-1.summary rename to cts/scheduler/managed-1.summary diff --git a/cts/pengine/managed-1.xml b/cts/scheduler/managed-1.xml similarity index 100% rename from cts/pengine/managed-1.xml rename to cts/scheduler/managed-1.xml diff --git a/cts/pengine/managed-2.dot b/cts/scheduler/managed-2.dot similarity index 100% rename from cts/pengine/managed-2.dot rename to cts/scheduler/managed-2.dot diff --git a/cts/pengine/managed-2.exp b/cts/scheduler/managed-2.exp similarity index 100% rename from cts/pengine/managed-2.exp rename to cts/scheduler/managed-2.exp diff --git a/cts/pengine/managed-2.scores b/cts/scheduler/managed-2.scores similarity index 100% rename from cts/pengine/managed-2.scores rename to cts/scheduler/managed-2.scores diff --git a/cts/pengine/managed-2.summary b/cts/scheduler/managed-2.summary similarity index 100% rename from cts/pengine/managed-2.summary rename to cts/scheduler/managed-2.summary diff --git a/cts/pengine/managed-2.xml b/cts/scheduler/managed-2.xml similarity index 100% rename from cts/pengine/managed-2.xml rename to cts/scheduler/managed-2.xml diff --git a/cts/pengine/master-0.dot b/cts/scheduler/master-0.dot similarity index 100% rename from cts/pengine/master-0.dot rename to cts/scheduler/master-0.dot diff --git a/cts/pengine/master-0.exp b/cts/scheduler/master-0.exp similarity index 100% rename from cts/pengine/master-0.exp rename to cts/scheduler/master-0.exp diff --git a/cts/pengine/master-0.scores b/cts/scheduler/master-0.scores similarity index 100% rename from cts/pengine/master-0.scores rename to cts/scheduler/master-0.scores diff --git a/cts/pengine/master-0.summary b/cts/scheduler/master-0.summary similarity index 100% rename from cts/pengine/master-0.summary rename to cts/scheduler/master-0.summary diff --git a/cts/pengine/master-0.xml b/cts/scheduler/master-0.xml similarity index 100% rename from cts/pengine/master-0.xml rename to cts/scheduler/master-0.xml diff --git a/cts/pengine/master-1.dot b/cts/scheduler/master-1.dot similarity index 100% rename from cts/pengine/master-1.dot rename to cts/scheduler/master-1.dot diff --git a/cts/pengine/master-1.exp b/cts/scheduler/master-1.exp similarity index 100% rename from cts/pengine/master-1.exp rename to cts/scheduler/master-1.exp diff --git a/cts/pengine/master-1.scores b/cts/scheduler/master-1.scores similarity index 100% rename from cts/pengine/master-1.scores rename to cts/scheduler/master-1.scores diff --git a/cts/pengine/master-1.summary b/cts/scheduler/master-1.summary similarity index 100% rename from cts/pengine/master-1.summary rename to cts/scheduler/master-1.summary diff --git a/cts/pengine/master-1.xml b/cts/scheduler/master-1.xml similarity index 100% rename from cts/pengine/master-1.xml rename to cts/scheduler/master-1.xml diff --git a/cts/pengine/master-10.dot b/cts/scheduler/master-10.dot similarity index 100% rename from cts/pengine/master-10.dot rename to cts/scheduler/master-10.dot diff --git a/cts/pengine/master-10.exp b/cts/scheduler/master-10.exp similarity index 100% rename from cts/pengine/master-10.exp rename to cts/scheduler/master-10.exp diff --git a/cts/pengine/master-10.scores b/cts/scheduler/master-10.scores similarity index 100% rename from cts/pengine/master-10.scores rename to cts/scheduler/master-10.scores diff --git a/cts/pengine/master-10.summary b/cts/scheduler/master-10.summary similarity index 100% rename from cts/pengine/master-10.summary rename to cts/scheduler/master-10.summary diff --git a/cts/pengine/master-10.xml b/cts/scheduler/master-10.xml similarity index 100% rename from cts/pengine/master-10.xml rename to cts/scheduler/master-10.xml diff --git a/cts/pengine/master-11.dot b/cts/scheduler/master-11.dot similarity index 100% rename from cts/pengine/master-11.dot rename to cts/scheduler/master-11.dot diff --git a/cts/pengine/master-11.exp b/cts/scheduler/master-11.exp similarity index 100% rename from cts/pengine/master-11.exp rename to cts/scheduler/master-11.exp diff --git a/cts/pengine/master-11.scores b/cts/scheduler/master-11.scores similarity index 100% rename from cts/pengine/master-11.scores rename to cts/scheduler/master-11.scores diff --git a/cts/pengine/master-11.summary b/cts/scheduler/master-11.summary similarity index 100% rename from cts/pengine/master-11.summary rename to cts/scheduler/master-11.summary diff --git a/cts/pengine/master-11.xml b/cts/scheduler/master-11.xml similarity index 100% rename from cts/pengine/master-11.xml rename to cts/scheduler/master-11.xml diff --git a/cts/pengine/master-12.dot b/cts/scheduler/master-12.dot similarity index 100% rename from cts/pengine/master-12.dot rename to cts/scheduler/master-12.dot diff --git a/cts/pengine/master-12.exp b/cts/scheduler/master-12.exp similarity index 100% rename from cts/pengine/master-12.exp rename to cts/scheduler/master-12.exp diff --git a/cts/pengine/master-12.scores b/cts/scheduler/master-12.scores similarity index 100% rename from cts/pengine/master-12.scores rename to cts/scheduler/master-12.scores diff --git a/cts/pengine/master-12.summary b/cts/scheduler/master-12.summary similarity index 100% rename from cts/pengine/master-12.summary rename to cts/scheduler/master-12.summary diff --git a/cts/pengine/master-12.xml b/cts/scheduler/master-12.xml similarity index 100% rename from cts/pengine/master-12.xml rename to cts/scheduler/master-12.xml diff --git a/cts/pengine/master-13.dot b/cts/scheduler/master-13.dot similarity index 100% rename from cts/pengine/master-13.dot rename to cts/scheduler/master-13.dot diff --git a/cts/pengine/master-13.exp b/cts/scheduler/master-13.exp similarity index 100% rename from cts/pengine/master-13.exp rename to cts/scheduler/master-13.exp diff --git a/cts/pengine/master-13.scores b/cts/scheduler/master-13.scores similarity index 100% rename from cts/pengine/master-13.scores rename to cts/scheduler/master-13.scores diff --git a/cts/pengine/master-13.summary b/cts/scheduler/master-13.summary similarity index 100% rename from cts/pengine/master-13.summary rename to cts/scheduler/master-13.summary diff --git a/cts/pengine/master-13.xml b/cts/scheduler/master-13.xml similarity index 100% rename from cts/pengine/master-13.xml rename to cts/scheduler/master-13.xml diff --git a/cts/pengine/master-2.dot b/cts/scheduler/master-2.dot similarity index 100% rename from cts/pengine/master-2.dot rename to cts/scheduler/master-2.dot diff --git a/cts/pengine/master-2.exp b/cts/scheduler/master-2.exp similarity index 100% rename from cts/pengine/master-2.exp rename to cts/scheduler/master-2.exp diff --git a/cts/pengine/master-2.scores b/cts/scheduler/master-2.scores similarity index 100% rename from cts/pengine/master-2.scores rename to cts/scheduler/master-2.scores diff --git a/cts/pengine/master-2.summary b/cts/scheduler/master-2.summary similarity index 100% rename from cts/pengine/master-2.summary rename to cts/scheduler/master-2.summary diff --git a/cts/pengine/master-2.xml b/cts/scheduler/master-2.xml similarity index 100% rename from cts/pengine/master-2.xml rename to cts/scheduler/master-2.xml diff --git a/cts/pengine/master-3.dot b/cts/scheduler/master-3.dot similarity index 100% rename from cts/pengine/master-3.dot rename to cts/scheduler/master-3.dot diff --git a/cts/pengine/master-3.exp b/cts/scheduler/master-3.exp similarity index 100% rename from cts/pengine/master-3.exp rename to cts/scheduler/master-3.exp diff --git a/cts/pengine/master-3.scores b/cts/scheduler/master-3.scores similarity index 100% rename from cts/pengine/master-3.scores rename to cts/scheduler/master-3.scores diff --git a/cts/pengine/master-3.summary b/cts/scheduler/master-3.summary similarity index 100% rename from cts/pengine/master-3.summary rename to cts/scheduler/master-3.summary diff --git a/cts/pengine/master-3.xml b/cts/scheduler/master-3.xml similarity index 100% rename from cts/pengine/master-3.xml rename to cts/scheduler/master-3.xml diff --git a/cts/pengine/master-4.dot b/cts/scheduler/master-4.dot similarity index 100% rename from cts/pengine/master-4.dot rename to cts/scheduler/master-4.dot diff --git a/cts/pengine/master-4.exp b/cts/scheduler/master-4.exp similarity index 100% rename from cts/pengine/master-4.exp rename to cts/scheduler/master-4.exp diff --git a/cts/pengine/master-4.scores b/cts/scheduler/master-4.scores similarity index 100% rename from cts/pengine/master-4.scores rename to cts/scheduler/master-4.scores diff --git a/cts/pengine/master-4.summary b/cts/scheduler/master-4.summary similarity index 100% rename from cts/pengine/master-4.summary rename to cts/scheduler/master-4.summary diff --git a/cts/pengine/master-4.xml b/cts/scheduler/master-4.xml similarity index 100% rename from cts/pengine/master-4.xml rename to cts/scheduler/master-4.xml diff --git a/cts/pengine/master-5.dot b/cts/scheduler/master-5.dot similarity index 100% rename from cts/pengine/master-5.dot rename to cts/scheduler/master-5.dot diff --git a/cts/pengine/master-5.exp b/cts/scheduler/master-5.exp similarity index 100% rename from cts/pengine/master-5.exp rename to cts/scheduler/master-5.exp diff --git a/cts/pengine/master-5.scores b/cts/scheduler/master-5.scores similarity index 100% rename from cts/pengine/master-5.scores rename to cts/scheduler/master-5.scores diff --git a/cts/pengine/master-5.summary b/cts/scheduler/master-5.summary similarity index 100% rename from cts/pengine/master-5.summary rename to cts/scheduler/master-5.summary diff --git a/cts/pengine/master-5.xml b/cts/scheduler/master-5.xml similarity index 100% rename from cts/pengine/master-5.xml rename to cts/scheduler/master-5.xml diff --git a/cts/pengine/master-6.dot b/cts/scheduler/master-6.dot similarity index 100% rename from cts/pengine/master-6.dot rename to cts/scheduler/master-6.dot diff --git a/cts/pengine/master-6.exp b/cts/scheduler/master-6.exp similarity index 100% rename from cts/pengine/master-6.exp rename to cts/scheduler/master-6.exp diff --git a/cts/pengine/master-6.scores b/cts/scheduler/master-6.scores similarity index 100% rename from cts/pengine/master-6.scores rename to cts/scheduler/master-6.scores diff --git a/cts/pengine/master-6.summary b/cts/scheduler/master-6.summary similarity index 100% rename from cts/pengine/master-6.summary rename to cts/scheduler/master-6.summary diff --git a/cts/pengine/master-6.xml b/cts/scheduler/master-6.xml similarity index 100% rename from cts/pengine/master-6.xml rename to cts/scheduler/master-6.xml diff --git a/cts/pengine/master-7.dot b/cts/scheduler/master-7.dot similarity index 100% rename from cts/pengine/master-7.dot rename to cts/scheduler/master-7.dot diff --git a/cts/pengine/master-7.exp b/cts/scheduler/master-7.exp similarity index 100% rename from cts/pengine/master-7.exp rename to cts/scheduler/master-7.exp diff --git a/cts/pengine/master-7.scores b/cts/scheduler/master-7.scores similarity index 100% rename from cts/pengine/master-7.scores rename to cts/scheduler/master-7.scores diff --git a/cts/pengine/master-7.summary b/cts/scheduler/master-7.summary similarity index 100% rename from cts/pengine/master-7.summary rename to cts/scheduler/master-7.summary diff --git a/cts/pengine/master-7.xml b/cts/scheduler/master-7.xml similarity index 100% rename from cts/pengine/master-7.xml rename to cts/scheduler/master-7.xml diff --git a/cts/pengine/master-8.dot b/cts/scheduler/master-8.dot similarity index 100% rename from cts/pengine/master-8.dot rename to cts/scheduler/master-8.dot diff --git a/cts/pengine/master-8.exp b/cts/scheduler/master-8.exp similarity index 100% rename from cts/pengine/master-8.exp rename to cts/scheduler/master-8.exp diff --git a/cts/pengine/master-8.scores b/cts/scheduler/master-8.scores similarity index 100% rename from cts/pengine/master-8.scores rename to cts/scheduler/master-8.scores diff --git a/cts/pengine/master-8.summary b/cts/scheduler/master-8.summary similarity index 100% rename from cts/pengine/master-8.summary rename to cts/scheduler/master-8.summary diff --git a/cts/pengine/master-8.xml b/cts/scheduler/master-8.xml similarity index 100% rename from cts/pengine/master-8.xml rename to cts/scheduler/master-8.xml diff --git a/cts/pengine/master-9.dot b/cts/scheduler/master-9.dot similarity index 100% rename from cts/pengine/master-9.dot rename to cts/scheduler/master-9.dot diff --git a/cts/pengine/master-9.exp b/cts/scheduler/master-9.exp similarity index 100% rename from cts/pengine/master-9.exp rename to cts/scheduler/master-9.exp diff --git a/cts/pengine/master-9.scores b/cts/scheduler/master-9.scores similarity index 100% rename from cts/pengine/master-9.scores rename to cts/scheduler/master-9.scores diff --git a/cts/pengine/master-9.summary b/cts/scheduler/master-9.summary similarity index 100% rename from cts/pengine/master-9.summary rename to cts/scheduler/master-9.summary diff --git a/cts/pengine/master-9.xml b/cts/scheduler/master-9.xml similarity index 100% rename from cts/pengine/master-9.xml rename to cts/scheduler/master-9.xml diff --git a/cts/pengine/master-allow-start.dot b/cts/scheduler/master-allow-start.dot similarity index 100% rename from cts/pengine/master-allow-start.dot rename to cts/scheduler/master-allow-start.dot diff --git a/cts/pengine/master-allow-start.exp b/cts/scheduler/master-allow-start.exp similarity index 100% rename from cts/pengine/master-allow-start.exp rename to cts/scheduler/master-allow-start.exp diff --git a/cts/pengine/master-allow-start.scores b/cts/scheduler/master-allow-start.scores similarity index 100% rename from cts/pengine/master-allow-start.scores rename to cts/scheduler/master-allow-start.scores diff --git a/cts/pengine/master-allow-start.summary b/cts/scheduler/master-allow-start.summary similarity index 100% rename from cts/pengine/master-allow-start.summary rename to cts/scheduler/master-allow-start.summary diff --git a/cts/pengine/master-allow-start.xml b/cts/scheduler/master-allow-start.xml similarity index 100% rename from cts/pengine/master-allow-start.xml rename to cts/scheduler/master-allow-start.xml diff --git a/cts/pengine/master-asymmetrical-order.dot b/cts/scheduler/master-asymmetrical-order.dot similarity index 100% rename from cts/pengine/master-asymmetrical-order.dot rename to cts/scheduler/master-asymmetrical-order.dot diff --git a/cts/pengine/master-asymmetrical-order.exp b/cts/scheduler/master-asymmetrical-order.exp similarity index 100% rename from cts/pengine/master-asymmetrical-order.exp rename to cts/scheduler/master-asymmetrical-order.exp diff --git a/cts/pengine/master-asymmetrical-order.scores b/cts/scheduler/master-asymmetrical-order.scores similarity index 100% rename from cts/pengine/master-asymmetrical-order.scores rename to cts/scheduler/master-asymmetrical-order.scores diff --git a/cts/pengine/master-asymmetrical-order.summary b/cts/scheduler/master-asymmetrical-order.summary similarity index 100% rename from cts/pengine/master-asymmetrical-order.summary rename to cts/scheduler/master-asymmetrical-order.summary diff --git a/cts/pengine/master-asymmetrical-order.xml b/cts/scheduler/master-asymmetrical-order.xml similarity index 100% rename from cts/pengine/master-asymmetrical-order.xml rename to cts/scheduler/master-asymmetrical-order.xml diff --git a/cts/pengine/master-colocation.dot b/cts/scheduler/master-colocation.dot similarity index 100% rename from cts/pengine/master-colocation.dot rename to cts/scheduler/master-colocation.dot diff --git a/cts/pengine/master-colocation.exp b/cts/scheduler/master-colocation.exp similarity index 100% rename from cts/pengine/master-colocation.exp rename to cts/scheduler/master-colocation.exp diff --git a/cts/pengine/master-colocation.scores b/cts/scheduler/master-colocation.scores similarity index 100% rename from cts/pengine/master-colocation.scores rename to cts/scheduler/master-colocation.scores diff --git a/cts/pengine/master-colocation.summary b/cts/scheduler/master-colocation.summary similarity index 100% rename from cts/pengine/master-colocation.summary rename to cts/scheduler/master-colocation.summary diff --git a/cts/pengine/master-colocation.xml b/cts/scheduler/master-colocation.xml similarity index 100% rename from cts/pengine/master-colocation.xml rename to cts/scheduler/master-colocation.xml diff --git a/cts/pengine/master-demote-2.dot b/cts/scheduler/master-demote-2.dot similarity index 100% rename from cts/pengine/master-demote-2.dot rename to cts/scheduler/master-demote-2.dot diff --git a/cts/pengine/master-demote-2.exp b/cts/scheduler/master-demote-2.exp similarity index 100% rename from cts/pengine/master-demote-2.exp rename to cts/scheduler/master-demote-2.exp diff --git a/cts/pengine/master-demote-2.scores b/cts/scheduler/master-demote-2.scores similarity index 100% rename from cts/pengine/master-demote-2.scores rename to cts/scheduler/master-demote-2.scores diff --git a/cts/pengine/master-demote-2.summary b/cts/scheduler/master-demote-2.summary similarity index 100% rename from cts/pengine/master-demote-2.summary rename to cts/scheduler/master-demote-2.summary diff --git a/cts/pengine/master-demote-2.xml b/cts/scheduler/master-demote-2.xml similarity index 100% rename from cts/pengine/master-demote-2.xml rename to cts/scheduler/master-demote-2.xml diff --git a/cts/pengine/master-demote-block.dot b/cts/scheduler/master-demote-block.dot similarity index 100% rename from cts/pengine/master-demote-block.dot rename to cts/scheduler/master-demote-block.dot diff --git a/cts/pengine/master-demote-block.exp b/cts/scheduler/master-demote-block.exp similarity index 100% rename from cts/pengine/master-demote-block.exp rename to cts/scheduler/master-demote-block.exp diff --git a/cts/pengine/master-demote-block.scores b/cts/scheduler/master-demote-block.scores similarity index 100% rename from cts/pengine/master-demote-block.scores rename to cts/scheduler/master-demote-block.scores diff --git a/cts/pengine/master-demote-block.summary b/cts/scheduler/master-demote-block.summary similarity index 100% rename from cts/pengine/master-demote-block.summary rename to cts/scheduler/master-demote-block.summary diff --git a/cts/pengine/master-demote-block.xml b/cts/scheduler/master-demote-block.xml similarity index 100% rename from cts/pengine/master-demote-block.xml rename to cts/scheduler/master-demote-block.xml diff --git a/cts/pengine/master-demote.dot b/cts/scheduler/master-demote.dot similarity index 100% rename from cts/pengine/master-demote.dot rename to cts/scheduler/master-demote.dot diff --git a/cts/pengine/master-demote.exp b/cts/scheduler/master-demote.exp similarity index 100% rename from cts/pengine/master-demote.exp rename to cts/scheduler/master-demote.exp diff --git a/cts/pengine/master-demote.scores b/cts/scheduler/master-demote.scores similarity index 100% rename from cts/pengine/master-demote.scores rename to cts/scheduler/master-demote.scores diff --git a/cts/pengine/master-demote.summary b/cts/scheduler/master-demote.summary similarity index 100% rename from cts/pengine/master-demote.summary rename to cts/scheduler/master-demote.summary diff --git a/cts/pengine/master-demote.xml b/cts/scheduler/master-demote.xml similarity index 100% rename from cts/pengine/master-demote.xml rename to cts/scheduler/master-demote.xml diff --git a/cts/pengine/master-depend.dot b/cts/scheduler/master-depend.dot similarity index 100% rename from cts/pengine/master-depend.dot rename to cts/scheduler/master-depend.dot diff --git a/cts/pengine/master-depend.exp b/cts/scheduler/master-depend.exp similarity index 100% rename from cts/pengine/master-depend.exp rename to cts/scheduler/master-depend.exp diff --git a/cts/pengine/master-depend.scores b/cts/scheduler/master-depend.scores similarity index 100% rename from cts/pengine/master-depend.scores rename to cts/scheduler/master-depend.scores diff --git a/cts/pengine/master-depend.summary b/cts/scheduler/master-depend.summary similarity index 100% rename from cts/pengine/master-depend.summary rename to cts/scheduler/master-depend.summary diff --git a/cts/pengine/master-depend.xml b/cts/scheduler/master-depend.xml similarity index 100% rename from cts/pengine/master-depend.xml rename to cts/scheduler/master-depend.xml diff --git a/cts/pengine/master-dependent-ban.dot b/cts/scheduler/master-dependent-ban.dot similarity index 100% rename from cts/pengine/master-dependent-ban.dot rename to cts/scheduler/master-dependent-ban.dot diff --git a/cts/pengine/master-dependent-ban.exp b/cts/scheduler/master-dependent-ban.exp similarity index 100% rename from cts/pengine/master-dependent-ban.exp rename to cts/scheduler/master-dependent-ban.exp diff --git a/cts/pengine/master-dependent-ban.scores b/cts/scheduler/master-dependent-ban.scores similarity index 100% rename from cts/pengine/master-dependent-ban.scores rename to cts/scheduler/master-dependent-ban.scores diff --git a/cts/pengine/master-dependent-ban.summary b/cts/scheduler/master-dependent-ban.summary similarity index 100% rename from cts/pengine/master-dependent-ban.summary rename to cts/scheduler/master-dependent-ban.summary diff --git a/cts/pengine/master-dependent-ban.xml b/cts/scheduler/master-dependent-ban.xml similarity index 100% rename from cts/pengine/master-dependent-ban.xml rename to cts/scheduler/master-dependent-ban.xml diff --git a/cts/pengine/master-failed-demote-2.dot b/cts/scheduler/master-failed-demote-2.dot similarity index 100% rename from cts/pengine/master-failed-demote-2.dot rename to cts/scheduler/master-failed-demote-2.dot diff --git a/cts/pengine/master-failed-demote-2.exp b/cts/scheduler/master-failed-demote-2.exp similarity index 100% rename from cts/pengine/master-failed-demote-2.exp rename to cts/scheduler/master-failed-demote-2.exp diff --git a/cts/pengine/master-failed-demote-2.scores b/cts/scheduler/master-failed-demote-2.scores similarity index 100% rename from cts/pengine/master-failed-demote-2.scores rename to cts/scheduler/master-failed-demote-2.scores diff --git a/cts/pengine/master-failed-demote-2.summary b/cts/scheduler/master-failed-demote-2.summary similarity index 100% rename from cts/pengine/master-failed-demote-2.summary rename to cts/scheduler/master-failed-demote-2.summary diff --git a/cts/pengine/master-failed-demote-2.xml b/cts/scheduler/master-failed-demote-2.xml similarity index 100% rename from cts/pengine/master-failed-demote-2.xml rename to cts/scheduler/master-failed-demote-2.xml diff --git a/cts/pengine/master-failed-demote.dot b/cts/scheduler/master-failed-demote.dot similarity index 100% rename from cts/pengine/master-failed-demote.dot rename to cts/scheduler/master-failed-demote.dot diff --git a/cts/pengine/master-failed-demote.exp b/cts/scheduler/master-failed-demote.exp similarity index 100% rename from cts/pengine/master-failed-demote.exp rename to cts/scheduler/master-failed-demote.exp diff --git a/cts/pengine/master-failed-demote.scores b/cts/scheduler/master-failed-demote.scores similarity index 100% rename from cts/pengine/master-failed-demote.scores rename to cts/scheduler/master-failed-demote.scores diff --git a/cts/pengine/master-failed-demote.summary b/cts/scheduler/master-failed-demote.summary similarity index 100% rename from cts/pengine/master-failed-demote.summary rename to cts/scheduler/master-failed-demote.summary diff --git a/cts/pengine/master-failed-demote.xml b/cts/scheduler/master-failed-demote.xml similarity index 100% rename from cts/pengine/master-failed-demote.xml rename to cts/scheduler/master-failed-demote.xml diff --git a/cts/pengine/master-group.dot b/cts/scheduler/master-group.dot similarity index 100% rename from cts/pengine/master-group.dot rename to cts/scheduler/master-group.dot diff --git a/cts/pengine/master-group.exp b/cts/scheduler/master-group.exp similarity index 100% rename from cts/pengine/master-group.exp rename to cts/scheduler/master-group.exp diff --git a/cts/pengine/master-group.scores b/cts/scheduler/master-group.scores similarity index 100% rename from cts/pengine/master-group.scores rename to cts/scheduler/master-group.scores diff --git a/cts/pengine/master-group.summary b/cts/scheduler/master-group.summary similarity index 100% rename from cts/pengine/master-group.summary rename to cts/scheduler/master-group.summary diff --git a/cts/pengine/master-group.xml b/cts/scheduler/master-group.xml similarity index 100% rename from cts/pengine/master-group.xml rename to cts/scheduler/master-group.xml diff --git a/cts/pengine/master-move.dot b/cts/scheduler/master-move.dot similarity index 100% rename from cts/pengine/master-move.dot rename to cts/scheduler/master-move.dot diff --git a/cts/pengine/master-move.exp b/cts/scheduler/master-move.exp similarity index 100% rename from cts/pengine/master-move.exp rename to cts/scheduler/master-move.exp diff --git a/cts/pengine/master-move.scores b/cts/scheduler/master-move.scores similarity index 100% rename from cts/pengine/master-move.scores rename to cts/scheduler/master-move.scores diff --git a/cts/pengine/master-move.summary b/cts/scheduler/master-move.summary similarity index 100% rename from cts/pengine/master-move.summary rename to cts/scheduler/master-move.summary diff --git a/cts/pengine/master-move.xml b/cts/scheduler/master-move.xml similarity index 100% rename from cts/pengine/master-move.xml rename to cts/scheduler/master-move.xml diff --git a/cts/pengine/master-notify.dot b/cts/scheduler/master-notify.dot similarity index 100% rename from cts/pengine/master-notify.dot rename to cts/scheduler/master-notify.dot diff --git a/cts/pengine/master-notify.exp b/cts/scheduler/master-notify.exp similarity index 100% rename from cts/pengine/master-notify.exp rename to cts/scheduler/master-notify.exp diff --git a/cts/pengine/master-notify.scores b/cts/scheduler/master-notify.scores similarity index 100% rename from cts/pengine/master-notify.scores rename to cts/scheduler/master-notify.scores diff --git a/cts/pengine/master-notify.summary b/cts/scheduler/master-notify.summary similarity index 100% rename from cts/pengine/master-notify.summary rename to cts/scheduler/master-notify.summary diff --git a/cts/pengine/master-notify.xml b/cts/scheduler/master-notify.xml similarity index 100% rename from cts/pengine/master-notify.xml rename to cts/scheduler/master-notify.xml diff --git a/cts/pengine/master-ordering.dot b/cts/scheduler/master-ordering.dot similarity index 100% rename from cts/pengine/master-ordering.dot rename to cts/scheduler/master-ordering.dot diff --git a/cts/pengine/master-ordering.exp b/cts/scheduler/master-ordering.exp similarity index 100% rename from cts/pengine/master-ordering.exp rename to cts/scheduler/master-ordering.exp diff --git a/cts/pengine/master-ordering.scores b/cts/scheduler/master-ordering.scores similarity index 100% rename from cts/pengine/master-ordering.scores rename to cts/scheduler/master-ordering.scores diff --git a/cts/pengine/master-ordering.summary b/cts/scheduler/master-ordering.summary similarity index 100% rename from cts/pengine/master-ordering.summary rename to cts/scheduler/master-ordering.summary diff --git a/cts/pengine/master-ordering.xml b/cts/scheduler/master-ordering.xml similarity index 100% rename from cts/pengine/master-ordering.xml rename to cts/scheduler/master-ordering.xml diff --git a/cts/pengine/master-partially-demoted-group.dot b/cts/scheduler/master-partially-demoted-group.dot similarity index 100% rename from cts/pengine/master-partially-demoted-group.dot rename to cts/scheduler/master-partially-demoted-group.dot diff --git a/cts/pengine/master-partially-demoted-group.exp b/cts/scheduler/master-partially-demoted-group.exp similarity index 100% rename from cts/pengine/master-partially-demoted-group.exp rename to cts/scheduler/master-partially-demoted-group.exp diff --git a/cts/pengine/master-partially-demoted-group.scores b/cts/scheduler/master-partially-demoted-group.scores similarity index 100% rename from cts/pengine/master-partially-demoted-group.scores rename to cts/scheduler/master-partially-demoted-group.scores diff --git a/cts/pengine/master-partially-demoted-group.summary b/cts/scheduler/master-partially-demoted-group.summary similarity index 100% rename from cts/pengine/master-partially-demoted-group.summary rename to cts/scheduler/master-partially-demoted-group.summary diff --git a/cts/pengine/master-partially-demoted-group.xml b/cts/scheduler/master-partially-demoted-group.xml similarity index 100% rename from cts/pengine/master-partially-demoted-group.xml rename to cts/scheduler/master-partially-demoted-group.xml diff --git a/cts/pengine/master-probed-score.dot b/cts/scheduler/master-probed-score.dot similarity index 100% rename from cts/pengine/master-probed-score.dot rename to cts/scheduler/master-probed-score.dot diff --git a/cts/pengine/master-probed-score.exp b/cts/scheduler/master-probed-score.exp similarity index 100% rename from cts/pengine/master-probed-score.exp rename to cts/scheduler/master-probed-score.exp diff --git a/cts/pengine/master-probed-score.scores b/cts/scheduler/master-probed-score.scores similarity index 100% rename from cts/pengine/master-probed-score.scores rename to cts/scheduler/master-probed-score.scores diff --git a/cts/pengine/master-probed-score.summary b/cts/scheduler/master-probed-score.summary similarity index 100% rename from cts/pengine/master-probed-score.summary rename to cts/scheduler/master-probed-score.summary diff --git a/cts/pengine/master-probed-score.xml b/cts/scheduler/master-probed-score.xml similarity index 100% rename from cts/pengine/master-probed-score.xml rename to cts/scheduler/master-probed-score.xml diff --git a/cts/pengine/master-promotion-constraint.dot b/cts/scheduler/master-promotion-constraint.dot similarity index 100% rename from cts/pengine/master-promotion-constraint.dot rename to cts/scheduler/master-promotion-constraint.dot diff --git a/cts/pengine/master-promotion-constraint.exp b/cts/scheduler/master-promotion-constraint.exp similarity index 100% rename from cts/pengine/master-promotion-constraint.exp rename to cts/scheduler/master-promotion-constraint.exp diff --git a/cts/pengine/master-promotion-constraint.scores b/cts/scheduler/master-promotion-constraint.scores similarity index 100% rename from cts/pengine/master-promotion-constraint.scores rename to cts/scheduler/master-promotion-constraint.scores diff --git a/cts/pengine/master-promotion-constraint.summary b/cts/scheduler/master-promotion-constraint.summary similarity index 100% rename from cts/pengine/master-promotion-constraint.summary rename to cts/scheduler/master-promotion-constraint.summary diff --git a/cts/pengine/master-promotion-constraint.xml b/cts/scheduler/master-promotion-constraint.xml similarity index 100% rename from cts/pengine/master-promotion-constraint.xml rename to cts/scheduler/master-promotion-constraint.xml diff --git a/cts/pengine/master-pseudo.dot b/cts/scheduler/master-pseudo.dot similarity index 100% rename from cts/pengine/master-pseudo.dot rename to cts/scheduler/master-pseudo.dot diff --git a/cts/pengine/master-pseudo.exp b/cts/scheduler/master-pseudo.exp similarity index 100% rename from cts/pengine/master-pseudo.exp rename to cts/scheduler/master-pseudo.exp diff --git a/cts/pengine/master-pseudo.scores b/cts/scheduler/master-pseudo.scores similarity index 100% rename from cts/pengine/master-pseudo.scores rename to cts/scheduler/master-pseudo.scores diff --git a/cts/pengine/master-pseudo.summary b/cts/scheduler/master-pseudo.summary similarity index 100% rename from cts/pengine/master-pseudo.summary rename to cts/scheduler/master-pseudo.summary diff --git a/cts/pengine/master-pseudo.xml b/cts/scheduler/master-pseudo.xml similarity index 100% rename from cts/pengine/master-pseudo.xml rename to cts/scheduler/master-pseudo.xml diff --git a/cts/pengine/master-reattach.dot b/cts/scheduler/master-reattach.dot similarity index 100% rename from cts/pengine/master-reattach.dot rename to cts/scheduler/master-reattach.dot diff --git a/cts/pengine/master-reattach.exp b/cts/scheduler/master-reattach.exp similarity index 100% rename from cts/pengine/master-reattach.exp rename to cts/scheduler/master-reattach.exp diff --git a/cts/pengine/master-reattach.scores b/cts/scheduler/master-reattach.scores similarity index 100% rename from cts/pengine/master-reattach.scores rename to cts/scheduler/master-reattach.scores diff --git a/cts/pengine/master-reattach.summary b/cts/scheduler/master-reattach.summary similarity index 100% rename from cts/pengine/master-reattach.summary rename to cts/scheduler/master-reattach.summary diff --git a/cts/pengine/master-reattach.xml b/cts/scheduler/master-reattach.xml similarity index 100% rename from cts/pengine/master-reattach.xml rename to cts/scheduler/master-reattach.xml diff --git a/cts/pengine/master-role.dot b/cts/scheduler/master-role.dot similarity index 100% rename from cts/pengine/master-role.dot rename to cts/scheduler/master-role.dot diff --git a/cts/pengine/master-role.exp b/cts/scheduler/master-role.exp similarity index 100% rename from cts/pengine/master-role.exp rename to cts/scheduler/master-role.exp diff --git a/cts/pengine/master-role.scores b/cts/scheduler/master-role.scores similarity index 100% rename from cts/pengine/master-role.scores rename to cts/scheduler/master-role.scores diff --git a/cts/pengine/master-role.summary b/cts/scheduler/master-role.summary similarity index 100% rename from cts/pengine/master-role.summary rename to cts/scheduler/master-role.summary diff --git a/cts/pengine/master-role.xml b/cts/scheduler/master-role.xml similarity index 100% rename from cts/pengine/master-role.xml rename to cts/scheduler/master-role.xml diff --git a/cts/pengine/master-score-startup.dot b/cts/scheduler/master-score-startup.dot similarity index 100% rename from cts/pengine/master-score-startup.dot rename to cts/scheduler/master-score-startup.dot diff --git a/cts/pengine/master-score-startup.exp b/cts/scheduler/master-score-startup.exp similarity index 100% rename from cts/pengine/master-score-startup.exp rename to cts/scheduler/master-score-startup.exp diff --git a/cts/pengine/master-score-startup.scores b/cts/scheduler/master-score-startup.scores similarity index 100% rename from cts/pengine/master-score-startup.scores rename to cts/scheduler/master-score-startup.scores diff --git a/cts/pengine/master-score-startup.summary b/cts/scheduler/master-score-startup.summary similarity index 100% rename from cts/pengine/master-score-startup.summary rename to cts/scheduler/master-score-startup.summary diff --git a/cts/pengine/master-score-startup.xml b/cts/scheduler/master-score-startup.xml similarity index 100% rename from cts/pengine/master-score-startup.xml rename to cts/scheduler/master-score-startup.xml diff --git a/cts/pengine/master-stop.dot b/cts/scheduler/master-stop.dot similarity index 100% rename from cts/pengine/master-stop.dot rename to cts/scheduler/master-stop.dot diff --git a/cts/pengine/master-stop.exp b/cts/scheduler/master-stop.exp similarity index 100% rename from cts/pengine/master-stop.exp rename to cts/scheduler/master-stop.exp diff --git a/cts/pengine/master-stop.scores b/cts/scheduler/master-stop.scores similarity index 100% rename from cts/pengine/master-stop.scores rename to cts/scheduler/master-stop.scores diff --git a/cts/pengine/master-stop.summary b/cts/scheduler/master-stop.summary similarity index 100% rename from cts/pengine/master-stop.summary rename to cts/scheduler/master-stop.summary diff --git a/cts/pengine/master-stop.xml b/cts/scheduler/master-stop.xml similarity index 100% rename from cts/pengine/master-stop.xml rename to cts/scheduler/master-stop.xml diff --git a/cts/pengine/master-unmanaged-monitor.dot b/cts/scheduler/master-unmanaged-monitor.dot similarity index 100% rename from cts/pengine/master-unmanaged-monitor.dot rename to cts/scheduler/master-unmanaged-monitor.dot diff --git a/cts/pengine/master-unmanaged-monitor.exp b/cts/scheduler/master-unmanaged-monitor.exp similarity index 100% rename from cts/pengine/master-unmanaged-monitor.exp rename to cts/scheduler/master-unmanaged-monitor.exp diff --git a/cts/pengine/master-unmanaged-monitor.scores b/cts/scheduler/master-unmanaged-monitor.scores similarity index 100% rename from cts/pengine/master-unmanaged-monitor.scores rename to cts/scheduler/master-unmanaged-monitor.scores diff --git a/cts/pengine/master-unmanaged-monitor.summary b/cts/scheduler/master-unmanaged-monitor.summary similarity index 100% rename from cts/pengine/master-unmanaged-monitor.summary rename to cts/scheduler/master-unmanaged-monitor.summary diff --git a/cts/pengine/master-unmanaged-monitor.xml b/cts/scheduler/master-unmanaged-monitor.xml similarity index 100% rename from cts/pengine/master-unmanaged-monitor.xml rename to cts/scheduler/master-unmanaged-monitor.xml diff --git a/cts/pengine/master_monitor_restart.dot b/cts/scheduler/master_monitor_restart.dot similarity index 100% rename from cts/pengine/master_monitor_restart.dot rename to cts/scheduler/master_monitor_restart.dot diff --git a/cts/pengine/master_monitor_restart.exp b/cts/scheduler/master_monitor_restart.exp similarity index 100% rename from cts/pengine/master_monitor_restart.exp rename to cts/scheduler/master_monitor_restart.exp diff --git a/cts/pengine/master_monitor_restart.scores b/cts/scheduler/master_monitor_restart.scores similarity index 100% rename from cts/pengine/master_monitor_restart.scores rename to cts/scheduler/master_monitor_restart.scores diff --git a/cts/pengine/master_monitor_restart.summary b/cts/scheduler/master_monitor_restart.summary similarity index 100% rename from cts/pengine/master_monitor_restart.summary rename to cts/scheduler/master_monitor_restart.summary diff --git a/cts/pengine/master_monitor_restart.xml b/cts/scheduler/master_monitor_restart.xml similarity index 100% rename from cts/pengine/master_monitor_restart.xml rename to cts/scheduler/master_monitor_restart.xml diff --git a/cts/pengine/migrate-1.dot b/cts/scheduler/migrate-1.dot similarity index 100% rename from cts/pengine/migrate-1.dot rename to cts/scheduler/migrate-1.dot diff --git a/cts/pengine/migrate-1.exp b/cts/scheduler/migrate-1.exp similarity index 100% rename from cts/pengine/migrate-1.exp rename to cts/scheduler/migrate-1.exp diff --git a/cts/pengine/migrate-1.scores b/cts/scheduler/migrate-1.scores similarity index 100% rename from cts/pengine/migrate-1.scores rename to cts/scheduler/migrate-1.scores diff --git a/cts/pengine/migrate-1.summary b/cts/scheduler/migrate-1.summary similarity index 100% rename from cts/pengine/migrate-1.summary rename to cts/scheduler/migrate-1.summary diff --git a/cts/pengine/migrate-1.xml b/cts/scheduler/migrate-1.xml similarity index 100% rename from cts/pengine/migrate-1.xml rename to cts/scheduler/migrate-1.xml diff --git a/cts/pengine/migrate-2.dot b/cts/scheduler/migrate-2.dot similarity index 100% rename from cts/pengine/migrate-2.dot rename to cts/scheduler/migrate-2.dot diff --git a/cts/pengine/migrate-2.exp b/cts/scheduler/migrate-2.exp similarity index 100% rename from cts/pengine/migrate-2.exp rename to cts/scheduler/migrate-2.exp diff --git a/cts/pengine/migrate-2.scores b/cts/scheduler/migrate-2.scores similarity index 100% rename from cts/pengine/migrate-2.scores rename to cts/scheduler/migrate-2.scores diff --git a/cts/pengine/migrate-2.summary b/cts/scheduler/migrate-2.summary similarity index 100% rename from cts/pengine/migrate-2.summary rename to cts/scheduler/migrate-2.summary diff --git a/cts/pengine/migrate-2.xml b/cts/scheduler/migrate-2.xml similarity index 100% rename from cts/pengine/migrate-2.xml rename to cts/scheduler/migrate-2.xml diff --git a/cts/pengine/migrate-3.dot b/cts/scheduler/migrate-3.dot similarity index 100% rename from cts/pengine/migrate-3.dot rename to cts/scheduler/migrate-3.dot diff --git a/cts/pengine/migrate-3.exp b/cts/scheduler/migrate-3.exp similarity index 100% rename from cts/pengine/migrate-3.exp rename to cts/scheduler/migrate-3.exp diff --git a/cts/pengine/migrate-3.scores b/cts/scheduler/migrate-3.scores similarity index 100% rename from cts/pengine/migrate-3.scores rename to cts/scheduler/migrate-3.scores diff --git a/cts/pengine/migrate-3.summary b/cts/scheduler/migrate-3.summary similarity index 100% rename from cts/pengine/migrate-3.summary rename to cts/scheduler/migrate-3.summary diff --git a/cts/pengine/migrate-3.xml b/cts/scheduler/migrate-3.xml similarity index 100% rename from cts/pengine/migrate-3.xml rename to cts/scheduler/migrate-3.xml diff --git a/cts/pengine/migrate-4.dot b/cts/scheduler/migrate-4.dot similarity index 100% rename from cts/pengine/migrate-4.dot rename to cts/scheduler/migrate-4.dot diff --git a/cts/pengine/migrate-4.exp b/cts/scheduler/migrate-4.exp similarity index 100% rename from cts/pengine/migrate-4.exp rename to cts/scheduler/migrate-4.exp diff --git a/cts/pengine/migrate-4.scores b/cts/scheduler/migrate-4.scores similarity index 100% rename from cts/pengine/migrate-4.scores rename to cts/scheduler/migrate-4.scores diff --git a/cts/pengine/migrate-4.summary b/cts/scheduler/migrate-4.summary similarity index 100% rename from cts/pengine/migrate-4.summary rename to cts/scheduler/migrate-4.summary diff --git a/cts/pengine/migrate-4.xml b/cts/scheduler/migrate-4.xml similarity index 100% rename from cts/pengine/migrate-4.xml rename to cts/scheduler/migrate-4.xml diff --git a/cts/pengine/migrate-5.dot b/cts/scheduler/migrate-5.dot similarity index 100% rename from cts/pengine/migrate-5.dot rename to cts/scheduler/migrate-5.dot diff --git a/cts/pengine/migrate-5.exp b/cts/scheduler/migrate-5.exp similarity index 100% rename from cts/pengine/migrate-5.exp rename to cts/scheduler/migrate-5.exp diff --git a/cts/pengine/migrate-5.scores b/cts/scheduler/migrate-5.scores similarity index 100% rename from cts/pengine/migrate-5.scores rename to cts/scheduler/migrate-5.scores diff --git a/cts/pengine/migrate-5.summary b/cts/scheduler/migrate-5.summary similarity index 100% rename from cts/pengine/migrate-5.summary rename to cts/scheduler/migrate-5.summary diff --git a/cts/pengine/migrate-5.xml b/cts/scheduler/migrate-5.xml similarity index 100% rename from cts/pengine/migrate-5.xml rename to cts/scheduler/migrate-5.xml diff --git a/cts/pengine/migrate-begin.dot b/cts/scheduler/migrate-begin.dot similarity index 100% rename from cts/pengine/migrate-begin.dot rename to cts/scheduler/migrate-begin.dot diff --git a/cts/pengine/migrate-begin.exp b/cts/scheduler/migrate-begin.exp similarity index 100% rename from cts/pengine/migrate-begin.exp rename to cts/scheduler/migrate-begin.exp diff --git a/cts/pengine/migrate-begin.scores b/cts/scheduler/migrate-begin.scores similarity index 100% rename from cts/pengine/migrate-begin.scores rename to cts/scheduler/migrate-begin.scores diff --git a/cts/pengine/migrate-begin.summary b/cts/scheduler/migrate-begin.summary similarity index 100% rename from cts/pengine/migrate-begin.summary rename to cts/scheduler/migrate-begin.summary diff --git a/cts/pengine/migrate-begin.xml b/cts/scheduler/migrate-begin.xml similarity index 100% rename from cts/pengine/migrate-begin.xml rename to cts/scheduler/migrate-begin.xml diff --git a/cts/pengine/migrate-both-vms.dot b/cts/scheduler/migrate-both-vms.dot similarity index 100% rename from cts/pengine/migrate-both-vms.dot rename to cts/scheduler/migrate-both-vms.dot diff --git a/cts/pengine/migrate-both-vms.exp b/cts/scheduler/migrate-both-vms.exp similarity index 100% rename from cts/pengine/migrate-both-vms.exp rename to cts/scheduler/migrate-both-vms.exp diff --git a/cts/pengine/migrate-both-vms.scores b/cts/scheduler/migrate-both-vms.scores similarity index 100% rename from cts/pengine/migrate-both-vms.scores rename to cts/scheduler/migrate-both-vms.scores diff --git a/cts/pengine/migrate-both-vms.summary b/cts/scheduler/migrate-both-vms.summary similarity index 100% rename from cts/pengine/migrate-both-vms.summary rename to cts/scheduler/migrate-both-vms.summary diff --git a/cts/pengine/migrate-both-vms.xml b/cts/scheduler/migrate-both-vms.xml similarity index 100% rename from cts/pengine/migrate-both-vms.xml rename to cts/scheduler/migrate-both-vms.xml diff --git a/cts/pengine/migrate-fail-2.dot b/cts/scheduler/migrate-fail-2.dot similarity index 100% rename from cts/pengine/migrate-fail-2.dot rename to cts/scheduler/migrate-fail-2.dot diff --git a/cts/pengine/migrate-fail-2.exp b/cts/scheduler/migrate-fail-2.exp similarity index 100% rename from cts/pengine/migrate-fail-2.exp rename to cts/scheduler/migrate-fail-2.exp diff --git a/cts/pengine/migrate-fail-2.scores b/cts/scheduler/migrate-fail-2.scores similarity index 100% rename from cts/pengine/migrate-fail-2.scores rename to cts/scheduler/migrate-fail-2.scores diff --git a/cts/pengine/migrate-fail-2.summary b/cts/scheduler/migrate-fail-2.summary similarity index 100% rename from cts/pengine/migrate-fail-2.summary rename to cts/scheduler/migrate-fail-2.summary diff --git a/cts/pengine/migrate-fail-2.xml b/cts/scheduler/migrate-fail-2.xml similarity index 100% rename from cts/pengine/migrate-fail-2.xml rename to cts/scheduler/migrate-fail-2.xml diff --git a/cts/pengine/migrate-fail-3.dot b/cts/scheduler/migrate-fail-3.dot similarity index 100% rename from cts/pengine/migrate-fail-3.dot rename to cts/scheduler/migrate-fail-3.dot diff --git a/cts/pengine/migrate-fail-3.exp b/cts/scheduler/migrate-fail-3.exp similarity index 100% rename from cts/pengine/migrate-fail-3.exp rename to cts/scheduler/migrate-fail-3.exp diff --git a/cts/pengine/migrate-fail-3.scores b/cts/scheduler/migrate-fail-3.scores similarity index 100% rename from cts/pengine/migrate-fail-3.scores rename to cts/scheduler/migrate-fail-3.scores diff --git a/cts/pengine/migrate-fail-3.summary b/cts/scheduler/migrate-fail-3.summary similarity index 100% rename from cts/pengine/migrate-fail-3.summary rename to cts/scheduler/migrate-fail-3.summary diff --git a/cts/pengine/migrate-fail-3.xml b/cts/scheduler/migrate-fail-3.xml similarity index 100% rename from cts/pengine/migrate-fail-3.xml rename to cts/scheduler/migrate-fail-3.xml diff --git a/cts/pengine/migrate-fail-4.dot b/cts/scheduler/migrate-fail-4.dot similarity index 100% rename from cts/pengine/migrate-fail-4.dot rename to cts/scheduler/migrate-fail-4.dot diff --git a/cts/pengine/migrate-fail-4.exp b/cts/scheduler/migrate-fail-4.exp similarity index 100% rename from cts/pengine/migrate-fail-4.exp rename to cts/scheduler/migrate-fail-4.exp diff --git a/cts/pengine/migrate-fail-4.scores b/cts/scheduler/migrate-fail-4.scores similarity index 100% rename from cts/pengine/migrate-fail-4.scores rename to cts/scheduler/migrate-fail-4.scores diff --git a/cts/pengine/migrate-fail-4.summary b/cts/scheduler/migrate-fail-4.summary similarity index 100% rename from cts/pengine/migrate-fail-4.summary rename to cts/scheduler/migrate-fail-4.summary diff --git a/cts/pengine/migrate-fail-4.xml b/cts/scheduler/migrate-fail-4.xml similarity index 100% rename from cts/pengine/migrate-fail-4.xml rename to cts/scheduler/migrate-fail-4.xml diff --git a/cts/pengine/migrate-fail-5.dot b/cts/scheduler/migrate-fail-5.dot similarity index 100% rename from cts/pengine/migrate-fail-5.dot rename to cts/scheduler/migrate-fail-5.dot diff --git a/cts/pengine/migrate-fail-5.exp b/cts/scheduler/migrate-fail-5.exp similarity index 100% rename from cts/pengine/migrate-fail-5.exp rename to cts/scheduler/migrate-fail-5.exp diff --git a/cts/pengine/migrate-fail-5.scores b/cts/scheduler/migrate-fail-5.scores similarity index 100% rename from cts/pengine/migrate-fail-5.scores rename to cts/scheduler/migrate-fail-5.scores diff --git a/cts/pengine/migrate-fail-5.summary b/cts/scheduler/migrate-fail-5.summary similarity index 100% rename from cts/pengine/migrate-fail-5.summary rename to cts/scheduler/migrate-fail-5.summary diff --git a/cts/pengine/migrate-fail-5.xml b/cts/scheduler/migrate-fail-5.xml similarity index 100% rename from cts/pengine/migrate-fail-5.xml rename to cts/scheduler/migrate-fail-5.xml diff --git a/cts/pengine/migrate-fail-6.dot b/cts/scheduler/migrate-fail-6.dot similarity index 100% rename from cts/pengine/migrate-fail-6.dot rename to cts/scheduler/migrate-fail-6.dot diff --git a/cts/pengine/migrate-fail-6.exp b/cts/scheduler/migrate-fail-6.exp similarity index 100% rename from cts/pengine/migrate-fail-6.exp rename to cts/scheduler/migrate-fail-6.exp diff --git a/cts/pengine/migrate-fail-6.scores b/cts/scheduler/migrate-fail-6.scores similarity index 100% rename from cts/pengine/migrate-fail-6.scores rename to cts/scheduler/migrate-fail-6.scores diff --git a/cts/pengine/migrate-fail-6.summary b/cts/scheduler/migrate-fail-6.summary similarity index 100% rename from cts/pengine/migrate-fail-6.summary rename to cts/scheduler/migrate-fail-6.summary diff --git a/cts/pengine/migrate-fail-6.xml b/cts/scheduler/migrate-fail-6.xml similarity index 100% rename from cts/pengine/migrate-fail-6.xml rename to cts/scheduler/migrate-fail-6.xml diff --git a/cts/pengine/migrate-fail-7.dot b/cts/scheduler/migrate-fail-7.dot similarity index 100% rename from cts/pengine/migrate-fail-7.dot rename to cts/scheduler/migrate-fail-7.dot diff --git a/cts/pengine/migrate-fail-7.exp b/cts/scheduler/migrate-fail-7.exp similarity index 100% rename from cts/pengine/migrate-fail-7.exp rename to cts/scheduler/migrate-fail-7.exp diff --git a/cts/pengine/migrate-fail-7.scores b/cts/scheduler/migrate-fail-7.scores similarity index 100% rename from cts/pengine/migrate-fail-7.scores rename to cts/scheduler/migrate-fail-7.scores diff --git a/cts/pengine/migrate-fail-7.summary b/cts/scheduler/migrate-fail-7.summary similarity index 100% rename from cts/pengine/migrate-fail-7.summary rename to cts/scheduler/migrate-fail-7.summary diff --git a/cts/pengine/migrate-fail-7.xml b/cts/scheduler/migrate-fail-7.xml similarity index 100% rename from cts/pengine/migrate-fail-7.xml rename to cts/scheduler/migrate-fail-7.xml diff --git a/cts/pengine/migrate-fail-8.dot b/cts/scheduler/migrate-fail-8.dot similarity index 100% rename from cts/pengine/migrate-fail-8.dot rename to cts/scheduler/migrate-fail-8.dot diff --git a/cts/pengine/migrate-fail-8.exp b/cts/scheduler/migrate-fail-8.exp similarity index 100% rename from cts/pengine/migrate-fail-8.exp rename to cts/scheduler/migrate-fail-8.exp diff --git a/cts/pengine/migrate-fail-8.scores b/cts/scheduler/migrate-fail-8.scores similarity index 100% rename from cts/pengine/migrate-fail-8.scores rename to cts/scheduler/migrate-fail-8.scores diff --git a/cts/pengine/migrate-fail-8.summary b/cts/scheduler/migrate-fail-8.summary similarity index 100% rename from cts/pengine/migrate-fail-8.summary rename to cts/scheduler/migrate-fail-8.summary diff --git a/cts/pengine/migrate-fail-8.xml b/cts/scheduler/migrate-fail-8.xml similarity index 100% rename from cts/pengine/migrate-fail-8.xml rename to cts/scheduler/migrate-fail-8.xml diff --git a/cts/pengine/migrate-fail-9.dot b/cts/scheduler/migrate-fail-9.dot similarity index 100% rename from cts/pengine/migrate-fail-9.dot rename to cts/scheduler/migrate-fail-9.dot diff --git a/cts/pengine/migrate-fail-9.exp b/cts/scheduler/migrate-fail-9.exp similarity index 100% rename from cts/pengine/migrate-fail-9.exp rename to cts/scheduler/migrate-fail-9.exp diff --git a/cts/pengine/migrate-fail-9.scores b/cts/scheduler/migrate-fail-9.scores similarity index 100% rename from cts/pengine/migrate-fail-9.scores rename to cts/scheduler/migrate-fail-9.scores diff --git a/cts/pengine/migrate-fail-9.summary b/cts/scheduler/migrate-fail-9.summary similarity index 100% rename from cts/pengine/migrate-fail-9.summary rename to cts/scheduler/migrate-fail-9.summary diff --git a/cts/pengine/migrate-fail-9.xml b/cts/scheduler/migrate-fail-9.xml similarity index 100% rename from cts/pengine/migrate-fail-9.xml rename to cts/scheduler/migrate-fail-9.xml diff --git a/cts/pengine/migrate-fencing.dot b/cts/scheduler/migrate-fencing.dot similarity index 100% rename from cts/pengine/migrate-fencing.dot rename to cts/scheduler/migrate-fencing.dot diff --git a/cts/pengine/migrate-fencing.exp b/cts/scheduler/migrate-fencing.exp similarity index 100% rename from cts/pengine/migrate-fencing.exp rename to cts/scheduler/migrate-fencing.exp diff --git a/cts/pengine/migrate-fencing.scores b/cts/scheduler/migrate-fencing.scores similarity index 100% rename from cts/pengine/migrate-fencing.scores rename to cts/scheduler/migrate-fencing.scores diff --git a/cts/pengine/migrate-fencing.summary b/cts/scheduler/migrate-fencing.summary similarity index 100% rename from cts/pengine/migrate-fencing.summary rename to cts/scheduler/migrate-fencing.summary diff --git a/cts/pengine/migrate-fencing.xml b/cts/scheduler/migrate-fencing.xml similarity index 100% rename from cts/pengine/migrate-fencing.xml rename to cts/scheduler/migrate-fencing.xml diff --git a/cts/pengine/migrate-partial-1.dot b/cts/scheduler/migrate-partial-1.dot similarity index 100% rename from cts/pengine/migrate-partial-1.dot rename to cts/scheduler/migrate-partial-1.dot diff --git a/cts/pengine/migrate-partial-1.exp b/cts/scheduler/migrate-partial-1.exp similarity index 100% rename from cts/pengine/migrate-partial-1.exp rename to cts/scheduler/migrate-partial-1.exp diff --git a/cts/pengine/migrate-partial-1.scores b/cts/scheduler/migrate-partial-1.scores similarity index 100% rename from cts/pengine/migrate-partial-1.scores rename to cts/scheduler/migrate-partial-1.scores diff --git a/cts/pengine/migrate-partial-1.summary b/cts/scheduler/migrate-partial-1.summary similarity index 100% rename from cts/pengine/migrate-partial-1.summary rename to cts/scheduler/migrate-partial-1.summary diff --git a/cts/pengine/migrate-partial-1.xml b/cts/scheduler/migrate-partial-1.xml similarity index 100% rename from cts/pengine/migrate-partial-1.xml rename to cts/scheduler/migrate-partial-1.xml diff --git a/cts/pengine/migrate-partial-2.dot b/cts/scheduler/migrate-partial-2.dot similarity index 100% rename from cts/pengine/migrate-partial-2.dot rename to cts/scheduler/migrate-partial-2.dot diff --git a/cts/pengine/migrate-partial-2.exp b/cts/scheduler/migrate-partial-2.exp similarity index 100% rename from cts/pengine/migrate-partial-2.exp rename to cts/scheduler/migrate-partial-2.exp diff --git a/cts/pengine/migrate-partial-2.scores b/cts/scheduler/migrate-partial-2.scores similarity index 100% rename from cts/pengine/migrate-partial-2.scores rename to cts/scheduler/migrate-partial-2.scores diff --git a/cts/pengine/migrate-partial-2.summary b/cts/scheduler/migrate-partial-2.summary similarity index 100% rename from cts/pengine/migrate-partial-2.summary rename to cts/scheduler/migrate-partial-2.summary diff --git a/cts/pengine/migrate-partial-2.xml b/cts/scheduler/migrate-partial-2.xml similarity index 100% rename from cts/pengine/migrate-partial-2.xml rename to cts/scheduler/migrate-partial-2.xml diff --git a/cts/pengine/migrate-partial-3.dot b/cts/scheduler/migrate-partial-3.dot similarity index 100% rename from cts/pengine/migrate-partial-3.dot rename to cts/scheduler/migrate-partial-3.dot diff --git a/cts/pengine/migrate-partial-3.exp b/cts/scheduler/migrate-partial-3.exp similarity index 100% rename from cts/pengine/migrate-partial-3.exp rename to cts/scheduler/migrate-partial-3.exp diff --git a/cts/pengine/migrate-partial-3.scores b/cts/scheduler/migrate-partial-3.scores similarity index 100% rename from cts/pengine/migrate-partial-3.scores rename to cts/scheduler/migrate-partial-3.scores diff --git a/cts/pengine/migrate-partial-3.summary b/cts/scheduler/migrate-partial-3.summary similarity index 100% rename from cts/pengine/migrate-partial-3.summary rename to cts/scheduler/migrate-partial-3.summary diff --git a/cts/pengine/migrate-partial-3.xml b/cts/scheduler/migrate-partial-3.xml similarity index 100% rename from cts/pengine/migrate-partial-3.xml rename to cts/scheduler/migrate-partial-3.xml diff --git a/cts/pengine/migrate-partial-4.dot b/cts/scheduler/migrate-partial-4.dot similarity index 100% rename from cts/pengine/migrate-partial-4.dot rename to cts/scheduler/migrate-partial-4.dot diff --git a/cts/pengine/migrate-partial-4.exp b/cts/scheduler/migrate-partial-4.exp similarity index 100% rename from cts/pengine/migrate-partial-4.exp rename to cts/scheduler/migrate-partial-4.exp diff --git a/cts/pengine/migrate-partial-4.scores b/cts/scheduler/migrate-partial-4.scores similarity index 100% rename from cts/pengine/migrate-partial-4.scores rename to cts/scheduler/migrate-partial-4.scores diff --git a/cts/pengine/migrate-partial-4.summary b/cts/scheduler/migrate-partial-4.summary similarity index 100% rename from cts/pengine/migrate-partial-4.summary rename to cts/scheduler/migrate-partial-4.summary diff --git a/cts/pengine/migrate-partial-4.xml b/cts/scheduler/migrate-partial-4.xml similarity index 100% rename from cts/pengine/migrate-partial-4.xml rename to cts/scheduler/migrate-partial-4.xml diff --git a/cts/pengine/migrate-shutdown.dot b/cts/scheduler/migrate-shutdown.dot similarity index 100% rename from cts/pengine/migrate-shutdown.dot rename to cts/scheduler/migrate-shutdown.dot diff --git a/cts/pengine/migrate-shutdown.exp b/cts/scheduler/migrate-shutdown.exp similarity index 100% rename from cts/pengine/migrate-shutdown.exp rename to cts/scheduler/migrate-shutdown.exp diff --git a/cts/pengine/migrate-shutdown.scores b/cts/scheduler/migrate-shutdown.scores similarity index 100% rename from cts/pengine/migrate-shutdown.scores rename to cts/scheduler/migrate-shutdown.scores diff --git a/cts/pengine/migrate-shutdown.summary b/cts/scheduler/migrate-shutdown.summary similarity index 100% rename from cts/pengine/migrate-shutdown.summary rename to cts/scheduler/migrate-shutdown.summary diff --git a/cts/pengine/migrate-shutdown.xml b/cts/scheduler/migrate-shutdown.xml similarity index 100% rename from cts/pengine/migrate-shutdown.xml rename to cts/scheduler/migrate-shutdown.xml diff --git a/cts/pengine/migrate-start-complex.dot b/cts/scheduler/migrate-start-complex.dot similarity index 100% rename from cts/pengine/migrate-start-complex.dot rename to cts/scheduler/migrate-start-complex.dot diff --git a/cts/pengine/migrate-start-complex.exp b/cts/scheduler/migrate-start-complex.exp similarity index 100% rename from cts/pengine/migrate-start-complex.exp rename to cts/scheduler/migrate-start-complex.exp diff --git a/cts/pengine/migrate-start-complex.scores b/cts/scheduler/migrate-start-complex.scores similarity index 100% rename from cts/pengine/migrate-start-complex.scores rename to cts/scheduler/migrate-start-complex.scores diff --git a/cts/pengine/migrate-start-complex.summary b/cts/scheduler/migrate-start-complex.summary similarity index 100% rename from cts/pengine/migrate-start-complex.summary rename to cts/scheduler/migrate-start-complex.summary diff --git a/cts/pengine/migrate-start-complex.xml b/cts/scheduler/migrate-start-complex.xml similarity index 100% rename from cts/pengine/migrate-start-complex.xml rename to cts/scheduler/migrate-start-complex.xml diff --git a/cts/pengine/migrate-start.dot b/cts/scheduler/migrate-start.dot similarity index 100% rename from cts/pengine/migrate-start.dot rename to cts/scheduler/migrate-start.dot diff --git a/cts/pengine/migrate-start.exp b/cts/scheduler/migrate-start.exp similarity index 100% rename from cts/pengine/migrate-start.exp rename to cts/scheduler/migrate-start.exp diff --git a/cts/pengine/migrate-start.scores b/cts/scheduler/migrate-start.scores similarity index 100% rename from cts/pengine/migrate-start.scores rename to cts/scheduler/migrate-start.scores diff --git a/cts/pengine/migrate-start.summary b/cts/scheduler/migrate-start.summary similarity index 100% rename from cts/pengine/migrate-start.summary rename to cts/scheduler/migrate-start.summary diff --git a/cts/pengine/migrate-start.xml b/cts/scheduler/migrate-start.xml similarity index 100% rename from cts/pengine/migrate-start.xml rename to cts/scheduler/migrate-start.xml diff --git a/cts/pengine/migrate-stop-complex.dot b/cts/scheduler/migrate-stop-complex.dot similarity index 100% rename from cts/pengine/migrate-stop-complex.dot rename to cts/scheduler/migrate-stop-complex.dot diff --git a/cts/pengine/migrate-stop-complex.exp b/cts/scheduler/migrate-stop-complex.exp similarity index 100% rename from cts/pengine/migrate-stop-complex.exp rename to cts/scheduler/migrate-stop-complex.exp diff --git a/cts/pengine/migrate-stop-complex.scores b/cts/scheduler/migrate-stop-complex.scores similarity index 100% rename from cts/pengine/migrate-stop-complex.scores rename to cts/scheduler/migrate-stop-complex.scores diff --git a/cts/pengine/migrate-stop-complex.summary b/cts/scheduler/migrate-stop-complex.summary similarity index 100% rename from cts/pengine/migrate-stop-complex.summary rename to cts/scheduler/migrate-stop-complex.summary diff --git a/cts/pengine/migrate-stop-complex.xml b/cts/scheduler/migrate-stop-complex.xml similarity index 100% rename from cts/pengine/migrate-stop-complex.xml rename to cts/scheduler/migrate-stop-complex.xml diff --git a/cts/pengine/migrate-stop-start-complex.dot b/cts/scheduler/migrate-stop-start-complex.dot similarity index 100% rename from cts/pengine/migrate-stop-start-complex.dot rename to cts/scheduler/migrate-stop-start-complex.dot diff --git a/cts/pengine/migrate-stop-start-complex.exp b/cts/scheduler/migrate-stop-start-complex.exp similarity index 100% rename from cts/pengine/migrate-stop-start-complex.exp rename to cts/scheduler/migrate-stop-start-complex.exp diff --git a/cts/pengine/migrate-stop-start-complex.scores b/cts/scheduler/migrate-stop-start-complex.scores similarity index 100% rename from cts/pengine/migrate-stop-start-complex.scores rename to cts/scheduler/migrate-stop-start-complex.scores diff --git a/cts/pengine/migrate-stop-start-complex.summary b/cts/scheduler/migrate-stop-start-complex.summary similarity index 100% rename from cts/pengine/migrate-stop-start-complex.summary rename to cts/scheduler/migrate-stop-start-complex.summary diff --git a/cts/pengine/migrate-stop-start-complex.xml b/cts/scheduler/migrate-stop-start-complex.xml similarity index 100% rename from cts/pengine/migrate-stop-start-complex.xml rename to cts/scheduler/migrate-stop-start-complex.xml diff --git a/cts/pengine/migrate-stop.dot b/cts/scheduler/migrate-stop.dot similarity index 100% rename from cts/pengine/migrate-stop.dot rename to cts/scheduler/migrate-stop.dot diff --git a/cts/pengine/migrate-stop.exp b/cts/scheduler/migrate-stop.exp similarity index 100% rename from cts/pengine/migrate-stop.exp rename to cts/scheduler/migrate-stop.exp diff --git a/cts/pengine/migrate-stop.scores b/cts/scheduler/migrate-stop.scores similarity index 100% rename from cts/pengine/migrate-stop.scores rename to cts/scheduler/migrate-stop.scores diff --git a/cts/pengine/migrate-stop.summary b/cts/scheduler/migrate-stop.summary similarity index 100% rename from cts/pengine/migrate-stop.summary rename to cts/scheduler/migrate-stop.summary diff --git a/cts/pengine/migrate-stop.xml b/cts/scheduler/migrate-stop.xml similarity index 100% rename from cts/pengine/migrate-stop.xml rename to cts/scheduler/migrate-stop.xml diff --git a/cts/pengine/migrate-stop_start.dot b/cts/scheduler/migrate-stop_start.dot similarity index 100% rename from cts/pengine/migrate-stop_start.dot rename to cts/scheduler/migrate-stop_start.dot diff --git a/cts/pengine/migrate-stop_start.exp b/cts/scheduler/migrate-stop_start.exp similarity index 100% rename from cts/pengine/migrate-stop_start.exp rename to cts/scheduler/migrate-stop_start.exp diff --git a/cts/pengine/migrate-stop_start.scores b/cts/scheduler/migrate-stop_start.scores similarity index 100% rename from cts/pengine/migrate-stop_start.scores rename to cts/scheduler/migrate-stop_start.scores diff --git a/cts/pengine/migrate-stop_start.summary b/cts/scheduler/migrate-stop_start.summary similarity index 100% rename from cts/pengine/migrate-stop_start.summary rename to cts/scheduler/migrate-stop_start.summary diff --git a/cts/pengine/migrate-stop_start.xml b/cts/scheduler/migrate-stop_start.xml similarity index 100% rename from cts/pengine/migrate-stop_start.xml rename to cts/scheduler/migrate-stop_start.xml diff --git a/cts/pengine/migrate-success.dot b/cts/scheduler/migrate-success.dot similarity index 100% rename from cts/pengine/migrate-success.dot rename to cts/scheduler/migrate-success.dot diff --git a/cts/pengine/migrate-success.exp b/cts/scheduler/migrate-success.exp similarity index 100% rename from cts/pengine/migrate-success.exp rename to cts/scheduler/migrate-success.exp diff --git a/cts/pengine/migrate-success.scores b/cts/scheduler/migrate-success.scores similarity index 100% rename from cts/pengine/migrate-success.scores rename to cts/scheduler/migrate-success.scores diff --git a/cts/pengine/migrate-success.summary b/cts/scheduler/migrate-success.summary similarity index 100% rename from cts/pengine/migrate-success.summary rename to cts/scheduler/migrate-success.summary diff --git a/cts/pengine/migrate-success.xml b/cts/scheduler/migrate-success.xml similarity index 100% rename from cts/pengine/migrate-success.xml rename to cts/scheduler/migrate-success.xml diff --git a/cts/pengine/migrate-versioned.dot b/cts/scheduler/migrate-versioned.dot similarity index 100% rename from cts/pengine/migrate-versioned.dot rename to cts/scheduler/migrate-versioned.dot diff --git a/cts/pengine/migrate-versioned.exp b/cts/scheduler/migrate-versioned.exp similarity index 100% rename from cts/pengine/migrate-versioned.exp rename to cts/scheduler/migrate-versioned.exp diff --git a/cts/pengine/migrate-versioned.scores b/cts/scheduler/migrate-versioned.scores similarity index 100% rename from cts/pengine/migrate-versioned.scores rename to cts/scheduler/migrate-versioned.scores diff --git a/cts/pengine/migrate-versioned.summary b/cts/scheduler/migrate-versioned.summary similarity index 100% rename from cts/pengine/migrate-versioned.summary rename to cts/scheduler/migrate-versioned.summary diff --git a/cts/pengine/migrate-versioned.xml b/cts/scheduler/migrate-versioned.xml similarity index 100% rename from cts/pengine/migrate-versioned.xml rename to cts/scheduler/migrate-versioned.xml diff --git a/cts/pengine/migration-behind-migrating-remote.dot b/cts/scheduler/migration-behind-migrating-remote.dot similarity index 100% rename from cts/pengine/migration-behind-migrating-remote.dot rename to cts/scheduler/migration-behind-migrating-remote.dot diff --git a/cts/pengine/migration-behind-migrating-remote.exp b/cts/scheduler/migration-behind-migrating-remote.exp similarity index 100% rename from cts/pengine/migration-behind-migrating-remote.exp rename to cts/scheduler/migration-behind-migrating-remote.exp diff --git a/cts/pengine/migration-behind-migrating-remote.scores b/cts/scheduler/migration-behind-migrating-remote.scores similarity index 100% rename from cts/pengine/migration-behind-migrating-remote.scores rename to cts/scheduler/migration-behind-migrating-remote.scores diff --git a/cts/pengine/migration-behind-migrating-remote.summary b/cts/scheduler/migration-behind-migrating-remote.summary similarity index 100% rename from cts/pengine/migration-behind-migrating-remote.summary rename to cts/scheduler/migration-behind-migrating-remote.summary diff --git a/cts/pengine/migration-behind-migrating-remote.xml b/cts/scheduler/migration-behind-migrating-remote.xml similarity index 100% rename from cts/pengine/migration-behind-migrating-remote.xml rename to cts/scheduler/migration-behind-migrating-remote.xml diff --git a/cts/pengine/minimal.dot b/cts/scheduler/minimal.dot similarity index 100% rename from cts/pengine/minimal.dot rename to cts/scheduler/minimal.dot diff --git a/cts/pengine/minimal.exp b/cts/scheduler/minimal.exp similarity index 100% rename from cts/pengine/minimal.exp rename to cts/scheduler/minimal.exp diff --git a/cts/pengine/minimal.scores b/cts/scheduler/minimal.scores similarity index 100% rename from cts/pengine/minimal.scores rename to cts/scheduler/minimal.scores diff --git a/cts/pengine/minimal.summary b/cts/scheduler/minimal.summary similarity index 100% rename from cts/pengine/minimal.summary rename to cts/scheduler/minimal.summary diff --git a/cts/pengine/minimal.xml b/cts/scheduler/minimal.xml similarity index 100% rename from cts/pengine/minimal.xml rename to cts/scheduler/minimal.xml diff --git a/cts/pengine/mon-rsc-1.dot b/cts/scheduler/mon-rsc-1.dot similarity index 100% rename from cts/pengine/mon-rsc-1.dot rename to cts/scheduler/mon-rsc-1.dot diff --git a/cts/pengine/mon-rsc-1.exp b/cts/scheduler/mon-rsc-1.exp similarity index 100% rename from cts/pengine/mon-rsc-1.exp rename to cts/scheduler/mon-rsc-1.exp diff --git a/cts/pengine/mon-rsc-1.scores b/cts/scheduler/mon-rsc-1.scores similarity index 100% rename from cts/pengine/mon-rsc-1.scores rename to cts/scheduler/mon-rsc-1.scores diff --git a/cts/pengine/mon-rsc-1.summary b/cts/scheduler/mon-rsc-1.summary similarity index 100% rename from cts/pengine/mon-rsc-1.summary rename to cts/scheduler/mon-rsc-1.summary diff --git a/cts/pengine/mon-rsc-1.te.exp b/cts/scheduler/mon-rsc-1.te.exp similarity index 100% rename from cts/pengine/mon-rsc-1.te.exp rename to cts/scheduler/mon-rsc-1.te.exp diff --git a/cts/pengine/mon-rsc-1.xml b/cts/scheduler/mon-rsc-1.xml similarity index 100% rename from cts/pengine/mon-rsc-1.xml rename to cts/scheduler/mon-rsc-1.xml diff --git a/cts/pengine/mon-rsc-2.dot b/cts/scheduler/mon-rsc-2.dot similarity index 100% rename from cts/pengine/mon-rsc-2.dot rename to cts/scheduler/mon-rsc-2.dot diff --git a/cts/pengine/mon-rsc-2.exp b/cts/scheduler/mon-rsc-2.exp similarity index 100% rename from cts/pengine/mon-rsc-2.exp rename to cts/scheduler/mon-rsc-2.exp diff --git a/cts/pengine/mon-rsc-2.scores b/cts/scheduler/mon-rsc-2.scores similarity index 100% rename from cts/pengine/mon-rsc-2.scores rename to cts/scheduler/mon-rsc-2.scores diff --git a/cts/pengine/mon-rsc-2.summary b/cts/scheduler/mon-rsc-2.summary similarity index 100% rename from cts/pengine/mon-rsc-2.summary rename to cts/scheduler/mon-rsc-2.summary diff --git a/cts/pengine/mon-rsc-2.te.exp b/cts/scheduler/mon-rsc-2.te.exp similarity index 100% rename from cts/pengine/mon-rsc-2.te.exp rename to cts/scheduler/mon-rsc-2.te.exp diff --git a/cts/pengine/mon-rsc-2.xml b/cts/scheduler/mon-rsc-2.xml similarity index 100% rename from cts/pengine/mon-rsc-2.xml rename to cts/scheduler/mon-rsc-2.xml diff --git a/cts/pengine/mon-rsc-3.dot b/cts/scheduler/mon-rsc-3.dot similarity index 100% rename from cts/pengine/mon-rsc-3.dot rename to cts/scheduler/mon-rsc-3.dot diff --git a/cts/pengine/mon-rsc-3.exp b/cts/scheduler/mon-rsc-3.exp similarity index 100% rename from cts/pengine/mon-rsc-3.exp rename to cts/scheduler/mon-rsc-3.exp diff --git a/cts/pengine/mon-rsc-3.scores b/cts/scheduler/mon-rsc-3.scores similarity index 100% rename from cts/pengine/mon-rsc-3.scores rename to cts/scheduler/mon-rsc-3.scores diff --git a/cts/pengine/mon-rsc-3.summary b/cts/scheduler/mon-rsc-3.summary similarity index 100% rename from cts/pengine/mon-rsc-3.summary rename to cts/scheduler/mon-rsc-3.summary diff --git a/cts/pengine/mon-rsc-3.te.exp b/cts/scheduler/mon-rsc-3.te.exp similarity index 100% rename from cts/pengine/mon-rsc-3.te.exp rename to cts/scheduler/mon-rsc-3.te.exp diff --git a/cts/pengine/mon-rsc-3.xml b/cts/scheduler/mon-rsc-3.xml similarity index 100% rename from cts/pengine/mon-rsc-3.xml rename to cts/scheduler/mon-rsc-3.xml diff --git a/cts/pengine/mon-rsc-4.dot b/cts/scheduler/mon-rsc-4.dot similarity index 100% rename from cts/pengine/mon-rsc-4.dot rename to cts/scheduler/mon-rsc-4.dot diff --git a/cts/pengine/mon-rsc-4.exp b/cts/scheduler/mon-rsc-4.exp similarity index 100% rename from cts/pengine/mon-rsc-4.exp rename to cts/scheduler/mon-rsc-4.exp diff --git a/cts/pengine/mon-rsc-4.scores b/cts/scheduler/mon-rsc-4.scores similarity index 100% rename from cts/pengine/mon-rsc-4.scores rename to cts/scheduler/mon-rsc-4.scores diff --git a/cts/pengine/mon-rsc-4.summary b/cts/scheduler/mon-rsc-4.summary similarity index 100% rename from cts/pengine/mon-rsc-4.summary rename to cts/scheduler/mon-rsc-4.summary diff --git a/cts/pengine/mon-rsc-4.te.exp b/cts/scheduler/mon-rsc-4.te.exp similarity index 100% rename from cts/pengine/mon-rsc-4.te.exp rename to cts/scheduler/mon-rsc-4.te.exp diff --git a/cts/pengine/mon-rsc-4.xml b/cts/scheduler/mon-rsc-4.xml similarity index 100% rename from cts/pengine/mon-rsc-4.xml rename to cts/scheduler/mon-rsc-4.xml diff --git a/cts/pengine/monitor-onfail-restart.dot b/cts/scheduler/monitor-onfail-restart.dot similarity index 100% rename from cts/pengine/monitor-onfail-restart.dot rename to cts/scheduler/monitor-onfail-restart.dot diff --git a/cts/pengine/monitor-onfail-restart.exp b/cts/scheduler/monitor-onfail-restart.exp similarity index 100% rename from cts/pengine/monitor-onfail-restart.exp rename to cts/scheduler/monitor-onfail-restart.exp diff --git a/cts/pengine/monitor-onfail-restart.scores b/cts/scheduler/monitor-onfail-restart.scores similarity index 100% rename from cts/pengine/monitor-onfail-restart.scores rename to cts/scheduler/monitor-onfail-restart.scores diff --git a/cts/pengine/monitor-onfail-restart.summary b/cts/scheduler/monitor-onfail-restart.summary similarity index 100% rename from cts/pengine/monitor-onfail-restart.summary rename to cts/scheduler/monitor-onfail-restart.summary diff --git a/cts/pengine/monitor-onfail-restart.xml b/cts/scheduler/monitor-onfail-restart.xml similarity index 100% rename from cts/pengine/monitor-onfail-restart.xml rename to cts/scheduler/monitor-onfail-restart.xml diff --git a/cts/pengine/monitor-onfail-stop.dot b/cts/scheduler/monitor-onfail-stop.dot similarity index 100% rename from cts/pengine/monitor-onfail-stop.dot rename to cts/scheduler/monitor-onfail-stop.dot diff --git a/cts/pengine/monitor-onfail-stop.exp b/cts/scheduler/monitor-onfail-stop.exp similarity index 100% rename from cts/pengine/monitor-onfail-stop.exp rename to cts/scheduler/monitor-onfail-stop.exp diff --git a/cts/pengine/monitor-onfail-stop.scores b/cts/scheduler/monitor-onfail-stop.scores similarity index 100% rename from cts/pengine/monitor-onfail-stop.scores rename to cts/scheduler/monitor-onfail-stop.scores diff --git a/cts/pengine/monitor-onfail-stop.summary b/cts/scheduler/monitor-onfail-stop.summary similarity index 100% rename from cts/pengine/monitor-onfail-stop.summary rename to cts/scheduler/monitor-onfail-stop.summary diff --git a/cts/pengine/monitor-onfail-stop.xml b/cts/scheduler/monitor-onfail-stop.xml similarity index 100% rename from cts/pengine/monitor-onfail-stop.xml rename to cts/scheduler/monitor-onfail-stop.xml diff --git a/cts/pengine/monitor-recovery.dot b/cts/scheduler/monitor-recovery.dot similarity index 100% rename from cts/pengine/monitor-recovery.dot rename to cts/scheduler/monitor-recovery.dot diff --git a/cts/pengine/monitor-recovery.exp b/cts/scheduler/monitor-recovery.exp similarity index 100% rename from cts/pengine/monitor-recovery.exp rename to cts/scheduler/monitor-recovery.exp diff --git a/cts/pengine/monitor-recovery.scores b/cts/scheduler/monitor-recovery.scores similarity index 100% rename from cts/pengine/monitor-recovery.scores rename to cts/scheduler/monitor-recovery.scores diff --git a/cts/pengine/monitor-recovery.summary b/cts/scheduler/monitor-recovery.summary similarity index 100% rename from cts/pengine/monitor-recovery.summary rename to cts/scheduler/monitor-recovery.summary diff --git a/cts/pengine/monitor-recovery.xml b/cts/scheduler/monitor-recovery.xml similarity index 100% rename from cts/pengine/monitor-recovery.xml rename to cts/scheduler/monitor-recovery.xml diff --git a/cts/pengine/multi1.dot b/cts/scheduler/multi1.dot similarity index 100% rename from cts/pengine/multi1.dot rename to cts/scheduler/multi1.dot diff --git a/cts/pengine/multi1.exp b/cts/scheduler/multi1.exp similarity index 100% rename from cts/pengine/multi1.exp rename to cts/scheduler/multi1.exp diff --git a/cts/pengine/multi1.scores b/cts/scheduler/multi1.scores similarity index 100% rename from cts/pengine/multi1.scores rename to cts/scheduler/multi1.scores diff --git a/cts/pengine/multi1.summary b/cts/scheduler/multi1.summary similarity index 100% rename from cts/pengine/multi1.summary rename to cts/scheduler/multi1.summary diff --git a/cts/pengine/multi1.te.exp b/cts/scheduler/multi1.te.exp similarity index 100% rename from cts/pengine/multi1.te.exp rename to cts/scheduler/multi1.te.exp diff --git a/cts/pengine/multi1.xml b/cts/scheduler/multi1.xml similarity index 100% rename from cts/pengine/multi1.xml rename to cts/scheduler/multi1.xml diff --git a/cts/pengine/multiple-active-block-group.dot b/cts/scheduler/multiple-active-block-group.dot similarity index 100% rename from cts/pengine/multiple-active-block-group.dot rename to cts/scheduler/multiple-active-block-group.dot diff --git a/cts/pengine/multiple-active-block-group.exp b/cts/scheduler/multiple-active-block-group.exp similarity index 100% rename from cts/pengine/multiple-active-block-group.exp rename to cts/scheduler/multiple-active-block-group.exp diff --git a/cts/pengine/multiple-active-block-group.scores b/cts/scheduler/multiple-active-block-group.scores similarity index 100% rename from cts/pengine/multiple-active-block-group.scores rename to cts/scheduler/multiple-active-block-group.scores diff --git a/cts/pengine/multiple-active-block-group.summary b/cts/scheduler/multiple-active-block-group.summary similarity index 100% rename from cts/pengine/multiple-active-block-group.summary rename to cts/scheduler/multiple-active-block-group.summary diff --git a/cts/pengine/multiple-active-block-group.xml b/cts/scheduler/multiple-active-block-group.xml similarity index 100% rename from cts/pengine/multiple-active-block-group.xml rename to cts/scheduler/multiple-active-block-group.xml diff --git a/cts/pengine/multiple-monitor-one-failed.dot b/cts/scheduler/multiple-monitor-one-failed.dot similarity index 100% rename from cts/pengine/multiple-monitor-one-failed.dot rename to cts/scheduler/multiple-monitor-one-failed.dot diff --git a/cts/pengine/multiple-monitor-one-failed.exp b/cts/scheduler/multiple-monitor-one-failed.exp similarity index 100% rename from cts/pengine/multiple-monitor-one-failed.exp rename to cts/scheduler/multiple-monitor-one-failed.exp diff --git a/cts/pengine/multiple-monitor-one-failed.scores b/cts/scheduler/multiple-monitor-one-failed.scores similarity index 100% rename from cts/pengine/multiple-monitor-one-failed.scores rename to cts/scheduler/multiple-monitor-one-failed.scores diff --git a/cts/pengine/multiple-monitor-one-failed.summary b/cts/scheduler/multiple-monitor-one-failed.summary similarity index 100% rename from cts/pengine/multiple-monitor-one-failed.summary rename to cts/scheduler/multiple-monitor-one-failed.summary diff --git a/cts/pengine/multiple-monitor-one-failed.xml b/cts/scheduler/multiple-monitor-one-failed.xml similarity index 100% rename from cts/pengine/multiple-monitor-one-failed.xml rename to cts/scheduler/multiple-monitor-one-failed.xml diff --git a/cts/pengine/node-maintenance-1.dot b/cts/scheduler/node-maintenance-1.dot similarity index 100% rename from cts/pengine/node-maintenance-1.dot rename to cts/scheduler/node-maintenance-1.dot diff --git a/cts/pengine/node-maintenance-1.exp b/cts/scheduler/node-maintenance-1.exp similarity index 100% rename from cts/pengine/node-maintenance-1.exp rename to cts/scheduler/node-maintenance-1.exp diff --git a/cts/pengine/node-maintenance-1.scores b/cts/scheduler/node-maintenance-1.scores similarity index 100% rename from cts/pengine/node-maintenance-1.scores rename to cts/scheduler/node-maintenance-1.scores diff --git a/cts/pengine/node-maintenance-1.summary b/cts/scheduler/node-maintenance-1.summary similarity index 100% rename from cts/pengine/node-maintenance-1.summary rename to cts/scheduler/node-maintenance-1.summary diff --git a/cts/pengine/node-maintenance-1.xml b/cts/scheduler/node-maintenance-1.xml similarity index 100% rename from cts/pengine/node-maintenance-1.xml rename to cts/scheduler/node-maintenance-1.xml diff --git a/cts/pengine/node-maintenance-2.dot b/cts/scheduler/node-maintenance-2.dot similarity index 100% rename from cts/pengine/node-maintenance-2.dot rename to cts/scheduler/node-maintenance-2.dot diff --git a/cts/pengine/node-maintenance-2.exp b/cts/scheduler/node-maintenance-2.exp similarity index 100% rename from cts/pengine/node-maintenance-2.exp rename to cts/scheduler/node-maintenance-2.exp diff --git a/cts/pengine/node-maintenance-2.scores b/cts/scheduler/node-maintenance-2.scores similarity index 100% rename from cts/pengine/node-maintenance-2.scores rename to cts/scheduler/node-maintenance-2.scores diff --git a/cts/pengine/node-maintenance-2.summary b/cts/scheduler/node-maintenance-2.summary similarity index 100% rename from cts/pengine/node-maintenance-2.summary rename to cts/scheduler/node-maintenance-2.summary diff --git a/cts/pengine/node-maintenance-2.xml b/cts/scheduler/node-maintenance-2.xml similarity index 100% rename from cts/pengine/node-maintenance-2.xml rename to cts/scheduler/node-maintenance-2.xml diff --git a/cts/pengine/not-installed-agent.dot b/cts/scheduler/not-installed-agent.dot similarity index 100% rename from cts/pengine/not-installed-agent.dot rename to cts/scheduler/not-installed-agent.dot diff --git a/cts/pengine/not-installed-agent.exp b/cts/scheduler/not-installed-agent.exp similarity index 100% rename from cts/pengine/not-installed-agent.exp rename to cts/scheduler/not-installed-agent.exp diff --git a/cts/pengine/not-installed-agent.scores b/cts/scheduler/not-installed-agent.scores similarity index 100% rename from cts/pengine/not-installed-agent.scores rename to cts/scheduler/not-installed-agent.scores diff --git a/cts/pengine/not-installed-agent.summary b/cts/scheduler/not-installed-agent.summary similarity index 100% rename from cts/pengine/not-installed-agent.summary rename to cts/scheduler/not-installed-agent.summary diff --git a/cts/pengine/not-installed-agent.xml b/cts/scheduler/not-installed-agent.xml similarity index 100% rename from cts/pengine/not-installed-agent.xml rename to cts/scheduler/not-installed-agent.xml diff --git a/cts/pengine/not-installed-tools.dot b/cts/scheduler/not-installed-tools.dot similarity index 100% rename from cts/pengine/not-installed-tools.dot rename to cts/scheduler/not-installed-tools.dot diff --git a/cts/pengine/not-installed-tools.exp b/cts/scheduler/not-installed-tools.exp similarity index 100% rename from cts/pengine/not-installed-tools.exp rename to cts/scheduler/not-installed-tools.exp diff --git a/cts/pengine/not-installed-tools.scores b/cts/scheduler/not-installed-tools.scores similarity index 100% rename from cts/pengine/not-installed-tools.scores rename to cts/scheduler/not-installed-tools.scores diff --git a/cts/pengine/not-installed-tools.summary b/cts/scheduler/not-installed-tools.summary similarity index 100% rename from cts/pengine/not-installed-tools.summary rename to cts/scheduler/not-installed-tools.summary diff --git a/cts/pengine/not-installed-tools.xml b/cts/scheduler/not-installed-tools.xml similarity index 100% rename from cts/pengine/not-installed-tools.xml rename to cts/scheduler/not-installed-tools.xml diff --git a/cts/pengine/not-reschedule-unneeded-monitor.dot b/cts/scheduler/not-reschedule-unneeded-monitor.dot similarity index 100% rename from cts/pengine/not-reschedule-unneeded-monitor.dot rename to cts/scheduler/not-reschedule-unneeded-monitor.dot diff --git a/cts/pengine/not-reschedule-unneeded-monitor.exp b/cts/scheduler/not-reschedule-unneeded-monitor.exp similarity index 100% rename from cts/pengine/not-reschedule-unneeded-monitor.exp rename to cts/scheduler/not-reschedule-unneeded-monitor.exp diff --git a/cts/pengine/not-reschedule-unneeded-monitor.scores b/cts/scheduler/not-reschedule-unneeded-monitor.scores similarity index 100% rename from cts/pengine/not-reschedule-unneeded-monitor.scores rename to cts/scheduler/not-reschedule-unneeded-monitor.scores diff --git a/cts/pengine/not-reschedule-unneeded-monitor.summary b/cts/scheduler/not-reschedule-unneeded-monitor.summary similarity index 100% rename from cts/pengine/not-reschedule-unneeded-monitor.summary rename to cts/scheduler/not-reschedule-unneeded-monitor.summary diff --git a/cts/pengine/not-reschedule-unneeded-monitor.xml b/cts/scheduler/not-reschedule-unneeded-monitor.xml similarity index 100% rename from cts/pengine/not-reschedule-unneeded-monitor.xml rename to cts/scheduler/not-reschedule-unneeded-monitor.xml diff --git a/cts/pengine/notifs-for-unrunnable.dot b/cts/scheduler/notifs-for-unrunnable.dot similarity index 100% rename from cts/pengine/notifs-for-unrunnable.dot rename to cts/scheduler/notifs-for-unrunnable.dot diff --git a/cts/pengine/notifs-for-unrunnable.exp b/cts/scheduler/notifs-for-unrunnable.exp similarity index 100% rename from cts/pengine/notifs-for-unrunnable.exp rename to cts/scheduler/notifs-for-unrunnable.exp diff --git a/cts/pengine/notifs-for-unrunnable.scores b/cts/scheduler/notifs-for-unrunnable.scores similarity index 100% rename from cts/pengine/notifs-for-unrunnable.scores rename to cts/scheduler/notifs-for-unrunnable.scores diff --git a/cts/pengine/notifs-for-unrunnable.summary b/cts/scheduler/notifs-for-unrunnable.summary similarity index 100% rename from cts/pengine/notifs-for-unrunnable.summary rename to cts/scheduler/notifs-for-unrunnable.summary diff --git a/cts/pengine/notifs-for-unrunnable.xml b/cts/scheduler/notifs-for-unrunnable.xml similarity index 100% rename from cts/pengine/notifs-for-unrunnable.xml rename to cts/scheduler/notifs-for-unrunnable.xml diff --git a/cts/pengine/notify-0.dot b/cts/scheduler/notify-0.dot similarity index 100% rename from cts/pengine/notify-0.dot rename to cts/scheduler/notify-0.dot diff --git a/cts/pengine/notify-0.exp b/cts/scheduler/notify-0.exp similarity index 100% rename from cts/pengine/notify-0.exp rename to cts/scheduler/notify-0.exp diff --git a/cts/pengine/notify-0.scores b/cts/scheduler/notify-0.scores similarity index 100% rename from cts/pengine/notify-0.scores rename to cts/scheduler/notify-0.scores diff --git a/cts/pengine/notify-0.summary b/cts/scheduler/notify-0.summary similarity index 100% rename from cts/pengine/notify-0.summary rename to cts/scheduler/notify-0.summary diff --git a/cts/pengine/notify-0.xml b/cts/scheduler/notify-0.xml similarity index 100% rename from cts/pengine/notify-0.xml rename to cts/scheduler/notify-0.xml diff --git a/cts/pengine/notify-1.dot b/cts/scheduler/notify-1.dot similarity index 100% rename from cts/pengine/notify-1.dot rename to cts/scheduler/notify-1.dot diff --git a/cts/pengine/notify-1.exp b/cts/scheduler/notify-1.exp similarity index 100% rename from cts/pengine/notify-1.exp rename to cts/scheduler/notify-1.exp diff --git a/cts/pengine/notify-1.scores b/cts/scheduler/notify-1.scores similarity index 100% rename from cts/pengine/notify-1.scores rename to cts/scheduler/notify-1.scores diff --git a/cts/pengine/notify-1.summary b/cts/scheduler/notify-1.summary similarity index 100% rename from cts/pengine/notify-1.summary rename to cts/scheduler/notify-1.summary diff --git a/cts/pengine/notify-1.xml b/cts/scheduler/notify-1.xml similarity index 100% rename from cts/pengine/notify-1.xml rename to cts/scheduler/notify-1.xml diff --git a/cts/pengine/notify-2.dot b/cts/scheduler/notify-2.dot similarity index 100% rename from cts/pengine/notify-2.dot rename to cts/scheduler/notify-2.dot diff --git a/cts/pengine/notify-2.exp b/cts/scheduler/notify-2.exp similarity index 100% rename from cts/pengine/notify-2.exp rename to cts/scheduler/notify-2.exp diff --git a/cts/pengine/notify-2.scores b/cts/scheduler/notify-2.scores similarity index 100% rename from cts/pengine/notify-2.scores rename to cts/scheduler/notify-2.scores diff --git a/cts/pengine/notify-2.summary b/cts/scheduler/notify-2.summary similarity index 100% rename from cts/pengine/notify-2.summary rename to cts/scheduler/notify-2.summary diff --git a/cts/pengine/notify-2.xml b/cts/scheduler/notify-2.xml similarity index 100% rename from cts/pengine/notify-2.xml rename to cts/scheduler/notify-2.xml diff --git a/cts/pengine/notify-3.dot b/cts/scheduler/notify-3.dot similarity index 100% rename from cts/pengine/notify-3.dot rename to cts/scheduler/notify-3.dot diff --git a/cts/pengine/notify-3.exp b/cts/scheduler/notify-3.exp similarity index 100% rename from cts/pengine/notify-3.exp rename to cts/scheduler/notify-3.exp diff --git a/cts/pengine/notify-3.scores b/cts/scheduler/notify-3.scores similarity index 100% rename from cts/pengine/notify-3.scores rename to cts/scheduler/notify-3.scores diff --git a/cts/pengine/notify-3.summary b/cts/scheduler/notify-3.summary similarity index 100% rename from cts/pengine/notify-3.summary rename to cts/scheduler/notify-3.summary diff --git a/cts/pengine/notify-3.xml b/cts/scheduler/notify-3.xml similarity index 100% rename from cts/pengine/notify-3.xml rename to cts/scheduler/notify-3.xml diff --git a/cts/pengine/novell-239079.dot b/cts/scheduler/novell-239079.dot similarity index 100% rename from cts/pengine/novell-239079.dot rename to cts/scheduler/novell-239079.dot diff --git a/cts/pengine/novell-239079.exp b/cts/scheduler/novell-239079.exp similarity index 100% rename from cts/pengine/novell-239079.exp rename to cts/scheduler/novell-239079.exp diff --git a/cts/pengine/novell-239079.scores b/cts/scheduler/novell-239079.scores similarity index 100% rename from cts/pengine/novell-239079.scores rename to cts/scheduler/novell-239079.scores diff --git a/cts/pengine/novell-239079.summary b/cts/scheduler/novell-239079.summary similarity index 100% rename from cts/pengine/novell-239079.summary rename to cts/scheduler/novell-239079.summary diff --git a/cts/pengine/novell-239079.xml b/cts/scheduler/novell-239079.xml similarity index 100% rename from cts/pengine/novell-239079.xml rename to cts/scheduler/novell-239079.xml diff --git a/cts/pengine/novell-239082.dot b/cts/scheduler/novell-239082.dot similarity index 100% rename from cts/pengine/novell-239082.dot rename to cts/scheduler/novell-239082.dot diff --git a/cts/pengine/novell-239082.exp b/cts/scheduler/novell-239082.exp similarity index 100% rename from cts/pengine/novell-239082.exp rename to cts/scheduler/novell-239082.exp diff --git a/cts/pengine/novell-239082.scores b/cts/scheduler/novell-239082.scores similarity index 100% rename from cts/pengine/novell-239082.scores rename to cts/scheduler/novell-239082.scores diff --git a/cts/pengine/novell-239082.summary b/cts/scheduler/novell-239082.summary similarity index 100% rename from cts/pengine/novell-239082.summary rename to cts/scheduler/novell-239082.summary diff --git a/cts/pengine/novell-239082.xml b/cts/scheduler/novell-239082.xml similarity index 100% rename from cts/pengine/novell-239082.xml rename to cts/scheduler/novell-239082.xml diff --git a/cts/pengine/novell-239087.dot b/cts/scheduler/novell-239087.dot similarity index 100% rename from cts/pengine/novell-239087.dot rename to cts/scheduler/novell-239087.dot diff --git a/cts/pengine/novell-239087.exp b/cts/scheduler/novell-239087.exp similarity index 100% rename from cts/pengine/novell-239087.exp rename to cts/scheduler/novell-239087.exp diff --git a/cts/pengine/novell-239087.scores b/cts/scheduler/novell-239087.scores similarity index 100% rename from cts/pengine/novell-239087.scores rename to cts/scheduler/novell-239087.scores diff --git a/cts/pengine/novell-239087.summary b/cts/scheduler/novell-239087.summary similarity index 100% rename from cts/pengine/novell-239087.summary rename to cts/scheduler/novell-239087.summary diff --git a/cts/pengine/novell-239087.xml b/cts/scheduler/novell-239087.xml similarity index 100% rename from cts/pengine/novell-239087.xml rename to cts/scheduler/novell-239087.xml diff --git a/cts/pengine/novell-251689.dot b/cts/scheduler/novell-251689.dot similarity index 100% rename from cts/pengine/novell-251689.dot rename to cts/scheduler/novell-251689.dot diff --git a/cts/pengine/novell-251689.exp b/cts/scheduler/novell-251689.exp similarity index 100% rename from cts/pengine/novell-251689.exp rename to cts/scheduler/novell-251689.exp diff --git a/cts/pengine/novell-251689.scores b/cts/scheduler/novell-251689.scores similarity index 100% rename from cts/pengine/novell-251689.scores rename to cts/scheduler/novell-251689.scores diff --git a/cts/pengine/novell-251689.summary b/cts/scheduler/novell-251689.summary similarity index 100% rename from cts/pengine/novell-251689.summary rename to cts/scheduler/novell-251689.summary diff --git a/cts/pengine/novell-251689.xml b/cts/scheduler/novell-251689.xml similarity index 100% rename from cts/pengine/novell-251689.xml rename to cts/scheduler/novell-251689.xml diff --git a/cts/pengine/novell-252693-2.dot b/cts/scheduler/novell-252693-2.dot similarity index 100% rename from cts/pengine/novell-252693-2.dot rename to cts/scheduler/novell-252693-2.dot diff --git a/cts/pengine/novell-252693-2.exp b/cts/scheduler/novell-252693-2.exp similarity index 100% rename from cts/pengine/novell-252693-2.exp rename to cts/scheduler/novell-252693-2.exp diff --git a/cts/pengine/novell-252693-2.scores b/cts/scheduler/novell-252693-2.scores similarity index 100% rename from cts/pengine/novell-252693-2.scores rename to cts/scheduler/novell-252693-2.scores diff --git a/cts/pengine/novell-252693-2.summary b/cts/scheduler/novell-252693-2.summary similarity index 100% rename from cts/pengine/novell-252693-2.summary rename to cts/scheduler/novell-252693-2.summary diff --git a/cts/pengine/novell-252693-2.xml b/cts/scheduler/novell-252693-2.xml similarity index 100% rename from cts/pengine/novell-252693-2.xml rename to cts/scheduler/novell-252693-2.xml diff --git a/cts/pengine/novell-252693-3.dot b/cts/scheduler/novell-252693-3.dot similarity index 100% rename from cts/pengine/novell-252693-3.dot rename to cts/scheduler/novell-252693-3.dot diff --git a/cts/pengine/novell-252693-3.exp b/cts/scheduler/novell-252693-3.exp similarity index 100% rename from cts/pengine/novell-252693-3.exp rename to cts/scheduler/novell-252693-3.exp diff --git a/cts/pengine/novell-252693-3.scores b/cts/scheduler/novell-252693-3.scores similarity index 100% rename from cts/pengine/novell-252693-3.scores rename to cts/scheduler/novell-252693-3.scores diff --git a/cts/pengine/novell-252693-3.summary b/cts/scheduler/novell-252693-3.summary similarity index 100% rename from cts/pengine/novell-252693-3.summary rename to cts/scheduler/novell-252693-3.summary diff --git a/cts/pengine/novell-252693-3.xml b/cts/scheduler/novell-252693-3.xml similarity index 100% rename from cts/pengine/novell-252693-3.xml rename to cts/scheduler/novell-252693-3.xml diff --git a/cts/pengine/novell-252693.dot b/cts/scheduler/novell-252693.dot similarity index 100% rename from cts/pengine/novell-252693.dot rename to cts/scheduler/novell-252693.dot diff --git a/cts/pengine/novell-252693.exp b/cts/scheduler/novell-252693.exp similarity index 100% rename from cts/pengine/novell-252693.exp rename to cts/scheduler/novell-252693.exp diff --git a/cts/pengine/novell-252693.scores b/cts/scheduler/novell-252693.scores similarity index 100% rename from cts/pengine/novell-252693.scores rename to cts/scheduler/novell-252693.scores diff --git a/cts/pengine/novell-252693.summary b/cts/scheduler/novell-252693.summary similarity index 100% rename from cts/pengine/novell-252693.summary rename to cts/scheduler/novell-252693.summary diff --git a/cts/pengine/novell-252693.xml b/cts/scheduler/novell-252693.xml similarity index 100% rename from cts/pengine/novell-252693.xml rename to cts/scheduler/novell-252693.xml diff --git a/cts/pengine/nvpair-id-ref.dot b/cts/scheduler/nvpair-id-ref.dot similarity index 100% rename from cts/pengine/nvpair-id-ref.dot rename to cts/scheduler/nvpair-id-ref.dot diff --git a/cts/pengine/nvpair-id-ref.exp b/cts/scheduler/nvpair-id-ref.exp similarity index 100% rename from cts/pengine/nvpair-id-ref.exp rename to cts/scheduler/nvpair-id-ref.exp diff --git a/cts/pengine/nvpair-id-ref.scores b/cts/scheduler/nvpair-id-ref.scores similarity index 100% rename from cts/pengine/nvpair-id-ref.scores rename to cts/scheduler/nvpair-id-ref.scores diff --git a/cts/pengine/nvpair-id-ref.summary b/cts/scheduler/nvpair-id-ref.summary similarity index 100% rename from cts/pengine/nvpair-id-ref.summary rename to cts/scheduler/nvpair-id-ref.summary diff --git a/cts/pengine/nvpair-id-ref.xml b/cts/scheduler/nvpair-id-ref.xml similarity index 100% rename from cts/pengine/nvpair-id-ref.xml rename to cts/scheduler/nvpair-id-ref.xml diff --git a/cts/pengine/obsolete-lrm-resource.dot b/cts/scheduler/obsolete-lrm-resource.dot similarity index 100% rename from cts/pengine/obsolete-lrm-resource.dot rename to cts/scheduler/obsolete-lrm-resource.dot diff --git a/cts/pengine/obsolete-lrm-resource.exp b/cts/scheduler/obsolete-lrm-resource.exp similarity index 100% rename from cts/pengine/obsolete-lrm-resource.exp rename to cts/scheduler/obsolete-lrm-resource.exp diff --git a/cts/pengine/obsolete-lrm-resource.scores b/cts/scheduler/obsolete-lrm-resource.scores similarity index 100% rename from cts/pengine/obsolete-lrm-resource.scores rename to cts/scheduler/obsolete-lrm-resource.scores diff --git a/cts/pengine/obsolete-lrm-resource.summary b/cts/scheduler/obsolete-lrm-resource.summary similarity index 100% rename from cts/pengine/obsolete-lrm-resource.summary rename to cts/scheduler/obsolete-lrm-resource.summary diff --git a/cts/pengine/obsolete-lrm-resource.xml b/cts/scheduler/obsolete-lrm-resource.xml similarity index 100% rename from cts/pengine/obsolete-lrm-resource.xml rename to cts/scheduler/obsolete-lrm-resource.xml diff --git a/cts/pengine/on-fail-ignore.dot b/cts/scheduler/on-fail-ignore.dot similarity index 100% rename from cts/pengine/on-fail-ignore.dot rename to cts/scheduler/on-fail-ignore.dot diff --git a/cts/pengine/on-fail-ignore.exp b/cts/scheduler/on-fail-ignore.exp similarity index 100% rename from cts/pengine/on-fail-ignore.exp rename to cts/scheduler/on-fail-ignore.exp diff --git a/cts/pengine/on-fail-ignore.scores b/cts/scheduler/on-fail-ignore.scores similarity index 100% rename from cts/pengine/on-fail-ignore.scores rename to cts/scheduler/on-fail-ignore.scores diff --git a/cts/pengine/on-fail-ignore.summary b/cts/scheduler/on-fail-ignore.summary similarity index 100% rename from cts/pengine/on-fail-ignore.summary rename to cts/scheduler/on-fail-ignore.summary diff --git a/cts/pengine/on-fail-ignore.xml b/cts/scheduler/on-fail-ignore.xml similarity index 100% rename from cts/pengine/on-fail-ignore.xml rename to cts/scheduler/on-fail-ignore.xml diff --git a/cts/pengine/one-or-more-0.dot b/cts/scheduler/one-or-more-0.dot similarity index 100% rename from cts/pengine/one-or-more-0.dot rename to cts/scheduler/one-or-more-0.dot diff --git a/cts/pengine/one-or-more-0.exp b/cts/scheduler/one-or-more-0.exp similarity index 100% rename from cts/pengine/one-or-more-0.exp rename to cts/scheduler/one-or-more-0.exp diff --git a/cts/pengine/one-or-more-0.scores b/cts/scheduler/one-or-more-0.scores similarity index 100% rename from cts/pengine/one-or-more-0.scores rename to cts/scheduler/one-or-more-0.scores diff --git a/cts/pengine/one-or-more-0.summary b/cts/scheduler/one-or-more-0.summary similarity index 100% rename from cts/pengine/one-or-more-0.summary rename to cts/scheduler/one-or-more-0.summary diff --git a/cts/pengine/one-or-more-0.xml b/cts/scheduler/one-or-more-0.xml similarity index 100% rename from cts/pengine/one-or-more-0.xml rename to cts/scheduler/one-or-more-0.xml diff --git a/cts/pengine/one-or-more-1.dot b/cts/scheduler/one-or-more-1.dot similarity index 100% rename from cts/pengine/one-or-more-1.dot rename to cts/scheduler/one-or-more-1.dot diff --git a/cts/pengine/one-or-more-1.exp b/cts/scheduler/one-or-more-1.exp similarity index 100% rename from cts/pengine/one-or-more-1.exp rename to cts/scheduler/one-or-more-1.exp diff --git a/cts/pengine/one-or-more-1.scores b/cts/scheduler/one-or-more-1.scores similarity index 100% rename from cts/pengine/one-or-more-1.scores rename to cts/scheduler/one-or-more-1.scores diff --git a/cts/pengine/one-or-more-1.summary b/cts/scheduler/one-or-more-1.summary similarity index 100% rename from cts/pengine/one-or-more-1.summary rename to cts/scheduler/one-or-more-1.summary diff --git a/cts/pengine/one-or-more-1.xml b/cts/scheduler/one-or-more-1.xml similarity index 100% rename from cts/pengine/one-or-more-1.xml rename to cts/scheduler/one-or-more-1.xml diff --git a/cts/pengine/one-or-more-2.dot b/cts/scheduler/one-or-more-2.dot similarity index 100% rename from cts/pengine/one-or-more-2.dot rename to cts/scheduler/one-or-more-2.dot diff --git a/cts/pengine/one-or-more-2.exp b/cts/scheduler/one-or-more-2.exp similarity index 100% rename from cts/pengine/one-or-more-2.exp rename to cts/scheduler/one-or-more-2.exp diff --git a/cts/pengine/one-or-more-2.scores b/cts/scheduler/one-or-more-2.scores similarity index 100% rename from cts/pengine/one-or-more-2.scores rename to cts/scheduler/one-or-more-2.scores diff --git a/cts/pengine/one-or-more-2.summary b/cts/scheduler/one-or-more-2.summary similarity index 100% rename from cts/pengine/one-or-more-2.summary rename to cts/scheduler/one-or-more-2.summary diff --git a/cts/pengine/one-or-more-2.xml b/cts/scheduler/one-or-more-2.xml similarity index 100% rename from cts/pengine/one-or-more-2.xml rename to cts/scheduler/one-or-more-2.xml diff --git a/cts/pengine/one-or-more-3.dot b/cts/scheduler/one-or-more-3.dot similarity index 100% rename from cts/pengine/one-or-more-3.dot rename to cts/scheduler/one-or-more-3.dot diff --git a/cts/pengine/one-or-more-3.exp b/cts/scheduler/one-or-more-3.exp similarity index 100% rename from cts/pengine/one-or-more-3.exp rename to cts/scheduler/one-or-more-3.exp diff --git a/cts/pengine/one-or-more-3.scores b/cts/scheduler/one-or-more-3.scores similarity index 100% rename from cts/pengine/one-or-more-3.scores rename to cts/scheduler/one-or-more-3.scores diff --git a/cts/pengine/one-or-more-3.summary b/cts/scheduler/one-or-more-3.summary similarity index 100% rename from cts/pengine/one-or-more-3.summary rename to cts/scheduler/one-or-more-3.summary diff --git a/cts/pengine/one-or-more-3.xml b/cts/scheduler/one-or-more-3.xml similarity index 100% rename from cts/pengine/one-or-more-3.xml rename to cts/scheduler/one-or-more-3.xml diff --git a/cts/pengine/one-or-more-4.dot b/cts/scheduler/one-or-more-4.dot similarity index 100% rename from cts/pengine/one-or-more-4.dot rename to cts/scheduler/one-or-more-4.dot diff --git a/cts/pengine/one-or-more-4.exp b/cts/scheduler/one-or-more-4.exp similarity index 100% rename from cts/pengine/one-or-more-4.exp rename to cts/scheduler/one-or-more-4.exp diff --git a/cts/pengine/one-or-more-4.scores b/cts/scheduler/one-or-more-4.scores similarity index 100% rename from cts/pengine/one-or-more-4.scores rename to cts/scheduler/one-or-more-4.scores diff --git a/cts/pengine/one-or-more-4.summary b/cts/scheduler/one-or-more-4.summary similarity index 100% rename from cts/pengine/one-or-more-4.summary rename to cts/scheduler/one-or-more-4.summary diff --git a/cts/pengine/one-or-more-4.xml b/cts/scheduler/one-or-more-4.xml similarity index 100% rename from cts/pengine/one-or-more-4.xml rename to cts/scheduler/one-or-more-4.xml diff --git a/cts/pengine/one-or-more-5.dot b/cts/scheduler/one-or-more-5.dot similarity index 100% rename from cts/pengine/one-or-more-5.dot rename to cts/scheduler/one-or-more-5.dot diff --git a/cts/pengine/one-or-more-5.exp b/cts/scheduler/one-or-more-5.exp similarity index 100% rename from cts/pengine/one-or-more-5.exp rename to cts/scheduler/one-or-more-5.exp diff --git a/cts/pengine/one-or-more-5.scores b/cts/scheduler/one-or-more-5.scores similarity index 100% rename from cts/pengine/one-or-more-5.scores rename to cts/scheduler/one-or-more-5.scores diff --git a/cts/pengine/one-or-more-5.summary b/cts/scheduler/one-or-more-5.summary similarity index 100% rename from cts/pengine/one-or-more-5.summary rename to cts/scheduler/one-or-more-5.summary diff --git a/cts/pengine/one-or-more-5.xml b/cts/scheduler/one-or-more-5.xml similarity index 100% rename from cts/pengine/one-or-more-5.xml rename to cts/scheduler/one-or-more-5.xml diff --git a/cts/pengine/one-or-more-6.dot b/cts/scheduler/one-or-more-6.dot similarity index 100% rename from cts/pengine/one-or-more-6.dot rename to cts/scheduler/one-or-more-6.dot diff --git a/cts/pengine/one-or-more-6.exp b/cts/scheduler/one-or-more-6.exp similarity index 100% rename from cts/pengine/one-or-more-6.exp rename to cts/scheduler/one-or-more-6.exp diff --git a/cts/pengine/one-or-more-6.scores b/cts/scheduler/one-or-more-6.scores similarity index 100% rename from cts/pengine/one-or-more-6.scores rename to cts/scheduler/one-or-more-6.scores diff --git a/cts/pengine/one-or-more-6.summary b/cts/scheduler/one-or-more-6.summary similarity index 100% rename from cts/pengine/one-or-more-6.summary rename to cts/scheduler/one-or-more-6.summary diff --git a/cts/pengine/one-or-more-6.xml b/cts/scheduler/one-or-more-6.xml similarity index 100% rename from cts/pengine/one-or-more-6.xml rename to cts/scheduler/one-or-more-6.xml diff --git a/cts/pengine/one-or-more-7.dot b/cts/scheduler/one-or-more-7.dot similarity index 100% rename from cts/pengine/one-or-more-7.dot rename to cts/scheduler/one-or-more-7.dot diff --git a/cts/pengine/one-or-more-7.exp b/cts/scheduler/one-or-more-7.exp similarity index 100% rename from cts/pengine/one-or-more-7.exp rename to cts/scheduler/one-or-more-7.exp diff --git a/cts/pengine/one-or-more-7.scores b/cts/scheduler/one-or-more-7.scores similarity index 100% rename from cts/pengine/one-or-more-7.scores rename to cts/scheduler/one-or-more-7.scores diff --git a/cts/pengine/one-or-more-7.summary b/cts/scheduler/one-or-more-7.summary similarity index 100% rename from cts/pengine/one-or-more-7.summary rename to cts/scheduler/one-or-more-7.summary diff --git a/cts/pengine/one-or-more-7.xml b/cts/scheduler/one-or-more-7.xml similarity index 100% rename from cts/pengine/one-or-more-7.xml rename to cts/scheduler/one-or-more-7.xml diff --git a/cts/pengine/one-or-more-unrunnable-instances.dot b/cts/scheduler/one-or-more-unrunnable-instances.dot similarity index 100% rename from cts/pengine/one-or-more-unrunnable-instances.dot rename to cts/scheduler/one-or-more-unrunnable-instances.dot diff --git a/cts/pengine/one-or-more-unrunnable-instances.exp b/cts/scheduler/one-or-more-unrunnable-instances.exp similarity index 100% rename from cts/pengine/one-or-more-unrunnable-instances.exp rename to cts/scheduler/one-or-more-unrunnable-instances.exp diff --git a/cts/pengine/one-or-more-unrunnable-instances.scores b/cts/scheduler/one-or-more-unrunnable-instances.scores similarity index 100% rename from cts/pengine/one-or-more-unrunnable-instances.scores rename to cts/scheduler/one-or-more-unrunnable-instances.scores diff --git a/cts/pengine/one-or-more-unrunnable-instances.summary b/cts/scheduler/one-or-more-unrunnable-instances.summary similarity index 100% rename from cts/pengine/one-or-more-unrunnable-instances.summary rename to cts/scheduler/one-or-more-unrunnable-instances.summary diff --git a/cts/pengine/one-or-more-unrunnable-instances.xml b/cts/scheduler/one-or-more-unrunnable-instances.xml similarity index 100% rename from cts/pengine/one-or-more-unrunnable-instances.xml rename to cts/scheduler/one-or-more-unrunnable-instances.xml diff --git a/cts/pengine/order-clone.dot b/cts/scheduler/order-clone.dot similarity index 100% rename from cts/pengine/order-clone.dot rename to cts/scheduler/order-clone.dot diff --git a/cts/pengine/order-clone.exp b/cts/scheduler/order-clone.exp similarity index 100% rename from cts/pengine/order-clone.exp rename to cts/scheduler/order-clone.exp diff --git a/cts/pengine/order-clone.scores b/cts/scheduler/order-clone.scores similarity index 100% rename from cts/pengine/order-clone.scores rename to cts/scheduler/order-clone.scores diff --git a/cts/pengine/order-clone.summary b/cts/scheduler/order-clone.summary similarity index 100% rename from cts/pengine/order-clone.summary rename to cts/scheduler/order-clone.summary diff --git a/cts/pengine/order-clone.xml b/cts/scheduler/order-clone.xml similarity index 100% rename from cts/pengine/order-clone.xml rename to cts/scheduler/order-clone.xml diff --git a/cts/pengine/order-expired-failure.dot b/cts/scheduler/order-expired-failure.dot similarity index 100% rename from cts/pengine/order-expired-failure.dot rename to cts/scheduler/order-expired-failure.dot diff --git a/cts/pengine/order-expired-failure.exp b/cts/scheduler/order-expired-failure.exp similarity index 100% rename from cts/pengine/order-expired-failure.exp rename to cts/scheduler/order-expired-failure.exp diff --git a/cts/pengine/order-expired-failure.scores b/cts/scheduler/order-expired-failure.scores similarity index 100% rename from cts/pengine/order-expired-failure.scores rename to cts/scheduler/order-expired-failure.scores diff --git a/cts/pengine/order-expired-failure.stderr b/cts/scheduler/order-expired-failure.stderr similarity index 100% rename from cts/pengine/order-expired-failure.stderr rename to cts/scheduler/order-expired-failure.stderr diff --git a/cts/pengine/order-expired-failure.summary b/cts/scheduler/order-expired-failure.summary similarity index 100% rename from cts/pengine/order-expired-failure.summary rename to cts/scheduler/order-expired-failure.summary diff --git a/cts/pengine/order-expired-failure.xml b/cts/scheduler/order-expired-failure.xml similarity index 100% rename from cts/pengine/order-expired-failure.xml rename to cts/scheduler/order-expired-failure.xml diff --git a/cts/pengine/order-mandatory.dot b/cts/scheduler/order-mandatory.dot similarity index 100% rename from cts/pengine/order-mandatory.dot rename to cts/scheduler/order-mandatory.dot diff --git a/cts/pengine/order-mandatory.exp b/cts/scheduler/order-mandatory.exp similarity index 100% rename from cts/pengine/order-mandatory.exp rename to cts/scheduler/order-mandatory.exp diff --git a/cts/pengine/order-mandatory.scores b/cts/scheduler/order-mandatory.scores similarity index 100% rename from cts/pengine/order-mandatory.scores rename to cts/scheduler/order-mandatory.scores diff --git a/cts/pengine/order-mandatory.summary b/cts/scheduler/order-mandatory.summary similarity index 100% rename from cts/pengine/order-mandatory.summary rename to cts/scheduler/order-mandatory.summary diff --git a/cts/pengine/order-mandatory.xml b/cts/scheduler/order-mandatory.xml similarity index 100% rename from cts/pengine/order-mandatory.xml rename to cts/scheduler/order-mandatory.xml diff --git a/cts/pengine/order-optional-keyword.dot b/cts/scheduler/order-optional-keyword.dot similarity index 100% rename from cts/pengine/order-optional-keyword.dot rename to cts/scheduler/order-optional-keyword.dot diff --git a/cts/pengine/order-optional-keyword.exp b/cts/scheduler/order-optional-keyword.exp similarity index 100% rename from cts/pengine/order-optional-keyword.exp rename to cts/scheduler/order-optional-keyword.exp diff --git a/cts/pengine/order-optional-keyword.scores b/cts/scheduler/order-optional-keyword.scores similarity index 100% rename from cts/pengine/order-optional-keyword.scores rename to cts/scheduler/order-optional-keyword.scores diff --git a/cts/pengine/order-optional-keyword.summary b/cts/scheduler/order-optional-keyword.summary similarity index 100% rename from cts/pengine/order-optional-keyword.summary rename to cts/scheduler/order-optional-keyword.summary diff --git a/cts/pengine/order-optional-keyword.xml b/cts/scheduler/order-optional-keyword.xml similarity index 100% rename from cts/pengine/order-optional-keyword.xml rename to cts/scheduler/order-optional-keyword.xml diff --git a/cts/pengine/order-optional.dot b/cts/scheduler/order-optional.dot similarity index 100% rename from cts/pengine/order-optional.dot rename to cts/scheduler/order-optional.dot diff --git a/cts/pengine/order-optional.exp b/cts/scheduler/order-optional.exp similarity index 100% rename from cts/pengine/order-optional.exp rename to cts/scheduler/order-optional.exp diff --git a/cts/pengine/order-optional.scores b/cts/scheduler/order-optional.scores similarity index 100% rename from cts/pengine/order-optional.scores rename to cts/scheduler/order-optional.scores diff --git a/cts/pengine/order-optional.summary b/cts/scheduler/order-optional.summary similarity index 100% rename from cts/pengine/order-optional.summary rename to cts/scheduler/order-optional.summary diff --git a/cts/pengine/order-optional.xml b/cts/scheduler/order-optional.xml similarity index 100% rename from cts/pengine/order-optional.xml rename to cts/scheduler/order-optional.xml diff --git a/cts/pengine/order-required.dot b/cts/scheduler/order-required.dot similarity index 100% rename from cts/pengine/order-required.dot rename to cts/scheduler/order-required.dot diff --git a/cts/pengine/order-required.exp b/cts/scheduler/order-required.exp similarity index 100% rename from cts/pengine/order-required.exp rename to cts/scheduler/order-required.exp diff --git a/cts/pengine/order-required.scores b/cts/scheduler/order-required.scores similarity index 100% rename from cts/pengine/order-required.scores rename to cts/scheduler/order-required.scores diff --git a/cts/pengine/order-required.summary b/cts/scheduler/order-required.summary similarity index 100% rename from cts/pengine/order-required.summary rename to cts/scheduler/order-required.summary diff --git a/cts/pengine/order-required.xml b/cts/scheduler/order-required.xml similarity index 100% rename from cts/pengine/order-required.xml rename to cts/scheduler/order-required.xml diff --git a/cts/pengine/order-serialize-set.dot b/cts/scheduler/order-serialize-set.dot similarity index 100% rename from cts/pengine/order-serialize-set.dot rename to cts/scheduler/order-serialize-set.dot diff --git a/cts/pengine/order-serialize-set.exp b/cts/scheduler/order-serialize-set.exp similarity index 100% rename from cts/pengine/order-serialize-set.exp rename to cts/scheduler/order-serialize-set.exp diff --git a/cts/pengine/order-serialize-set.scores b/cts/scheduler/order-serialize-set.scores similarity index 100% rename from cts/pengine/order-serialize-set.scores rename to cts/scheduler/order-serialize-set.scores diff --git a/cts/pengine/order-serialize-set.summary b/cts/scheduler/order-serialize-set.summary similarity index 100% rename from cts/pengine/order-serialize-set.summary rename to cts/scheduler/order-serialize-set.summary diff --git a/cts/pengine/order-serialize-set.xml b/cts/scheduler/order-serialize-set.xml similarity index 100% rename from cts/pengine/order-serialize-set.xml rename to cts/scheduler/order-serialize-set.xml diff --git a/cts/pengine/order-serialize.dot b/cts/scheduler/order-serialize.dot similarity index 100% rename from cts/pengine/order-serialize.dot rename to cts/scheduler/order-serialize.dot diff --git a/cts/pengine/order-serialize.exp b/cts/scheduler/order-serialize.exp similarity index 100% rename from cts/pengine/order-serialize.exp rename to cts/scheduler/order-serialize.exp diff --git a/cts/pengine/order-serialize.scores b/cts/scheduler/order-serialize.scores similarity index 100% rename from cts/pengine/order-serialize.scores rename to cts/scheduler/order-serialize.scores diff --git a/cts/pengine/order-serialize.summary b/cts/scheduler/order-serialize.summary similarity index 100% rename from cts/pengine/order-serialize.summary rename to cts/scheduler/order-serialize.summary diff --git a/cts/pengine/order-serialize.xml b/cts/scheduler/order-serialize.xml similarity index 100% rename from cts/pengine/order-serialize.xml rename to cts/scheduler/order-serialize.xml diff --git a/cts/pengine/order-sets.dot b/cts/scheduler/order-sets.dot similarity index 100% rename from cts/pengine/order-sets.dot rename to cts/scheduler/order-sets.dot diff --git a/cts/pengine/order-sets.exp b/cts/scheduler/order-sets.exp similarity index 100% rename from cts/pengine/order-sets.exp rename to cts/scheduler/order-sets.exp diff --git a/cts/pengine/order-sets.scores b/cts/scheduler/order-sets.scores similarity index 100% rename from cts/pengine/order-sets.scores rename to cts/scheduler/order-sets.scores diff --git a/cts/pengine/order-sets.summary b/cts/scheduler/order-sets.summary similarity index 100% rename from cts/pengine/order-sets.summary rename to cts/scheduler/order-sets.summary diff --git a/cts/pengine/order-sets.xml b/cts/scheduler/order-sets.xml similarity index 100% rename from cts/pengine/order-sets.xml rename to cts/scheduler/order-sets.xml diff --git a/cts/pengine/order-wrong-kind.dot b/cts/scheduler/order-wrong-kind.dot similarity index 100% rename from cts/pengine/order-wrong-kind.dot rename to cts/scheduler/order-wrong-kind.dot diff --git a/cts/pengine/order-wrong-kind.exp b/cts/scheduler/order-wrong-kind.exp similarity index 100% rename from cts/pengine/order-wrong-kind.exp rename to cts/scheduler/order-wrong-kind.exp diff --git a/cts/pengine/order-wrong-kind.scores b/cts/scheduler/order-wrong-kind.scores similarity index 100% rename from cts/pengine/order-wrong-kind.scores rename to cts/scheduler/order-wrong-kind.scores diff --git a/cts/pengine/order-wrong-kind.stderr b/cts/scheduler/order-wrong-kind.stderr similarity index 100% rename from cts/pengine/order-wrong-kind.stderr rename to cts/scheduler/order-wrong-kind.stderr diff --git a/cts/pengine/order-wrong-kind.summary b/cts/scheduler/order-wrong-kind.summary similarity index 100% rename from cts/pengine/order-wrong-kind.summary rename to cts/scheduler/order-wrong-kind.summary diff --git a/cts/pengine/order-wrong-kind.xml b/cts/scheduler/order-wrong-kind.xml similarity index 100% rename from cts/pengine/order-wrong-kind.xml rename to cts/scheduler/order-wrong-kind.xml diff --git a/cts/pengine/order1.dot b/cts/scheduler/order1.dot similarity index 100% rename from cts/pengine/order1.dot rename to cts/scheduler/order1.dot diff --git a/cts/pengine/order1.exp b/cts/scheduler/order1.exp similarity index 100% rename from cts/pengine/order1.exp rename to cts/scheduler/order1.exp diff --git a/cts/pengine/order1.scores b/cts/scheduler/order1.scores similarity index 100% rename from cts/pengine/order1.scores rename to cts/scheduler/order1.scores diff --git a/cts/pengine/order1.summary b/cts/scheduler/order1.summary similarity index 100% rename from cts/pengine/order1.summary rename to cts/scheduler/order1.summary diff --git a/cts/pengine/order1.te.exp b/cts/scheduler/order1.te.exp similarity index 100% rename from cts/pengine/order1.te.exp rename to cts/scheduler/order1.te.exp diff --git a/cts/pengine/order1.xml b/cts/scheduler/order1.xml similarity index 100% rename from cts/pengine/order1.xml rename to cts/scheduler/order1.xml diff --git a/cts/pengine/order2.dot b/cts/scheduler/order2.dot similarity index 100% rename from cts/pengine/order2.dot rename to cts/scheduler/order2.dot diff --git a/cts/pengine/order2.exp b/cts/scheduler/order2.exp similarity index 100% rename from cts/pengine/order2.exp rename to cts/scheduler/order2.exp diff --git a/cts/pengine/order2.scores b/cts/scheduler/order2.scores similarity index 100% rename from cts/pengine/order2.scores rename to cts/scheduler/order2.scores diff --git a/cts/pengine/order2.summary b/cts/scheduler/order2.summary similarity index 100% rename from cts/pengine/order2.summary rename to cts/scheduler/order2.summary diff --git a/cts/pengine/order2.te.exp b/cts/scheduler/order2.te.exp similarity index 100% rename from cts/pengine/order2.te.exp rename to cts/scheduler/order2.te.exp diff --git a/cts/pengine/order2.xml b/cts/scheduler/order2.xml similarity index 100% rename from cts/pengine/order2.xml rename to cts/scheduler/order2.xml diff --git a/cts/pengine/order3.dot b/cts/scheduler/order3.dot similarity index 100% rename from cts/pengine/order3.dot rename to cts/scheduler/order3.dot diff --git a/cts/pengine/order3.exp b/cts/scheduler/order3.exp similarity index 100% rename from cts/pengine/order3.exp rename to cts/scheduler/order3.exp diff --git a/cts/pengine/order3.scores b/cts/scheduler/order3.scores similarity index 100% rename from cts/pengine/order3.scores rename to cts/scheduler/order3.scores diff --git a/cts/pengine/order3.summary b/cts/scheduler/order3.summary similarity index 100% rename from cts/pengine/order3.summary rename to cts/scheduler/order3.summary diff --git a/cts/pengine/order3.te.exp b/cts/scheduler/order3.te.exp similarity index 100% rename from cts/pengine/order3.te.exp rename to cts/scheduler/order3.te.exp diff --git a/cts/pengine/order3.xml b/cts/scheduler/order3.xml similarity index 100% rename from cts/pengine/order3.xml rename to cts/scheduler/order3.xml diff --git a/cts/pengine/order4.dot b/cts/scheduler/order4.dot similarity index 100% rename from cts/pengine/order4.dot rename to cts/scheduler/order4.dot diff --git a/cts/pengine/order4.exp b/cts/scheduler/order4.exp similarity index 100% rename from cts/pengine/order4.exp rename to cts/scheduler/order4.exp diff --git a/cts/pengine/order4.scores b/cts/scheduler/order4.scores similarity index 100% rename from cts/pengine/order4.scores rename to cts/scheduler/order4.scores diff --git a/cts/pengine/order4.summary b/cts/scheduler/order4.summary similarity index 100% rename from cts/pengine/order4.summary rename to cts/scheduler/order4.summary diff --git a/cts/pengine/order4.te.exp b/cts/scheduler/order4.te.exp similarity index 100% rename from cts/pengine/order4.te.exp rename to cts/scheduler/order4.te.exp diff --git a/cts/pengine/order4.xml b/cts/scheduler/order4.xml similarity index 100% rename from cts/pengine/order4.xml rename to cts/scheduler/order4.xml diff --git a/cts/pengine/order5.dot b/cts/scheduler/order5.dot similarity index 100% rename from cts/pengine/order5.dot rename to cts/scheduler/order5.dot diff --git a/cts/pengine/order5.exp b/cts/scheduler/order5.exp similarity index 100% rename from cts/pengine/order5.exp rename to cts/scheduler/order5.exp diff --git a/cts/pengine/order5.scores b/cts/scheduler/order5.scores similarity index 100% rename from cts/pengine/order5.scores rename to cts/scheduler/order5.scores diff --git a/cts/pengine/order5.summary b/cts/scheduler/order5.summary similarity index 100% rename from cts/pengine/order5.summary rename to cts/scheduler/order5.summary diff --git a/cts/pengine/order5.te.exp b/cts/scheduler/order5.te.exp similarity index 100% rename from cts/pengine/order5.te.exp rename to cts/scheduler/order5.te.exp diff --git a/cts/pengine/order5.xml b/cts/scheduler/order5.xml similarity index 100% rename from cts/pengine/order5.xml rename to cts/scheduler/order5.xml diff --git a/cts/pengine/order6.dot b/cts/scheduler/order6.dot similarity index 100% rename from cts/pengine/order6.dot rename to cts/scheduler/order6.dot diff --git a/cts/pengine/order6.exp b/cts/scheduler/order6.exp similarity index 100% rename from cts/pengine/order6.exp rename to cts/scheduler/order6.exp diff --git a/cts/pengine/order6.scores b/cts/scheduler/order6.scores similarity index 100% rename from cts/pengine/order6.scores rename to cts/scheduler/order6.scores diff --git a/cts/pengine/order6.summary b/cts/scheduler/order6.summary similarity index 100% rename from cts/pengine/order6.summary rename to cts/scheduler/order6.summary diff --git a/cts/pengine/order6.te.exp b/cts/scheduler/order6.te.exp similarity index 100% rename from cts/pengine/order6.te.exp rename to cts/scheduler/order6.te.exp diff --git a/cts/pengine/order6.xml b/cts/scheduler/order6.xml similarity index 100% rename from cts/pengine/order6.xml rename to cts/scheduler/order6.xml diff --git a/cts/pengine/order7.dot b/cts/scheduler/order7.dot similarity index 100% rename from cts/pengine/order7.dot rename to cts/scheduler/order7.dot diff --git a/cts/pengine/order7.exp b/cts/scheduler/order7.exp similarity index 100% rename from cts/pengine/order7.exp rename to cts/scheduler/order7.exp diff --git a/cts/pengine/order7.scores b/cts/scheduler/order7.scores similarity index 100% rename from cts/pengine/order7.scores rename to cts/scheduler/order7.scores diff --git a/cts/pengine/order7.summary b/cts/scheduler/order7.summary similarity index 100% rename from cts/pengine/order7.summary rename to cts/scheduler/order7.summary diff --git a/cts/pengine/order7.xml b/cts/scheduler/order7.xml similarity index 100% rename from cts/pengine/order7.xml rename to cts/scheduler/order7.xml diff --git a/cts/pengine/order_constraint_stops_master.dot b/cts/scheduler/order_constraint_stops_master.dot similarity index 100% rename from cts/pengine/order_constraint_stops_master.dot rename to cts/scheduler/order_constraint_stops_master.dot diff --git a/cts/pengine/order_constraint_stops_master.exp b/cts/scheduler/order_constraint_stops_master.exp similarity index 100% rename from cts/pengine/order_constraint_stops_master.exp rename to cts/scheduler/order_constraint_stops_master.exp diff --git a/cts/pengine/order_constraint_stops_master.scores b/cts/scheduler/order_constraint_stops_master.scores similarity index 100% rename from cts/pengine/order_constraint_stops_master.scores rename to cts/scheduler/order_constraint_stops_master.scores diff --git a/cts/pengine/order_constraint_stops_master.summary b/cts/scheduler/order_constraint_stops_master.summary similarity index 100% rename from cts/pengine/order_constraint_stops_master.summary rename to cts/scheduler/order_constraint_stops_master.summary diff --git a/cts/pengine/order_constraint_stops_master.xml b/cts/scheduler/order_constraint_stops_master.xml similarity index 100% rename from cts/pengine/order_constraint_stops_master.xml rename to cts/scheduler/order_constraint_stops_master.xml diff --git a/cts/pengine/order_constraint_stops_slave.dot b/cts/scheduler/order_constraint_stops_slave.dot similarity index 100% rename from cts/pengine/order_constraint_stops_slave.dot rename to cts/scheduler/order_constraint_stops_slave.dot diff --git a/cts/pengine/order_constraint_stops_slave.exp b/cts/scheduler/order_constraint_stops_slave.exp similarity index 100% rename from cts/pengine/order_constraint_stops_slave.exp rename to cts/scheduler/order_constraint_stops_slave.exp diff --git a/cts/pengine/order_constraint_stops_slave.scores b/cts/scheduler/order_constraint_stops_slave.scores similarity index 100% rename from cts/pengine/order_constraint_stops_slave.scores rename to cts/scheduler/order_constraint_stops_slave.scores diff --git a/cts/pengine/order_constraint_stops_slave.summary b/cts/scheduler/order_constraint_stops_slave.summary similarity index 100% rename from cts/pengine/order_constraint_stops_slave.summary rename to cts/scheduler/order_constraint_stops_slave.summary diff --git a/cts/pengine/order_constraint_stops_slave.xml b/cts/scheduler/order_constraint_stops_slave.xml similarity index 100% rename from cts/pengine/order_constraint_stops_slave.xml rename to cts/scheduler/order_constraint_stops_slave.xml diff --git a/cts/pengine/ordered-set-basic-startup.dot b/cts/scheduler/ordered-set-basic-startup.dot similarity index 100% rename from cts/pengine/ordered-set-basic-startup.dot rename to cts/scheduler/ordered-set-basic-startup.dot diff --git a/cts/pengine/ordered-set-basic-startup.exp b/cts/scheduler/ordered-set-basic-startup.exp similarity index 100% rename from cts/pengine/ordered-set-basic-startup.exp rename to cts/scheduler/ordered-set-basic-startup.exp diff --git a/cts/pengine/ordered-set-basic-startup.scores b/cts/scheduler/ordered-set-basic-startup.scores similarity index 100% rename from cts/pengine/ordered-set-basic-startup.scores rename to cts/scheduler/ordered-set-basic-startup.scores diff --git a/cts/pengine/ordered-set-basic-startup.summary b/cts/scheduler/ordered-set-basic-startup.summary similarity index 100% rename from cts/pengine/ordered-set-basic-startup.summary rename to cts/scheduler/ordered-set-basic-startup.summary diff --git a/cts/pengine/ordered-set-basic-startup.xml b/cts/scheduler/ordered-set-basic-startup.xml similarity index 100% rename from cts/pengine/ordered-set-basic-startup.xml rename to cts/scheduler/ordered-set-basic-startup.xml diff --git a/cts/pengine/ordered-set-natural.dot b/cts/scheduler/ordered-set-natural.dot similarity index 100% rename from cts/pengine/ordered-set-natural.dot rename to cts/scheduler/ordered-set-natural.dot diff --git a/cts/pengine/ordered-set-natural.exp b/cts/scheduler/ordered-set-natural.exp similarity index 100% rename from cts/pengine/ordered-set-natural.exp rename to cts/scheduler/ordered-set-natural.exp diff --git a/cts/pengine/ordered-set-natural.scores b/cts/scheduler/ordered-set-natural.scores similarity index 100% rename from cts/pengine/ordered-set-natural.scores rename to cts/scheduler/ordered-set-natural.scores diff --git a/cts/pengine/ordered-set-natural.summary b/cts/scheduler/ordered-set-natural.summary similarity index 100% rename from cts/pengine/ordered-set-natural.summary rename to cts/scheduler/ordered-set-natural.summary diff --git a/cts/pengine/ordered-set-natural.xml b/cts/scheduler/ordered-set-natural.xml similarity index 100% rename from cts/pengine/ordered-set-natural.xml rename to cts/scheduler/ordered-set-natural.xml diff --git a/cts/pengine/origin.dot b/cts/scheduler/origin.dot similarity index 100% rename from cts/pengine/origin.dot rename to cts/scheduler/origin.dot diff --git a/cts/pengine/origin.exp b/cts/scheduler/origin.exp similarity index 100% rename from cts/pengine/origin.exp rename to cts/scheduler/origin.exp diff --git a/cts/pengine/origin.scores b/cts/scheduler/origin.scores similarity index 100% rename from cts/pengine/origin.scores rename to cts/scheduler/origin.scores diff --git a/cts/pengine/origin.summary b/cts/scheduler/origin.summary similarity index 100% rename from cts/pengine/origin.summary rename to cts/scheduler/origin.summary diff --git a/cts/pengine/origin.xml b/cts/scheduler/origin.xml similarity index 100% rename from cts/pengine/origin.xml rename to cts/scheduler/origin.xml diff --git a/cts/pengine/orphan-0.dot b/cts/scheduler/orphan-0.dot similarity index 100% rename from cts/pengine/orphan-0.dot rename to cts/scheduler/orphan-0.dot diff --git a/cts/pengine/orphan-0.exp b/cts/scheduler/orphan-0.exp similarity index 100% rename from cts/pengine/orphan-0.exp rename to cts/scheduler/orphan-0.exp diff --git a/cts/pengine/orphan-0.scores b/cts/scheduler/orphan-0.scores similarity index 100% rename from cts/pengine/orphan-0.scores rename to cts/scheduler/orphan-0.scores diff --git a/cts/pengine/orphan-0.summary b/cts/scheduler/orphan-0.summary similarity index 100% rename from cts/pengine/orphan-0.summary rename to cts/scheduler/orphan-0.summary diff --git a/cts/pengine/orphan-0.xml b/cts/scheduler/orphan-0.xml similarity index 100% rename from cts/pengine/orphan-0.xml rename to cts/scheduler/orphan-0.xml diff --git a/cts/pengine/orphan-1.dot b/cts/scheduler/orphan-1.dot similarity index 100% rename from cts/pengine/orphan-1.dot rename to cts/scheduler/orphan-1.dot diff --git a/cts/pengine/orphan-1.exp b/cts/scheduler/orphan-1.exp similarity index 100% rename from cts/pengine/orphan-1.exp rename to cts/scheduler/orphan-1.exp diff --git a/cts/pengine/orphan-1.scores b/cts/scheduler/orphan-1.scores similarity index 100% rename from cts/pengine/orphan-1.scores rename to cts/scheduler/orphan-1.scores diff --git a/cts/pengine/orphan-1.summary b/cts/scheduler/orphan-1.summary similarity index 100% rename from cts/pengine/orphan-1.summary rename to cts/scheduler/orphan-1.summary diff --git a/cts/pengine/orphan-1.xml b/cts/scheduler/orphan-1.xml similarity index 100% rename from cts/pengine/orphan-1.xml rename to cts/scheduler/orphan-1.xml diff --git a/cts/pengine/orphan-2.dot b/cts/scheduler/orphan-2.dot similarity index 100% rename from cts/pengine/orphan-2.dot rename to cts/scheduler/orphan-2.dot diff --git a/cts/pengine/orphan-2.exp b/cts/scheduler/orphan-2.exp similarity index 100% rename from cts/pengine/orphan-2.exp rename to cts/scheduler/orphan-2.exp diff --git a/cts/pengine/orphan-2.scores b/cts/scheduler/orphan-2.scores similarity index 100% rename from cts/pengine/orphan-2.scores rename to cts/scheduler/orphan-2.scores diff --git a/cts/pengine/orphan-2.summary b/cts/scheduler/orphan-2.summary similarity index 100% rename from cts/pengine/orphan-2.summary rename to cts/scheduler/orphan-2.summary diff --git a/cts/pengine/orphan-2.xml b/cts/scheduler/orphan-2.xml similarity index 100% rename from cts/pengine/orphan-2.xml rename to cts/scheduler/orphan-2.xml diff --git a/cts/pengine/params-0.dot b/cts/scheduler/params-0.dot similarity index 100% rename from cts/pengine/params-0.dot rename to cts/scheduler/params-0.dot diff --git a/cts/pengine/params-0.exp b/cts/scheduler/params-0.exp similarity index 100% rename from cts/pengine/params-0.exp rename to cts/scheduler/params-0.exp diff --git a/cts/pengine/params-0.scores b/cts/scheduler/params-0.scores similarity index 100% rename from cts/pengine/params-0.scores rename to cts/scheduler/params-0.scores diff --git a/cts/pengine/params-0.summary b/cts/scheduler/params-0.summary similarity index 100% rename from cts/pengine/params-0.summary rename to cts/scheduler/params-0.summary diff --git a/cts/pengine/params-0.xml b/cts/scheduler/params-0.xml similarity index 100% rename from cts/pengine/params-0.xml rename to cts/scheduler/params-0.xml diff --git a/cts/pengine/params-1.dot b/cts/scheduler/params-1.dot similarity index 100% rename from cts/pengine/params-1.dot rename to cts/scheduler/params-1.dot diff --git a/cts/pengine/params-1.exp b/cts/scheduler/params-1.exp similarity index 100% rename from cts/pengine/params-1.exp rename to cts/scheduler/params-1.exp diff --git a/cts/pengine/params-1.scores b/cts/scheduler/params-1.scores similarity index 100% rename from cts/pengine/params-1.scores rename to cts/scheduler/params-1.scores diff --git a/cts/pengine/params-1.summary b/cts/scheduler/params-1.summary similarity index 100% rename from cts/pengine/params-1.summary rename to cts/scheduler/params-1.summary diff --git a/cts/pengine/params-1.xml b/cts/scheduler/params-1.xml similarity index 100% rename from cts/pengine/params-1.xml rename to cts/scheduler/params-1.xml diff --git a/cts/pengine/params-2.dot b/cts/scheduler/params-2.dot similarity index 100% rename from cts/pengine/params-2.dot rename to cts/scheduler/params-2.dot diff --git a/cts/pengine/params-2.exp b/cts/scheduler/params-2.exp similarity index 100% rename from cts/pengine/params-2.exp rename to cts/scheduler/params-2.exp diff --git a/cts/pengine/params-2.scores b/cts/scheduler/params-2.scores similarity index 100% rename from cts/pengine/params-2.scores rename to cts/scheduler/params-2.scores diff --git a/cts/pengine/params-2.summary b/cts/scheduler/params-2.summary similarity index 100% rename from cts/pengine/params-2.summary rename to cts/scheduler/params-2.summary diff --git a/cts/pengine/params-2.xml b/cts/scheduler/params-2.xml similarity index 100% rename from cts/pengine/params-2.xml rename to cts/scheduler/params-2.xml diff --git a/cts/pengine/params-4.dot b/cts/scheduler/params-4.dot similarity index 100% rename from cts/pengine/params-4.dot rename to cts/scheduler/params-4.dot diff --git a/cts/pengine/params-4.exp b/cts/scheduler/params-4.exp similarity index 100% rename from cts/pengine/params-4.exp rename to cts/scheduler/params-4.exp diff --git a/cts/pengine/params-4.scores b/cts/scheduler/params-4.scores similarity index 100% rename from cts/pengine/params-4.scores rename to cts/scheduler/params-4.scores diff --git a/cts/pengine/params-4.summary b/cts/scheduler/params-4.summary similarity index 100% rename from cts/pengine/params-4.summary rename to cts/scheduler/params-4.summary diff --git a/cts/pengine/params-4.xml b/cts/scheduler/params-4.xml similarity index 100% rename from cts/pengine/params-4.xml rename to cts/scheduler/params-4.xml diff --git a/cts/pengine/params-5.dot b/cts/scheduler/params-5.dot similarity index 100% rename from cts/pengine/params-5.dot rename to cts/scheduler/params-5.dot diff --git a/cts/pengine/params-5.exp b/cts/scheduler/params-5.exp similarity index 100% rename from cts/pengine/params-5.exp rename to cts/scheduler/params-5.exp diff --git a/cts/pengine/params-5.scores b/cts/scheduler/params-5.scores similarity index 100% rename from cts/pengine/params-5.scores rename to cts/scheduler/params-5.scores diff --git a/cts/pengine/params-5.summary b/cts/scheduler/params-5.summary similarity index 100% rename from cts/pengine/params-5.summary rename to cts/scheduler/params-5.summary diff --git a/cts/pengine/params-5.xml b/cts/scheduler/params-5.xml similarity index 100% rename from cts/pengine/params-5.xml rename to cts/scheduler/params-5.xml diff --git a/cts/pengine/params-6.dot b/cts/scheduler/params-6.dot similarity index 100% rename from cts/pengine/params-6.dot rename to cts/scheduler/params-6.dot diff --git a/cts/pengine/params-6.exp b/cts/scheduler/params-6.exp similarity index 100% rename from cts/pengine/params-6.exp rename to cts/scheduler/params-6.exp diff --git a/cts/pengine/params-6.scores b/cts/scheduler/params-6.scores similarity index 100% rename from cts/pengine/params-6.scores rename to cts/scheduler/params-6.scores diff --git a/cts/pengine/params-6.summary b/cts/scheduler/params-6.summary similarity index 100% rename from cts/pengine/params-6.summary rename to cts/scheduler/params-6.summary diff --git a/cts/pengine/params-6.xml b/cts/scheduler/params-6.xml similarity index 100% rename from cts/pengine/params-6.xml rename to cts/scheduler/params-6.xml diff --git a/cts/pengine/per-node-attrs.dot b/cts/scheduler/per-node-attrs.dot similarity index 100% rename from cts/pengine/per-node-attrs.dot rename to cts/scheduler/per-node-attrs.dot diff --git a/cts/pengine/per-node-attrs.exp b/cts/scheduler/per-node-attrs.exp similarity index 100% rename from cts/pengine/per-node-attrs.exp rename to cts/scheduler/per-node-attrs.exp diff --git a/cts/pengine/per-node-attrs.scores b/cts/scheduler/per-node-attrs.scores similarity index 100% rename from cts/pengine/per-node-attrs.scores rename to cts/scheduler/per-node-attrs.scores diff --git a/cts/pengine/per-node-attrs.summary b/cts/scheduler/per-node-attrs.summary similarity index 100% rename from cts/pengine/per-node-attrs.summary rename to cts/scheduler/per-node-attrs.summary diff --git a/cts/pengine/per-node-attrs.xml b/cts/scheduler/per-node-attrs.xml similarity index 100% rename from cts/pengine/per-node-attrs.xml rename to cts/scheduler/per-node-attrs.xml diff --git a/cts/pengine/per-op-failcount.dot b/cts/scheduler/per-op-failcount.dot similarity index 100% rename from cts/pengine/per-op-failcount.dot rename to cts/scheduler/per-op-failcount.dot diff --git a/cts/pengine/per-op-failcount.exp b/cts/scheduler/per-op-failcount.exp similarity index 100% rename from cts/pengine/per-op-failcount.exp rename to cts/scheduler/per-op-failcount.exp diff --git a/cts/pengine/per-op-failcount.scores b/cts/scheduler/per-op-failcount.scores similarity index 100% rename from cts/pengine/per-op-failcount.scores rename to cts/scheduler/per-op-failcount.scores diff --git a/cts/pengine/per-op-failcount.summary b/cts/scheduler/per-op-failcount.summary similarity index 100% rename from cts/pengine/per-op-failcount.summary rename to cts/scheduler/per-op-failcount.summary diff --git a/cts/pengine/per-op-failcount.xml b/cts/scheduler/per-op-failcount.xml similarity index 100% rename from cts/pengine/per-op-failcount.xml rename to cts/scheduler/per-op-failcount.xml diff --git a/cts/pengine/placement-capacity.dot b/cts/scheduler/placement-capacity.dot similarity index 100% rename from cts/pengine/placement-capacity.dot rename to cts/scheduler/placement-capacity.dot diff --git a/cts/pengine/placement-capacity.exp b/cts/scheduler/placement-capacity.exp similarity index 100% rename from cts/pengine/placement-capacity.exp rename to cts/scheduler/placement-capacity.exp diff --git a/cts/pengine/placement-capacity.scores b/cts/scheduler/placement-capacity.scores similarity index 100% rename from cts/pengine/placement-capacity.scores rename to cts/scheduler/placement-capacity.scores diff --git a/cts/pengine/placement-capacity.summary b/cts/scheduler/placement-capacity.summary similarity index 100% rename from cts/pengine/placement-capacity.summary rename to cts/scheduler/placement-capacity.summary diff --git a/cts/pengine/placement-capacity.xml b/cts/scheduler/placement-capacity.xml similarity index 100% rename from cts/pengine/placement-capacity.xml rename to cts/scheduler/placement-capacity.xml diff --git a/cts/pengine/placement-location.dot b/cts/scheduler/placement-location.dot similarity index 100% rename from cts/pengine/placement-location.dot rename to cts/scheduler/placement-location.dot diff --git a/cts/pengine/placement-location.exp b/cts/scheduler/placement-location.exp similarity index 100% rename from cts/pengine/placement-location.exp rename to cts/scheduler/placement-location.exp diff --git a/cts/pengine/placement-location.scores b/cts/scheduler/placement-location.scores similarity index 100% rename from cts/pengine/placement-location.scores rename to cts/scheduler/placement-location.scores diff --git a/cts/pengine/placement-location.summary b/cts/scheduler/placement-location.summary similarity index 100% rename from cts/pengine/placement-location.summary rename to cts/scheduler/placement-location.summary diff --git a/cts/pengine/placement-location.xml b/cts/scheduler/placement-location.xml similarity index 100% rename from cts/pengine/placement-location.xml rename to cts/scheduler/placement-location.xml diff --git a/cts/pengine/placement-priority.dot b/cts/scheduler/placement-priority.dot similarity index 100% rename from cts/pengine/placement-priority.dot rename to cts/scheduler/placement-priority.dot diff --git a/cts/pengine/placement-priority.exp b/cts/scheduler/placement-priority.exp similarity index 100% rename from cts/pengine/placement-priority.exp rename to cts/scheduler/placement-priority.exp diff --git a/cts/pengine/placement-priority.scores b/cts/scheduler/placement-priority.scores similarity index 100% rename from cts/pengine/placement-priority.scores rename to cts/scheduler/placement-priority.scores diff --git a/cts/pengine/placement-priority.summary b/cts/scheduler/placement-priority.summary similarity index 100% rename from cts/pengine/placement-priority.summary rename to cts/scheduler/placement-priority.summary diff --git a/cts/pengine/placement-priority.xml b/cts/scheduler/placement-priority.xml similarity index 100% rename from cts/pengine/placement-priority.xml rename to cts/scheduler/placement-priority.xml diff --git a/cts/pengine/placement-stickiness.dot b/cts/scheduler/placement-stickiness.dot similarity index 100% rename from cts/pengine/placement-stickiness.dot rename to cts/scheduler/placement-stickiness.dot diff --git a/cts/pengine/placement-stickiness.exp b/cts/scheduler/placement-stickiness.exp similarity index 100% rename from cts/pengine/placement-stickiness.exp rename to cts/scheduler/placement-stickiness.exp diff --git a/cts/pengine/placement-stickiness.scores b/cts/scheduler/placement-stickiness.scores similarity index 100% rename from cts/pengine/placement-stickiness.scores rename to cts/scheduler/placement-stickiness.scores diff --git a/cts/pengine/placement-stickiness.summary b/cts/scheduler/placement-stickiness.summary similarity index 100% rename from cts/pengine/placement-stickiness.summary rename to cts/scheduler/placement-stickiness.summary diff --git a/cts/pengine/placement-stickiness.xml b/cts/scheduler/placement-stickiness.xml similarity index 100% rename from cts/pengine/placement-stickiness.xml rename to cts/scheduler/placement-stickiness.xml diff --git a/cts/pengine/probe-0.dot b/cts/scheduler/probe-0.dot similarity index 100% rename from cts/pengine/probe-0.dot rename to cts/scheduler/probe-0.dot diff --git a/cts/pengine/probe-0.exp b/cts/scheduler/probe-0.exp similarity index 100% rename from cts/pengine/probe-0.exp rename to cts/scheduler/probe-0.exp diff --git a/cts/pengine/probe-0.scores b/cts/scheduler/probe-0.scores similarity index 100% rename from cts/pengine/probe-0.scores rename to cts/scheduler/probe-0.scores diff --git a/cts/pengine/probe-0.summary b/cts/scheduler/probe-0.summary similarity index 100% rename from cts/pengine/probe-0.summary rename to cts/scheduler/probe-0.summary diff --git a/cts/pengine/probe-0.xml b/cts/scheduler/probe-0.xml similarity index 100% rename from cts/pengine/probe-0.xml rename to cts/scheduler/probe-0.xml diff --git a/cts/pengine/probe-1.dot b/cts/scheduler/probe-1.dot similarity index 100% rename from cts/pengine/probe-1.dot rename to cts/scheduler/probe-1.dot diff --git a/cts/pengine/probe-1.exp b/cts/scheduler/probe-1.exp similarity index 100% rename from cts/pengine/probe-1.exp rename to cts/scheduler/probe-1.exp diff --git a/cts/pengine/probe-1.scores b/cts/scheduler/probe-1.scores similarity index 100% rename from cts/pengine/probe-1.scores rename to cts/scheduler/probe-1.scores diff --git a/cts/pengine/probe-1.summary b/cts/scheduler/probe-1.summary similarity index 100% rename from cts/pengine/probe-1.summary rename to cts/scheduler/probe-1.summary diff --git a/cts/pengine/probe-1.xml b/cts/scheduler/probe-1.xml similarity index 100% rename from cts/pengine/probe-1.xml rename to cts/scheduler/probe-1.xml diff --git a/cts/pengine/probe-2.dot b/cts/scheduler/probe-2.dot similarity index 100% rename from cts/pengine/probe-2.dot rename to cts/scheduler/probe-2.dot diff --git a/cts/pengine/probe-2.exp b/cts/scheduler/probe-2.exp similarity index 100% rename from cts/pengine/probe-2.exp rename to cts/scheduler/probe-2.exp diff --git a/cts/pengine/probe-2.scores b/cts/scheduler/probe-2.scores similarity index 100% rename from cts/pengine/probe-2.scores rename to cts/scheduler/probe-2.scores diff --git a/cts/pengine/probe-2.summary b/cts/scheduler/probe-2.summary similarity index 100% rename from cts/pengine/probe-2.summary rename to cts/scheduler/probe-2.summary diff --git a/cts/pengine/probe-2.xml b/cts/scheduler/probe-2.xml similarity index 100% rename from cts/pengine/probe-2.xml rename to cts/scheduler/probe-2.xml diff --git a/cts/pengine/probe-3.dot b/cts/scheduler/probe-3.dot similarity index 100% rename from cts/pengine/probe-3.dot rename to cts/scheduler/probe-3.dot diff --git a/cts/pengine/probe-3.exp b/cts/scheduler/probe-3.exp similarity index 100% rename from cts/pengine/probe-3.exp rename to cts/scheduler/probe-3.exp diff --git a/cts/pengine/probe-3.scores b/cts/scheduler/probe-3.scores similarity index 100% rename from cts/pengine/probe-3.scores rename to cts/scheduler/probe-3.scores diff --git a/cts/pengine/probe-3.summary b/cts/scheduler/probe-3.summary similarity index 100% rename from cts/pengine/probe-3.summary rename to cts/scheduler/probe-3.summary diff --git a/cts/pengine/probe-3.xml b/cts/scheduler/probe-3.xml similarity index 100% rename from cts/pengine/probe-3.xml rename to cts/scheduler/probe-3.xml diff --git a/cts/pengine/probe-4.dot b/cts/scheduler/probe-4.dot similarity index 100% rename from cts/pengine/probe-4.dot rename to cts/scheduler/probe-4.dot diff --git a/cts/pengine/probe-4.exp b/cts/scheduler/probe-4.exp similarity index 100% rename from cts/pengine/probe-4.exp rename to cts/scheduler/probe-4.exp diff --git a/cts/pengine/probe-4.scores b/cts/scheduler/probe-4.scores similarity index 100% rename from cts/pengine/probe-4.scores rename to cts/scheduler/probe-4.scores diff --git a/cts/pengine/probe-4.summary b/cts/scheduler/probe-4.summary similarity index 100% rename from cts/pengine/probe-4.summary rename to cts/scheduler/probe-4.summary diff --git a/cts/pengine/probe-4.xml b/cts/scheduler/probe-4.xml similarity index 100% rename from cts/pengine/probe-4.xml rename to cts/scheduler/probe-4.xml diff --git a/cts/pengine/probe-timeout.dot b/cts/scheduler/probe-timeout.dot similarity index 100% rename from cts/pengine/probe-timeout.dot rename to cts/scheduler/probe-timeout.dot diff --git a/cts/pengine/probe-timeout.exp b/cts/scheduler/probe-timeout.exp similarity index 100% rename from cts/pengine/probe-timeout.exp rename to cts/scheduler/probe-timeout.exp diff --git a/cts/pengine/probe-timeout.scores b/cts/scheduler/probe-timeout.scores similarity index 100% rename from cts/pengine/probe-timeout.scores rename to cts/scheduler/probe-timeout.scores diff --git a/cts/pengine/probe-timeout.summary b/cts/scheduler/probe-timeout.summary similarity index 100% rename from cts/pengine/probe-timeout.summary rename to cts/scheduler/probe-timeout.summary diff --git a/cts/pengine/probe-timeout.xml b/cts/scheduler/probe-timeout.xml similarity index 100% rename from cts/pengine/probe-timeout.xml rename to cts/scheduler/probe-timeout.xml diff --git a/cts/pengine/quorum-1.dot b/cts/scheduler/quorum-1.dot similarity index 100% rename from cts/pengine/quorum-1.dot rename to cts/scheduler/quorum-1.dot diff --git a/cts/pengine/quorum-1.exp b/cts/scheduler/quorum-1.exp similarity index 100% rename from cts/pengine/quorum-1.exp rename to cts/scheduler/quorum-1.exp diff --git a/cts/pengine/quorum-1.scores b/cts/scheduler/quorum-1.scores similarity index 100% rename from cts/pengine/quorum-1.scores rename to cts/scheduler/quorum-1.scores diff --git a/cts/pengine/quorum-1.summary b/cts/scheduler/quorum-1.summary similarity index 100% rename from cts/pengine/quorum-1.summary rename to cts/scheduler/quorum-1.summary diff --git a/cts/pengine/quorum-1.te.exp b/cts/scheduler/quorum-1.te.exp similarity index 100% rename from cts/pengine/quorum-1.te.exp rename to cts/scheduler/quorum-1.te.exp diff --git a/cts/pengine/quorum-1.xml b/cts/scheduler/quorum-1.xml similarity index 100% rename from cts/pengine/quorum-1.xml rename to cts/scheduler/quorum-1.xml diff --git a/cts/pengine/quorum-2.dot b/cts/scheduler/quorum-2.dot similarity index 100% rename from cts/pengine/quorum-2.dot rename to cts/scheduler/quorum-2.dot diff --git a/cts/pengine/quorum-2.exp b/cts/scheduler/quorum-2.exp similarity index 100% rename from cts/pengine/quorum-2.exp rename to cts/scheduler/quorum-2.exp diff --git a/cts/pengine/quorum-2.scores b/cts/scheduler/quorum-2.scores similarity index 100% rename from cts/pengine/quorum-2.scores rename to cts/scheduler/quorum-2.scores diff --git a/cts/pengine/quorum-2.summary b/cts/scheduler/quorum-2.summary similarity index 100% rename from cts/pengine/quorum-2.summary rename to cts/scheduler/quorum-2.summary diff --git a/cts/pengine/quorum-2.te.exp b/cts/scheduler/quorum-2.te.exp similarity index 100% rename from cts/pengine/quorum-2.te.exp rename to cts/scheduler/quorum-2.te.exp diff --git a/cts/pengine/quorum-2.xml b/cts/scheduler/quorum-2.xml similarity index 100% rename from cts/pengine/quorum-2.xml rename to cts/scheduler/quorum-2.xml diff --git a/cts/pengine/quorum-3.dot b/cts/scheduler/quorum-3.dot similarity index 100% rename from cts/pengine/quorum-3.dot rename to cts/scheduler/quorum-3.dot diff --git a/cts/pengine/quorum-3.exp b/cts/scheduler/quorum-3.exp similarity index 100% rename from cts/pengine/quorum-3.exp rename to cts/scheduler/quorum-3.exp diff --git a/cts/pengine/quorum-3.scores b/cts/scheduler/quorum-3.scores similarity index 100% rename from cts/pengine/quorum-3.scores rename to cts/scheduler/quorum-3.scores diff --git a/cts/pengine/quorum-3.summary b/cts/scheduler/quorum-3.summary similarity index 100% rename from cts/pengine/quorum-3.summary rename to cts/scheduler/quorum-3.summary diff --git a/cts/pengine/quorum-3.te.exp b/cts/scheduler/quorum-3.te.exp similarity index 100% rename from cts/pengine/quorum-3.te.exp rename to cts/scheduler/quorum-3.te.exp diff --git a/cts/pengine/quorum-3.xml b/cts/scheduler/quorum-3.xml similarity index 100% rename from cts/pengine/quorum-3.xml rename to cts/scheduler/quorum-3.xml diff --git a/cts/pengine/quorum-4.dot b/cts/scheduler/quorum-4.dot similarity index 100% rename from cts/pengine/quorum-4.dot rename to cts/scheduler/quorum-4.dot diff --git a/cts/pengine/quorum-4.exp b/cts/scheduler/quorum-4.exp similarity index 100% rename from cts/pengine/quorum-4.exp rename to cts/scheduler/quorum-4.exp diff --git a/cts/pengine/quorum-4.scores b/cts/scheduler/quorum-4.scores similarity index 100% rename from cts/pengine/quorum-4.scores rename to cts/scheduler/quorum-4.scores diff --git a/cts/pengine/quorum-4.summary b/cts/scheduler/quorum-4.summary similarity index 100% rename from cts/pengine/quorum-4.summary rename to cts/scheduler/quorum-4.summary diff --git a/cts/pengine/quorum-4.xml b/cts/scheduler/quorum-4.xml similarity index 100% rename from cts/pengine/quorum-4.xml rename to cts/scheduler/quorum-4.xml diff --git a/cts/pengine/quorum-5.dot b/cts/scheduler/quorum-5.dot similarity index 100% rename from cts/pengine/quorum-5.dot rename to cts/scheduler/quorum-5.dot diff --git a/cts/pengine/quorum-5.exp b/cts/scheduler/quorum-5.exp similarity index 100% rename from cts/pengine/quorum-5.exp rename to cts/scheduler/quorum-5.exp diff --git a/cts/pengine/quorum-5.scores b/cts/scheduler/quorum-5.scores similarity index 100% rename from cts/pengine/quorum-5.scores rename to cts/scheduler/quorum-5.scores diff --git a/cts/pengine/quorum-5.summary b/cts/scheduler/quorum-5.summary similarity index 100% rename from cts/pengine/quorum-5.summary rename to cts/scheduler/quorum-5.summary diff --git a/cts/pengine/quorum-5.xml b/cts/scheduler/quorum-5.xml similarity index 100% rename from cts/pengine/quorum-5.xml rename to cts/scheduler/quorum-5.xml diff --git a/cts/pengine/quorum-6.dot b/cts/scheduler/quorum-6.dot similarity index 100% rename from cts/pengine/quorum-6.dot rename to cts/scheduler/quorum-6.dot diff --git a/cts/pengine/quorum-6.exp b/cts/scheduler/quorum-6.exp similarity index 100% rename from cts/pengine/quorum-6.exp rename to cts/scheduler/quorum-6.exp diff --git a/cts/pengine/quorum-6.scores b/cts/scheduler/quorum-6.scores similarity index 100% rename from cts/pengine/quorum-6.scores rename to cts/scheduler/quorum-6.scores diff --git a/cts/pengine/quorum-6.summary b/cts/scheduler/quorum-6.summary similarity index 100% rename from cts/pengine/quorum-6.summary rename to cts/scheduler/quorum-6.summary diff --git a/cts/pengine/quorum-6.xml b/cts/scheduler/quorum-6.xml similarity index 100% rename from cts/pengine/quorum-6.xml rename to cts/scheduler/quorum-6.xml diff --git a/cts/pengine/rebalance-unique-clones.dot b/cts/scheduler/rebalance-unique-clones.dot similarity index 100% rename from cts/pengine/rebalance-unique-clones.dot rename to cts/scheduler/rebalance-unique-clones.dot diff --git a/cts/pengine/rebalance-unique-clones.exp b/cts/scheduler/rebalance-unique-clones.exp similarity index 100% rename from cts/pengine/rebalance-unique-clones.exp rename to cts/scheduler/rebalance-unique-clones.exp diff --git a/cts/pengine/rebalance-unique-clones.scores b/cts/scheduler/rebalance-unique-clones.scores similarity index 100% rename from cts/pengine/rebalance-unique-clones.scores rename to cts/scheduler/rebalance-unique-clones.scores diff --git a/cts/pengine/rebalance-unique-clones.summary b/cts/scheduler/rebalance-unique-clones.summary similarity index 100% rename from cts/pengine/rebalance-unique-clones.summary rename to cts/scheduler/rebalance-unique-clones.summary diff --git a/cts/pengine/rebalance-unique-clones.xml b/cts/scheduler/rebalance-unique-clones.xml similarity index 100% rename from cts/pengine/rebalance-unique-clones.xml rename to cts/scheduler/rebalance-unique-clones.xml diff --git a/cts/pengine/rec-node-1.dot b/cts/scheduler/rec-node-1.dot similarity index 100% rename from cts/pengine/rec-node-1.dot rename to cts/scheduler/rec-node-1.dot diff --git a/cts/pengine/rec-node-1.exp b/cts/scheduler/rec-node-1.exp similarity index 100% rename from cts/pengine/rec-node-1.exp rename to cts/scheduler/rec-node-1.exp diff --git a/cts/pengine/rec-node-1.scores b/cts/scheduler/rec-node-1.scores similarity index 100% rename from cts/pengine/rec-node-1.scores rename to cts/scheduler/rec-node-1.scores diff --git a/cts/pengine/rec-node-1.summary b/cts/scheduler/rec-node-1.summary similarity index 100% rename from cts/pengine/rec-node-1.summary rename to cts/scheduler/rec-node-1.summary diff --git a/cts/pengine/rec-node-1.te.exp b/cts/scheduler/rec-node-1.te.exp similarity index 100% rename from cts/pengine/rec-node-1.te.exp rename to cts/scheduler/rec-node-1.te.exp diff --git a/cts/pengine/rec-node-1.xml b/cts/scheduler/rec-node-1.xml similarity index 100% rename from cts/pengine/rec-node-1.xml rename to cts/scheduler/rec-node-1.xml diff --git a/cts/pengine/rec-node-10.dot b/cts/scheduler/rec-node-10.dot similarity index 100% rename from cts/pengine/rec-node-10.dot rename to cts/scheduler/rec-node-10.dot diff --git a/cts/pengine/rec-node-10.exp b/cts/scheduler/rec-node-10.exp similarity index 100% rename from cts/pengine/rec-node-10.exp rename to cts/scheduler/rec-node-10.exp diff --git a/cts/pengine/rec-node-10.scores b/cts/scheduler/rec-node-10.scores similarity index 100% rename from cts/pengine/rec-node-10.scores rename to cts/scheduler/rec-node-10.scores diff --git a/cts/pengine/rec-node-10.summary b/cts/scheduler/rec-node-10.summary similarity index 100% rename from cts/pengine/rec-node-10.summary rename to cts/scheduler/rec-node-10.summary diff --git a/cts/pengine/rec-node-10.te.exp b/cts/scheduler/rec-node-10.te.exp similarity index 100% rename from cts/pengine/rec-node-10.te.exp rename to cts/scheduler/rec-node-10.te.exp diff --git a/cts/pengine/rec-node-10.xml b/cts/scheduler/rec-node-10.xml similarity index 100% rename from cts/pengine/rec-node-10.xml rename to cts/scheduler/rec-node-10.xml diff --git a/cts/pengine/rec-node-11.dot b/cts/scheduler/rec-node-11.dot similarity index 100% rename from cts/pengine/rec-node-11.dot rename to cts/scheduler/rec-node-11.dot diff --git a/cts/pengine/rec-node-11.exp b/cts/scheduler/rec-node-11.exp similarity index 100% rename from cts/pengine/rec-node-11.exp rename to cts/scheduler/rec-node-11.exp diff --git a/cts/pengine/rec-node-11.scores b/cts/scheduler/rec-node-11.scores similarity index 100% rename from cts/pengine/rec-node-11.scores rename to cts/scheduler/rec-node-11.scores diff --git a/cts/pengine/rec-node-11.summary b/cts/scheduler/rec-node-11.summary similarity index 100% rename from cts/pengine/rec-node-11.summary rename to cts/scheduler/rec-node-11.summary diff --git a/cts/pengine/rec-node-11.xml b/cts/scheduler/rec-node-11.xml similarity index 100% rename from cts/pengine/rec-node-11.xml rename to cts/scheduler/rec-node-11.xml diff --git a/cts/pengine/rec-node-12.dot b/cts/scheduler/rec-node-12.dot similarity index 100% rename from cts/pengine/rec-node-12.dot rename to cts/scheduler/rec-node-12.dot diff --git a/cts/pengine/rec-node-12.exp b/cts/scheduler/rec-node-12.exp similarity index 100% rename from cts/pengine/rec-node-12.exp rename to cts/scheduler/rec-node-12.exp diff --git a/cts/pengine/rec-node-12.scores b/cts/scheduler/rec-node-12.scores similarity index 100% rename from cts/pengine/rec-node-12.scores rename to cts/scheduler/rec-node-12.scores diff --git a/cts/pengine/rec-node-12.summary b/cts/scheduler/rec-node-12.summary similarity index 100% rename from cts/pengine/rec-node-12.summary rename to cts/scheduler/rec-node-12.summary diff --git a/cts/pengine/rec-node-12.xml b/cts/scheduler/rec-node-12.xml similarity index 100% rename from cts/pengine/rec-node-12.xml rename to cts/scheduler/rec-node-12.xml diff --git a/cts/pengine/rec-node-13.dot b/cts/scheduler/rec-node-13.dot similarity index 100% rename from cts/pengine/rec-node-13.dot rename to cts/scheduler/rec-node-13.dot diff --git a/cts/pengine/rec-node-13.exp b/cts/scheduler/rec-node-13.exp similarity index 100% rename from cts/pengine/rec-node-13.exp rename to cts/scheduler/rec-node-13.exp diff --git a/cts/pengine/rec-node-13.scores b/cts/scheduler/rec-node-13.scores similarity index 100% rename from cts/pengine/rec-node-13.scores rename to cts/scheduler/rec-node-13.scores diff --git a/cts/pengine/rec-node-13.summary b/cts/scheduler/rec-node-13.summary similarity index 100% rename from cts/pengine/rec-node-13.summary rename to cts/scheduler/rec-node-13.summary diff --git a/cts/pengine/rec-node-13.xml b/cts/scheduler/rec-node-13.xml similarity index 100% rename from cts/pengine/rec-node-13.xml rename to cts/scheduler/rec-node-13.xml diff --git a/cts/pengine/rec-node-14.dot b/cts/scheduler/rec-node-14.dot similarity index 100% rename from cts/pengine/rec-node-14.dot rename to cts/scheduler/rec-node-14.dot diff --git a/cts/pengine/rec-node-14.exp b/cts/scheduler/rec-node-14.exp similarity index 100% rename from cts/pengine/rec-node-14.exp rename to cts/scheduler/rec-node-14.exp diff --git a/cts/pengine/rec-node-14.scores b/cts/scheduler/rec-node-14.scores similarity index 100% rename from cts/pengine/rec-node-14.scores rename to cts/scheduler/rec-node-14.scores diff --git a/cts/pengine/rec-node-14.summary b/cts/scheduler/rec-node-14.summary similarity index 100% rename from cts/pengine/rec-node-14.summary rename to cts/scheduler/rec-node-14.summary diff --git a/cts/pengine/rec-node-14.xml b/cts/scheduler/rec-node-14.xml similarity index 100% rename from cts/pengine/rec-node-14.xml rename to cts/scheduler/rec-node-14.xml diff --git a/cts/pengine/rec-node-15.dot b/cts/scheduler/rec-node-15.dot similarity index 100% rename from cts/pengine/rec-node-15.dot rename to cts/scheduler/rec-node-15.dot diff --git a/cts/pengine/rec-node-15.exp b/cts/scheduler/rec-node-15.exp similarity index 100% rename from cts/pengine/rec-node-15.exp rename to cts/scheduler/rec-node-15.exp diff --git a/cts/pengine/rec-node-15.scores b/cts/scheduler/rec-node-15.scores similarity index 100% rename from cts/pengine/rec-node-15.scores rename to cts/scheduler/rec-node-15.scores diff --git a/cts/pengine/rec-node-15.summary b/cts/scheduler/rec-node-15.summary similarity index 100% rename from cts/pengine/rec-node-15.summary rename to cts/scheduler/rec-node-15.summary diff --git a/cts/pengine/rec-node-15.xml b/cts/scheduler/rec-node-15.xml similarity index 100% rename from cts/pengine/rec-node-15.xml rename to cts/scheduler/rec-node-15.xml diff --git a/cts/pengine/rec-node-2.dot b/cts/scheduler/rec-node-2.dot similarity index 100% rename from cts/pengine/rec-node-2.dot rename to cts/scheduler/rec-node-2.dot diff --git a/cts/pengine/rec-node-2.exp b/cts/scheduler/rec-node-2.exp similarity index 100% rename from cts/pengine/rec-node-2.exp rename to cts/scheduler/rec-node-2.exp diff --git a/cts/pengine/rec-node-2.scores b/cts/scheduler/rec-node-2.scores similarity index 100% rename from cts/pengine/rec-node-2.scores rename to cts/scheduler/rec-node-2.scores diff --git a/cts/pengine/rec-node-2.summary b/cts/scheduler/rec-node-2.summary similarity index 100% rename from cts/pengine/rec-node-2.summary rename to cts/scheduler/rec-node-2.summary diff --git a/cts/pengine/rec-node-2.te.exp b/cts/scheduler/rec-node-2.te.exp similarity index 100% rename from cts/pengine/rec-node-2.te.exp rename to cts/scheduler/rec-node-2.te.exp diff --git a/cts/pengine/rec-node-2.xml b/cts/scheduler/rec-node-2.xml similarity index 100% rename from cts/pengine/rec-node-2.xml rename to cts/scheduler/rec-node-2.xml diff --git a/cts/pengine/rec-node-3.dot b/cts/scheduler/rec-node-3.dot similarity index 100% rename from cts/pengine/rec-node-3.dot rename to cts/scheduler/rec-node-3.dot diff --git a/cts/pengine/rec-node-3.exp b/cts/scheduler/rec-node-3.exp similarity index 100% rename from cts/pengine/rec-node-3.exp rename to cts/scheduler/rec-node-3.exp diff --git a/cts/pengine/rec-node-3.scores b/cts/scheduler/rec-node-3.scores similarity index 100% rename from cts/pengine/rec-node-3.scores rename to cts/scheduler/rec-node-3.scores diff --git a/cts/pengine/rec-node-3.summary b/cts/scheduler/rec-node-3.summary similarity index 100% rename from cts/pengine/rec-node-3.summary rename to cts/scheduler/rec-node-3.summary diff --git a/cts/pengine/rec-node-3.te.exp b/cts/scheduler/rec-node-3.te.exp similarity index 100% rename from cts/pengine/rec-node-3.te.exp rename to cts/scheduler/rec-node-3.te.exp diff --git a/cts/pengine/rec-node-3.xml b/cts/scheduler/rec-node-3.xml similarity index 100% rename from cts/pengine/rec-node-3.xml rename to cts/scheduler/rec-node-3.xml diff --git a/cts/pengine/rec-node-4.dot b/cts/scheduler/rec-node-4.dot similarity index 100% rename from cts/pengine/rec-node-4.dot rename to cts/scheduler/rec-node-4.dot diff --git a/cts/pengine/rec-node-4.exp b/cts/scheduler/rec-node-4.exp similarity index 100% rename from cts/pengine/rec-node-4.exp rename to cts/scheduler/rec-node-4.exp diff --git a/cts/pengine/rec-node-4.scores b/cts/scheduler/rec-node-4.scores similarity index 100% rename from cts/pengine/rec-node-4.scores rename to cts/scheduler/rec-node-4.scores diff --git a/cts/pengine/rec-node-4.summary b/cts/scheduler/rec-node-4.summary similarity index 100% rename from cts/pengine/rec-node-4.summary rename to cts/scheduler/rec-node-4.summary diff --git a/cts/pengine/rec-node-4.te.exp b/cts/scheduler/rec-node-4.te.exp similarity index 100% rename from cts/pengine/rec-node-4.te.exp rename to cts/scheduler/rec-node-4.te.exp diff --git a/cts/pengine/rec-node-4.xml b/cts/scheduler/rec-node-4.xml similarity index 100% rename from cts/pengine/rec-node-4.xml rename to cts/scheduler/rec-node-4.xml diff --git a/cts/pengine/rec-node-5.dot b/cts/scheduler/rec-node-5.dot similarity index 100% rename from cts/pengine/rec-node-5.dot rename to cts/scheduler/rec-node-5.dot diff --git a/cts/pengine/rec-node-5.exp b/cts/scheduler/rec-node-5.exp similarity index 100% rename from cts/pengine/rec-node-5.exp rename to cts/scheduler/rec-node-5.exp diff --git a/cts/pengine/rec-node-5.scores b/cts/scheduler/rec-node-5.scores similarity index 100% rename from cts/pengine/rec-node-5.scores rename to cts/scheduler/rec-node-5.scores diff --git a/cts/pengine/rec-node-5.summary b/cts/scheduler/rec-node-5.summary similarity index 100% rename from cts/pengine/rec-node-5.summary rename to cts/scheduler/rec-node-5.summary diff --git a/cts/pengine/rec-node-5.te.exp b/cts/scheduler/rec-node-5.te.exp similarity index 100% rename from cts/pengine/rec-node-5.te.exp rename to cts/scheduler/rec-node-5.te.exp diff --git a/cts/pengine/rec-node-5.xml b/cts/scheduler/rec-node-5.xml similarity index 100% rename from cts/pengine/rec-node-5.xml rename to cts/scheduler/rec-node-5.xml diff --git a/cts/pengine/rec-node-6.dot b/cts/scheduler/rec-node-6.dot similarity index 100% rename from cts/pengine/rec-node-6.dot rename to cts/scheduler/rec-node-6.dot diff --git a/cts/pengine/rec-node-6.exp b/cts/scheduler/rec-node-6.exp similarity index 100% rename from cts/pengine/rec-node-6.exp rename to cts/scheduler/rec-node-6.exp diff --git a/cts/pengine/rec-node-6.scores b/cts/scheduler/rec-node-6.scores similarity index 100% rename from cts/pengine/rec-node-6.scores rename to cts/scheduler/rec-node-6.scores diff --git a/cts/pengine/rec-node-6.summary b/cts/scheduler/rec-node-6.summary similarity index 100% rename from cts/pengine/rec-node-6.summary rename to cts/scheduler/rec-node-6.summary diff --git a/cts/pengine/rec-node-6.te.exp b/cts/scheduler/rec-node-6.te.exp similarity index 100% rename from cts/pengine/rec-node-6.te.exp rename to cts/scheduler/rec-node-6.te.exp diff --git a/cts/pengine/rec-node-6.xml b/cts/scheduler/rec-node-6.xml similarity index 100% rename from cts/pengine/rec-node-6.xml rename to cts/scheduler/rec-node-6.xml diff --git a/cts/pengine/rec-node-7.dot b/cts/scheduler/rec-node-7.dot similarity index 100% rename from cts/pengine/rec-node-7.dot rename to cts/scheduler/rec-node-7.dot diff --git a/cts/pengine/rec-node-7.exp b/cts/scheduler/rec-node-7.exp similarity index 100% rename from cts/pengine/rec-node-7.exp rename to cts/scheduler/rec-node-7.exp diff --git a/cts/pengine/rec-node-7.scores b/cts/scheduler/rec-node-7.scores similarity index 100% rename from cts/pengine/rec-node-7.scores rename to cts/scheduler/rec-node-7.scores diff --git a/cts/pengine/rec-node-7.summary b/cts/scheduler/rec-node-7.summary similarity index 100% rename from cts/pengine/rec-node-7.summary rename to cts/scheduler/rec-node-7.summary diff --git a/cts/pengine/rec-node-7.te.exp b/cts/scheduler/rec-node-7.te.exp similarity index 100% rename from cts/pengine/rec-node-7.te.exp rename to cts/scheduler/rec-node-7.te.exp diff --git a/cts/pengine/rec-node-7.xml b/cts/scheduler/rec-node-7.xml similarity index 100% rename from cts/pengine/rec-node-7.xml rename to cts/scheduler/rec-node-7.xml diff --git a/cts/pengine/rec-node-8.dot b/cts/scheduler/rec-node-8.dot similarity index 100% rename from cts/pengine/rec-node-8.dot rename to cts/scheduler/rec-node-8.dot diff --git a/cts/pengine/rec-node-8.exp b/cts/scheduler/rec-node-8.exp similarity index 100% rename from cts/pengine/rec-node-8.exp rename to cts/scheduler/rec-node-8.exp diff --git a/cts/pengine/rec-node-8.scores b/cts/scheduler/rec-node-8.scores similarity index 100% rename from cts/pengine/rec-node-8.scores rename to cts/scheduler/rec-node-8.scores diff --git a/cts/pengine/rec-node-8.summary b/cts/scheduler/rec-node-8.summary similarity index 100% rename from cts/pengine/rec-node-8.summary rename to cts/scheduler/rec-node-8.summary diff --git a/cts/pengine/rec-node-8.te.exp b/cts/scheduler/rec-node-8.te.exp similarity index 100% rename from cts/pengine/rec-node-8.te.exp rename to cts/scheduler/rec-node-8.te.exp diff --git a/cts/pengine/rec-node-8.xml b/cts/scheduler/rec-node-8.xml similarity index 100% rename from cts/pengine/rec-node-8.xml rename to cts/scheduler/rec-node-8.xml diff --git a/cts/pengine/rec-node-9.dot b/cts/scheduler/rec-node-9.dot similarity index 100% rename from cts/pengine/rec-node-9.dot rename to cts/scheduler/rec-node-9.dot diff --git a/cts/pengine/rec-node-9.exp b/cts/scheduler/rec-node-9.exp similarity index 100% rename from cts/pengine/rec-node-9.exp rename to cts/scheduler/rec-node-9.exp diff --git a/cts/pengine/rec-node-9.scores b/cts/scheduler/rec-node-9.scores similarity index 100% rename from cts/pengine/rec-node-9.scores rename to cts/scheduler/rec-node-9.scores diff --git a/cts/pengine/rec-node-9.summary b/cts/scheduler/rec-node-9.summary similarity index 100% rename from cts/pengine/rec-node-9.summary rename to cts/scheduler/rec-node-9.summary diff --git a/cts/pengine/rec-node-9.te.exp b/cts/scheduler/rec-node-9.te.exp similarity index 100% rename from cts/pengine/rec-node-9.te.exp rename to cts/scheduler/rec-node-9.te.exp diff --git a/cts/pengine/rec-node-9.xml b/cts/scheduler/rec-node-9.xml similarity index 100% rename from cts/pengine/rec-node-9.xml rename to cts/scheduler/rec-node-9.xml diff --git a/cts/pengine/rec-rsc-0.dot b/cts/scheduler/rec-rsc-0.dot similarity index 100% rename from cts/pengine/rec-rsc-0.dot rename to cts/scheduler/rec-rsc-0.dot diff --git a/cts/pengine/rec-rsc-0.exp b/cts/scheduler/rec-rsc-0.exp similarity index 100% rename from cts/pengine/rec-rsc-0.exp rename to cts/scheduler/rec-rsc-0.exp diff --git a/cts/pengine/rec-rsc-0.scores b/cts/scheduler/rec-rsc-0.scores similarity index 100% rename from cts/pengine/rec-rsc-0.scores rename to cts/scheduler/rec-rsc-0.scores diff --git a/cts/pengine/rec-rsc-0.summary b/cts/scheduler/rec-rsc-0.summary similarity index 100% rename from cts/pengine/rec-rsc-0.summary rename to cts/scheduler/rec-rsc-0.summary diff --git a/cts/pengine/rec-rsc-0.te.exp b/cts/scheduler/rec-rsc-0.te.exp similarity index 100% rename from cts/pengine/rec-rsc-0.te.exp rename to cts/scheduler/rec-rsc-0.te.exp diff --git a/cts/pengine/rec-rsc-0.xml b/cts/scheduler/rec-rsc-0.xml similarity index 100% rename from cts/pengine/rec-rsc-0.xml rename to cts/scheduler/rec-rsc-0.xml diff --git a/cts/pengine/rec-rsc-1.dot b/cts/scheduler/rec-rsc-1.dot similarity index 100% rename from cts/pengine/rec-rsc-1.dot rename to cts/scheduler/rec-rsc-1.dot diff --git a/cts/pengine/rec-rsc-1.exp b/cts/scheduler/rec-rsc-1.exp similarity index 100% rename from cts/pengine/rec-rsc-1.exp rename to cts/scheduler/rec-rsc-1.exp diff --git a/cts/pengine/rec-rsc-1.scores b/cts/scheduler/rec-rsc-1.scores similarity index 100% rename from cts/pengine/rec-rsc-1.scores rename to cts/scheduler/rec-rsc-1.scores diff --git a/cts/pengine/rec-rsc-1.summary b/cts/scheduler/rec-rsc-1.summary similarity index 100% rename from cts/pengine/rec-rsc-1.summary rename to cts/scheduler/rec-rsc-1.summary diff --git a/cts/pengine/rec-rsc-1.te.exp b/cts/scheduler/rec-rsc-1.te.exp similarity index 100% rename from cts/pengine/rec-rsc-1.te.exp rename to cts/scheduler/rec-rsc-1.te.exp diff --git a/cts/pengine/rec-rsc-1.xml b/cts/scheduler/rec-rsc-1.xml similarity index 100% rename from cts/pengine/rec-rsc-1.xml rename to cts/scheduler/rec-rsc-1.xml diff --git a/cts/pengine/rec-rsc-2.dot b/cts/scheduler/rec-rsc-2.dot similarity index 100% rename from cts/pengine/rec-rsc-2.dot rename to cts/scheduler/rec-rsc-2.dot diff --git a/cts/pengine/rec-rsc-2.exp b/cts/scheduler/rec-rsc-2.exp similarity index 100% rename from cts/pengine/rec-rsc-2.exp rename to cts/scheduler/rec-rsc-2.exp diff --git a/cts/pengine/rec-rsc-2.scores b/cts/scheduler/rec-rsc-2.scores similarity index 100% rename from cts/pengine/rec-rsc-2.scores rename to cts/scheduler/rec-rsc-2.scores diff --git a/cts/pengine/rec-rsc-2.summary b/cts/scheduler/rec-rsc-2.summary similarity index 100% rename from cts/pengine/rec-rsc-2.summary rename to cts/scheduler/rec-rsc-2.summary diff --git a/cts/pengine/rec-rsc-2.te.exp b/cts/scheduler/rec-rsc-2.te.exp similarity index 100% rename from cts/pengine/rec-rsc-2.te.exp rename to cts/scheduler/rec-rsc-2.te.exp diff --git a/cts/pengine/rec-rsc-2.xml b/cts/scheduler/rec-rsc-2.xml similarity index 100% rename from cts/pengine/rec-rsc-2.xml rename to cts/scheduler/rec-rsc-2.xml diff --git a/cts/pengine/rec-rsc-3.dot b/cts/scheduler/rec-rsc-3.dot similarity index 100% rename from cts/pengine/rec-rsc-3.dot rename to cts/scheduler/rec-rsc-3.dot diff --git a/cts/pengine/rec-rsc-3.exp b/cts/scheduler/rec-rsc-3.exp similarity index 100% rename from cts/pengine/rec-rsc-3.exp rename to cts/scheduler/rec-rsc-3.exp diff --git a/cts/pengine/rec-rsc-3.scores b/cts/scheduler/rec-rsc-3.scores similarity index 100% rename from cts/pengine/rec-rsc-3.scores rename to cts/scheduler/rec-rsc-3.scores diff --git a/cts/pengine/rec-rsc-3.summary b/cts/scheduler/rec-rsc-3.summary similarity index 100% rename from cts/pengine/rec-rsc-3.summary rename to cts/scheduler/rec-rsc-3.summary diff --git a/cts/pengine/rec-rsc-3.te.exp b/cts/scheduler/rec-rsc-3.te.exp similarity index 100% rename from cts/pengine/rec-rsc-3.te.exp rename to cts/scheduler/rec-rsc-3.te.exp diff --git a/cts/pengine/rec-rsc-3.xml b/cts/scheduler/rec-rsc-3.xml similarity index 100% rename from cts/pengine/rec-rsc-3.xml rename to cts/scheduler/rec-rsc-3.xml diff --git a/cts/pengine/rec-rsc-4.dot b/cts/scheduler/rec-rsc-4.dot similarity index 100% rename from cts/pengine/rec-rsc-4.dot rename to cts/scheduler/rec-rsc-4.dot diff --git a/cts/pengine/rec-rsc-4.exp b/cts/scheduler/rec-rsc-4.exp similarity index 100% rename from cts/pengine/rec-rsc-4.exp rename to cts/scheduler/rec-rsc-4.exp diff --git a/cts/pengine/rec-rsc-4.scores b/cts/scheduler/rec-rsc-4.scores similarity index 100% rename from cts/pengine/rec-rsc-4.scores rename to cts/scheduler/rec-rsc-4.scores diff --git a/cts/pengine/rec-rsc-4.summary b/cts/scheduler/rec-rsc-4.summary similarity index 100% rename from cts/pengine/rec-rsc-4.summary rename to cts/scheduler/rec-rsc-4.summary diff --git a/cts/pengine/rec-rsc-4.te.exp b/cts/scheduler/rec-rsc-4.te.exp similarity index 100% rename from cts/pengine/rec-rsc-4.te.exp rename to cts/scheduler/rec-rsc-4.te.exp diff --git a/cts/pengine/rec-rsc-4.xml b/cts/scheduler/rec-rsc-4.xml similarity index 100% rename from cts/pengine/rec-rsc-4.xml rename to cts/scheduler/rec-rsc-4.xml diff --git a/cts/pengine/rec-rsc-5.dot b/cts/scheduler/rec-rsc-5.dot similarity index 100% rename from cts/pengine/rec-rsc-5.dot rename to cts/scheduler/rec-rsc-5.dot diff --git a/cts/pengine/rec-rsc-5.exp b/cts/scheduler/rec-rsc-5.exp similarity index 100% rename from cts/pengine/rec-rsc-5.exp rename to cts/scheduler/rec-rsc-5.exp diff --git a/cts/pengine/rec-rsc-5.scores b/cts/scheduler/rec-rsc-5.scores similarity index 100% rename from cts/pengine/rec-rsc-5.scores rename to cts/scheduler/rec-rsc-5.scores diff --git a/cts/pengine/rec-rsc-5.summary b/cts/scheduler/rec-rsc-5.summary similarity index 100% rename from cts/pengine/rec-rsc-5.summary rename to cts/scheduler/rec-rsc-5.summary diff --git a/cts/pengine/rec-rsc-5.te.exp b/cts/scheduler/rec-rsc-5.te.exp similarity index 100% rename from cts/pengine/rec-rsc-5.te.exp rename to cts/scheduler/rec-rsc-5.te.exp diff --git a/cts/pengine/rec-rsc-5.xml b/cts/scheduler/rec-rsc-5.xml similarity index 100% rename from cts/pengine/rec-rsc-5.xml rename to cts/scheduler/rec-rsc-5.xml diff --git a/cts/pengine/rec-rsc-6.dot b/cts/scheduler/rec-rsc-6.dot similarity index 100% rename from cts/pengine/rec-rsc-6.dot rename to cts/scheduler/rec-rsc-6.dot diff --git a/cts/pengine/rec-rsc-6.exp b/cts/scheduler/rec-rsc-6.exp similarity index 100% rename from cts/pengine/rec-rsc-6.exp rename to cts/scheduler/rec-rsc-6.exp diff --git a/cts/pengine/rec-rsc-6.scores b/cts/scheduler/rec-rsc-6.scores similarity index 100% rename from cts/pengine/rec-rsc-6.scores rename to cts/scheduler/rec-rsc-6.scores diff --git a/cts/pengine/rec-rsc-6.summary b/cts/scheduler/rec-rsc-6.summary similarity index 100% rename from cts/pengine/rec-rsc-6.summary rename to cts/scheduler/rec-rsc-6.summary diff --git a/cts/pengine/rec-rsc-6.te.exp b/cts/scheduler/rec-rsc-6.te.exp similarity index 100% rename from cts/pengine/rec-rsc-6.te.exp rename to cts/scheduler/rec-rsc-6.te.exp diff --git a/cts/pengine/rec-rsc-6.xml b/cts/scheduler/rec-rsc-6.xml similarity index 100% rename from cts/pengine/rec-rsc-6.xml rename to cts/scheduler/rec-rsc-6.xml diff --git a/cts/pengine/rec-rsc-7.dot b/cts/scheduler/rec-rsc-7.dot similarity index 100% rename from cts/pengine/rec-rsc-7.dot rename to cts/scheduler/rec-rsc-7.dot diff --git a/cts/pengine/rec-rsc-7.exp b/cts/scheduler/rec-rsc-7.exp similarity index 100% rename from cts/pengine/rec-rsc-7.exp rename to cts/scheduler/rec-rsc-7.exp diff --git a/cts/pengine/rec-rsc-7.scores b/cts/scheduler/rec-rsc-7.scores similarity index 100% rename from cts/pengine/rec-rsc-7.scores rename to cts/scheduler/rec-rsc-7.scores diff --git a/cts/pengine/rec-rsc-7.summary b/cts/scheduler/rec-rsc-7.summary similarity index 100% rename from cts/pengine/rec-rsc-7.summary rename to cts/scheduler/rec-rsc-7.summary diff --git a/cts/pengine/rec-rsc-7.te.exp b/cts/scheduler/rec-rsc-7.te.exp similarity index 100% rename from cts/pengine/rec-rsc-7.te.exp rename to cts/scheduler/rec-rsc-7.te.exp diff --git a/cts/pengine/rec-rsc-7.xml b/cts/scheduler/rec-rsc-7.xml similarity index 100% rename from cts/pengine/rec-rsc-7.xml rename to cts/scheduler/rec-rsc-7.xml diff --git a/cts/pengine/rec-rsc-8.dot b/cts/scheduler/rec-rsc-8.dot similarity index 100% rename from cts/pengine/rec-rsc-8.dot rename to cts/scheduler/rec-rsc-8.dot diff --git a/cts/pengine/rec-rsc-8.exp b/cts/scheduler/rec-rsc-8.exp similarity index 100% rename from cts/pengine/rec-rsc-8.exp rename to cts/scheduler/rec-rsc-8.exp diff --git a/cts/pengine/rec-rsc-8.scores b/cts/scheduler/rec-rsc-8.scores similarity index 100% rename from cts/pengine/rec-rsc-8.scores rename to cts/scheduler/rec-rsc-8.scores diff --git a/cts/pengine/rec-rsc-8.summary b/cts/scheduler/rec-rsc-8.summary similarity index 100% rename from cts/pengine/rec-rsc-8.summary rename to cts/scheduler/rec-rsc-8.summary diff --git a/cts/pengine/rec-rsc-8.te.exp b/cts/scheduler/rec-rsc-8.te.exp similarity index 100% rename from cts/pengine/rec-rsc-8.te.exp rename to cts/scheduler/rec-rsc-8.te.exp diff --git a/cts/pengine/rec-rsc-8.xml b/cts/scheduler/rec-rsc-8.xml similarity index 100% rename from cts/pengine/rec-rsc-8.xml rename to cts/scheduler/rec-rsc-8.xml diff --git a/cts/pengine/rec-rsc-9.dot b/cts/scheduler/rec-rsc-9.dot similarity index 100% rename from cts/pengine/rec-rsc-9.dot rename to cts/scheduler/rec-rsc-9.dot diff --git a/cts/pengine/rec-rsc-9.exp b/cts/scheduler/rec-rsc-9.exp similarity index 100% rename from cts/pengine/rec-rsc-9.exp rename to cts/scheduler/rec-rsc-9.exp diff --git a/cts/pengine/rec-rsc-9.scores b/cts/scheduler/rec-rsc-9.scores similarity index 100% rename from cts/pengine/rec-rsc-9.scores rename to cts/scheduler/rec-rsc-9.scores diff --git a/cts/pengine/rec-rsc-9.summary b/cts/scheduler/rec-rsc-9.summary similarity index 100% rename from cts/pengine/rec-rsc-9.summary rename to cts/scheduler/rec-rsc-9.summary diff --git a/cts/pengine/rec-rsc-9.xml b/cts/scheduler/rec-rsc-9.xml similarity index 100% rename from cts/pengine/rec-rsc-9.xml rename to cts/scheduler/rec-rsc-9.xml diff --git a/cts/pengine/reload-becomes-restart.dot b/cts/scheduler/reload-becomes-restart.dot similarity index 100% rename from cts/pengine/reload-becomes-restart.dot rename to cts/scheduler/reload-becomes-restart.dot diff --git a/cts/pengine/reload-becomes-restart.exp b/cts/scheduler/reload-becomes-restart.exp similarity index 100% rename from cts/pengine/reload-becomes-restart.exp rename to cts/scheduler/reload-becomes-restart.exp diff --git a/cts/pengine/reload-becomes-restart.scores b/cts/scheduler/reload-becomes-restart.scores similarity index 100% rename from cts/pengine/reload-becomes-restart.scores rename to cts/scheduler/reload-becomes-restart.scores diff --git a/cts/pengine/reload-becomes-restart.summary b/cts/scheduler/reload-becomes-restart.summary similarity index 100% rename from cts/pengine/reload-becomes-restart.summary rename to cts/scheduler/reload-becomes-restart.summary diff --git a/cts/pengine/reload-becomes-restart.xml b/cts/scheduler/reload-becomes-restart.xml similarity index 100% rename from cts/pengine/reload-becomes-restart.xml rename to cts/scheduler/reload-becomes-restart.xml diff --git a/cts/pengine/reload-versioned.dot b/cts/scheduler/reload-versioned.dot similarity index 100% rename from cts/pengine/reload-versioned.dot rename to cts/scheduler/reload-versioned.dot diff --git a/cts/pengine/reload-versioned.exp b/cts/scheduler/reload-versioned.exp similarity index 100% rename from cts/pengine/reload-versioned.exp rename to cts/scheduler/reload-versioned.exp diff --git a/cts/pengine/reload-versioned.scores b/cts/scheduler/reload-versioned.scores similarity index 100% rename from cts/pengine/reload-versioned.scores rename to cts/scheduler/reload-versioned.scores diff --git a/cts/pengine/reload-versioned.summary b/cts/scheduler/reload-versioned.summary similarity index 100% rename from cts/pengine/reload-versioned.summary rename to cts/scheduler/reload-versioned.summary diff --git a/cts/pengine/reload-versioned.xml b/cts/scheduler/reload-versioned.xml similarity index 100% rename from cts/pengine/reload-versioned.xml rename to cts/scheduler/reload-versioned.xml diff --git a/cts/pengine/remote-connection-unrecoverable.dot b/cts/scheduler/remote-connection-unrecoverable.dot similarity index 100% rename from cts/pengine/remote-connection-unrecoverable.dot rename to cts/scheduler/remote-connection-unrecoverable.dot diff --git a/cts/pengine/remote-connection-unrecoverable.exp b/cts/scheduler/remote-connection-unrecoverable.exp similarity index 100% rename from cts/pengine/remote-connection-unrecoverable.exp rename to cts/scheduler/remote-connection-unrecoverable.exp diff --git a/cts/pengine/remote-connection-unrecoverable.scores b/cts/scheduler/remote-connection-unrecoverable.scores similarity index 100% rename from cts/pengine/remote-connection-unrecoverable.scores rename to cts/scheduler/remote-connection-unrecoverable.scores diff --git a/cts/pengine/remote-connection-unrecoverable.summary b/cts/scheduler/remote-connection-unrecoverable.summary similarity index 100% rename from cts/pengine/remote-connection-unrecoverable.summary rename to cts/scheduler/remote-connection-unrecoverable.summary diff --git a/cts/pengine/remote-connection-unrecoverable.xml b/cts/scheduler/remote-connection-unrecoverable.xml similarity index 100% rename from cts/pengine/remote-connection-unrecoverable.xml rename to cts/scheduler/remote-connection-unrecoverable.xml diff --git a/cts/pengine/remote-disable.dot b/cts/scheduler/remote-disable.dot similarity index 100% rename from cts/pengine/remote-disable.dot rename to cts/scheduler/remote-disable.dot diff --git a/cts/pengine/remote-disable.exp b/cts/scheduler/remote-disable.exp similarity index 100% rename from cts/pengine/remote-disable.exp rename to cts/scheduler/remote-disable.exp diff --git a/cts/pengine/remote-disable.scores b/cts/scheduler/remote-disable.scores similarity index 100% rename from cts/pengine/remote-disable.scores rename to cts/scheduler/remote-disable.scores diff --git a/cts/pengine/remote-disable.summary b/cts/scheduler/remote-disable.summary similarity index 100% rename from cts/pengine/remote-disable.summary rename to cts/scheduler/remote-disable.summary diff --git a/cts/pengine/remote-disable.xml b/cts/scheduler/remote-disable.xml similarity index 100% rename from cts/pengine/remote-disable.xml rename to cts/scheduler/remote-disable.xml diff --git a/cts/pengine/remote-fence-before-reconnect.dot b/cts/scheduler/remote-fence-before-reconnect.dot similarity index 100% rename from cts/pengine/remote-fence-before-reconnect.dot rename to cts/scheduler/remote-fence-before-reconnect.dot diff --git a/cts/pengine/remote-fence-before-reconnect.exp b/cts/scheduler/remote-fence-before-reconnect.exp similarity index 100% rename from cts/pengine/remote-fence-before-reconnect.exp rename to cts/scheduler/remote-fence-before-reconnect.exp diff --git a/cts/pengine/remote-fence-before-reconnect.scores b/cts/scheduler/remote-fence-before-reconnect.scores similarity index 100% rename from cts/pengine/remote-fence-before-reconnect.scores rename to cts/scheduler/remote-fence-before-reconnect.scores diff --git a/cts/pengine/remote-fence-before-reconnect.summary b/cts/scheduler/remote-fence-before-reconnect.summary similarity index 100% rename from cts/pengine/remote-fence-before-reconnect.summary rename to cts/scheduler/remote-fence-before-reconnect.summary diff --git a/cts/pengine/remote-fence-before-reconnect.xml b/cts/scheduler/remote-fence-before-reconnect.xml similarity index 100% rename from cts/pengine/remote-fence-before-reconnect.xml rename to cts/scheduler/remote-fence-before-reconnect.xml diff --git a/cts/pengine/remote-fence-unclean-3.dot b/cts/scheduler/remote-fence-unclean-3.dot similarity index 100% rename from cts/pengine/remote-fence-unclean-3.dot rename to cts/scheduler/remote-fence-unclean-3.dot diff --git a/cts/pengine/remote-fence-unclean-3.exp b/cts/scheduler/remote-fence-unclean-3.exp similarity index 100% rename from cts/pengine/remote-fence-unclean-3.exp rename to cts/scheduler/remote-fence-unclean-3.exp diff --git a/cts/pengine/remote-fence-unclean-3.scores b/cts/scheduler/remote-fence-unclean-3.scores similarity index 100% rename from cts/pengine/remote-fence-unclean-3.scores rename to cts/scheduler/remote-fence-unclean-3.scores diff --git a/cts/pengine/remote-fence-unclean-3.summary b/cts/scheduler/remote-fence-unclean-3.summary similarity index 100% rename from cts/pengine/remote-fence-unclean-3.summary rename to cts/scheduler/remote-fence-unclean-3.summary diff --git a/cts/pengine/remote-fence-unclean-3.xml b/cts/scheduler/remote-fence-unclean-3.xml similarity index 100% rename from cts/pengine/remote-fence-unclean-3.xml rename to cts/scheduler/remote-fence-unclean-3.xml diff --git a/cts/pengine/remote-fence-unclean.dot b/cts/scheduler/remote-fence-unclean.dot similarity index 100% rename from cts/pengine/remote-fence-unclean.dot rename to cts/scheduler/remote-fence-unclean.dot diff --git a/cts/pengine/remote-fence-unclean.exp b/cts/scheduler/remote-fence-unclean.exp similarity index 100% rename from cts/pengine/remote-fence-unclean.exp rename to cts/scheduler/remote-fence-unclean.exp diff --git a/cts/pengine/remote-fence-unclean.scores b/cts/scheduler/remote-fence-unclean.scores similarity index 100% rename from cts/pengine/remote-fence-unclean.scores rename to cts/scheduler/remote-fence-unclean.scores diff --git a/cts/pengine/remote-fence-unclean.summary b/cts/scheduler/remote-fence-unclean.summary similarity index 100% rename from cts/pengine/remote-fence-unclean.summary rename to cts/scheduler/remote-fence-unclean.summary diff --git a/cts/pengine/remote-fence-unclean.xml b/cts/scheduler/remote-fence-unclean.xml similarity index 100% rename from cts/pengine/remote-fence-unclean.xml rename to cts/scheduler/remote-fence-unclean.xml diff --git a/cts/pengine/remote-fence-unclean2.dot b/cts/scheduler/remote-fence-unclean2.dot similarity index 100% rename from cts/pengine/remote-fence-unclean2.dot rename to cts/scheduler/remote-fence-unclean2.dot diff --git a/cts/pengine/remote-fence-unclean2.exp b/cts/scheduler/remote-fence-unclean2.exp similarity index 100% rename from cts/pengine/remote-fence-unclean2.exp rename to cts/scheduler/remote-fence-unclean2.exp diff --git a/cts/pengine/remote-fence-unclean2.scores b/cts/scheduler/remote-fence-unclean2.scores similarity index 100% rename from cts/pengine/remote-fence-unclean2.scores rename to cts/scheduler/remote-fence-unclean2.scores diff --git a/cts/pengine/remote-fence-unclean2.summary b/cts/scheduler/remote-fence-unclean2.summary similarity index 100% rename from cts/pengine/remote-fence-unclean2.summary rename to cts/scheduler/remote-fence-unclean2.summary diff --git a/cts/pengine/remote-fence-unclean2.xml b/cts/scheduler/remote-fence-unclean2.xml similarity index 100% rename from cts/pengine/remote-fence-unclean2.xml rename to cts/scheduler/remote-fence-unclean2.xml diff --git a/cts/pengine/remote-move.dot b/cts/scheduler/remote-move.dot similarity index 100% rename from cts/pengine/remote-move.dot rename to cts/scheduler/remote-move.dot diff --git a/cts/pengine/remote-move.exp b/cts/scheduler/remote-move.exp similarity index 100% rename from cts/pengine/remote-move.exp rename to cts/scheduler/remote-move.exp diff --git a/cts/pengine/remote-move.scores b/cts/scheduler/remote-move.scores similarity index 100% rename from cts/pengine/remote-move.scores rename to cts/scheduler/remote-move.scores diff --git a/cts/pengine/remote-move.summary b/cts/scheduler/remote-move.summary similarity index 100% rename from cts/pengine/remote-move.summary rename to cts/scheduler/remote-move.summary diff --git a/cts/pengine/remote-move.xml b/cts/scheduler/remote-move.xml similarity index 100% rename from cts/pengine/remote-move.xml rename to cts/scheduler/remote-move.xml diff --git a/cts/pengine/remote-orphaned.dot b/cts/scheduler/remote-orphaned.dot similarity index 100% rename from cts/pengine/remote-orphaned.dot rename to cts/scheduler/remote-orphaned.dot diff --git a/cts/pengine/remote-orphaned.exp b/cts/scheduler/remote-orphaned.exp similarity index 100% rename from cts/pengine/remote-orphaned.exp rename to cts/scheduler/remote-orphaned.exp diff --git a/cts/pengine/remote-orphaned.scores b/cts/scheduler/remote-orphaned.scores similarity index 100% rename from cts/pengine/remote-orphaned.scores rename to cts/scheduler/remote-orphaned.scores diff --git a/cts/pengine/remote-orphaned.summary b/cts/scheduler/remote-orphaned.summary similarity index 100% rename from cts/pengine/remote-orphaned.summary rename to cts/scheduler/remote-orphaned.summary diff --git a/cts/pengine/remote-orphaned.xml b/cts/scheduler/remote-orphaned.xml similarity index 100% rename from cts/pengine/remote-orphaned.xml rename to cts/scheduler/remote-orphaned.xml diff --git a/cts/pengine/remote-orphaned2.dot b/cts/scheduler/remote-orphaned2.dot similarity index 100% rename from cts/pengine/remote-orphaned2.dot rename to cts/scheduler/remote-orphaned2.dot diff --git a/cts/pengine/remote-orphaned2.exp b/cts/scheduler/remote-orphaned2.exp similarity index 100% rename from cts/pengine/remote-orphaned2.exp rename to cts/scheduler/remote-orphaned2.exp diff --git a/cts/pengine/remote-orphaned2.scores b/cts/scheduler/remote-orphaned2.scores similarity index 100% rename from cts/pengine/remote-orphaned2.scores rename to cts/scheduler/remote-orphaned2.scores diff --git a/cts/pengine/remote-orphaned2.summary b/cts/scheduler/remote-orphaned2.summary similarity index 100% rename from cts/pengine/remote-orphaned2.summary rename to cts/scheduler/remote-orphaned2.summary diff --git a/cts/pengine/remote-orphaned2.xml b/cts/scheduler/remote-orphaned2.xml similarity index 100% rename from cts/pengine/remote-orphaned2.xml rename to cts/scheduler/remote-orphaned2.xml diff --git a/cts/pengine/remote-partial-migrate.dot b/cts/scheduler/remote-partial-migrate.dot similarity index 100% rename from cts/pengine/remote-partial-migrate.dot rename to cts/scheduler/remote-partial-migrate.dot diff --git a/cts/pengine/remote-partial-migrate.exp b/cts/scheduler/remote-partial-migrate.exp similarity index 100% rename from cts/pengine/remote-partial-migrate.exp rename to cts/scheduler/remote-partial-migrate.exp diff --git a/cts/pengine/remote-partial-migrate.scores b/cts/scheduler/remote-partial-migrate.scores similarity index 100% rename from cts/pengine/remote-partial-migrate.scores rename to cts/scheduler/remote-partial-migrate.scores diff --git a/cts/pengine/remote-partial-migrate.summary b/cts/scheduler/remote-partial-migrate.summary similarity index 100% rename from cts/pengine/remote-partial-migrate.summary rename to cts/scheduler/remote-partial-migrate.summary diff --git a/cts/pengine/remote-partial-migrate.xml b/cts/scheduler/remote-partial-migrate.xml similarity index 100% rename from cts/pengine/remote-partial-migrate.xml rename to cts/scheduler/remote-partial-migrate.xml diff --git a/cts/pengine/remote-partial-migrate2.dot b/cts/scheduler/remote-partial-migrate2.dot similarity index 100% rename from cts/pengine/remote-partial-migrate2.dot rename to cts/scheduler/remote-partial-migrate2.dot diff --git a/cts/pengine/remote-partial-migrate2.exp b/cts/scheduler/remote-partial-migrate2.exp similarity index 100% rename from cts/pengine/remote-partial-migrate2.exp rename to cts/scheduler/remote-partial-migrate2.exp diff --git a/cts/pengine/remote-partial-migrate2.scores b/cts/scheduler/remote-partial-migrate2.scores similarity index 100% rename from cts/pengine/remote-partial-migrate2.scores rename to cts/scheduler/remote-partial-migrate2.scores diff --git a/cts/pengine/remote-partial-migrate2.summary b/cts/scheduler/remote-partial-migrate2.summary similarity index 100% rename from cts/pengine/remote-partial-migrate2.summary rename to cts/scheduler/remote-partial-migrate2.summary diff --git a/cts/pengine/remote-partial-migrate2.xml b/cts/scheduler/remote-partial-migrate2.xml similarity index 100% rename from cts/pengine/remote-partial-migrate2.xml rename to cts/scheduler/remote-partial-migrate2.xml diff --git a/cts/pengine/remote-probe-disable.dot b/cts/scheduler/remote-probe-disable.dot similarity index 100% rename from cts/pengine/remote-probe-disable.dot rename to cts/scheduler/remote-probe-disable.dot diff --git a/cts/pengine/remote-probe-disable.exp b/cts/scheduler/remote-probe-disable.exp similarity index 100% rename from cts/pengine/remote-probe-disable.exp rename to cts/scheduler/remote-probe-disable.exp diff --git a/cts/pengine/remote-probe-disable.scores b/cts/scheduler/remote-probe-disable.scores similarity index 100% rename from cts/pengine/remote-probe-disable.scores rename to cts/scheduler/remote-probe-disable.scores diff --git a/cts/pengine/remote-probe-disable.summary b/cts/scheduler/remote-probe-disable.summary similarity index 100% rename from cts/pengine/remote-probe-disable.summary rename to cts/scheduler/remote-probe-disable.summary diff --git a/cts/pengine/remote-probe-disable.xml b/cts/scheduler/remote-probe-disable.xml similarity index 100% rename from cts/pengine/remote-probe-disable.xml rename to cts/scheduler/remote-probe-disable.xml diff --git a/cts/pengine/remote-reconnect-delay.dot b/cts/scheduler/remote-reconnect-delay.dot similarity index 100% rename from cts/pengine/remote-reconnect-delay.dot rename to cts/scheduler/remote-reconnect-delay.dot diff --git a/cts/pengine/remote-reconnect-delay.exp b/cts/scheduler/remote-reconnect-delay.exp similarity index 100% rename from cts/pengine/remote-reconnect-delay.exp rename to cts/scheduler/remote-reconnect-delay.exp diff --git a/cts/pengine/remote-reconnect-delay.scores b/cts/scheduler/remote-reconnect-delay.scores similarity index 100% rename from cts/pengine/remote-reconnect-delay.scores rename to cts/scheduler/remote-reconnect-delay.scores diff --git a/cts/pengine/remote-reconnect-delay.summary b/cts/scheduler/remote-reconnect-delay.summary similarity index 100% rename from cts/pengine/remote-reconnect-delay.summary rename to cts/scheduler/remote-reconnect-delay.summary diff --git a/cts/pengine/remote-reconnect-delay.xml b/cts/scheduler/remote-reconnect-delay.xml similarity index 100% rename from cts/pengine/remote-reconnect-delay.xml rename to cts/scheduler/remote-reconnect-delay.xml diff --git a/cts/pengine/remote-recover-all.dot b/cts/scheduler/remote-recover-all.dot similarity index 100% rename from cts/pengine/remote-recover-all.dot rename to cts/scheduler/remote-recover-all.dot diff --git a/cts/pengine/remote-recover-all.exp b/cts/scheduler/remote-recover-all.exp similarity index 100% rename from cts/pengine/remote-recover-all.exp rename to cts/scheduler/remote-recover-all.exp diff --git a/cts/pengine/remote-recover-all.scores b/cts/scheduler/remote-recover-all.scores similarity index 100% rename from cts/pengine/remote-recover-all.scores rename to cts/scheduler/remote-recover-all.scores diff --git a/cts/pengine/remote-recover-all.summary b/cts/scheduler/remote-recover-all.summary similarity index 100% rename from cts/pengine/remote-recover-all.summary rename to cts/scheduler/remote-recover-all.summary diff --git a/cts/pengine/remote-recover-all.xml b/cts/scheduler/remote-recover-all.xml similarity index 100% rename from cts/pengine/remote-recover-all.xml rename to cts/scheduler/remote-recover-all.xml diff --git a/cts/pengine/remote-recover-connection.dot b/cts/scheduler/remote-recover-connection.dot similarity index 100% rename from cts/pengine/remote-recover-connection.dot rename to cts/scheduler/remote-recover-connection.dot diff --git a/cts/pengine/remote-recover-connection.exp b/cts/scheduler/remote-recover-connection.exp similarity index 100% rename from cts/pengine/remote-recover-connection.exp rename to cts/scheduler/remote-recover-connection.exp diff --git a/cts/pengine/remote-recover-connection.scores b/cts/scheduler/remote-recover-connection.scores similarity index 100% rename from cts/pengine/remote-recover-connection.scores rename to cts/scheduler/remote-recover-connection.scores diff --git a/cts/pengine/remote-recover-connection.summary b/cts/scheduler/remote-recover-connection.summary similarity index 100% rename from cts/pengine/remote-recover-connection.summary rename to cts/scheduler/remote-recover-connection.summary diff --git a/cts/pengine/remote-recover-connection.xml b/cts/scheduler/remote-recover-connection.xml similarity index 100% rename from cts/pengine/remote-recover-connection.xml rename to cts/scheduler/remote-recover-connection.xml diff --git a/cts/pengine/remote-recover-fail.dot b/cts/scheduler/remote-recover-fail.dot similarity index 100% rename from cts/pengine/remote-recover-fail.dot rename to cts/scheduler/remote-recover-fail.dot diff --git a/cts/pengine/remote-recover-fail.exp b/cts/scheduler/remote-recover-fail.exp similarity index 100% rename from cts/pengine/remote-recover-fail.exp rename to cts/scheduler/remote-recover-fail.exp diff --git a/cts/pengine/remote-recover-fail.scores b/cts/scheduler/remote-recover-fail.scores similarity index 100% rename from cts/pengine/remote-recover-fail.scores rename to cts/scheduler/remote-recover-fail.scores diff --git a/cts/pengine/remote-recover-fail.summary b/cts/scheduler/remote-recover-fail.summary similarity index 100% rename from cts/pengine/remote-recover-fail.summary rename to cts/scheduler/remote-recover-fail.summary diff --git a/cts/pengine/remote-recover-fail.xml b/cts/scheduler/remote-recover-fail.xml similarity index 100% rename from cts/pengine/remote-recover-fail.xml rename to cts/scheduler/remote-recover-fail.xml diff --git a/cts/pengine/remote-recover-no-resources.dot b/cts/scheduler/remote-recover-no-resources.dot similarity index 100% rename from cts/pengine/remote-recover-no-resources.dot rename to cts/scheduler/remote-recover-no-resources.dot diff --git a/cts/pengine/remote-recover-no-resources.exp b/cts/scheduler/remote-recover-no-resources.exp similarity index 100% rename from cts/pengine/remote-recover-no-resources.exp rename to cts/scheduler/remote-recover-no-resources.exp diff --git a/cts/pengine/remote-recover-no-resources.scores b/cts/scheduler/remote-recover-no-resources.scores similarity index 100% rename from cts/pengine/remote-recover-no-resources.scores rename to cts/scheduler/remote-recover-no-resources.scores diff --git a/cts/pengine/remote-recover-no-resources.summary b/cts/scheduler/remote-recover-no-resources.summary similarity index 100% rename from cts/pengine/remote-recover-no-resources.summary rename to cts/scheduler/remote-recover-no-resources.summary diff --git a/cts/pengine/remote-recover-no-resources.xml b/cts/scheduler/remote-recover-no-resources.xml similarity index 100% rename from cts/pengine/remote-recover-no-resources.xml rename to cts/scheduler/remote-recover-no-resources.xml diff --git a/cts/pengine/remote-recover-unknown.dot b/cts/scheduler/remote-recover-unknown.dot similarity index 100% rename from cts/pengine/remote-recover-unknown.dot rename to cts/scheduler/remote-recover-unknown.dot diff --git a/cts/pengine/remote-recover-unknown.exp b/cts/scheduler/remote-recover-unknown.exp similarity index 100% rename from cts/pengine/remote-recover-unknown.exp rename to cts/scheduler/remote-recover-unknown.exp diff --git a/cts/pengine/remote-recover-unknown.scores b/cts/scheduler/remote-recover-unknown.scores similarity index 100% rename from cts/pengine/remote-recover-unknown.scores rename to cts/scheduler/remote-recover-unknown.scores diff --git a/cts/pengine/remote-recover-unknown.summary b/cts/scheduler/remote-recover-unknown.summary similarity index 100% rename from cts/pengine/remote-recover-unknown.summary rename to cts/scheduler/remote-recover-unknown.summary diff --git a/cts/pengine/remote-recover-unknown.xml b/cts/scheduler/remote-recover-unknown.xml similarity index 100% rename from cts/pengine/remote-recover-unknown.xml rename to cts/scheduler/remote-recover-unknown.xml diff --git a/cts/pengine/remote-recover.dot b/cts/scheduler/remote-recover.dot similarity index 100% rename from cts/pengine/remote-recover.dot rename to cts/scheduler/remote-recover.dot diff --git a/cts/pengine/remote-recover.exp b/cts/scheduler/remote-recover.exp similarity index 100% rename from cts/pengine/remote-recover.exp rename to cts/scheduler/remote-recover.exp diff --git a/cts/pengine/remote-recover.scores b/cts/scheduler/remote-recover.scores similarity index 100% rename from cts/pengine/remote-recover.scores rename to cts/scheduler/remote-recover.scores diff --git a/cts/pengine/remote-recover.summary b/cts/scheduler/remote-recover.summary similarity index 100% rename from cts/pengine/remote-recover.summary rename to cts/scheduler/remote-recover.summary diff --git a/cts/pengine/remote-recover.xml b/cts/scheduler/remote-recover.xml similarity index 100% rename from cts/pengine/remote-recover.xml rename to cts/scheduler/remote-recover.xml diff --git a/cts/pengine/remote-recovery.dot b/cts/scheduler/remote-recovery.dot similarity index 100% rename from cts/pengine/remote-recovery.dot rename to cts/scheduler/remote-recovery.dot diff --git a/cts/pengine/remote-recovery.exp b/cts/scheduler/remote-recovery.exp similarity index 100% rename from cts/pengine/remote-recovery.exp rename to cts/scheduler/remote-recovery.exp diff --git a/cts/pengine/remote-recovery.scores b/cts/scheduler/remote-recovery.scores similarity index 100% rename from cts/pengine/remote-recovery.scores rename to cts/scheduler/remote-recovery.scores diff --git a/cts/pengine/remote-recovery.summary b/cts/scheduler/remote-recovery.summary similarity index 100% rename from cts/pengine/remote-recovery.summary rename to cts/scheduler/remote-recovery.summary diff --git a/cts/pengine/remote-recovery.xml b/cts/scheduler/remote-recovery.xml similarity index 100% rename from cts/pengine/remote-recovery.xml rename to cts/scheduler/remote-recovery.xml diff --git a/cts/pengine/remote-stale-node-entry.dot b/cts/scheduler/remote-stale-node-entry.dot similarity index 100% rename from cts/pengine/remote-stale-node-entry.dot rename to cts/scheduler/remote-stale-node-entry.dot diff --git a/cts/pengine/remote-stale-node-entry.exp b/cts/scheduler/remote-stale-node-entry.exp similarity index 100% rename from cts/pengine/remote-stale-node-entry.exp rename to cts/scheduler/remote-stale-node-entry.exp diff --git a/cts/pengine/remote-stale-node-entry.scores b/cts/scheduler/remote-stale-node-entry.scores similarity index 100% rename from cts/pengine/remote-stale-node-entry.scores rename to cts/scheduler/remote-stale-node-entry.scores diff --git a/cts/pengine/remote-stale-node-entry.summary b/cts/scheduler/remote-stale-node-entry.summary similarity index 100% rename from cts/pengine/remote-stale-node-entry.summary rename to cts/scheduler/remote-stale-node-entry.summary diff --git a/cts/pengine/remote-stale-node-entry.xml b/cts/scheduler/remote-stale-node-entry.xml similarity index 100% rename from cts/pengine/remote-stale-node-entry.xml rename to cts/scheduler/remote-stale-node-entry.xml diff --git a/cts/pengine/remote-start-fail.dot b/cts/scheduler/remote-start-fail.dot similarity index 100% rename from cts/pengine/remote-start-fail.dot rename to cts/scheduler/remote-start-fail.dot diff --git a/cts/pengine/remote-start-fail.exp b/cts/scheduler/remote-start-fail.exp similarity index 100% rename from cts/pengine/remote-start-fail.exp rename to cts/scheduler/remote-start-fail.exp diff --git a/cts/pengine/remote-start-fail.scores b/cts/scheduler/remote-start-fail.scores similarity index 100% rename from cts/pengine/remote-start-fail.scores rename to cts/scheduler/remote-start-fail.scores diff --git a/cts/pengine/remote-start-fail.summary b/cts/scheduler/remote-start-fail.summary similarity index 100% rename from cts/pengine/remote-start-fail.summary rename to cts/scheduler/remote-start-fail.summary diff --git a/cts/pengine/remote-start-fail.xml b/cts/scheduler/remote-start-fail.xml similarity index 100% rename from cts/pengine/remote-start-fail.xml rename to cts/scheduler/remote-start-fail.xml diff --git a/cts/pengine/remote-startup-probes.dot b/cts/scheduler/remote-startup-probes.dot similarity index 100% rename from cts/pengine/remote-startup-probes.dot rename to cts/scheduler/remote-startup-probes.dot diff --git a/cts/pengine/remote-startup-probes.exp b/cts/scheduler/remote-startup-probes.exp similarity index 100% rename from cts/pengine/remote-startup-probes.exp rename to cts/scheduler/remote-startup-probes.exp diff --git a/cts/pengine/remote-startup-probes.scores b/cts/scheduler/remote-startup-probes.scores similarity index 100% rename from cts/pengine/remote-startup-probes.scores rename to cts/scheduler/remote-startup-probes.scores diff --git a/cts/pengine/remote-startup-probes.summary b/cts/scheduler/remote-startup-probes.summary similarity index 100% rename from cts/pengine/remote-startup-probes.summary rename to cts/scheduler/remote-startup-probes.summary diff --git a/cts/pengine/remote-startup-probes.xml b/cts/scheduler/remote-startup-probes.xml similarity index 100% rename from cts/pengine/remote-startup-probes.xml rename to cts/scheduler/remote-startup-probes.xml diff --git a/cts/pengine/remote-startup.dot b/cts/scheduler/remote-startup.dot similarity index 100% rename from cts/pengine/remote-startup.dot rename to cts/scheduler/remote-startup.dot diff --git a/cts/pengine/remote-startup.exp b/cts/scheduler/remote-startup.exp similarity index 100% rename from cts/pengine/remote-startup.exp rename to cts/scheduler/remote-startup.exp diff --git a/cts/pengine/remote-startup.scores b/cts/scheduler/remote-startup.scores similarity index 100% rename from cts/pengine/remote-startup.scores rename to cts/scheduler/remote-startup.scores diff --git a/cts/pengine/remote-startup.summary b/cts/scheduler/remote-startup.summary similarity index 100% rename from cts/pengine/remote-startup.summary rename to cts/scheduler/remote-startup.summary diff --git a/cts/pengine/remote-startup.xml b/cts/scheduler/remote-startup.xml similarity index 100% rename from cts/pengine/remote-startup.xml rename to cts/scheduler/remote-startup.xml diff --git a/cts/pengine/remote-unclean2.dot b/cts/scheduler/remote-unclean2.dot similarity index 100% rename from cts/pengine/remote-unclean2.dot rename to cts/scheduler/remote-unclean2.dot diff --git a/cts/pengine/remote-unclean2.exp b/cts/scheduler/remote-unclean2.exp similarity index 100% rename from cts/pengine/remote-unclean2.exp rename to cts/scheduler/remote-unclean2.exp diff --git a/cts/pengine/remote-unclean2.scores b/cts/scheduler/remote-unclean2.scores similarity index 100% rename from cts/pengine/remote-unclean2.scores rename to cts/scheduler/remote-unclean2.scores diff --git a/cts/pengine/remote-unclean2.summary b/cts/scheduler/remote-unclean2.summary similarity index 100% rename from cts/pengine/remote-unclean2.summary rename to cts/scheduler/remote-unclean2.summary diff --git a/cts/pengine/remote-unclean2.xml b/cts/scheduler/remote-unclean2.xml similarity index 100% rename from cts/pengine/remote-unclean2.xml rename to cts/scheduler/remote-unclean2.xml diff --git a/cts/pengine/reprobe-target_rc.dot b/cts/scheduler/reprobe-target_rc.dot similarity index 100% rename from cts/pengine/reprobe-target_rc.dot rename to cts/scheduler/reprobe-target_rc.dot diff --git a/cts/pengine/reprobe-target_rc.exp b/cts/scheduler/reprobe-target_rc.exp similarity index 100% rename from cts/pengine/reprobe-target_rc.exp rename to cts/scheduler/reprobe-target_rc.exp diff --git a/cts/pengine/reprobe-target_rc.scores b/cts/scheduler/reprobe-target_rc.scores similarity index 100% rename from cts/pengine/reprobe-target_rc.scores rename to cts/scheduler/reprobe-target_rc.scores diff --git a/cts/pengine/reprobe-target_rc.summary b/cts/scheduler/reprobe-target_rc.summary similarity index 100% rename from cts/pengine/reprobe-target_rc.summary rename to cts/scheduler/reprobe-target_rc.summary diff --git a/cts/pengine/reprobe-target_rc.xml b/cts/scheduler/reprobe-target_rc.xml similarity index 100% rename from cts/pengine/reprobe-target_rc.xml rename to cts/scheduler/reprobe-target_rc.xml diff --git a/cts/pengine/resource-discovery.dot b/cts/scheduler/resource-discovery.dot similarity index 100% rename from cts/pengine/resource-discovery.dot rename to cts/scheduler/resource-discovery.dot diff --git a/cts/pengine/resource-discovery.exp b/cts/scheduler/resource-discovery.exp similarity index 100% rename from cts/pengine/resource-discovery.exp rename to cts/scheduler/resource-discovery.exp diff --git a/cts/pengine/resource-discovery.scores b/cts/scheduler/resource-discovery.scores similarity index 100% rename from cts/pengine/resource-discovery.scores rename to cts/scheduler/resource-discovery.scores diff --git a/cts/pengine/resource-discovery.summary b/cts/scheduler/resource-discovery.summary similarity index 100% rename from cts/pengine/resource-discovery.summary rename to cts/scheduler/resource-discovery.summary diff --git a/cts/pengine/resource-discovery.xml b/cts/scheduler/resource-discovery.xml similarity index 100% rename from cts/pengine/resource-discovery.xml rename to cts/scheduler/resource-discovery.xml diff --git a/cts/pengine/restart-versioned.dot b/cts/scheduler/restart-versioned.dot similarity index 100% rename from cts/pengine/restart-versioned.dot rename to cts/scheduler/restart-versioned.dot diff --git a/cts/pengine/restart-versioned.exp b/cts/scheduler/restart-versioned.exp similarity index 100% rename from cts/pengine/restart-versioned.exp rename to cts/scheduler/restart-versioned.exp diff --git a/cts/pengine/restart-versioned.scores b/cts/scheduler/restart-versioned.scores similarity index 100% rename from cts/pengine/restart-versioned.scores rename to cts/scheduler/restart-versioned.scores diff --git a/cts/pengine/restart-versioned.summary b/cts/scheduler/restart-versioned.summary similarity index 100% rename from cts/pengine/restart-versioned.summary rename to cts/scheduler/restart-versioned.summary diff --git a/cts/pengine/restart-versioned.xml b/cts/scheduler/restart-versioned.xml similarity index 100% rename from cts/pengine/restart-versioned.xml rename to cts/scheduler/restart-versioned.xml diff --git a/cts/pengine/rsc-discovery-per-node.dot b/cts/scheduler/rsc-discovery-per-node.dot similarity index 100% rename from cts/pengine/rsc-discovery-per-node.dot rename to cts/scheduler/rsc-discovery-per-node.dot diff --git a/cts/pengine/rsc-discovery-per-node.exp b/cts/scheduler/rsc-discovery-per-node.exp similarity index 100% rename from cts/pengine/rsc-discovery-per-node.exp rename to cts/scheduler/rsc-discovery-per-node.exp diff --git a/cts/pengine/rsc-discovery-per-node.scores b/cts/scheduler/rsc-discovery-per-node.scores similarity index 100% rename from cts/pengine/rsc-discovery-per-node.scores rename to cts/scheduler/rsc-discovery-per-node.scores diff --git a/cts/pengine/rsc-discovery-per-node.summary b/cts/scheduler/rsc-discovery-per-node.summary similarity index 100% rename from cts/pengine/rsc-discovery-per-node.summary rename to cts/scheduler/rsc-discovery-per-node.summary diff --git a/cts/pengine/rsc-discovery-per-node.xml b/cts/scheduler/rsc-discovery-per-node.xml similarity index 100% rename from cts/pengine/rsc-discovery-per-node.xml rename to cts/scheduler/rsc-discovery-per-node.xml diff --git a/cts/pengine/rsc-maintenance.dot b/cts/scheduler/rsc-maintenance.dot similarity index 100% rename from cts/pengine/rsc-maintenance.dot rename to cts/scheduler/rsc-maintenance.dot diff --git a/cts/pengine/rsc-maintenance.exp b/cts/scheduler/rsc-maintenance.exp similarity index 100% rename from cts/pengine/rsc-maintenance.exp rename to cts/scheduler/rsc-maintenance.exp diff --git a/cts/pengine/rsc-maintenance.scores b/cts/scheduler/rsc-maintenance.scores similarity index 100% rename from cts/pengine/rsc-maintenance.scores rename to cts/scheduler/rsc-maintenance.scores diff --git a/cts/pengine/rsc-maintenance.summary b/cts/scheduler/rsc-maintenance.summary similarity index 100% rename from cts/pengine/rsc-maintenance.summary rename to cts/scheduler/rsc-maintenance.summary diff --git a/cts/pengine/rsc-maintenance.xml b/cts/scheduler/rsc-maintenance.xml similarity index 100% rename from cts/pengine/rsc-maintenance.xml rename to cts/scheduler/rsc-maintenance.xml diff --git a/cts/pengine/rsc-sets-clone-1.dot b/cts/scheduler/rsc-sets-clone-1.dot similarity index 100% rename from cts/pengine/rsc-sets-clone-1.dot rename to cts/scheduler/rsc-sets-clone-1.dot diff --git a/cts/pengine/rsc-sets-clone-1.exp b/cts/scheduler/rsc-sets-clone-1.exp similarity index 100% rename from cts/pengine/rsc-sets-clone-1.exp rename to cts/scheduler/rsc-sets-clone-1.exp diff --git a/cts/pengine/rsc-sets-clone-1.scores b/cts/scheduler/rsc-sets-clone-1.scores similarity index 100% rename from cts/pengine/rsc-sets-clone-1.scores rename to cts/scheduler/rsc-sets-clone-1.scores diff --git a/cts/pengine/rsc-sets-clone-1.summary b/cts/scheduler/rsc-sets-clone-1.summary similarity index 100% rename from cts/pengine/rsc-sets-clone-1.summary rename to cts/scheduler/rsc-sets-clone-1.summary diff --git a/cts/pengine/rsc-sets-clone-1.xml b/cts/scheduler/rsc-sets-clone-1.xml similarity index 100% rename from cts/pengine/rsc-sets-clone-1.xml rename to cts/scheduler/rsc-sets-clone-1.xml diff --git a/cts/pengine/rsc-sets-clone.dot b/cts/scheduler/rsc-sets-clone.dot similarity index 100% rename from cts/pengine/rsc-sets-clone.dot rename to cts/scheduler/rsc-sets-clone.dot diff --git a/cts/pengine/rsc-sets-clone.exp b/cts/scheduler/rsc-sets-clone.exp similarity index 100% rename from cts/pengine/rsc-sets-clone.exp rename to cts/scheduler/rsc-sets-clone.exp diff --git a/cts/pengine/rsc-sets-clone.scores b/cts/scheduler/rsc-sets-clone.scores similarity index 100% rename from cts/pengine/rsc-sets-clone.scores rename to cts/scheduler/rsc-sets-clone.scores diff --git a/cts/pengine/rsc-sets-clone.summary b/cts/scheduler/rsc-sets-clone.summary similarity index 100% rename from cts/pengine/rsc-sets-clone.summary rename to cts/scheduler/rsc-sets-clone.summary diff --git a/cts/pengine/rsc-sets-clone.xml b/cts/scheduler/rsc-sets-clone.xml similarity index 100% rename from cts/pengine/rsc-sets-clone.xml rename to cts/scheduler/rsc-sets-clone.xml diff --git a/cts/pengine/rsc-sets-master.dot b/cts/scheduler/rsc-sets-master.dot similarity index 100% rename from cts/pengine/rsc-sets-master.dot rename to cts/scheduler/rsc-sets-master.dot diff --git a/cts/pengine/rsc-sets-master.exp b/cts/scheduler/rsc-sets-master.exp similarity index 100% rename from cts/pengine/rsc-sets-master.exp rename to cts/scheduler/rsc-sets-master.exp diff --git a/cts/pengine/rsc-sets-master.scores b/cts/scheduler/rsc-sets-master.scores similarity index 100% rename from cts/pengine/rsc-sets-master.scores rename to cts/scheduler/rsc-sets-master.scores diff --git a/cts/pengine/rsc-sets-master.summary b/cts/scheduler/rsc-sets-master.summary similarity index 100% rename from cts/pengine/rsc-sets-master.summary rename to cts/scheduler/rsc-sets-master.summary diff --git a/cts/pengine/rsc-sets-master.xml b/cts/scheduler/rsc-sets-master.xml similarity index 100% rename from cts/pengine/rsc-sets-master.xml rename to cts/scheduler/rsc-sets-master.xml diff --git a/cts/pengine/rsc-sets-seq-false.dot b/cts/scheduler/rsc-sets-seq-false.dot similarity index 100% rename from cts/pengine/rsc-sets-seq-false.dot rename to cts/scheduler/rsc-sets-seq-false.dot diff --git a/cts/pengine/rsc-sets-seq-false.exp b/cts/scheduler/rsc-sets-seq-false.exp similarity index 100% rename from cts/pengine/rsc-sets-seq-false.exp rename to cts/scheduler/rsc-sets-seq-false.exp diff --git a/cts/pengine/rsc-sets-seq-false.scores b/cts/scheduler/rsc-sets-seq-false.scores similarity index 100% rename from cts/pengine/rsc-sets-seq-false.scores rename to cts/scheduler/rsc-sets-seq-false.scores diff --git a/cts/pengine/rsc-sets-seq-false.summary b/cts/scheduler/rsc-sets-seq-false.summary similarity index 100% rename from cts/pengine/rsc-sets-seq-false.summary rename to cts/scheduler/rsc-sets-seq-false.summary diff --git a/cts/pengine/rsc-sets-seq-false.xml b/cts/scheduler/rsc-sets-seq-false.xml similarity index 100% rename from cts/pengine/rsc-sets-seq-false.xml rename to cts/scheduler/rsc-sets-seq-false.xml diff --git a/cts/pengine/rsc-sets-seq-true.dot b/cts/scheduler/rsc-sets-seq-true.dot similarity index 100% rename from cts/pengine/rsc-sets-seq-true.dot rename to cts/scheduler/rsc-sets-seq-true.dot diff --git a/cts/pengine/rsc-sets-seq-true.exp b/cts/scheduler/rsc-sets-seq-true.exp similarity index 100% rename from cts/pengine/rsc-sets-seq-true.exp rename to cts/scheduler/rsc-sets-seq-true.exp diff --git a/cts/pengine/rsc-sets-seq-true.scores b/cts/scheduler/rsc-sets-seq-true.scores similarity index 100% rename from cts/pengine/rsc-sets-seq-true.scores rename to cts/scheduler/rsc-sets-seq-true.scores diff --git a/cts/pengine/rsc-sets-seq-true.summary b/cts/scheduler/rsc-sets-seq-true.summary similarity index 100% rename from cts/pengine/rsc-sets-seq-true.summary rename to cts/scheduler/rsc-sets-seq-true.summary diff --git a/cts/pengine/rsc-sets-seq-true.xml b/cts/scheduler/rsc-sets-seq-true.xml similarity index 100% rename from cts/pengine/rsc-sets-seq-true.xml rename to cts/scheduler/rsc-sets-seq-true.xml diff --git a/cts/pengine/rsc_dep1.dot b/cts/scheduler/rsc_dep1.dot similarity index 100% rename from cts/pengine/rsc_dep1.dot rename to cts/scheduler/rsc_dep1.dot diff --git a/cts/pengine/rsc_dep1.exp b/cts/scheduler/rsc_dep1.exp similarity index 100% rename from cts/pengine/rsc_dep1.exp rename to cts/scheduler/rsc_dep1.exp diff --git a/cts/pengine/rsc_dep1.scores b/cts/scheduler/rsc_dep1.scores similarity index 100% rename from cts/pengine/rsc_dep1.scores rename to cts/scheduler/rsc_dep1.scores diff --git a/cts/pengine/rsc_dep1.summary b/cts/scheduler/rsc_dep1.summary similarity index 100% rename from cts/pengine/rsc_dep1.summary rename to cts/scheduler/rsc_dep1.summary diff --git a/cts/pengine/rsc_dep1.te.exp b/cts/scheduler/rsc_dep1.te.exp similarity index 100% rename from cts/pengine/rsc_dep1.te.exp rename to cts/scheduler/rsc_dep1.te.exp diff --git a/cts/pengine/rsc_dep1.xml b/cts/scheduler/rsc_dep1.xml similarity index 100% rename from cts/pengine/rsc_dep1.xml rename to cts/scheduler/rsc_dep1.xml diff --git a/cts/pengine/rsc_dep10.dot b/cts/scheduler/rsc_dep10.dot similarity index 100% rename from cts/pengine/rsc_dep10.dot rename to cts/scheduler/rsc_dep10.dot diff --git a/cts/pengine/rsc_dep10.exp b/cts/scheduler/rsc_dep10.exp similarity index 100% rename from cts/pengine/rsc_dep10.exp rename to cts/scheduler/rsc_dep10.exp diff --git a/cts/pengine/rsc_dep10.scores b/cts/scheduler/rsc_dep10.scores similarity index 100% rename from cts/pengine/rsc_dep10.scores rename to cts/scheduler/rsc_dep10.scores diff --git a/cts/pengine/rsc_dep10.summary b/cts/scheduler/rsc_dep10.summary similarity index 100% rename from cts/pengine/rsc_dep10.summary rename to cts/scheduler/rsc_dep10.summary diff --git a/cts/pengine/rsc_dep10.te.exp b/cts/scheduler/rsc_dep10.te.exp similarity index 100% rename from cts/pengine/rsc_dep10.te.exp rename to cts/scheduler/rsc_dep10.te.exp diff --git a/cts/pengine/rsc_dep10.xml b/cts/scheduler/rsc_dep10.xml similarity index 100% rename from cts/pengine/rsc_dep10.xml rename to cts/scheduler/rsc_dep10.xml diff --git a/cts/pengine/rsc_dep2.dot b/cts/scheduler/rsc_dep2.dot similarity index 100% rename from cts/pengine/rsc_dep2.dot rename to cts/scheduler/rsc_dep2.dot diff --git a/cts/pengine/rsc_dep2.exp b/cts/scheduler/rsc_dep2.exp similarity index 100% rename from cts/pengine/rsc_dep2.exp rename to cts/scheduler/rsc_dep2.exp diff --git a/cts/pengine/rsc_dep2.scores b/cts/scheduler/rsc_dep2.scores similarity index 100% rename from cts/pengine/rsc_dep2.scores rename to cts/scheduler/rsc_dep2.scores diff --git a/cts/pengine/rsc_dep2.summary b/cts/scheduler/rsc_dep2.summary similarity index 100% rename from cts/pengine/rsc_dep2.summary rename to cts/scheduler/rsc_dep2.summary diff --git a/cts/pengine/rsc_dep2.xml b/cts/scheduler/rsc_dep2.xml similarity index 100% rename from cts/pengine/rsc_dep2.xml rename to cts/scheduler/rsc_dep2.xml diff --git a/cts/pengine/rsc_dep3.dot b/cts/scheduler/rsc_dep3.dot similarity index 100% rename from cts/pengine/rsc_dep3.dot rename to cts/scheduler/rsc_dep3.dot diff --git a/cts/pengine/rsc_dep3.exp b/cts/scheduler/rsc_dep3.exp similarity index 100% rename from cts/pengine/rsc_dep3.exp rename to cts/scheduler/rsc_dep3.exp diff --git a/cts/pengine/rsc_dep3.scores b/cts/scheduler/rsc_dep3.scores similarity index 100% rename from cts/pengine/rsc_dep3.scores rename to cts/scheduler/rsc_dep3.scores diff --git a/cts/pengine/rsc_dep3.summary b/cts/scheduler/rsc_dep3.summary similarity index 100% rename from cts/pengine/rsc_dep3.summary rename to cts/scheduler/rsc_dep3.summary diff --git a/cts/pengine/rsc_dep3.te.exp b/cts/scheduler/rsc_dep3.te.exp similarity index 100% rename from cts/pengine/rsc_dep3.te.exp rename to cts/scheduler/rsc_dep3.te.exp diff --git a/cts/pengine/rsc_dep3.xml b/cts/scheduler/rsc_dep3.xml similarity index 100% rename from cts/pengine/rsc_dep3.xml rename to cts/scheduler/rsc_dep3.xml diff --git a/cts/pengine/rsc_dep4.dot b/cts/scheduler/rsc_dep4.dot similarity index 100% rename from cts/pengine/rsc_dep4.dot rename to cts/scheduler/rsc_dep4.dot diff --git a/cts/pengine/rsc_dep4.exp b/cts/scheduler/rsc_dep4.exp similarity index 100% rename from cts/pengine/rsc_dep4.exp rename to cts/scheduler/rsc_dep4.exp diff --git a/cts/pengine/rsc_dep4.scores b/cts/scheduler/rsc_dep4.scores similarity index 100% rename from cts/pengine/rsc_dep4.scores rename to cts/scheduler/rsc_dep4.scores diff --git a/cts/pengine/rsc_dep4.summary b/cts/scheduler/rsc_dep4.summary similarity index 100% rename from cts/pengine/rsc_dep4.summary rename to cts/scheduler/rsc_dep4.summary diff --git a/cts/pengine/rsc_dep4.xml b/cts/scheduler/rsc_dep4.xml similarity index 100% rename from cts/pengine/rsc_dep4.xml rename to cts/scheduler/rsc_dep4.xml diff --git a/cts/pengine/rsc_dep5.dot b/cts/scheduler/rsc_dep5.dot similarity index 100% rename from cts/pengine/rsc_dep5.dot rename to cts/scheduler/rsc_dep5.dot diff --git a/cts/pengine/rsc_dep5.exp b/cts/scheduler/rsc_dep5.exp similarity index 100% rename from cts/pengine/rsc_dep5.exp rename to cts/scheduler/rsc_dep5.exp diff --git a/cts/pengine/rsc_dep5.scores b/cts/scheduler/rsc_dep5.scores similarity index 100% rename from cts/pengine/rsc_dep5.scores rename to cts/scheduler/rsc_dep5.scores diff --git a/cts/pengine/rsc_dep5.summary b/cts/scheduler/rsc_dep5.summary similarity index 100% rename from cts/pengine/rsc_dep5.summary rename to cts/scheduler/rsc_dep5.summary diff --git a/cts/pengine/rsc_dep5.te.exp b/cts/scheduler/rsc_dep5.te.exp similarity index 100% rename from cts/pengine/rsc_dep5.te.exp rename to cts/scheduler/rsc_dep5.te.exp diff --git a/cts/pengine/rsc_dep5.xml b/cts/scheduler/rsc_dep5.xml similarity index 100% rename from cts/pengine/rsc_dep5.xml rename to cts/scheduler/rsc_dep5.xml diff --git a/cts/pengine/rsc_dep7.dot b/cts/scheduler/rsc_dep7.dot similarity index 100% rename from cts/pengine/rsc_dep7.dot rename to cts/scheduler/rsc_dep7.dot diff --git a/cts/pengine/rsc_dep7.exp b/cts/scheduler/rsc_dep7.exp similarity index 100% rename from cts/pengine/rsc_dep7.exp rename to cts/scheduler/rsc_dep7.exp diff --git a/cts/pengine/rsc_dep7.scores b/cts/scheduler/rsc_dep7.scores similarity index 100% rename from cts/pengine/rsc_dep7.scores rename to cts/scheduler/rsc_dep7.scores diff --git a/cts/pengine/rsc_dep7.summary b/cts/scheduler/rsc_dep7.summary similarity index 100% rename from cts/pengine/rsc_dep7.summary rename to cts/scheduler/rsc_dep7.summary diff --git a/cts/pengine/rsc_dep7.te.exp b/cts/scheduler/rsc_dep7.te.exp similarity index 100% rename from cts/pengine/rsc_dep7.te.exp rename to cts/scheduler/rsc_dep7.te.exp diff --git a/cts/pengine/rsc_dep7.xml b/cts/scheduler/rsc_dep7.xml similarity index 100% rename from cts/pengine/rsc_dep7.xml rename to cts/scheduler/rsc_dep7.xml diff --git a/cts/pengine/rsc_dep8.dot b/cts/scheduler/rsc_dep8.dot similarity index 100% rename from cts/pengine/rsc_dep8.dot rename to cts/scheduler/rsc_dep8.dot diff --git a/cts/pengine/rsc_dep8.exp b/cts/scheduler/rsc_dep8.exp similarity index 100% rename from cts/pengine/rsc_dep8.exp rename to cts/scheduler/rsc_dep8.exp diff --git a/cts/pengine/rsc_dep8.scores b/cts/scheduler/rsc_dep8.scores similarity index 100% rename from cts/pengine/rsc_dep8.scores rename to cts/scheduler/rsc_dep8.scores diff --git a/cts/pengine/rsc_dep8.summary b/cts/scheduler/rsc_dep8.summary similarity index 100% rename from cts/pengine/rsc_dep8.summary rename to cts/scheduler/rsc_dep8.summary diff --git a/cts/pengine/rsc_dep8.xml b/cts/scheduler/rsc_dep8.xml similarity index 100% rename from cts/pengine/rsc_dep8.xml rename to cts/scheduler/rsc_dep8.xml diff --git a/cts/pengine/rsc_dep9.exp b/cts/scheduler/rsc_dep9.exp similarity index 100% rename from cts/pengine/rsc_dep9.exp rename to cts/scheduler/rsc_dep9.exp diff --git a/cts/pengine/rsc_location1.exp b/cts/scheduler/rsc_location1.exp similarity index 100% rename from cts/pengine/rsc_location1.exp rename to cts/scheduler/rsc_location1.exp diff --git a/cts/pengine/rsc_location1.te.exp b/cts/scheduler/rsc_location1.te.exp similarity index 100% rename from cts/pengine/rsc_location1.te.exp rename to cts/scheduler/rsc_location1.te.exp diff --git a/cts/pengine/rsc_location2.exp b/cts/scheduler/rsc_location2.exp similarity index 100% rename from cts/pengine/rsc_location2.exp rename to cts/scheduler/rsc_location2.exp diff --git a/cts/pengine/rsc_location2.te.exp b/cts/scheduler/rsc_location2.te.exp similarity index 100% rename from cts/pengine/rsc_location2.te.exp rename to cts/scheduler/rsc_location2.te.exp diff --git a/cts/pengine/rsc_location3.exp b/cts/scheduler/rsc_location3.exp similarity index 100% rename from cts/pengine/rsc_location3.exp rename to cts/scheduler/rsc_location3.exp diff --git a/cts/pengine/rsc_location3.te.exp b/cts/scheduler/rsc_location3.te.exp similarity index 100% rename from cts/pengine/rsc_location3.te.exp rename to cts/scheduler/rsc_location3.te.exp diff --git a/cts/pengine/rsc_location4.exp b/cts/scheduler/rsc_location4.exp similarity index 100% rename from cts/pengine/rsc_location4.exp rename to cts/scheduler/rsc_location4.exp diff --git a/cts/pengine/rsc_location4.te.exp b/cts/scheduler/rsc_location4.te.exp similarity index 100% rename from cts/pengine/rsc_location4.te.exp rename to cts/scheduler/rsc_location4.te.exp diff --git a/cts/pengine/rsc_location5.exp b/cts/scheduler/rsc_location5.exp similarity index 100% rename from cts/pengine/rsc_location5.exp rename to cts/scheduler/rsc_location5.exp diff --git a/cts/pengine/rsc_location5.te.exp b/cts/scheduler/rsc_location5.te.exp similarity index 100% rename from cts/pengine/rsc_location5.te.exp rename to cts/scheduler/rsc_location5.te.exp diff --git a/cts/pengine/shutdown-maintenance-node.dot b/cts/scheduler/shutdown-maintenance-node.dot similarity index 100% rename from cts/pengine/shutdown-maintenance-node.dot rename to cts/scheduler/shutdown-maintenance-node.dot diff --git a/cts/pengine/shutdown-maintenance-node.exp b/cts/scheduler/shutdown-maintenance-node.exp similarity index 100% rename from cts/pengine/shutdown-maintenance-node.exp rename to cts/scheduler/shutdown-maintenance-node.exp diff --git a/cts/pengine/shutdown-maintenance-node.scores b/cts/scheduler/shutdown-maintenance-node.scores similarity index 100% rename from cts/pengine/shutdown-maintenance-node.scores rename to cts/scheduler/shutdown-maintenance-node.scores diff --git a/cts/pengine/shutdown-maintenance-node.summary b/cts/scheduler/shutdown-maintenance-node.summary similarity index 100% rename from cts/pengine/shutdown-maintenance-node.summary rename to cts/scheduler/shutdown-maintenance-node.summary diff --git a/cts/pengine/shutdown-maintenance-node.xml b/cts/scheduler/shutdown-maintenance-node.xml similarity index 100% rename from cts/pengine/shutdown-maintenance-node.xml rename to cts/scheduler/shutdown-maintenance-node.xml diff --git a/cts/pengine/simple1.dot b/cts/scheduler/simple1.dot similarity index 100% rename from cts/pengine/simple1.dot rename to cts/scheduler/simple1.dot diff --git a/cts/pengine/simple1.exp b/cts/scheduler/simple1.exp similarity index 100% rename from cts/pengine/simple1.exp rename to cts/scheduler/simple1.exp diff --git a/cts/pengine/simple1.scores b/cts/scheduler/simple1.scores similarity index 100% rename from cts/pengine/simple1.scores rename to cts/scheduler/simple1.scores diff --git a/cts/pengine/simple1.summary b/cts/scheduler/simple1.summary similarity index 100% rename from cts/pengine/simple1.summary rename to cts/scheduler/simple1.summary diff --git a/cts/pengine/simple1.te.exp b/cts/scheduler/simple1.te.exp similarity index 100% rename from cts/pengine/simple1.te.exp rename to cts/scheduler/simple1.te.exp diff --git a/cts/pengine/simple1.xml b/cts/scheduler/simple1.xml similarity index 100% rename from cts/pengine/simple1.xml rename to cts/scheduler/simple1.xml diff --git a/cts/pengine/simple11.dot b/cts/scheduler/simple11.dot similarity index 100% rename from cts/pengine/simple11.dot rename to cts/scheduler/simple11.dot diff --git a/cts/pengine/simple11.exp b/cts/scheduler/simple11.exp similarity index 100% rename from cts/pengine/simple11.exp rename to cts/scheduler/simple11.exp diff --git a/cts/pengine/simple11.scores b/cts/scheduler/simple11.scores similarity index 100% rename from cts/pengine/simple11.scores rename to cts/scheduler/simple11.scores diff --git a/cts/pengine/simple11.summary b/cts/scheduler/simple11.summary similarity index 100% rename from cts/pengine/simple11.summary rename to cts/scheduler/simple11.summary diff --git a/cts/pengine/simple11.te.exp b/cts/scheduler/simple11.te.exp similarity index 100% rename from cts/pengine/simple11.te.exp rename to cts/scheduler/simple11.te.exp diff --git a/cts/pengine/simple11.xml b/cts/scheduler/simple11.xml similarity index 100% rename from cts/pengine/simple11.xml rename to cts/scheduler/simple11.xml diff --git a/cts/pengine/simple12.dot b/cts/scheduler/simple12.dot similarity index 100% rename from cts/pengine/simple12.dot rename to cts/scheduler/simple12.dot diff --git a/cts/pengine/simple12.exp b/cts/scheduler/simple12.exp similarity index 100% rename from cts/pengine/simple12.exp rename to cts/scheduler/simple12.exp diff --git a/cts/pengine/simple12.scores b/cts/scheduler/simple12.scores similarity index 100% rename from cts/pengine/simple12.scores rename to cts/scheduler/simple12.scores diff --git a/cts/pengine/simple12.summary b/cts/scheduler/simple12.summary similarity index 100% rename from cts/pengine/simple12.summary rename to cts/scheduler/simple12.summary diff --git a/cts/pengine/simple12.te.exp b/cts/scheduler/simple12.te.exp similarity index 100% rename from cts/pengine/simple12.te.exp rename to cts/scheduler/simple12.te.exp diff --git a/cts/pengine/simple12.xml b/cts/scheduler/simple12.xml similarity index 100% rename from cts/pengine/simple12.xml rename to cts/scheduler/simple12.xml diff --git a/cts/pengine/simple2.dot b/cts/scheduler/simple2.dot similarity index 100% rename from cts/pengine/simple2.dot rename to cts/scheduler/simple2.dot diff --git a/cts/pengine/simple2.exp b/cts/scheduler/simple2.exp similarity index 100% rename from cts/pengine/simple2.exp rename to cts/scheduler/simple2.exp diff --git a/cts/pengine/simple2.scores b/cts/scheduler/simple2.scores similarity index 100% rename from cts/pengine/simple2.scores rename to cts/scheduler/simple2.scores diff --git a/cts/pengine/simple2.summary b/cts/scheduler/simple2.summary similarity index 100% rename from cts/pengine/simple2.summary rename to cts/scheduler/simple2.summary diff --git a/cts/pengine/simple2.te.exp b/cts/scheduler/simple2.te.exp similarity index 100% rename from cts/pengine/simple2.te.exp rename to cts/scheduler/simple2.te.exp diff --git a/cts/pengine/simple2.xml b/cts/scheduler/simple2.xml similarity index 100% rename from cts/pengine/simple2.xml rename to cts/scheduler/simple2.xml diff --git a/cts/pengine/simple3.dot b/cts/scheduler/simple3.dot similarity index 100% rename from cts/pengine/simple3.dot rename to cts/scheduler/simple3.dot diff --git a/cts/pengine/simple3.exp b/cts/scheduler/simple3.exp similarity index 100% rename from cts/pengine/simple3.exp rename to cts/scheduler/simple3.exp diff --git a/cts/pengine/simple3.scores b/cts/scheduler/simple3.scores similarity index 100% rename from cts/pengine/simple3.scores rename to cts/scheduler/simple3.scores diff --git a/cts/pengine/simple3.summary b/cts/scheduler/simple3.summary similarity index 100% rename from cts/pengine/simple3.summary rename to cts/scheduler/simple3.summary diff --git a/cts/pengine/simple3.te.exp b/cts/scheduler/simple3.te.exp similarity index 100% rename from cts/pengine/simple3.te.exp rename to cts/scheduler/simple3.te.exp diff --git a/cts/pengine/simple3.xml b/cts/scheduler/simple3.xml similarity index 100% rename from cts/pengine/simple3.xml rename to cts/scheduler/simple3.xml diff --git a/cts/pengine/simple4.dot b/cts/scheduler/simple4.dot similarity index 100% rename from cts/pengine/simple4.dot rename to cts/scheduler/simple4.dot diff --git a/cts/pengine/simple4.exp b/cts/scheduler/simple4.exp similarity index 100% rename from cts/pengine/simple4.exp rename to cts/scheduler/simple4.exp diff --git a/cts/pengine/simple4.scores b/cts/scheduler/simple4.scores similarity index 100% rename from cts/pengine/simple4.scores rename to cts/scheduler/simple4.scores diff --git a/cts/pengine/simple4.summary b/cts/scheduler/simple4.summary similarity index 100% rename from cts/pengine/simple4.summary rename to cts/scheduler/simple4.summary diff --git a/cts/pengine/simple4.te.exp b/cts/scheduler/simple4.te.exp similarity index 100% rename from cts/pengine/simple4.te.exp rename to cts/scheduler/simple4.te.exp diff --git a/cts/pengine/simple4.xml b/cts/scheduler/simple4.xml similarity index 100% rename from cts/pengine/simple4.xml rename to cts/scheduler/simple4.xml diff --git a/cts/pengine/simple6.dot b/cts/scheduler/simple6.dot similarity index 100% rename from cts/pengine/simple6.dot rename to cts/scheduler/simple6.dot diff --git a/cts/pengine/simple6.exp b/cts/scheduler/simple6.exp similarity index 100% rename from cts/pengine/simple6.exp rename to cts/scheduler/simple6.exp diff --git a/cts/pengine/simple6.scores b/cts/scheduler/simple6.scores similarity index 100% rename from cts/pengine/simple6.scores rename to cts/scheduler/simple6.scores diff --git a/cts/pengine/simple6.summary b/cts/scheduler/simple6.summary similarity index 100% rename from cts/pengine/simple6.summary rename to cts/scheduler/simple6.summary diff --git a/cts/pengine/simple6.te.exp b/cts/scheduler/simple6.te.exp similarity index 100% rename from cts/pengine/simple6.te.exp rename to cts/scheduler/simple6.te.exp diff --git a/cts/pengine/simple6.xml b/cts/scheduler/simple6.xml similarity index 100% rename from cts/pengine/simple6.xml rename to cts/scheduler/simple6.xml diff --git a/cts/pengine/simple7.dot b/cts/scheduler/simple7.dot similarity index 100% rename from cts/pengine/simple7.dot rename to cts/scheduler/simple7.dot diff --git a/cts/pengine/simple7.exp b/cts/scheduler/simple7.exp similarity index 100% rename from cts/pengine/simple7.exp rename to cts/scheduler/simple7.exp diff --git a/cts/pengine/simple7.scores b/cts/scheduler/simple7.scores similarity index 100% rename from cts/pengine/simple7.scores rename to cts/scheduler/simple7.scores diff --git a/cts/pengine/simple7.summary b/cts/scheduler/simple7.summary similarity index 100% rename from cts/pengine/simple7.summary rename to cts/scheduler/simple7.summary diff --git a/cts/pengine/simple7.te.exp b/cts/scheduler/simple7.te.exp similarity index 100% rename from cts/pengine/simple7.te.exp rename to cts/scheduler/simple7.te.exp diff --git a/cts/pengine/simple7.xml b/cts/scheduler/simple7.xml similarity index 100% rename from cts/pengine/simple7.xml rename to cts/scheduler/simple7.xml diff --git a/cts/pengine/simple8.dot b/cts/scheduler/simple8.dot similarity index 100% rename from cts/pengine/simple8.dot rename to cts/scheduler/simple8.dot diff --git a/cts/pengine/simple8.exp b/cts/scheduler/simple8.exp similarity index 100% rename from cts/pengine/simple8.exp rename to cts/scheduler/simple8.exp diff --git a/cts/pengine/simple8.scores b/cts/scheduler/simple8.scores similarity index 100% rename from cts/pengine/simple8.scores rename to cts/scheduler/simple8.scores diff --git a/cts/pengine/simple8.summary b/cts/scheduler/simple8.summary similarity index 100% rename from cts/pengine/simple8.summary rename to cts/scheduler/simple8.summary diff --git a/cts/pengine/simple8.xml b/cts/scheduler/simple8.xml similarity index 100% rename from cts/pengine/simple8.xml rename to cts/scheduler/simple8.xml diff --git a/cts/pengine/site-specific-params.dot b/cts/scheduler/site-specific-params.dot similarity index 100% rename from cts/pengine/site-specific-params.dot rename to cts/scheduler/site-specific-params.dot diff --git a/cts/pengine/site-specific-params.exp b/cts/scheduler/site-specific-params.exp similarity index 100% rename from cts/pengine/site-specific-params.exp rename to cts/scheduler/site-specific-params.exp diff --git a/cts/pengine/site-specific-params.scores b/cts/scheduler/site-specific-params.scores similarity index 100% rename from cts/pengine/site-specific-params.scores rename to cts/scheduler/site-specific-params.scores diff --git a/cts/pengine/site-specific-params.summary b/cts/scheduler/site-specific-params.summary similarity index 100% rename from cts/pengine/site-specific-params.summary rename to cts/scheduler/site-specific-params.summary diff --git a/cts/pengine/site-specific-params.xml b/cts/scheduler/site-specific-params.xml similarity index 100% rename from cts/pengine/site-specific-params.xml rename to cts/scheduler/site-specific-params.xml diff --git a/cts/pengine/standby.dot b/cts/scheduler/standby.dot similarity index 100% rename from cts/pengine/standby.dot rename to cts/scheduler/standby.dot diff --git a/cts/pengine/standby.exp b/cts/scheduler/standby.exp similarity index 100% rename from cts/pengine/standby.exp rename to cts/scheduler/standby.exp diff --git a/cts/pengine/standby.scores b/cts/scheduler/standby.scores similarity index 100% rename from cts/pengine/standby.scores rename to cts/scheduler/standby.scores diff --git a/cts/pengine/standby.summary b/cts/scheduler/standby.summary similarity index 100% rename from cts/pengine/standby.summary rename to cts/scheduler/standby.summary diff --git a/cts/pengine/standby.xml b/cts/scheduler/standby.xml similarity index 100% rename from cts/pengine/standby.xml rename to cts/scheduler/standby.xml diff --git a/cts/pengine/start-then-stop-with-unfence.dot b/cts/scheduler/start-then-stop-with-unfence.dot similarity index 100% rename from cts/pengine/start-then-stop-with-unfence.dot rename to cts/scheduler/start-then-stop-with-unfence.dot diff --git a/cts/pengine/start-then-stop-with-unfence.exp b/cts/scheduler/start-then-stop-with-unfence.exp similarity index 100% rename from cts/pengine/start-then-stop-with-unfence.exp rename to cts/scheduler/start-then-stop-with-unfence.exp diff --git a/cts/pengine/start-then-stop-with-unfence.scores b/cts/scheduler/start-then-stop-with-unfence.scores similarity index 100% rename from cts/pengine/start-then-stop-with-unfence.scores rename to cts/scheduler/start-then-stop-with-unfence.scores diff --git a/cts/pengine/start-then-stop-with-unfence.summary b/cts/scheduler/start-then-stop-with-unfence.summary similarity index 100% rename from cts/pengine/start-then-stop-with-unfence.summary rename to cts/scheduler/start-then-stop-with-unfence.summary diff --git a/cts/pengine/start-then-stop-with-unfence.xml b/cts/scheduler/start-then-stop-with-unfence.xml similarity index 100% rename from cts/pengine/start-then-stop-with-unfence.xml rename to cts/scheduler/start-then-stop-with-unfence.xml diff --git a/cts/pengine/stonith-0.dot b/cts/scheduler/stonith-0.dot similarity index 100% rename from cts/pengine/stonith-0.dot rename to cts/scheduler/stonith-0.dot diff --git a/cts/pengine/stonith-0.exp b/cts/scheduler/stonith-0.exp similarity index 100% rename from cts/pengine/stonith-0.exp rename to cts/scheduler/stonith-0.exp diff --git a/cts/pengine/stonith-0.scores b/cts/scheduler/stonith-0.scores similarity index 100% rename from cts/pengine/stonith-0.scores rename to cts/scheduler/stonith-0.scores diff --git a/cts/pengine/stonith-0.summary b/cts/scheduler/stonith-0.summary similarity index 100% rename from cts/pengine/stonith-0.summary rename to cts/scheduler/stonith-0.summary diff --git a/cts/pengine/stonith-0.xml b/cts/scheduler/stonith-0.xml similarity index 100% rename from cts/pengine/stonith-0.xml rename to cts/scheduler/stonith-0.xml diff --git a/cts/pengine/stonith-1.dot b/cts/scheduler/stonith-1.dot similarity index 100% rename from cts/pengine/stonith-1.dot rename to cts/scheduler/stonith-1.dot diff --git a/cts/pengine/stonith-1.exp b/cts/scheduler/stonith-1.exp similarity index 100% rename from cts/pengine/stonith-1.exp rename to cts/scheduler/stonith-1.exp diff --git a/cts/pengine/stonith-1.scores b/cts/scheduler/stonith-1.scores similarity index 100% rename from cts/pengine/stonith-1.scores rename to cts/scheduler/stonith-1.scores diff --git a/cts/pengine/stonith-1.summary b/cts/scheduler/stonith-1.summary similarity index 100% rename from cts/pengine/stonith-1.summary rename to cts/scheduler/stonith-1.summary diff --git a/cts/pengine/stonith-1.xml b/cts/scheduler/stonith-1.xml similarity index 100% rename from cts/pengine/stonith-1.xml rename to cts/scheduler/stonith-1.xml diff --git a/cts/pengine/stonith-2.dot b/cts/scheduler/stonith-2.dot similarity index 100% rename from cts/pengine/stonith-2.dot rename to cts/scheduler/stonith-2.dot diff --git a/cts/pengine/stonith-2.exp b/cts/scheduler/stonith-2.exp similarity index 100% rename from cts/pengine/stonith-2.exp rename to cts/scheduler/stonith-2.exp diff --git a/cts/pengine/stonith-2.scores b/cts/scheduler/stonith-2.scores similarity index 100% rename from cts/pengine/stonith-2.scores rename to cts/scheduler/stonith-2.scores diff --git a/cts/pengine/stonith-2.summary b/cts/scheduler/stonith-2.summary similarity index 100% rename from cts/pengine/stonith-2.summary rename to cts/scheduler/stonith-2.summary diff --git a/cts/pengine/stonith-2.xml b/cts/scheduler/stonith-2.xml similarity index 100% rename from cts/pengine/stonith-2.xml rename to cts/scheduler/stonith-2.xml diff --git a/cts/pengine/stonith-3.dot b/cts/scheduler/stonith-3.dot similarity index 100% rename from cts/pengine/stonith-3.dot rename to cts/scheduler/stonith-3.dot diff --git a/cts/pengine/stonith-3.exp b/cts/scheduler/stonith-3.exp similarity index 100% rename from cts/pengine/stonith-3.exp rename to cts/scheduler/stonith-3.exp diff --git a/cts/pengine/stonith-3.scores b/cts/scheduler/stonith-3.scores similarity index 100% rename from cts/pengine/stonith-3.scores rename to cts/scheduler/stonith-3.scores diff --git a/cts/pengine/stonith-3.summary b/cts/scheduler/stonith-3.summary similarity index 100% rename from cts/pengine/stonith-3.summary rename to cts/scheduler/stonith-3.summary diff --git a/cts/pengine/stonith-3.xml b/cts/scheduler/stonith-3.xml similarity index 100% rename from cts/pengine/stonith-3.xml rename to cts/scheduler/stonith-3.xml diff --git a/cts/pengine/stonith-4.dot b/cts/scheduler/stonith-4.dot similarity index 100% rename from cts/pengine/stonith-4.dot rename to cts/scheduler/stonith-4.dot diff --git a/cts/pengine/stonith-4.exp b/cts/scheduler/stonith-4.exp similarity index 100% rename from cts/pengine/stonith-4.exp rename to cts/scheduler/stonith-4.exp diff --git a/cts/pengine/stonith-4.scores b/cts/scheduler/stonith-4.scores similarity index 100% rename from cts/pengine/stonith-4.scores rename to cts/scheduler/stonith-4.scores diff --git a/cts/pengine/stonith-4.summary b/cts/scheduler/stonith-4.summary similarity index 100% rename from cts/pengine/stonith-4.summary rename to cts/scheduler/stonith-4.summary diff --git a/cts/pengine/stonith-4.xml b/cts/scheduler/stonith-4.xml similarity index 100% rename from cts/pengine/stonith-4.xml rename to cts/scheduler/stonith-4.xml diff --git a/cts/pengine/stop-failure-no-fencing.dot b/cts/scheduler/stop-failure-no-fencing.dot similarity index 100% rename from cts/pengine/stop-failure-no-fencing.dot rename to cts/scheduler/stop-failure-no-fencing.dot diff --git a/cts/pengine/stop-failure-no-fencing.exp b/cts/scheduler/stop-failure-no-fencing.exp similarity index 100% rename from cts/pengine/stop-failure-no-fencing.exp rename to cts/scheduler/stop-failure-no-fencing.exp diff --git a/cts/pengine/stop-failure-no-fencing.scores b/cts/scheduler/stop-failure-no-fencing.scores similarity index 100% rename from cts/pengine/stop-failure-no-fencing.scores rename to cts/scheduler/stop-failure-no-fencing.scores diff --git a/cts/pengine/stop-failure-no-fencing.summary b/cts/scheduler/stop-failure-no-fencing.summary similarity index 100% rename from cts/pengine/stop-failure-no-fencing.summary rename to cts/scheduler/stop-failure-no-fencing.summary diff --git a/cts/pengine/stop-failure-no-fencing.xml b/cts/scheduler/stop-failure-no-fencing.xml similarity index 100% rename from cts/pengine/stop-failure-no-fencing.xml rename to cts/scheduler/stop-failure-no-fencing.xml diff --git a/cts/pengine/stop-failure-no-quorum.dot b/cts/scheduler/stop-failure-no-quorum.dot similarity index 100% rename from cts/pengine/stop-failure-no-quorum.dot rename to cts/scheduler/stop-failure-no-quorum.dot diff --git a/cts/pengine/stop-failure-no-quorum.exp b/cts/scheduler/stop-failure-no-quorum.exp similarity index 100% rename from cts/pengine/stop-failure-no-quorum.exp rename to cts/scheduler/stop-failure-no-quorum.exp diff --git a/cts/pengine/stop-failure-no-quorum.scores b/cts/scheduler/stop-failure-no-quorum.scores similarity index 100% rename from cts/pengine/stop-failure-no-quorum.scores rename to cts/scheduler/stop-failure-no-quorum.scores diff --git a/cts/pengine/stop-failure-no-quorum.summary b/cts/scheduler/stop-failure-no-quorum.summary similarity index 100% rename from cts/pengine/stop-failure-no-quorum.summary rename to cts/scheduler/stop-failure-no-quorum.summary diff --git a/cts/pengine/stop-failure-no-quorum.xml b/cts/scheduler/stop-failure-no-quorum.xml similarity index 100% rename from cts/pengine/stop-failure-no-quorum.xml rename to cts/scheduler/stop-failure-no-quorum.xml diff --git a/cts/pengine/stop-failure-with-fencing.dot b/cts/scheduler/stop-failure-with-fencing.dot similarity index 100% rename from cts/pengine/stop-failure-with-fencing.dot rename to cts/scheduler/stop-failure-with-fencing.dot diff --git a/cts/pengine/stop-failure-with-fencing.exp b/cts/scheduler/stop-failure-with-fencing.exp similarity index 100% rename from cts/pengine/stop-failure-with-fencing.exp rename to cts/scheduler/stop-failure-with-fencing.exp diff --git a/cts/pengine/stop-failure-with-fencing.scores b/cts/scheduler/stop-failure-with-fencing.scores similarity index 100% rename from cts/pengine/stop-failure-with-fencing.scores rename to cts/scheduler/stop-failure-with-fencing.scores diff --git a/cts/pengine/stop-failure-with-fencing.summary b/cts/scheduler/stop-failure-with-fencing.summary similarity index 100% rename from cts/pengine/stop-failure-with-fencing.summary rename to cts/scheduler/stop-failure-with-fencing.summary diff --git a/cts/pengine/stop-failure-with-fencing.xml b/cts/scheduler/stop-failure-with-fencing.xml similarity index 100% rename from cts/pengine/stop-failure-with-fencing.xml rename to cts/scheduler/stop-failure-with-fencing.xml diff --git a/cts/pengine/stopped-monitor-00.dot b/cts/scheduler/stopped-monitor-00.dot similarity index 100% rename from cts/pengine/stopped-monitor-00.dot rename to cts/scheduler/stopped-monitor-00.dot diff --git a/cts/pengine/stopped-monitor-00.exp b/cts/scheduler/stopped-monitor-00.exp similarity index 100% rename from cts/pengine/stopped-monitor-00.exp rename to cts/scheduler/stopped-monitor-00.exp diff --git a/cts/pengine/stopped-monitor-00.scores b/cts/scheduler/stopped-monitor-00.scores similarity index 100% rename from cts/pengine/stopped-monitor-00.scores rename to cts/scheduler/stopped-monitor-00.scores diff --git a/cts/pengine/stopped-monitor-00.summary b/cts/scheduler/stopped-monitor-00.summary similarity index 100% rename from cts/pengine/stopped-monitor-00.summary rename to cts/scheduler/stopped-monitor-00.summary diff --git a/cts/pengine/stopped-monitor-00.xml b/cts/scheduler/stopped-monitor-00.xml similarity index 100% rename from cts/pengine/stopped-monitor-00.xml rename to cts/scheduler/stopped-monitor-00.xml diff --git a/cts/pengine/stopped-monitor-01.dot b/cts/scheduler/stopped-monitor-01.dot similarity index 100% rename from cts/pengine/stopped-monitor-01.dot rename to cts/scheduler/stopped-monitor-01.dot diff --git a/cts/pengine/stopped-monitor-01.exp b/cts/scheduler/stopped-monitor-01.exp similarity index 100% rename from cts/pengine/stopped-monitor-01.exp rename to cts/scheduler/stopped-monitor-01.exp diff --git a/cts/pengine/stopped-monitor-01.scores b/cts/scheduler/stopped-monitor-01.scores similarity index 100% rename from cts/pengine/stopped-monitor-01.scores rename to cts/scheduler/stopped-monitor-01.scores diff --git a/cts/pengine/stopped-monitor-01.summary b/cts/scheduler/stopped-monitor-01.summary similarity index 100% rename from cts/pengine/stopped-monitor-01.summary rename to cts/scheduler/stopped-monitor-01.summary diff --git a/cts/pengine/stopped-monitor-01.xml b/cts/scheduler/stopped-monitor-01.xml similarity index 100% rename from cts/pengine/stopped-monitor-01.xml rename to cts/scheduler/stopped-monitor-01.xml diff --git a/cts/pengine/stopped-monitor-02.dot b/cts/scheduler/stopped-monitor-02.dot similarity index 100% rename from cts/pengine/stopped-monitor-02.dot rename to cts/scheduler/stopped-monitor-02.dot diff --git a/cts/pengine/stopped-monitor-02.exp b/cts/scheduler/stopped-monitor-02.exp similarity index 100% rename from cts/pengine/stopped-monitor-02.exp rename to cts/scheduler/stopped-monitor-02.exp diff --git a/cts/pengine/stopped-monitor-02.scores b/cts/scheduler/stopped-monitor-02.scores similarity index 100% rename from cts/pengine/stopped-monitor-02.scores rename to cts/scheduler/stopped-monitor-02.scores diff --git a/cts/pengine/stopped-monitor-02.summary b/cts/scheduler/stopped-monitor-02.summary similarity index 100% rename from cts/pengine/stopped-monitor-02.summary rename to cts/scheduler/stopped-monitor-02.summary diff --git a/cts/pengine/stopped-monitor-02.xml b/cts/scheduler/stopped-monitor-02.xml similarity index 100% rename from cts/pengine/stopped-monitor-02.xml rename to cts/scheduler/stopped-monitor-02.xml diff --git a/cts/pengine/stopped-monitor-03.dot b/cts/scheduler/stopped-monitor-03.dot similarity index 100% rename from cts/pengine/stopped-monitor-03.dot rename to cts/scheduler/stopped-monitor-03.dot diff --git a/cts/pengine/stopped-monitor-03.exp b/cts/scheduler/stopped-monitor-03.exp similarity index 100% rename from cts/pengine/stopped-monitor-03.exp rename to cts/scheduler/stopped-monitor-03.exp diff --git a/cts/pengine/stopped-monitor-03.scores b/cts/scheduler/stopped-monitor-03.scores similarity index 100% rename from cts/pengine/stopped-monitor-03.scores rename to cts/scheduler/stopped-monitor-03.scores diff --git a/cts/pengine/stopped-monitor-03.summary b/cts/scheduler/stopped-monitor-03.summary similarity index 100% rename from cts/pengine/stopped-monitor-03.summary rename to cts/scheduler/stopped-monitor-03.summary diff --git a/cts/pengine/stopped-monitor-03.xml b/cts/scheduler/stopped-monitor-03.xml similarity index 100% rename from cts/pengine/stopped-monitor-03.xml rename to cts/scheduler/stopped-monitor-03.xml diff --git a/cts/pengine/stopped-monitor-04.dot b/cts/scheduler/stopped-monitor-04.dot similarity index 100% rename from cts/pengine/stopped-monitor-04.dot rename to cts/scheduler/stopped-monitor-04.dot diff --git a/cts/pengine/stopped-monitor-04.exp b/cts/scheduler/stopped-monitor-04.exp similarity index 100% rename from cts/pengine/stopped-monitor-04.exp rename to cts/scheduler/stopped-monitor-04.exp diff --git a/cts/pengine/stopped-monitor-04.scores b/cts/scheduler/stopped-monitor-04.scores similarity index 100% rename from cts/pengine/stopped-monitor-04.scores rename to cts/scheduler/stopped-monitor-04.scores diff --git a/cts/pengine/stopped-monitor-04.summary b/cts/scheduler/stopped-monitor-04.summary similarity index 100% rename from cts/pengine/stopped-monitor-04.summary rename to cts/scheduler/stopped-monitor-04.summary diff --git a/cts/pengine/stopped-monitor-04.xml b/cts/scheduler/stopped-monitor-04.xml similarity index 100% rename from cts/pengine/stopped-monitor-04.xml rename to cts/scheduler/stopped-monitor-04.xml diff --git a/cts/pengine/stopped-monitor-05.dot b/cts/scheduler/stopped-monitor-05.dot similarity index 100% rename from cts/pengine/stopped-monitor-05.dot rename to cts/scheduler/stopped-monitor-05.dot diff --git a/cts/pengine/stopped-monitor-05.exp b/cts/scheduler/stopped-monitor-05.exp similarity index 100% rename from cts/pengine/stopped-monitor-05.exp rename to cts/scheduler/stopped-monitor-05.exp diff --git a/cts/pengine/stopped-monitor-05.scores b/cts/scheduler/stopped-monitor-05.scores similarity index 100% rename from cts/pengine/stopped-monitor-05.scores rename to cts/scheduler/stopped-monitor-05.scores diff --git a/cts/pengine/stopped-monitor-05.summary b/cts/scheduler/stopped-monitor-05.summary similarity index 100% rename from cts/pengine/stopped-monitor-05.summary rename to cts/scheduler/stopped-monitor-05.summary diff --git a/cts/pengine/stopped-monitor-05.xml b/cts/scheduler/stopped-monitor-05.xml similarity index 100% rename from cts/pengine/stopped-monitor-05.xml rename to cts/scheduler/stopped-monitor-05.xml diff --git a/cts/pengine/stopped-monitor-06.dot b/cts/scheduler/stopped-monitor-06.dot similarity index 100% rename from cts/pengine/stopped-monitor-06.dot rename to cts/scheduler/stopped-monitor-06.dot diff --git a/cts/pengine/stopped-monitor-06.exp b/cts/scheduler/stopped-monitor-06.exp similarity index 100% rename from cts/pengine/stopped-monitor-06.exp rename to cts/scheduler/stopped-monitor-06.exp diff --git a/cts/pengine/stopped-monitor-06.scores b/cts/scheduler/stopped-monitor-06.scores similarity index 100% rename from cts/pengine/stopped-monitor-06.scores rename to cts/scheduler/stopped-monitor-06.scores diff --git a/cts/pengine/stopped-monitor-06.summary b/cts/scheduler/stopped-monitor-06.summary similarity index 100% rename from cts/pengine/stopped-monitor-06.summary rename to cts/scheduler/stopped-monitor-06.summary diff --git a/cts/pengine/stopped-monitor-06.xml b/cts/scheduler/stopped-monitor-06.xml similarity index 100% rename from cts/pengine/stopped-monitor-06.xml rename to cts/scheduler/stopped-monitor-06.xml diff --git a/cts/pengine/stopped-monitor-07.dot b/cts/scheduler/stopped-monitor-07.dot similarity index 100% rename from cts/pengine/stopped-monitor-07.dot rename to cts/scheduler/stopped-monitor-07.dot diff --git a/cts/pengine/stopped-monitor-07.exp b/cts/scheduler/stopped-monitor-07.exp similarity index 100% rename from cts/pengine/stopped-monitor-07.exp rename to cts/scheduler/stopped-monitor-07.exp diff --git a/cts/pengine/stopped-monitor-07.scores b/cts/scheduler/stopped-monitor-07.scores similarity index 100% rename from cts/pengine/stopped-monitor-07.scores rename to cts/scheduler/stopped-monitor-07.scores diff --git a/cts/pengine/stopped-monitor-07.summary b/cts/scheduler/stopped-monitor-07.summary similarity index 100% rename from cts/pengine/stopped-monitor-07.summary rename to cts/scheduler/stopped-monitor-07.summary diff --git a/cts/pengine/stopped-monitor-07.xml b/cts/scheduler/stopped-monitor-07.xml similarity index 100% rename from cts/pengine/stopped-monitor-07.xml rename to cts/scheduler/stopped-monitor-07.xml diff --git a/cts/pengine/stopped-monitor-08.dot b/cts/scheduler/stopped-monitor-08.dot similarity index 100% rename from cts/pengine/stopped-monitor-08.dot rename to cts/scheduler/stopped-monitor-08.dot diff --git a/cts/pengine/stopped-monitor-08.exp b/cts/scheduler/stopped-monitor-08.exp similarity index 100% rename from cts/pengine/stopped-monitor-08.exp rename to cts/scheduler/stopped-monitor-08.exp diff --git a/cts/pengine/stopped-monitor-08.scores b/cts/scheduler/stopped-monitor-08.scores similarity index 100% rename from cts/pengine/stopped-monitor-08.scores rename to cts/scheduler/stopped-monitor-08.scores diff --git a/cts/pengine/stopped-monitor-08.summary b/cts/scheduler/stopped-monitor-08.summary similarity index 100% rename from cts/pengine/stopped-monitor-08.summary rename to cts/scheduler/stopped-monitor-08.summary diff --git a/cts/pengine/stopped-monitor-08.xml b/cts/scheduler/stopped-monitor-08.xml similarity index 100% rename from cts/pengine/stopped-monitor-08.xml rename to cts/scheduler/stopped-monitor-08.xml diff --git a/cts/pengine/stopped-monitor-09.dot b/cts/scheduler/stopped-monitor-09.dot similarity index 100% rename from cts/pengine/stopped-monitor-09.dot rename to cts/scheduler/stopped-monitor-09.dot diff --git a/cts/pengine/stopped-monitor-09.exp b/cts/scheduler/stopped-monitor-09.exp similarity index 100% rename from cts/pengine/stopped-monitor-09.exp rename to cts/scheduler/stopped-monitor-09.exp diff --git a/cts/pengine/stopped-monitor-09.scores b/cts/scheduler/stopped-monitor-09.scores similarity index 100% rename from cts/pengine/stopped-monitor-09.scores rename to cts/scheduler/stopped-monitor-09.scores diff --git a/cts/pengine/stopped-monitor-09.summary b/cts/scheduler/stopped-monitor-09.summary similarity index 100% rename from cts/pengine/stopped-monitor-09.summary rename to cts/scheduler/stopped-monitor-09.summary diff --git a/cts/pengine/stopped-monitor-09.xml b/cts/scheduler/stopped-monitor-09.xml similarity index 100% rename from cts/pengine/stopped-monitor-09.xml rename to cts/scheduler/stopped-monitor-09.xml diff --git a/cts/pengine/stopped-monitor-10.dot b/cts/scheduler/stopped-monitor-10.dot similarity index 100% rename from cts/pengine/stopped-monitor-10.dot rename to cts/scheduler/stopped-monitor-10.dot diff --git a/cts/pengine/stopped-monitor-10.exp b/cts/scheduler/stopped-monitor-10.exp similarity index 100% rename from cts/pengine/stopped-monitor-10.exp rename to cts/scheduler/stopped-monitor-10.exp diff --git a/cts/pengine/stopped-monitor-10.scores b/cts/scheduler/stopped-monitor-10.scores similarity index 100% rename from cts/pengine/stopped-monitor-10.scores rename to cts/scheduler/stopped-monitor-10.scores diff --git a/cts/pengine/stopped-monitor-10.summary b/cts/scheduler/stopped-monitor-10.summary similarity index 100% rename from cts/pengine/stopped-monitor-10.summary rename to cts/scheduler/stopped-monitor-10.summary diff --git a/cts/pengine/stopped-monitor-10.xml b/cts/scheduler/stopped-monitor-10.xml similarity index 100% rename from cts/pengine/stopped-monitor-10.xml rename to cts/scheduler/stopped-monitor-10.xml diff --git a/cts/pengine/stopped-monitor-11.dot b/cts/scheduler/stopped-monitor-11.dot similarity index 100% rename from cts/pengine/stopped-monitor-11.dot rename to cts/scheduler/stopped-monitor-11.dot diff --git a/cts/pengine/stopped-monitor-11.exp b/cts/scheduler/stopped-monitor-11.exp similarity index 100% rename from cts/pengine/stopped-monitor-11.exp rename to cts/scheduler/stopped-monitor-11.exp diff --git a/cts/pengine/stopped-monitor-11.scores b/cts/scheduler/stopped-monitor-11.scores similarity index 100% rename from cts/pengine/stopped-monitor-11.scores rename to cts/scheduler/stopped-monitor-11.scores diff --git a/cts/pengine/stopped-monitor-11.summary b/cts/scheduler/stopped-monitor-11.summary similarity index 100% rename from cts/pengine/stopped-monitor-11.summary rename to cts/scheduler/stopped-monitor-11.summary diff --git a/cts/pengine/stopped-monitor-11.xml b/cts/scheduler/stopped-monitor-11.xml similarity index 100% rename from cts/pengine/stopped-monitor-11.xml rename to cts/scheduler/stopped-monitor-11.xml diff --git a/cts/pengine/stopped-monitor-12.dot b/cts/scheduler/stopped-monitor-12.dot similarity index 100% rename from cts/pengine/stopped-monitor-12.dot rename to cts/scheduler/stopped-monitor-12.dot diff --git a/cts/pengine/stopped-monitor-12.exp b/cts/scheduler/stopped-monitor-12.exp similarity index 100% rename from cts/pengine/stopped-monitor-12.exp rename to cts/scheduler/stopped-monitor-12.exp diff --git a/cts/pengine/stopped-monitor-12.scores b/cts/scheduler/stopped-monitor-12.scores similarity index 100% rename from cts/pengine/stopped-monitor-12.scores rename to cts/scheduler/stopped-monitor-12.scores diff --git a/cts/pengine/stopped-monitor-12.summary b/cts/scheduler/stopped-monitor-12.summary similarity index 100% rename from cts/pengine/stopped-monitor-12.summary rename to cts/scheduler/stopped-monitor-12.summary diff --git a/cts/pengine/stopped-monitor-12.xml b/cts/scheduler/stopped-monitor-12.xml similarity index 100% rename from cts/pengine/stopped-monitor-12.xml rename to cts/scheduler/stopped-monitor-12.xml diff --git a/cts/pengine/stopped-monitor-20.dot b/cts/scheduler/stopped-monitor-20.dot similarity index 100% rename from cts/pengine/stopped-monitor-20.dot rename to cts/scheduler/stopped-monitor-20.dot diff --git a/cts/pengine/stopped-monitor-20.exp b/cts/scheduler/stopped-monitor-20.exp similarity index 100% rename from cts/pengine/stopped-monitor-20.exp rename to cts/scheduler/stopped-monitor-20.exp diff --git a/cts/pengine/stopped-monitor-20.scores b/cts/scheduler/stopped-monitor-20.scores similarity index 100% rename from cts/pengine/stopped-monitor-20.scores rename to cts/scheduler/stopped-monitor-20.scores diff --git a/cts/pengine/stopped-monitor-20.summary b/cts/scheduler/stopped-monitor-20.summary similarity index 100% rename from cts/pengine/stopped-monitor-20.summary rename to cts/scheduler/stopped-monitor-20.summary diff --git a/cts/pengine/stopped-monitor-20.xml b/cts/scheduler/stopped-monitor-20.xml similarity index 100% rename from cts/pengine/stopped-monitor-20.xml rename to cts/scheduler/stopped-monitor-20.xml diff --git a/cts/pengine/stopped-monitor-21.dot b/cts/scheduler/stopped-monitor-21.dot similarity index 100% rename from cts/pengine/stopped-monitor-21.dot rename to cts/scheduler/stopped-monitor-21.dot diff --git a/cts/pengine/stopped-monitor-21.exp b/cts/scheduler/stopped-monitor-21.exp similarity index 100% rename from cts/pengine/stopped-monitor-21.exp rename to cts/scheduler/stopped-monitor-21.exp diff --git a/cts/pengine/stopped-monitor-21.scores b/cts/scheduler/stopped-monitor-21.scores similarity index 100% rename from cts/pengine/stopped-monitor-21.scores rename to cts/scheduler/stopped-monitor-21.scores diff --git a/cts/pengine/stopped-monitor-21.summary b/cts/scheduler/stopped-monitor-21.summary similarity index 100% rename from cts/pengine/stopped-monitor-21.summary rename to cts/scheduler/stopped-monitor-21.summary diff --git a/cts/pengine/stopped-monitor-21.xml b/cts/scheduler/stopped-monitor-21.xml similarity index 100% rename from cts/pengine/stopped-monitor-21.xml rename to cts/scheduler/stopped-monitor-21.xml diff --git a/cts/pengine/stopped-monitor-22.dot b/cts/scheduler/stopped-monitor-22.dot similarity index 100% rename from cts/pengine/stopped-monitor-22.dot rename to cts/scheduler/stopped-monitor-22.dot diff --git a/cts/pengine/stopped-monitor-22.exp b/cts/scheduler/stopped-monitor-22.exp similarity index 100% rename from cts/pengine/stopped-monitor-22.exp rename to cts/scheduler/stopped-monitor-22.exp diff --git a/cts/pengine/stopped-monitor-22.scores b/cts/scheduler/stopped-monitor-22.scores similarity index 100% rename from cts/pengine/stopped-monitor-22.scores rename to cts/scheduler/stopped-monitor-22.scores diff --git a/cts/pengine/stopped-monitor-22.summary b/cts/scheduler/stopped-monitor-22.summary similarity index 100% rename from cts/pengine/stopped-monitor-22.summary rename to cts/scheduler/stopped-monitor-22.summary diff --git a/cts/pengine/stopped-monitor-22.xml b/cts/scheduler/stopped-monitor-22.xml similarity index 100% rename from cts/pengine/stopped-monitor-22.xml rename to cts/scheduler/stopped-monitor-22.xml diff --git a/cts/pengine/stopped-monitor-23.dot b/cts/scheduler/stopped-monitor-23.dot similarity index 100% rename from cts/pengine/stopped-monitor-23.dot rename to cts/scheduler/stopped-monitor-23.dot diff --git a/cts/pengine/stopped-monitor-23.exp b/cts/scheduler/stopped-monitor-23.exp similarity index 100% rename from cts/pengine/stopped-monitor-23.exp rename to cts/scheduler/stopped-monitor-23.exp diff --git a/cts/pengine/stopped-monitor-23.scores b/cts/scheduler/stopped-monitor-23.scores similarity index 100% rename from cts/pengine/stopped-monitor-23.scores rename to cts/scheduler/stopped-monitor-23.scores diff --git a/cts/pengine/stopped-monitor-23.summary b/cts/scheduler/stopped-monitor-23.summary similarity index 100% rename from cts/pengine/stopped-monitor-23.summary rename to cts/scheduler/stopped-monitor-23.summary diff --git a/cts/pengine/stopped-monitor-23.xml b/cts/scheduler/stopped-monitor-23.xml similarity index 100% rename from cts/pengine/stopped-monitor-23.xml rename to cts/scheduler/stopped-monitor-23.xml diff --git a/cts/pengine/stopped-monitor-24.dot b/cts/scheduler/stopped-monitor-24.dot similarity index 100% rename from cts/pengine/stopped-monitor-24.dot rename to cts/scheduler/stopped-monitor-24.dot diff --git a/cts/pengine/stopped-monitor-24.exp b/cts/scheduler/stopped-monitor-24.exp similarity index 100% rename from cts/pengine/stopped-monitor-24.exp rename to cts/scheduler/stopped-monitor-24.exp diff --git a/cts/pengine/stopped-monitor-24.scores b/cts/scheduler/stopped-monitor-24.scores similarity index 100% rename from cts/pengine/stopped-monitor-24.scores rename to cts/scheduler/stopped-monitor-24.scores diff --git a/cts/pengine/stopped-monitor-24.summary b/cts/scheduler/stopped-monitor-24.summary similarity index 100% rename from cts/pengine/stopped-monitor-24.summary rename to cts/scheduler/stopped-monitor-24.summary diff --git a/cts/pengine/stopped-monitor-24.xml b/cts/scheduler/stopped-monitor-24.xml similarity index 100% rename from cts/pengine/stopped-monitor-24.xml rename to cts/scheduler/stopped-monitor-24.xml diff --git a/cts/pengine/stopped-monitor-25.dot b/cts/scheduler/stopped-monitor-25.dot similarity index 100% rename from cts/pengine/stopped-monitor-25.dot rename to cts/scheduler/stopped-monitor-25.dot diff --git a/cts/pengine/stopped-monitor-25.exp b/cts/scheduler/stopped-monitor-25.exp similarity index 100% rename from cts/pengine/stopped-monitor-25.exp rename to cts/scheduler/stopped-monitor-25.exp diff --git a/cts/pengine/stopped-monitor-25.scores b/cts/scheduler/stopped-monitor-25.scores similarity index 100% rename from cts/pengine/stopped-monitor-25.scores rename to cts/scheduler/stopped-monitor-25.scores diff --git a/cts/pengine/stopped-monitor-25.summary b/cts/scheduler/stopped-monitor-25.summary similarity index 100% rename from cts/pengine/stopped-monitor-25.summary rename to cts/scheduler/stopped-monitor-25.summary diff --git a/cts/pengine/stopped-monitor-25.xml b/cts/scheduler/stopped-monitor-25.xml similarity index 100% rename from cts/pengine/stopped-monitor-25.xml rename to cts/scheduler/stopped-monitor-25.xml diff --git a/cts/pengine/stopped-monitor-26.dot b/cts/scheduler/stopped-monitor-26.dot similarity index 100% rename from cts/pengine/stopped-monitor-26.dot rename to cts/scheduler/stopped-monitor-26.dot diff --git a/cts/pengine/stopped-monitor-26.exp b/cts/scheduler/stopped-monitor-26.exp similarity index 100% rename from cts/pengine/stopped-monitor-26.exp rename to cts/scheduler/stopped-monitor-26.exp diff --git a/cts/pengine/stopped-monitor-26.scores b/cts/scheduler/stopped-monitor-26.scores similarity index 100% rename from cts/pengine/stopped-monitor-26.scores rename to cts/scheduler/stopped-monitor-26.scores diff --git a/cts/pengine/stopped-monitor-26.summary b/cts/scheduler/stopped-monitor-26.summary similarity index 100% rename from cts/pengine/stopped-monitor-26.summary rename to cts/scheduler/stopped-monitor-26.summary diff --git a/cts/pengine/stopped-monitor-26.xml b/cts/scheduler/stopped-monitor-26.xml similarity index 100% rename from cts/pengine/stopped-monitor-26.xml rename to cts/scheduler/stopped-monitor-26.xml diff --git a/cts/pengine/stopped-monitor-27.dot b/cts/scheduler/stopped-monitor-27.dot similarity index 100% rename from cts/pengine/stopped-monitor-27.dot rename to cts/scheduler/stopped-monitor-27.dot diff --git a/cts/pengine/stopped-monitor-27.exp b/cts/scheduler/stopped-monitor-27.exp similarity index 100% rename from cts/pengine/stopped-monitor-27.exp rename to cts/scheduler/stopped-monitor-27.exp diff --git a/cts/pengine/stopped-monitor-27.scores b/cts/scheduler/stopped-monitor-27.scores similarity index 100% rename from cts/pengine/stopped-monitor-27.scores rename to cts/scheduler/stopped-monitor-27.scores diff --git a/cts/pengine/stopped-monitor-27.summary b/cts/scheduler/stopped-monitor-27.summary similarity index 100% rename from cts/pengine/stopped-monitor-27.summary rename to cts/scheduler/stopped-monitor-27.summary diff --git a/cts/pengine/stopped-monitor-27.xml b/cts/scheduler/stopped-monitor-27.xml similarity index 100% rename from cts/pengine/stopped-monitor-27.xml rename to cts/scheduler/stopped-monitor-27.xml diff --git a/cts/pengine/stopped-monitor-30.dot b/cts/scheduler/stopped-monitor-30.dot similarity index 100% rename from cts/pengine/stopped-monitor-30.dot rename to cts/scheduler/stopped-monitor-30.dot diff --git a/cts/pengine/stopped-monitor-30.exp b/cts/scheduler/stopped-monitor-30.exp similarity index 100% rename from cts/pengine/stopped-monitor-30.exp rename to cts/scheduler/stopped-monitor-30.exp diff --git a/cts/pengine/stopped-monitor-30.scores b/cts/scheduler/stopped-monitor-30.scores similarity index 100% rename from cts/pengine/stopped-monitor-30.scores rename to cts/scheduler/stopped-monitor-30.scores diff --git a/cts/pengine/stopped-monitor-30.summary b/cts/scheduler/stopped-monitor-30.summary similarity index 100% rename from cts/pengine/stopped-monitor-30.summary rename to cts/scheduler/stopped-monitor-30.summary diff --git a/cts/pengine/stopped-monitor-30.xml b/cts/scheduler/stopped-monitor-30.xml similarity index 100% rename from cts/pengine/stopped-monitor-30.xml rename to cts/scheduler/stopped-monitor-30.xml diff --git a/cts/pengine/stopped-monitor-31.dot b/cts/scheduler/stopped-monitor-31.dot similarity index 100% rename from cts/pengine/stopped-monitor-31.dot rename to cts/scheduler/stopped-monitor-31.dot diff --git a/cts/pengine/stopped-monitor-31.exp b/cts/scheduler/stopped-monitor-31.exp similarity index 100% rename from cts/pengine/stopped-monitor-31.exp rename to cts/scheduler/stopped-monitor-31.exp diff --git a/cts/pengine/stopped-monitor-31.scores b/cts/scheduler/stopped-monitor-31.scores similarity index 100% rename from cts/pengine/stopped-monitor-31.scores rename to cts/scheduler/stopped-monitor-31.scores diff --git a/cts/pengine/stopped-monitor-31.summary b/cts/scheduler/stopped-monitor-31.summary similarity index 100% rename from cts/pengine/stopped-monitor-31.summary rename to cts/scheduler/stopped-monitor-31.summary diff --git a/cts/pengine/stopped-monitor-31.xml b/cts/scheduler/stopped-monitor-31.xml similarity index 100% rename from cts/pengine/stopped-monitor-31.xml rename to cts/scheduler/stopped-monitor-31.xml diff --git a/cts/pengine/suicide-needed-inquorate.dot b/cts/scheduler/suicide-needed-inquorate.dot similarity index 100% rename from cts/pengine/suicide-needed-inquorate.dot rename to cts/scheduler/suicide-needed-inquorate.dot diff --git a/cts/pengine/suicide-needed-inquorate.exp b/cts/scheduler/suicide-needed-inquorate.exp similarity index 100% rename from cts/pengine/suicide-needed-inquorate.exp rename to cts/scheduler/suicide-needed-inquorate.exp diff --git a/cts/pengine/suicide-needed-inquorate.scores b/cts/scheduler/suicide-needed-inquorate.scores similarity index 100% rename from cts/pengine/suicide-needed-inquorate.scores rename to cts/scheduler/suicide-needed-inquorate.scores diff --git a/cts/pengine/suicide-needed-inquorate.summary b/cts/scheduler/suicide-needed-inquorate.summary similarity index 100% rename from cts/pengine/suicide-needed-inquorate.summary rename to cts/scheduler/suicide-needed-inquorate.summary diff --git a/cts/pengine/suicide-needed-inquorate.xml b/cts/scheduler/suicide-needed-inquorate.xml similarity index 100% rename from cts/pengine/suicide-needed-inquorate.xml rename to cts/scheduler/suicide-needed-inquorate.xml diff --git a/cts/pengine/suicide-not-needed-initial-quorum.dot b/cts/scheduler/suicide-not-needed-initial-quorum.dot similarity index 100% rename from cts/pengine/suicide-not-needed-initial-quorum.dot rename to cts/scheduler/suicide-not-needed-initial-quorum.dot diff --git a/cts/pengine/suicide-not-needed-initial-quorum.exp b/cts/scheduler/suicide-not-needed-initial-quorum.exp similarity index 100% rename from cts/pengine/suicide-not-needed-initial-quorum.exp rename to cts/scheduler/suicide-not-needed-initial-quorum.exp diff --git a/cts/pengine/suicide-not-needed-initial-quorum.scores b/cts/scheduler/suicide-not-needed-initial-quorum.scores similarity index 100% rename from cts/pengine/suicide-not-needed-initial-quorum.scores rename to cts/scheduler/suicide-not-needed-initial-quorum.scores diff --git a/cts/pengine/suicide-not-needed-initial-quorum.summary b/cts/scheduler/suicide-not-needed-initial-quorum.summary similarity index 100% rename from cts/pengine/suicide-not-needed-initial-quorum.summary rename to cts/scheduler/suicide-not-needed-initial-quorum.summary diff --git a/cts/pengine/suicide-not-needed-initial-quorum.xml b/cts/scheduler/suicide-not-needed-initial-quorum.xml similarity index 100% rename from cts/pengine/suicide-not-needed-initial-quorum.xml rename to cts/scheduler/suicide-not-needed-initial-quorum.xml diff --git a/cts/pengine/suicide-not-needed-never-quorate.dot b/cts/scheduler/suicide-not-needed-never-quorate.dot similarity index 100% rename from cts/pengine/suicide-not-needed-never-quorate.dot rename to cts/scheduler/suicide-not-needed-never-quorate.dot diff --git a/cts/pengine/suicide-not-needed-never-quorate.exp b/cts/scheduler/suicide-not-needed-never-quorate.exp similarity index 100% rename from cts/pengine/suicide-not-needed-never-quorate.exp rename to cts/scheduler/suicide-not-needed-never-quorate.exp diff --git a/cts/pengine/suicide-not-needed-never-quorate.scores b/cts/scheduler/suicide-not-needed-never-quorate.scores similarity index 100% rename from cts/pengine/suicide-not-needed-never-quorate.scores rename to cts/scheduler/suicide-not-needed-never-quorate.scores diff --git a/cts/pengine/suicide-not-needed-never-quorate.summary b/cts/scheduler/suicide-not-needed-never-quorate.summary similarity index 100% rename from cts/pengine/suicide-not-needed-never-quorate.summary rename to cts/scheduler/suicide-not-needed-never-quorate.summary diff --git a/cts/pengine/suicide-not-needed-never-quorate.xml b/cts/scheduler/suicide-not-needed-never-quorate.xml similarity index 100% rename from cts/pengine/suicide-not-needed-never-quorate.xml rename to cts/scheduler/suicide-not-needed-never-quorate.xml diff --git a/cts/pengine/suicide-not-needed-quorate.dot b/cts/scheduler/suicide-not-needed-quorate.dot similarity index 100% rename from cts/pengine/suicide-not-needed-quorate.dot rename to cts/scheduler/suicide-not-needed-quorate.dot diff --git a/cts/pengine/suicide-not-needed-quorate.exp b/cts/scheduler/suicide-not-needed-quorate.exp similarity index 100% rename from cts/pengine/suicide-not-needed-quorate.exp rename to cts/scheduler/suicide-not-needed-quorate.exp diff --git a/cts/pengine/suicide-not-needed-quorate.scores b/cts/scheduler/suicide-not-needed-quorate.scores similarity index 100% rename from cts/pengine/suicide-not-needed-quorate.scores rename to cts/scheduler/suicide-not-needed-quorate.scores diff --git a/cts/pengine/suicide-not-needed-quorate.summary b/cts/scheduler/suicide-not-needed-quorate.summary similarity index 100% rename from cts/pengine/suicide-not-needed-quorate.summary rename to cts/scheduler/suicide-not-needed-quorate.summary diff --git a/cts/pengine/suicide-not-needed-quorate.xml b/cts/scheduler/suicide-not-needed-quorate.xml similarity index 100% rename from cts/pengine/suicide-not-needed-quorate.xml rename to cts/scheduler/suicide-not-needed-quorate.xml diff --git a/cts/pengine/systemhealth1.dot b/cts/scheduler/systemhealth1.dot similarity index 100% rename from cts/pengine/systemhealth1.dot rename to cts/scheduler/systemhealth1.dot diff --git a/cts/pengine/systemhealth1.exp b/cts/scheduler/systemhealth1.exp similarity index 100% rename from cts/pengine/systemhealth1.exp rename to cts/scheduler/systemhealth1.exp diff --git a/cts/pengine/systemhealth1.scores b/cts/scheduler/systemhealth1.scores similarity index 100% rename from cts/pengine/systemhealth1.scores rename to cts/scheduler/systemhealth1.scores diff --git a/cts/pengine/systemhealth1.summary b/cts/scheduler/systemhealth1.summary similarity index 100% rename from cts/pengine/systemhealth1.summary rename to cts/scheduler/systemhealth1.summary diff --git a/cts/pengine/systemhealth1.xml b/cts/scheduler/systemhealth1.xml similarity index 100% rename from cts/pengine/systemhealth1.xml rename to cts/scheduler/systemhealth1.xml diff --git a/cts/pengine/systemhealth2.dot b/cts/scheduler/systemhealth2.dot similarity index 100% rename from cts/pengine/systemhealth2.dot rename to cts/scheduler/systemhealth2.dot diff --git a/cts/pengine/systemhealth2.exp b/cts/scheduler/systemhealth2.exp similarity index 100% rename from cts/pengine/systemhealth2.exp rename to cts/scheduler/systemhealth2.exp diff --git a/cts/pengine/systemhealth2.scores b/cts/scheduler/systemhealth2.scores similarity index 100% rename from cts/pengine/systemhealth2.scores rename to cts/scheduler/systemhealth2.scores diff --git a/cts/pengine/systemhealth2.summary b/cts/scheduler/systemhealth2.summary similarity index 100% rename from cts/pengine/systemhealth2.summary rename to cts/scheduler/systemhealth2.summary diff --git a/cts/pengine/systemhealth2.xml b/cts/scheduler/systemhealth2.xml similarity index 100% rename from cts/pengine/systemhealth2.xml rename to cts/scheduler/systemhealth2.xml diff --git a/cts/pengine/systemhealth3.dot b/cts/scheduler/systemhealth3.dot similarity index 100% rename from cts/pengine/systemhealth3.dot rename to cts/scheduler/systemhealth3.dot diff --git a/cts/pengine/systemhealth3.exp b/cts/scheduler/systemhealth3.exp similarity index 100% rename from cts/pengine/systemhealth3.exp rename to cts/scheduler/systemhealth3.exp diff --git a/cts/pengine/systemhealth3.scores b/cts/scheduler/systemhealth3.scores similarity index 100% rename from cts/pengine/systemhealth3.scores rename to cts/scheduler/systemhealth3.scores diff --git a/cts/pengine/systemhealth3.summary b/cts/scheduler/systemhealth3.summary similarity index 100% rename from cts/pengine/systemhealth3.summary rename to cts/scheduler/systemhealth3.summary diff --git a/cts/pengine/systemhealth3.xml b/cts/scheduler/systemhealth3.xml similarity index 100% rename from cts/pengine/systemhealth3.xml rename to cts/scheduler/systemhealth3.xml diff --git a/cts/pengine/systemhealthm1.dot b/cts/scheduler/systemhealthm1.dot similarity index 100% rename from cts/pengine/systemhealthm1.dot rename to cts/scheduler/systemhealthm1.dot diff --git a/cts/pengine/systemhealthm1.exp b/cts/scheduler/systemhealthm1.exp similarity index 100% rename from cts/pengine/systemhealthm1.exp rename to cts/scheduler/systemhealthm1.exp diff --git a/cts/pengine/systemhealthm1.scores b/cts/scheduler/systemhealthm1.scores similarity index 100% rename from cts/pengine/systemhealthm1.scores rename to cts/scheduler/systemhealthm1.scores diff --git a/cts/pengine/systemhealthm1.summary b/cts/scheduler/systemhealthm1.summary similarity index 100% rename from cts/pengine/systemhealthm1.summary rename to cts/scheduler/systemhealthm1.summary diff --git a/cts/pengine/systemhealthm1.xml b/cts/scheduler/systemhealthm1.xml similarity index 100% rename from cts/pengine/systemhealthm1.xml rename to cts/scheduler/systemhealthm1.xml diff --git a/cts/pengine/systemhealthm2.dot b/cts/scheduler/systemhealthm2.dot similarity index 100% rename from cts/pengine/systemhealthm2.dot rename to cts/scheduler/systemhealthm2.dot diff --git a/cts/pengine/systemhealthm2.exp b/cts/scheduler/systemhealthm2.exp similarity index 100% rename from cts/pengine/systemhealthm2.exp rename to cts/scheduler/systemhealthm2.exp diff --git a/cts/pengine/systemhealthm2.scores b/cts/scheduler/systemhealthm2.scores similarity index 100% rename from cts/pengine/systemhealthm2.scores rename to cts/scheduler/systemhealthm2.scores diff --git a/cts/pengine/systemhealthm2.summary b/cts/scheduler/systemhealthm2.summary similarity index 100% rename from cts/pengine/systemhealthm2.summary rename to cts/scheduler/systemhealthm2.summary diff --git a/cts/pengine/systemhealthm2.xml b/cts/scheduler/systemhealthm2.xml similarity index 100% rename from cts/pengine/systemhealthm2.xml rename to cts/scheduler/systemhealthm2.xml diff --git a/cts/pengine/systemhealthm3.dot b/cts/scheduler/systemhealthm3.dot similarity index 100% rename from cts/pengine/systemhealthm3.dot rename to cts/scheduler/systemhealthm3.dot diff --git a/cts/pengine/systemhealthm3.exp b/cts/scheduler/systemhealthm3.exp similarity index 100% rename from cts/pengine/systemhealthm3.exp rename to cts/scheduler/systemhealthm3.exp diff --git a/cts/pengine/systemhealthm3.scores b/cts/scheduler/systemhealthm3.scores similarity index 100% rename from cts/pengine/systemhealthm3.scores rename to cts/scheduler/systemhealthm3.scores diff --git a/cts/pengine/systemhealthm3.summary b/cts/scheduler/systemhealthm3.summary similarity index 100% rename from cts/pengine/systemhealthm3.summary rename to cts/scheduler/systemhealthm3.summary diff --git a/cts/pengine/systemhealthm3.xml b/cts/scheduler/systemhealthm3.xml similarity index 100% rename from cts/pengine/systemhealthm3.xml rename to cts/scheduler/systemhealthm3.xml diff --git a/cts/pengine/systemhealthn1.dot b/cts/scheduler/systemhealthn1.dot similarity index 100% rename from cts/pengine/systemhealthn1.dot rename to cts/scheduler/systemhealthn1.dot diff --git a/cts/pengine/systemhealthn1.exp b/cts/scheduler/systemhealthn1.exp similarity index 100% rename from cts/pengine/systemhealthn1.exp rename to cts/scheduler/systemhealthn1.exp diff --git a/cts/pengine/systemhealthn1.scores b/cts/scheduler/systemhealthn1.scores similarity index 100% rename from cts/pengine/systemhealthn1.scores rename to cts/scheduler/systemhealthn1.scores diff --git a/cts/pengine/systemhealthn1.summary b/cts/scheduler/systemhealthn1.summary similarity index 100% rename from cts/pengine/systemhealthn1.summary rename to cts/scheduler/systemhealthn1.summary diff --git a/cts/pengine/systemhealthn1.xml b/cts/scheduler/systemhealthn1.xml similarity index 100% rename from cts/pengine/systemhealthn1.xml rename to cts/scheduler/systemhealthn1.xml diff --git a/cts/pengine/systemhealthn2.dot b/cts/scheduler/systemhealthn2.dot similarity index 100% rename from cts/pengine/systemhealthn2.dot rename to cts/scheduler/systemhealthn2.dot diff --git a/cts/pengine/systemhealthn2.exp b/cts/scheduler/systemhealthn2.exp similarity index 100% rename from cts/pengine/systemhealthn2.exp rename to cts/scheduler/systemhealthn2.exp diff --git a/cts/pengine/systemhealthn2.scores b/cts/scheduler/systemhealthn2.scores similarity index 100% rename from cts/pengine/systemhealthn2.scores rename to cts/scheduler/systemhealthn2.scores diff --git a/cts/pengine/systemhealthn2.summary b/cts/scheduler/systemhealthn2.summary similarity index 100% rename from cts/pengine/systemhealthn2.summary rename to cts/scheduler/systemhealthn2.summary diff --git a/cts/pengine/systemhealthn2.xml b/cts/scheduler/systemhealthn2.xml similarity index 100% rename from cts/pengine/systemhealthn2.xml rename to cts/scheduler/systemhealthn2.xml diff --git a/cts/pengine/systemhealthn3.dot b/cts/scheduler/systemhealthn3.dot similarity index 100% rename from cts/pengine/systemhealthn3.dot rename to cts/scheduler/systemhealthn3.dot diff --git a/cts/pengine/systemhealthn3.exp b/cts/scheduler/systemhealthn3.exp similarity index 100% rename from cts/pengine/systemhealthn3.exp rename to cts/scheduler/systemhealthn3.exp diff --git a/cts/pengine/systemhealthn3.scores b/cts/scheduler/systemhealthn3.scores similarity index 100% rename from cts/pengine/systemhealthn3.scores rename to cts/scheduler/systemhealthn3.scores diff --git a/cts/pengine/systemhealthn3.summary b/cts/scheduler/systemhealthn3.summary similarity index 100% rename from cts/pengine/systemhealthn3.summary rename to cts/scheduler/systemhealthn3.summary diff --git a/cts/pengine/systemhealthn3.xml b/cts/scheduler/systemhealthn3.xml similarity index 100% rename from cts/pengine/systemhealthn3.xml rename to cts/scheduler/systemhealthn3.xml diff --git a/cts/pengine/systemhealtho1.dot b/cts/scheduler/systemhealtho1.dot similarity index 100% rename from cts/pengine/systemhealtho1.dot rename to cts/scheduler/systemhealtho1.dot diff --git a/cts/pengine/systemhealtho1.exp b/cts/scheduler/systemhealtho1.exp similarity index 100% rename from cts/pengine/systemhealtho1.exp rename to cts/scheduler/systemhealtho1.exp diff --git a/cts/pengine/systemhealtho1.scores b/cts/scheduler/systemhealtho1.scores similarity index 100% rename from cts/pengine/systemhealtho1.scores rename to cts/scheduler/systemhealtho1.scores diff --git a/cts/pengine/systemhealtho1.summary b/cts/scheduler/systemhealtho1.summary similarity index 100% rename from cts/pengine/systemhealtho1.summary rename to cts/scheduler/systemhealtho1.summary diff --git a/cts/pengine/systemhealtho1.xml b/cts/scheduler/systemhealtho1.xml similarity index 100% rename from cts/pengine/systemhealtho1.xml rename to cts/scheduler/systemhealtho1.xml diff --git a/cts/pengine/systemhealtho2.dot b/cts/scheduler/systemhealtho2.dot similarity index 100% rename from cts/pengine/systemhealtho2.dot rename to cts/scheduler/systemhealtho2.dot diff --git a/cts/pengine/systemhealtho2.exp b/cts/scheduler/systemhealtho2.exp similarity index 100% rename from cts/pengine/systemhealtho2.exp rename to cts/scheduler/systemhealtho2.exp diff --git a/cts/pengine/systemhealtho2.scores b/cts/scheduler/systemhealtho2.scores similarity index 100% rename from cts/pengine/systemhealtho2.scores rename to cts/scheduler/systemhealtho2.scores diff --git a/cts/pengine/systemhealtho2.summary b/cts/scheduler/systemhealtho2.summary similarity index 100% rename from cts/pengine/systemhealtho2.summary rename to cts/scheduler/systemhealtho2.summary diff --git a/cts/pengine/systemhealtho2.xml b/cts/scheduler/systemhealtho2.xml similarity index 100% rename from cts/pengine/systemhealtho2.xml rename to cts/scheduler/systemhealtho2.xml diff --git a/cts/pengine/systemhealtho3.dot b/cts/scheduler/systemhealtho3.dot similarity index 100% rename from cts/pengine/systemhealtho3.dot rename to cts/scheduler/systemhealtho3.dot diff --git a/cts/pengine/systemhealtho3.exp b/cts/scheduler/systemhealtho3.exp similarity index 100% rename from cts/pengine/systemhealtho3.exp rename to cts/scheduler/systemhealtho3.exp diff --git a/cts/pengine/systemhealtho3.scores b/cts/scheduler/systemhealtho3.scores similarity index 100% rename from cts/pengine/systemhealtho3.scores rename to cts/scheduler/systemhealtho3.scores diff --git a/cts/pengine/systemhealtho3.summary b/cts/scheduler/systemhealtho3.summary similarity index 100% rename from cts/pengine/systemhealtho3.summary rename to cts/scheduler/systemhealtho3.summary diff --git a/cts/pengine/systemhealtho3.xml b/cts/scheduler/systemhealtho3.xml similarity index 100% rename from cts/pengine/systemhealtho3.xml rename to cts/scheduler/systemhealtho3.xml diff --git a/cts/pengine/systemhealthp1.dot b/cts/scheduler/systemhealthp1.dot similarity index 100% rename from cts/pengine/systemhealthp1.dot rename to cts/scheduler/systemhealthp1.dot diff --git a/cts/pengine/systemhealthp1.exp b/cts/scheduler/systemhealthp1.exp similarity index 100% rename from cts/pengine/systemhealthp1.exp rename to cts/scheduler/systemhealthp1.exp diff --git a/cts/pengine/systemhealthp1.scores b/cts/scheduler/systemhealthp1.scores similarity index 100% rename from cts/pengine/systemhealthp1.scores rename to cts/scheduler/systemhealthp1.scores diff --git a/cts/pengine/systemhealthp1.summary b/cts/scheduler/systemhealthp1.summary similarity index 100% rename from cts/pengine/systemhealthp1.summary rename to cts/scheduler/systemhealthp1.summary diff --git a/cts/pengine/systemhealthp1.xml b/cts/scheduler/systemhealthp1.xml similarity index 100% rename from cts/pengine/systemhealthp1.xml rename to cts/scheduler/systemhealthp1.xml diff --git a/cts/pengine/systemhealthp2.dot b/cts/scheduler/systemhealthp2.dot similarity index 100% rename from cts/pengine/systemhealthp2.dot rename to cts/scheduler/systemhealthp2.dot diff --git a/cts/pengine/systemhealthp2.exp b/cts/scheduler/systemhealthp2.exp similarity index 100% rename from cts/pengine/systemhealthp2.exp rename to cts/scheduler/systemhealthp2.exp diff --git a/cts/pengine/systemhealthp2.scores b/cts/scheduler/systemhealthp2.scores similarity index 100% rename from cts/pengine/systemhealthp2.scores rename to cts/scheduler/systemhealthp2.scores diff --git a/cts/pengine/systemhealthp2.summary b/cts/scheduler/systemhealthp2.summary similarity index 100% rename from cts/pengine/systemhealthp2.summary rename to cts/scheduler/systemhealthp2.summary diff --git a/cts/pengine/systemhealthp2.xml b/cts/scheduler/systemhealthp2.xml similarity index 100% rename from cts/pengine/systemhealthp2.xml rename to cts/scheduler/systemhealthp2.xml diff --git a/cts/pengine/systemhealthp3.dot b/cts/scheduler/systemhealthp3.dot similarity index 100% rename from cts/pengine/systemhealthp3.dot rename to cts/scheduler/systemhealthp3.dot diff --git a/cts/pengine/systemhealthp3.exp b/cts/scheduler/systemhealthp3.exp similarity index 100% rename from cts/pengine/systemhealthp3.exp rename to cts/scheduler/systemhealthp3.exp diff --git a/cts/pengine/systemhealthp3.scores b/cts/scheduler/systemhealthp3.scores similarity index 100% rename from cts/pengine/systemhealthp3.scores rename to cts/scheduler/systemhealthp3.scores diff --git a/cts/pengine/systemhealthp3.summary b/cts/scheduler/systemhealthp3.summary similarity index 100% rename from cts/pengine/systemhealthp3.summary rename to cts/scheduler/systemhealthp3.summary diff --git a/cts/pengine/systemhealthp3.xml b/cts/scheduler/systemhealthp3.xml similarity index 100% rename from cts/pengine/systemhealthp3.xml rename to cts/scheduler/systemhealthp3.xml diff --git a/cts/pengine/tags-coloc-order-1.dot b/cts/scheduler/tags-coloc-order-1.dot similarity index 100% rename from cts/pengine/tags-coloc-order-1.dot rename to cts/scheduler/tags-coloc-order-1.dot diff --git a/cts/pengine/tags-coloc-order-1.exp b/cts/scheduler/tags-coloc-order-1.exp similarity index 100% rename from cts/pengine/tags-coloc-order-1.exp rename to cts/scheduler/tags-coloc-order-1.exp diff --git a/cts/pengine/tags-coloc-order-1.scores b/cts/scheduler/tags-coloc-order-1.scores similarity index 100% rename from cts/pengine/tags-coloc-order-1.scores rename to cts/scheduler/tags-coloc-order-1.scores diff --git a/cts/pengine/tags-coloc-order-1.summary b/cts/scheduler/tags-coloc-order-1.summary similarity index 100% rename from cts/pengine/tags-coloc-order-1.summary rename to cts/scheduler/tags-coloc-order-1.summary diff --git a/cts/pengine/tags-coloc-order-1.xml b/cts/scheduler/tags-coloc-order-1.xml similarity index 100% rename from cts/pengine/tags-coloc-order-1.xml rename to cts/scheduler/tags-coloc-order-1.xml diff --git a/cts/pengine/tags-coloc-order-2.dot b/cts/scheduler/tags-coloc-order-2.dot similarity index 100% rename from cts/pengine/tags-coloc-order-2.dot rename to cts/scheduler/tags-coloc-order-2.dot diff --git a/cts/pengine/tags-coloc-order-2.exp b/cts/scheduler/tags-coloc-order-2.exp similarity index 100% rename from cts/pengine/tags-coloc-order-2.exp rename to cts/scheduler/tags-coloc-order-2.exp diff --git a/cts/pengine/tags-coloc-order-2.scores b/cts/scheduler/tags-coloc-order-2.scores similarity index 100% rename from cts/pengine/tags-coloc-order-2.scores rename to cts/scheduler/tags-coloc-order-2.scores diff --git a/cts/pengine/tags-coloc-order-2.summary b/cts/scheduler/tags-coloc-order-2.summary similarity index 100% rename from cts/pengine/tags-coloc-order-2.summary rename to cts/scheduler/tags-coloc-order-2.summary diff --git a/cts/pengine/tags-coloc-order-2.xml b/cts/scheduler/tags-coloc-order-2.xml similarity index 100% rename from cts/pengine/tags-coloc-order-2.xml rename to cts/scheduler/tags-coloc-order-2.xml diff --git a/cts/pengine/tags-location.dot b/cts/scheduler/tags-location.dot similarity index 100% rename from cts/pengine/tags-location.dot rename to cts/scheduler/tags-location.dot diff --git a/cts/pengine/tags-location.exp b/cts/scheduler/tags-location.exp similarity index 100% rename from cts/pengine/tags-location.exp rename to cts/scheduler/tags-location.exp diff --git a/cts/pengine/tags-location.scores b/cts/scheduler/tags-location.scores similarity index 100% rename from cts/pengine/tags-location.scores rename to cts/scheduler/tags-location.scores diff --git a/cts/pengine/tags-location.summary b/cts/scheduler/tags-location.summary similarity index 100% rename from cts/pengine/tags-location.summary rename to cts/scheduler/tags-location.summary diff --git a/cts/pengine/tags-location.xml b/cts/scheduler/tags-location.xml similarity index 100% rename from cts/pengine/tags-location.xml rename to cts/scheduler/tags-location.xml diff --git a/cts/pengine/tags-ticket.dot b/cts/scheduler/tags-ticket.dot similarity index 100% rename from cts/pengine/tags-ticket.dot rename to cts/scheduler/tags-ticket.dot diff --git a/cts/pengine/tags-ticket.exp b/cts/scheduler/tags-ticket.exp similarity index 100% rename from cts/pengine/tags-ticket.exp rename to cts/scheduler/tags-ticket.exp diff --git a/cts/pengine/tags-ticket.scores b/cts/scheduler/tags-ticket.scores similarity index 100% rename from cts/pengine/tags-ticket.scores rename to cts/scheduler/tags-ticket.scores diff --git a/cts/pengine/tags-ticket.summary b/cts/scheduler/tags-ticket.summary similarity index 100% rename from cts/pengine/tags-ticket.summary rename to cts/scheduler/tags-ticket.summary diff --git a/cts/pengine/tags-ticket.xml b/cts/scheduler/tags-ticket.xml similarity index 100% rename from cts/pengine/tags-ticket.xml rename to cts/scheduler/tags-ticket.xml diff --git a/cts/pengine/target-0.dot b/cts/scheduler/target-0.dot similarity index 100% rename from cts/pengine/target-0.dot rename to cts/scheduler/target-0.dot diff --git a/cts/pengine/target-0.exp b/cts/scheduler/target-0.exp similarity index 100% rename from cts/pengine/target-0.exp rename to cts/scheduler/target-0.exp diff --git a/cts/pengine/target-0.scores b/cts/scheduler/target-0.scores similarity index 100% rename from cts/pengine/target-0.scores rename to cts/scheduler/target-0.scores diff --git a/cts/pengine/target-0.summary b/cts/scheduler/target-0.summary similarity index 100% rename from cts/pengine/target-0.summary rename to cts/scheduler/target-0.summary diff --git a/cts/pengine/target-0.xml b/cts/scheduler/target-0.xml similarity index 100% rename from cts/pengine/target-0.xml rename to cts/scheduler/target-0.xml diff --git a/cts/pengine/target-1.dot b/cts/scheduler/target-1.dot similarity index 100% rename from cts/pengine/target-1.dot rename to cts/scheduler/target-1.dot diff --git a/cts/pengine/target-1.exp b/cts/scheduler/target-1.exp similarity index 100% rename from cts/pengine/target-1.exp rename to cts/scheduler/target-1.exp diff --git a/cts/pengine/target-1.scores b/cts/scheduler/target-1.scores similarity index 100% rename from cts/pengine/target-1.scores rename to cts/scheduler/target-1.scores diff --git a/cts/pengine/target-1.summary b/cts/scheduler/target-1.summary similarity index 100% rename from cts/pengine/target-1.summary rename to cts/scheduler/target-1.summary diff --git a/cts/pengine/target-1.xml b/cts/scheduler/target-1.xml similarity index 100% rename from cts/pengine/target-1.xml rename to cts/scheduler/target-1.xml diff --git a/cts/pengine/target-2.dot b/cts/scheduler/target-2.dot similarity index 100% rename from cts/pengine/target-2.dot rename to cts/scheduler/target-2.dot diff --git a/cts/pengine/target-2.exp b/cts/scheduler/target-2.exp similarity index 100% rename from cts/pengine/target-2.exp rename to cts/scheduler/target-2.exp diff --git a/cts/pengine/target-2.scores b/cts/scheduler/target-2.scores similarity index 100% rename from cts/pengine/target-2.scores rename to cts/scheduler/target-2.scores diff --git a/cts/pengine/target-2.summary b/cts/scheduler/target-2.summary similarity index 100% rename from cts/pengine/target-2.summary rename to cts/scheduler/target-2.summary diff --git a/cts/pengine/target-2.xml b/cts/scheduler/target-2.xml similarity index 100% rename from cts/pengine/target-2.xml rename to cts/scheduler/target-2.xml diff --git a/cts/pengine/template-1.dot b/cts/scheduler/template-1.dot similarity index 100% rename from cts/pengine/template-1.dot rename to cts/scheduler/template-1.dot diff --git a/cts/pengine/template-1.exp b/cts/scheduler/template-1.exp similarity index 100% rename from cts/pengine/template-1.exp rename to cts/scheduler/template-1.exp diff --git a/cts/pengine/template-1.scores b/cts/scheduler/template-1.scores similarity index 100% rename from cts/pengine/template-1.scores rename to cts/scheduler/template-1.scores diff --git a/cts/pengine/template-1.summary b/cts/scheduler/template-1.summary similarity index 100% rename from cts/pengine/template-1.summary rename to cts/scheduler/template-1.summary diff --git a/cts/pengine/template-1.xml b/cts/scheduler/template-1.xml similarity index 100% rename from cts/pengine/template-1.xml rename to cts/scheduler/template-1.xml diff --git a/cts/pengine/template-2.dot b/cts/scheduler/template-2.dot similarity index 100% rename from cts/pengine/template-2.dot rename to cts/scheduler/template-2.dot diff --git a/cts/pengine/template-2.exp b/cts/scheduler/template-2.exp similarity index 100% rename from cts/pengine/template-2.exp rename to cts/scheduler/template-2.exp diff --git a/cts/pengine/template-2.scores b/cts/scheduler/template-2.scores similarity index 100% rename from cts/pengine/template-2.scores rename to cts/scheduler/template-2.scores diff --git a/cts/pengine/template-2.summary b/cts/scheduler/template-2.summary similarity index 100% rename from cts/pengine/template-2.summary rename to cts/scheduler/template-2.summary diff --git a/cts/pengine/template-2.xml b/cts/scheduler/template-2.xml similarity index 100% rename from cts/pengine/template-2.xml rename to cts/scheduler/template-2.xml diff --git a/cts/pengine/template-3.dot b/cts/scheduler/template-3.dot similarity index 100% rename from cts/pengine/template-3.dot rename to cts/scheduler/template-3.dot diff --git a/cts/pengine/template-3.exp b/cts/scheduler/template-3.exp similarity index 100% rename from cts/pengine/template-3.exp rename to cts/scheduler/template-3.exp diff --git a/cts/pengine/template-3.scores b/cts/scheduler/template-3.scores similarity index 100% rename from cts/pengine/template-3.scores rename to cts/scheduler/template-3.scores diff --git a/cts/pengine/template-3.summary b/cts/scheduler/template-3.summary similarity index 100% rename from cts/pengine/template-3.summary rename to cts/scheduler/template-3.summary diff --git a/cts/pengine/template-3.xml b/cts/scheduler/template-3.xml similarity index 100% rename from cts/pengine/template-3.xml rename to cts/scheduler/template-3.xml diff --git a/cts/pengine/template-clone-group.dot b/cts/scheduler/template-clone-group.dot similarity index 100% rename from cts/pengine/template-clone-group.dot rename to cts/scheduler/template-clone-group.dot diff --git a/cts/pengine/template-clone-group.exp b/cts/scheduler/template-clone-group.exp similarity index 100% rename from cts/pengine/template-clone-group.exp rename to cts/scheduler/template-clone-group.exp diff --git a/cts/pengine/template-clone-group.scores b/cts/scheduler/template-clone-group.scores similarity index 100% rename from cts/pengine/template-clone-group.scores rename to cts/scheduler/template-clone-group.scores diff --git a/cts/pengine/template-clone-group.summary b/cts/scheduler/template-clone-group.summary similarity index 100% rename from cts/pengine/template-clone-group.summary rename to cts/scheduler/template-clone-group.summary diff --git a/cts/pengine/template-clone-group.xml b/cts/scheduler/template-clone-group.xml similarity index 100% rename from cts/pengine/template-clone-group.xml rename to cts/scheduler/template-clone-group.xml diff --git a/cts/pengine/template-clone-primitive.dot b/cts/scheduler/template-clone-primitive.dot similarity index 100% rename from cts/pengine/template-clone-primitive.dot rename to cts/scheduler/template-clone-primitive.dot diff --git a/cts/pengine/template-clone-primitive.exp b/cts/scheduler/template-clone-primitive.exp similarity index 100% rename from cts/pengine/template-clone-primitive.exp rename to cts/scheduler/template-clone-primitive.exp diff --git a/cts/pengine/template-clone-primitive.scores b/cts/scheduler/template-clone-primitive.scores similarity index 100% rename from cts/pengine/template-clone-primitive.scores rename to cts/scheduler/template-clone-primitive.scores diff --git a/cts/pengine/template-clone-primitive.summary b/cts/scheduler/template-clone-primitive.summary similarity index 100% rename from cts/pengine/template-clone-primitive.summary rename to cts/scheduler/template-clone-primitive.summary diff --git a/cts/pengine/template-clone-primitive.xml b/cts/scheduler/template-clone-primitive.xml similarity index 100% rename from cts/pengine/template-clone-primitive.xml rename to cts/scheduler/template-clone-primitive.xml diff --git a/cts/pengine/template-coloc-1.dot b/cts/scheduler/template-coloc-1.dot similarity index 100% rename from cts/pengine/template-coloc-1.dot rename to cts/scheduler/template-coloc-1.dot diff --git a/cts/pengine/template-coloc-1.exp b/cts/scheduler/template-coloc-1.exp similarity index 100% rename from cts/pengine/template-coloc-1.exp rename to cts/scheduler/template-coloc-1.exp diff --git a/cts/pengine/template-coloc-1.scores b/cts/scheduler/template-coloc-1.scores similarity index 100% rename from cts/pengine/template-coloc-1.scores rename to cts/scheduler/template-coloc-1.scores diff --git a/cts/pengine/template-coloc-1.summary b/cts/scheduler/template-coloc-1.summary similarity index 100% rename from cts/pengine/template-coloc-1.summary rename to cts/scheduler/template-coloc-1.summary diff --git a/cts/pengine/template-coloc-1.xml b/cts/scheduler/template-coloc-1.xml similarity index 100% rename from cts/pengine/template-coloc-1.xml rename to cts/scheduler/template-coloc-1.xml diff --git a/cts/pengine/template-coloc-2.dot b/cts/scheduler/template-coloc-2.dot similarity index 100% rename from cts/pengine/template-coloc-2.dot rename to cts/scheduler/template-coloc-2.dot diff --git a/cts/pengine/template-coloc-2.exp b/cts/scheduler/template-coloc-2.exp similarity index 100% rename from cts/pengine/template-coloc-2.exp rename to cts/scheduler/template-coloc-2.exp diff --git a/cts/pengine/template-coloc-2.scores b/cts/scheduler/template-coloc-2.scores similarity index 100% rename from cts/pengine/template-coloc-2.scores rename to cts/scheduler/template-coloc-2.scores diff --git a/cts/pengine/template-coloc-2.summary b/cts/scheduler/template-coloc-2.summary similarity index 100% rename from cts/pengine/template-coloc-2.summary rename to cts/scheduler/template-coloc-2.summary diff --git a/cts/pengine/template-coloc-2.xml b/cts/scheduler/template-coloc-2.xml similarity index 100% rename from cts/pengine/template-coloc-2.xml rename to cts/scheduler/template-coloc-2.xml diff --git a/cts/pengine/template-coloc-3.dot b/cts/scheduler/template-coloc-3.dot similarity index 100% rename from cts/pengine/template-coloc-3.dot rename to cts/scheduler/template-coloc-3.dot diff --git a/cts/pengine/template-coloc-3.exp b/cts/scheduler/template-coloc-3.exp similarity index 100% rename from cts/pengine/template-coloc-3.exp rename to cts/scheduler/template-coloc-3.exp diff --git a/cts/pengine/template-coloc-3.scores b/cts/scheduler/template-coloc-3.scores similarity index 100% rename from cts/pengine/template-coloc-3.scores rename to cts/scheduler/template-coloc-3.scores diff --git a/cts/pengine/template-coloc-3.summary b/cts/scheduler/template-coloc-3.summary similarity index 100% rename from cts/pengine/template-coloc-3.summary rename to cts/scheduler/template-coloc-3.summary diff --git a/cts/pengine/template-coloc-3.xml b/cts/scheduler/template-coloc-3.xml similarity index 100% rename from cts/pengine/template-coloc-3.xml rename to cts/scheduler/template-coloc-3.xml diff --git a/cts/pengine/template-order-1.dot b/cts/scheduler/template-order-1.dot similarity index 100% rename from cts/pengine/template-order-1.dot rename to cts/scheduler/template-order-1.dot diff --git a/cts/pengine/template-order-1.exp b/cts/scheduler/template-order-1.exp similarity index 100% rename from cts/pengine/template-order-1.exp rename to cts/scheduler/template-order-1.exp diff --git a/cts/pengine/template-order-1.scores b/cts/scheduler/template-order-1.scores similarity index 100% rename from cts/pengine/template-order-1.scores rename to cts/scheduler/template-order-1.scores diff --git a/cts/pengine/template-order-1.summary b/cts/scheduler/template-order-1.summary similarity index 100% rename from cts/pengine/template-order-1.summary rename to cts/scheduler/template-order-1.summary diff --git a/cts/pengine/template-order-1.xml b/cts/scheduler/template-order-1.xml similarity index 100% rename from cts/pengine/template-order-1.xml rename to cts/scheduler/template-order-1.xml diff --git a/cts/pengine/template-order-2.dot b/cts/scheduler/template-order-2.dot similarity index 100% rename from cts/pengine/template-order-2.dot rename to cts/scheduler/template-order-2.dot diff --git a/cts/pengine/template-order-2.exp b/cts/scheduler/template-order-2.exp similarity index 100% rename from cts/pengine/template-order-2.exp rename to cts/scheduler/template-order-2.exp diff --git a/cts/pengine/template-order-2.scores b/cts/scheduler/template-order-2.scores similarity index 100% rename from cts/pengine/template-order-2.scores rename to cts/scheduler/template-order-2.scores diff --git a/cts/pengine/template-order-2.summary b/cts/scheduler/template-order-2.summary similarity index 100% rename from cts/pengine/template-order-2.summary rename to cts/scheduler/template-order-2.summary diff --git a/cts/pengine/template-order-2.xml b/cts/scheduler/template-order-2.xml similarity index 100% rename from cts/pengine/template-order-2.xml rename to cts/scheduler/template-order-2.xml diff --git a/cts/pengine/template-order-3.dot b/cts/scheduler/template-order-3.dot similarity index 100% rename from cts/pengine/template-order-3.dot rename to cts/scheduler/template-order-3.dot diff --git a/cts/pengine/template-order-3.exp b/cts/scheduler/template-order-3.exp similarity index 100% rename from cts/pengine/template-order-3.exp rename to cts/scheduler/template-order-3.exp diff --git a/cts/pengine/template-order-3.scores b/cts/scheduler/template-order-3.scores similarity index 100% rename from cts/pengine/template-order-3.scores rename to cts/scheduler/template-order-3.scores diff --git a/cts/pengine/template-order-3.summary b/cts/scheduler/template-order-3.summary similarity index 100% rename from cts/pengine/template-order-3.summary rename to cts/scheduler/template-order-3.summary diff --git a/cts/pengine/template-order-3.xml b/cts/scheduler/template-order-3.xml similarity index 100% rename from cts/pengine/template-order-3.xml rename to cts/scheduler/template-order-3.xml diff --git a/cts/pengine/template-rsc-sets-1.dot b/cts/scheduler/template-rsc-sets-1.dot similarity index 100% rename from cts/pengine/template-rsc-sets-1.dot rename to cts/scheduler/template-rsc-sets-1.dot diff --git a/cts/pengine/template-rsc-sets-1.exp b/cts/scheduler/template-rsc-sets-1.exp similarity index 100% rename from cts/pengine/template-rsc-sets-1.exp rename to cts/scheduler/template-rsc-sets-1.exp diff --git a/cts/pengine/template-rsc-sets-1.scores b/cts/scheduler/template-rsc-sets-1.scores similarity index 100% rename from cts/pengine/template-rsc-sets-1.scores rename to cts/scheduler/template-rsc-sets-1.scores diff --git a/cts/pengine/template-rsc-sets-1.summary b/cts/scheduler/template-rsc-sets-1.summary similarity index 100% rename from cts/pengine/template-rsc-sets-1.summary rename to cts/scheduler/template-rsc-sets-1.summary diff --git a/cts/pengine/template-rsc-sets-1.xml b/cts/scheduler/template-rsc-sets-1.xml similarity index 100% rename from cts/pengine/template-rsc-sets-1.xml rename to cts/scheduler/template-rsc-sets-1.xml diff --git a/cts/pengine/template-rsc-sets-2.dot b/cts/scheduler/template-rsc-sets-2.dot similarity index 100% rename from cts/pengine/template-rsc-sets-2.dot rename to cts/scheduler/template-rsc-sets-2.dot diff --git a/cts/pengine/template-rsc-sets-2.exp b/cts/scheduler/template-rsc-sets-2.exp similarity index 100% rename from cts/pengine/template-rsc-sets-2.exp rename to cts/scheduler/template-rsc-sets-2.exp diff --git a/cts/pengine/template-rsc-sets-2.scores b/cts/scheduler/template-rsc-sets-2.scores similarity index 100% rename from cts/pengine/template-rsc-sets-2.scores rename to cts/scheduler/template-rsc-sets-2.scores diff --git a/cts/pengine/template-rsc-sets-2.summary b/cts/scheduler/template-rsc-sets-2.summary similarity index 100% rename from cts/pengine/template-rsc-sets-2.summary rename to cts/scheduler/template-rsc-sets-2.summary diff --git a/cts/pengine/template-rsc-sets-2.xml b/cts/scheduler/template-rsc-sets-2.xml similarity index 100% rename from cts/pengine/template-rsc-sets-2.xml rename to cts/scheduler/template-rsc-sets-2.xml diff --git a/cts/pengine/template-rsc-sets-3.dot b/cts/scheduler/template-rsc-sets-3.dot similarity index 100% rename from cts/pengine/template-rsc-sets-3.dot rename to cts/scheduler/template-rsc-sets-3.dot diff --git a/cts/pengine/template-rsc-sets-3.exp b/cts/scheduler/template-rsc-sets-3.exp similarity index 100% rename from cts/pengine/template-rsc-sets-3.exp rename to cts/scheduler/template-rsc-sets-3.exp diff --git a/cts/pengine/template-rsc-sets-3.scores b/cts/scheduler/template-rsc-sets-3.scores similarity index 100% rename from cts/pengine/template-rsc-sets-3.scores rename to cts/scheduler/template-rsc-sets-3.scores diff --git a/cts/pengine/template-rsc-sets-3.summary b/cts/scheduler/template-rsc-sets-3.summary similarity index 100% rename from cts/pengine/template-rsc-sets-3.summary rename to cts/scheduler/template-rsc-sets-3.summary diff --git a/cts/pengine/template-rsc-sets-3.xml b/cts/scheduler/template-rsc-sets-3.xml similarity index 100% rename from cts/pengine/template-rsc-sets-3.xml rename to cts/scheduler/template-rsc-sets-3.xml diff --git a/cts/pengine/template-rsc-sets-4.dot b/cts/scheduler/template-rsc-sets-4.dot similarity index 100% rename from cts/pengine/template-rsc-sets-4.dot rename to cts/scheduler/template-rsc-sets-4.dot diff --git a/cts/pengine/template-rsc-sets-4.exp b/cts/scheduler/template-rsc-sets-4.exp similarity index 100% rename from cts/pengine/template-rsc-sets-4.exp rename to cts/scheduler/template-rsc-sets-4.exp diff --git a/cts/pengine/template-rsc-sets-4.scores b/cts/scheduler/template-rsc-sets-4.scores similarity index 100% rename from cts/pengine/template-rsc-sets-4.scores rename to cts/scheduler/template-rsc-sets-4.scores diff --git a/cts/pengine/template-rsc-sets-4.summary b/cts/scheduler/template-rsc-sets-4.summary similarity index 100% rename from cts/pengine/template-rsc-sets-4.summary rename to cts/scheduler/template-rsc-sets-4.summary diff --git a/cts/pengine/template-rsc-sets-4.xml b/cts/scheduler/template-rsc-sets-4.xml similarity index 100% rename from cts/pengine/template-rsc-sets-4.xml rename to cts/scheduler/template-rsc-sets-4.xml diff --git a/cts/pengine/template-ticket.dot b/cts/scheduler/template-ticket.dot similarity index 100% rename from cts/pengine/template-ticket.dot rename to cts/scheduler/template-ticket.dot diff --git a/cts/pengine/template-ticket.exp b/cts/scheduler/template-ticket.exp similarity index 100% rename from cts/pengine/template-ticket.exp rename to cts/scheduler/template-ticket.exp diff --git a/cts/pengine/template-ticket.scores b/cts/scheduler/template-ticket.scores similarity index 100% rename from cts/pengine/template-ticket.scores rename to cts/scheduler/template-ticket.scores diff --git a/cts/pengine/template-ticket.summary b/cts/scheduler/template-ticket.summary similarity index 100% rename from cts/pengine/template-ticket.summary rename to cts/scheduler/template-ticket.summary diff --git a/cts/pengine/template-ticket.xml b/cts/scheduler/template-ticket.xml similarity index 100% rename from cts/pengine/template-ticket.xml rename to cts/scheduler/template-ticket.xml diff --git a/cts/pengine/ticket-clone-1.dot b/cts/scheduler/ticket-clone-1.dot similarity index 100% rename from cts/pengine/ticket-clone-1.dot rename to cts/scheduler/ticket-clone-1.dot diff --git a/cts/pengine/ticket-clone-1.exp b/cts/scheduler/ticket-clone-1.exp similarity index 100% rename from cts/pengine/ticket-clone-1.exp rename to cts/scheduler/ticket-clone-1.exp diff --git a/cts/pengine/ticket-clone-1.scores b/cts/scheduler/ticket-clone-1.scores similarity index 100% rename from cts/pengine/ticket-clone-1.scores rename to cts/scheduler/ticket-clone-1.scores diff --git a/cts/pengine/ticket-clone-1.summary b/cts/scheduler/ticket-clone-1.summary similarity index 100% rename from cts/pengine/ticket-clone-1.summary rename to cts/scheduler/ticket-clone-1.summary diff --git a/cts/pengine/ticket-clone-1.xml b/cts/scheduler/ticket-clone-1.xml similarity index 100% rename from cts/pengine/ticket-clone-1.xml rename to cts/scheduler/ticket-clone-1.xml diff --git a/cts/pengine/ticket-clone-10.dot b/cts/scheduler/ticket-clone-10.dot similarity index 100% rename from cts/pengine/ticket-clone-10.dot rename to cts/scheduler/ticket-clone-10.dot diff --git a/cts/pengine/ticket-clone-10.exp b/cts/scheduler/ticket-clone-10.exp similarity index 100% rename from cts/pengine/ticket-clone-10.exp rename to cts/scheduler/ticket-clone-10.exp diff --git a/cts/pengine/ticket-clone-10.scores b/cts/scheduler/ticket-clone-10.scores similarity index 100% rename from cts/pengine/ticket-clone-10.scores rename to cts/scheduler/ticket-clone-10.scores diff --git a/cts/pengine/ticket-clone-10.summary b/cts/scheduler/ticket-clone-10.summary similarity index 100% rename from cts/pengine/ticket-clone-10.summary rename to cts/scheduler/ticket-clone-10.summary diff --git a/cts/pengine/ticket-clone-10.xml b/cts/scheduler/ticket-clone-10.xml similarity index 100% rename from cts/pengine/ticket-clone-10.xml rename to cts/scheduler/ticket-clone-10.xml diff --git a/cts/pengine/ticket-clone-11.dot b/cts/scheduler/ticket-clone-11.dot similarity index 100% rename from cts/pengine/ticket-clone-11.dot rename to cts/scheduler/ticket-clone-11.dot diff --git a/cts/pengine/ticket-clone-11.exp b/cts/scheduler/ticket-clone-11.exp similarity index 100% rename from cts/pengine/ticket-clone-11.exp rename to cts/scheduler/ticket-clone-11.exp diff --git a/cts/pengine/ticket-clone-11.scores b/cts/scheduler/ticket-clone-11.scores similarity index 100% rename from cts/pengine/ticket-clone-11.scores rename to cts/scheduler/ticket-clone-11.scores diff --git a/cts/pengine/ticket-clone-11.summary b/cts/scheduler/ticket-clone-11.summary similarity index 100% rename from cts/pengine/ticket-clone-11.summary rename to cts/scheduler/ticket-clone-11.summary diff --git a/cts/pengine/ticket-clone-11.xml b/cts/scheduler/ticket-clone-11.xml similarity index 100% rename from cts/pengine/ticket-clone-11.xml rename to cts/scheduler/ticket-clone-11.xml diff --git a/cts/pengine/ticket-clone-12.dot b/cts/scheduler/ticket-clone-12.dot similarity index 100% rename from cts/pengine/ticket-clone-12.dot rename to cts/scheduler/ticket-clone-12.dot diff --git a/cts/pengine/ticket-clone-12.exp b/cts/scheduler/ticket-clone-12.exp similarity index 100% rename from cts/pengine/ticket-clone-12.exp rename to cts/scheduler/ticket-clone-12.exp diff --git a/cts/pengine/ticket-clone-12.scores b/cts/scheduler/ticket-clone-12.scores similarity index 100% rename from cts/pengine/ticket-clone-12.scores rename to cts/scheduler/ticket-clone-12.scores diff --git a/cts/pengine/ticket-clone-12.summary b/cts/scheduler/ticket-clone-12.summary similarity index 100% rename from cts/pengine/ticket-clone-12.summary rename to cts/scheduler/ticket-clone-12.summary diff --git a/cts/pengine/ticket-clone-12.xml b/cts/scheduler/ticket-clone-12.xml similarity index 100% rename from cts/pengine/ticket-clone-12.xml rename to cts/scheduler/ticket-clone-12.xml diff --git a/cts/pengine/ticket-clone-13.dot b/cts/scheduler/ticket-clone-13.dot similarity index 100% rename from cts/pengine/ticket-clone-13.dot rename to cts/scheduler/ticket-clone-13.dot diff --git a/cts/pengine/ticket-clone-13.exp b/cts/scheduler/ticket-clone-13.exp similarity index 100% rename from cts/pengine/ticket-clone-13.exp rename to cts/scheduler/ticket-clone-13.exp diff --git a/cts/pengine/ticket-clone-13.scores b/cts/scheduler/ticket-clone-13.scores similarity index 100% rename from cts/pengine/ticket-clone-13.scores rename to cts/scheduler/ticket-clone-13.scores diff --git a/cts/pengine/ticket-clone-13.summary b/cts/scheduler/ticket-clone-13.summary similarity index 100% rename from cts/pengine/ticket-clone-13.summary rename to cts/scheduler/ticket-clone-13.summary diff --git a/cts/pengine/ticket-clone-13.xml b/cts/scheduler/ticket-clone-13.xml similarity index 100% rename from cts/pengine/ticket-clone-13.xml rename to cts/scheduler/ticket-clone-13.xml diff --git a/cts/pengine/ticket-clone-14.dot b/cts/scheduler/ticket-clone-14.dot similarity index 100% rename from cts/pengine/ticket-clone-14.dot rename to cts/scheduler/ticket-clone-14.dot diff --git a/cts/pengine/ticket-clone-14.exp b/cts/scheduler/ticket-clone-14.exp similarity index 100% rename from cts/pengine/ticket-clone-14.exp rename to cts/scheduler/ticket-clone-14.exp diff --git a/cts/pengine/ticket-clone-14.scores b/cts/scheduler/ticket-clone-14.scores similarity index 100% rename from cts/pengine/ticket-clone-14.scores rename to cts/scheduler/ticket-clone-14.scores diff --git a/cts/pengine/ticket-clone-14.summary b/cts/scheduler/ticket-clone-14.summary similarity index 100% rename from cts/pengine/ticket-clone-14.summary rename to cts/scheduler/ticket-clone-14.summary diff --git a/cts/pengine/ticket-clone-14.xml b/cts/scheduler/ticket-clone-14.xml similarity index 100% rename from cts/pengine/ticket-clone-14.xml rename to cts/scheduler/ticket-clone-14.xml diff --git a/cts/pengine/ticket-clone-15.dot b/cts/scheduler/ticket-clone-15.dot similarity index 100% rename from cts/pengine/ticket-clone-15.dot rename to cts/scheduler/ticket-clone-15.dot diff --git a/cts/pengine/ticket-clone-15.exp b/cts/scheduler/ticket-clone-15.exp similarity index 100% rename from cts/pengine/ticket-clone-15.exp rename to cts/scheduler/ticket-clone-15.exp diff --git a/cts/pengine/ticket-clone-15.scores b/cts/scheduler/ticket-clone-15.scores similarity index 100% rename from cts/pengine/ticket-clone-15.scores rename to cts/scheduler/ticket-clone-15.scores diff --git a/cts/pengine/ticket-clone-15.summary b/cts/scheduler/ticket-clone-15.summary similarity index 100% rename from cts/pengine/ticket-clone-15.summary rename to cts/scheduler/ticket-clone-15.summary diff --git a/cts/pengine/ticket-clone-15.xml b/cts/scheduler/ticket-clone-15.xml similarity index 100% rename from cts/pengine/ticket-clone-15.xml rename to cts/scheduler/ticket-clone-15.xml diff --git a/cts/pengine/ticket-clone-16.dot b/cts/scheduler/ticket-clone-16.dot similarity index 100% rename from cts/pengine/ticket-clone-16.dot rename to cts/scheduler/ticket-clone-16.dot diff --git a/cts/pengine/ticket-clone-16.exp b/cts/scheduler/ticket-clone-16.exp similarity index 100% rename from cts/pengine/ticket-clone-16.exp rename to cts/scheduler/ticket-clone-16.exp diff --git a/cts/pengine/ticket-clone-16.scores b/cts/scheduler/ticket-clone-16.scores similarity index 100% rename from cts/pengine/ticket-clone-16.scores rename to cts/scheduler/ticket-clone-16.scores diff --git a/cts/pengine/ticket-clone-16.summary b/cts/scheduler/ticket-clone-16.summary similarity index 100% rename from cts/pengine/ticket-clone-16.summary rename to cts/scheduler/ticket-clone-16.summary diff --git a/cts/pengine/ticket-clone-16.xml b/cts/scheduler/ticket-clone-16.xml similarity index 100% rename from cts/pengine/ticket-clone-16.xml rename to cts/scheduler/ticket-clone-16.xml diff --git a/cts/pengine/ticket-clone-17.dot b/cts/scheduler/ticket-clone-17.dot similarity index 100% rename from cts/pengine/ticket-clone-17.dot rename to cts/scheduler/ticket-clone-17.dot diff --git a/cts/pengine/ticket-clone-17.exp b/cts/scheduler/ticket-clone-17.exp similarity index 100% rename from cts/pengine/ticket-clone-17.exp rename to cts/scheduler/ticket-clone-17.exp diff --git a/cts/pengine/ticket-clone-17.scores b/cts/scheduler/ticket-clone-17.scores similarity index 100% rename from cts/pengine/ticket-clone-17.scores rename to cts/scheduler/ticket-clone-17.scores diff --git a/cts/pengine/ticket-clone-17.summary b/cts/scheduler/ticket-clone-17.summary similarity index 100% rename from cts/pengine/ticket-clone-17.summary rename to cts/scheduler/ticket-clone-17.summary diff --git a/cts/pengine/ticket-clone-17.xml b/cts/scheduler/ticket-clone-17.xml similarity index 100% rename from cts/pengine/ticket-clone-17.xml rename to cts/scheduler/ticket-clone-17.xml diff --git a/cts/pengine/ticket-clone-18.dot b/cts/scheduler/ticket-clone-18.dot similarity index 100% rename from cts/pengine/ticket-clone-18.dot rename to cts/scheduler/ticket-clone-18.dot diff --git a/cts/pengine/ticket-clone-18.exp b/cts/scheduler/ticket-clone-18.exp similarity index 100% rename from cts/pengine/ticket-clone-18.exp rename to cts/scheduler/ticket-clone-18.exp diff --git a/cts/pengine/ticket-clone-18.scores b/cts/scheduler/ticket-clone-18.scores similarity index 100% rename from cts/pengine/ticket-clone-18.scores rename to cts/scheduler/ticket-clone-18.scores diff --git a/cts/pengine/ticket-clone-18.summary b/cts/scheduler/ticket-clone-18.summary similarity index 100% rename from cts/pengine/ticket-clone-18.summary rename to cts/scheduler/ticket-clone-18.summary diff --git a/cts/pengine/ticket-clone-18.xml b/cts/scheduler/ticket-clone-18.xml similarity index 100% rename from cts/pengine/ticket-clone-18.xml rename to cts/scheduler/ticket-clone-18.xml diff --git a/cts/pengine/ticket-clone-19.dot b/cts/scheduler/ticket-clone-19.dot similarity index 100% rename from cts/pengine/ticket-clone-19.dot rename to cts/scheduler/ticket-clone-19.dot diff --git a/cts/pengine/ticket-clone-19.exp b/cts/scheduler/ticket-clone-19.exp similarity index 100% rename from cts/pengine/ticket-clone-19.exp rename to cts/scheduler/ticket-clone-19.exp diff --git a/cts/pengine/ticket-clone-19.scores b/cts/scheduler/ticket-clone-19.scores similarity index 100% rename from cts/pengine/ticket-clone-19.scores rename to cts/scheduler/ticket-clone-19.scores diff --git a/cts/pengine/ticket-clone-19.summary b/cts/scheduler/ticket-clone-19.summary similarity index 100% rename from cts/pengine/ticket-clone-19.summary rename to cts/scheduler/ticket-clone-19.summary diff --git a/cts/pengine/ticket-clone-19.xml b/cts/scheduler/ticket-clone-19.xml similarity index 100% rename from cts/pengine/ticket-clone-19.xml rename to cts/scheduler/ticket-clone-19.xml diff --git a/cts/pengine/ticket-clone-2.dot b/cts/scheduler/ticket-clone-2.dot similarity index 100% rename from cts/pengine/ticket-clone-2.dot rename to cts/scheduler/ticket-clone-2.dot diff --git a/cts/pengine/ticket-clone-2.exp b/cts/scheduler/ticket-clone-2.exp similarity index 100% rename from cts/pengine/ticket-clone-2.exp rename to cts/scheduler/ticket-clone-2.exp diff --git a/cts/pengine/ticket-clone-2.scores b/cts/scheduler/ticket-clone-2.scores similarity index 100% rename from cts/pengine/ticket-clone-2.scores rename to cts/scheduler/ticket-clone-2.scores diff --git a/cts/pengine/ticket-clone-2.summary b/cts/scheduler/ticket-clone-2.summary similarity index 100% rename from cts/pengine/ticket-clone-2.summary rename to cts/scheduler/ticket-clone-2.summary diff --git a/cts/pengine/ticket-clone-2.xml b/cts/scheduler/ticket-clone-2.xml similarity index 100% rename from cts/pengine/ticket-clone-2.xml rename to cts/scheduler/ticket-clone-2.xml diff --git a/cts/pengine/ticket-clone-20.dot b/cts/scheduler/ticket-clone-20.dot similarity index 100% rename from cts/pengine/ticket-clone-20.dot rename to cts/scheduler/ticket-clone-20.dot diff --git a/cts/pengine/ticket-clone-20.exp b/cts/scheduler/ticket-clone-20.exp similarity index 100% rename from cts/pengine/ticket-clone-20.exp rename to cts/scheduler/ticket-clone-20.exp diff --git a/cts/pengine/ticket-clone-20.scores b/cts/scheduler/ticket-clone-20.scores similarity index 100% rename from cts/pengine/ticket-clone-20.scores rename to cts/scheduler/ticket-clone-20.scores diff --git a/cts/pengine/ticket-clone-20.summary b/cts/scheduler/ticket-clone-20.summary similarity index 100% rename from cts/pengine/ticket-clone-20.summary rename to cts/scheduler/ticket-clone-20.summary diff --git a/cts/pengine/ticket-clone-20.xml b/cts/scheduler/ticket-clone-20.xml similarity index 100% rename from cts/pengine/ticket-clone-20.xml rename to cts/scheduler/ticket-clone-20.xml diff --git a/cts/pengine/ticket-clone-21.dot b/cts/scheduler/ticket-clone-21.dot similarity index 100% rename from cts/pengine/ticket-clone-21.dot rename to cts/scheduler/ticket-clone-21.dot diff --git a/cts/pengine/ticket-clone-21.exp b/cts/scheduler/ticket-clone-21.exp similarity index 100% rename from cts/pengine/ticket-clone-21.exp rename to cts/scheduler/ticket-clone-21.exp diff --git a/cts/pengine/ticket-clone-21.scores b/cts/scheduler/ticket-clone-21.scores similarity index 100% rename from cts/pengine/ticket-clone-21.scores rename to cts/scheduler/ticket-clone-21.scores diff --git a/cts/pengine/ticket-clone-21.summary b/cts/scheduler/ticket-clone-21.summary similarity index 100% rename from cts/pengine/ticket-clone-21.summary rename to cts/scheduler/ticket-clone-21.summary diff --git a/cts/pengine/ticket-clone-21.xml b/cts/scheduler/ticket-clone-21.xml similarity index 100% rename from cts/pengine/ticket-clone-21.xml rename to cts/scheduler/ticket-clone-21.xml diff --git a/cts/pengine/ticket-clone-22.dot b/cts/scheduler/ticket-clone-22.dot similarity index 100% rename from cts/pengine/ticket-clone-22.dot rename to cts/scheduler/ticket-clone-22.dot diff --git a/cts/pengine/ticket-clone-22.exp b/cts/scheduler/ticket-clone-22.exp similarity index 100% rename from cts/pengine/ticket-clone-22.exp rename to cts/scheduler/ticket-clone-22.exp diff --git a/cts/pengine/ticket-clone-22.scores b/cts/scheduler/ticket-clone-22.scores similarity index 100% rename from cts/pengine/ticket-clone-22.scores rename to cts/scheduler/ticket-clone-22.scores diff --git a/cts/pengine/ticket-clone-22.summary b/cts/scheduler/ticket-clone-22.summary similarity index 100% rename from cts/pengine/ticket-clone-22.summary rename to cts/scheduler/ticket-clone-22.summary diff --git a/cts/pengine/ticket-clone-22.xml b/cts/scheduler/ticket-clone-22.xml similarity index 100% rename from cts/pengine/ticket-clone-22.xml rename to cts/scheduler/ticket-clone-22.xml diff --git a/cts/pengine/ticket-clone-23.dot b/cts/scheduler/ticket-clone-23.dot similarity index 100% rename from cts/pengine/ticket-clone-23.dot rename to cts/scheduler/ticket-clone-23.dot diff --git a/cts/pengine/ticket-clone-23.exp b/cts/scheduler/ticket-clone-23.exp similarity index 100% rename from cts/pengine/ticket-clone-23.exp rename to cts/scheduler/ticket-clone-23.exp diff --git a/cts/pengine/ticket-clone-23.scores b/cts/scheduler/ticket-clone-23.scores similarity index 100% rename from cts/pengine/ticket-clone-23.scores rename to cts/scheduler/ticket-clone-23.scores diff --git a/cts/pengine/ticket-clone-23.summary b/cts/scheduler/ticket-clone-23.summary similarity index 100% rename from cts/pengine/ticket-clone-23.summary rename to cts/scheduler/ticket-clone-23.summary diff --git a/cts/pengine/ticket-clone-23.xml b/cts/scheduler/ticket-clone-23.xml similarity index 100% rename from cts/pengine/ticket-clone-23.xml rename to cts/scheduler/ticket-clone-23.xml diff --git a/cts/pengine/ticket-clone-24.dot b/cts/scheduler/ticket-clone-24.dot similarity index 100% rename from cts/pengine/ticket-clone-24.dot rename to cts/scheduler/ticket-clone-24.dot diff --git a/cts/pengine/ticket-clone-24.exp b/cts/scheduler/ticket-clone-24.exp similarity index 100% rename from cts/pengine/ticket-clone-24.exp rename to cts/scheduler/ticket-clone-24.exp diff --git a/cts/pengine/ticket-clone-24.scores b/cts/scheduler/ticket-clone-24.scores similarity index 100% rename from cts/pengine/ticket-clone-24.scores rename to cts/scheduler/ticket-clone-24.scores diff --git a/cts/pengine/ticket-clone-24.summary b/cts/scheduler/ticket-clone-24.summary similarity index 100% rename from cts/pengine/ticket-clone-24.summary rename to cts/scheduler/ticket-clone-24.summary diff --git a/cts/pengine/ticket-clone-24.xml b/cts/scheduler/ticket-clone-24.xml similarity index 100% rename from cts/pengine/ticket-clone-24.xml rename to cts/scheduler/ticket-clone-24.xml diff --git a/cts/pengine/ticket-clone-3.dot b/cts/scheduler/ticket-clone-3.dot similarity index 100% rename from cts/pengine/ticket-clone-3.dot rename to cts/scheduler/ticket-clone-3.dot diff --git a/cts/pengine/ticket-clone-3.exp b/cts/scheduler/ticket-clone-3.exp similarity index 100% rename from cts/pengine/ticket-clone-3.exp rename to cts/scheduler/ticket-clone-3.exp diff --git a/cts/pengine/ticket-clone-3.scores b/cts/scheduler/ticket-clone-3.scores similarity index 100% rename from cts/pengine/ticket-clone-3.scores rename to cts/scheduler/ticket-clone-3.scores diff --git a/cts/pengine/ticket-clone-3.summary b/cts/scheduler/ticket-clone-3.summary similarity index 100% rename from cts/pengine/ticket-clone-3.summary rename to cts/scheduler/ticket-clone-3.summary diff --git a/cts/pengine/ticket-clone-3.xml b/cts/scheduler/ticket-clone-3.xml similarity index 100% rename from cts/pengine/ticket-clone-3.xml rename to cts/scheduler/ticket-clone-3.xml diff --git a/cts/pengine/ticket-clone-4.dot b/cts/scheduler/ticket-clone-4.dot similarity index 100% rename from cts/pengine/ticket-clone-4.dot rename to cts/scheduler/ticket-clone-4.dot diff --git a/cts/pengine/ticket-clone-4.exp b/cts/scheduler/ticket-clone-4.exp similarity index 100% rename from cts/pengine/ticket-clone-4.exp rename to cts/scheduler/ticket-clone-4.exp diff --git a/cts/pengine/ticket-clone-4.scores b/cts/scheduler/ticket-clone-4.scores similarity index 100% rename from cts/pengine/ticket-clone-4.scores rename to cts/scheduler/ticket-clone-4.scores diff --git a/cts/pengine/ticket-clone-4.summary b/cts/scheduler/ticket-clone-4.summary similarity index 100% rename from cts/pengine/ticket-clone-4.summary rename to cts/scheduler/ticket-clone-4.summary diff --git a/cts/pengine/ticket-clone-4.xml b/cts/scheduler/ticket-clone-4.xml similarity index 100% rename from cts/pengine/ticket-clone-4.xml rename to cts/scheduler/ticket-clone-4.xml diff --git a/cts/pengine/ticket-clone-5.dot b/cts/scheduler/ticket-clone-5.dot similarity index 100% rename from cts/pengine/ticket-clone-5.dot rename to cts/scheduler/ticket-clone-5.dot diff --git a/cts/pengine/ticket-clone-5.exp b/cts/scheduler/ticket-clone-5.exp similarity index 100% rename from cts/pengine/ticket-clone-5.exp rename to cts/scheduler/ticket-clone-5.exp diff --git a/cts/pengine/ticket-clone-5.scores b/cts/scheduler/ticket-clone-5.scores similarity index 100% rename from cts/pengine/ticket-clone-5.scores rename to cts/scheduler/ticket-clone-5.scores diff --git a/cts/pengine/ticket-clone-5.summary b/cts/scheduler/ticket-clone-5.summary similarity index 100% rename from cts/pengine/ticket-clone-5.summary rename to cts/scheduler/ticket-clone-5.summary diff --git a/cts/pengine/ticket-clone-5.xml b/cts/scheduler/ticket-clone-5.xml similarity index 100% rename from cts/pengine/ticket-clone-5.xml rename to cts/scheduler/ticket-clone-5.xml diff --git a/cts/pengine/ticket-clone-6.dot b/cts/scheduler/ticket-clone-6.dot similarity index 100% rename from cts/pengine/ticket-clone-6.dot rename to cts/scheduler/ticket-clone-6.dot diff --git a/cts/pengine/ticket-clone-6.exp b/cts/scheduler/ticket-clone-6.exp similarity index 100% rename from cts/pengine/ticket-clone-6.exp rename to cts/scheduler/ticket-clone-6.exp diff --git a/cts/pengine/ticket-clone-6.scores b/cts/scheduler/ticket-clone-6.scores similarity index 100% rename from cts/pengine/ticket-clone-6.scores rename to cts/scheduler/ticket-clone-6.scores diff --git a/cts/pengine/ticket-clone-6.summary b/cts/scheduler/ticket-clone-6.summary similarity index 100% rename from cts/pengine/ticket-clone-6.summary rename to cts/scheduler/ticket-clone-6.summary diff --git a/cts/pengine/ticket-clone-6.xml b/cts/scheduler/ticket-clone-6.xml similarity index 100% rename from cts/pengine/ticket-clone-6.xml rename to cts/scheduler/ticket-clone-6.xml diff --git a/cts/pengine/ticket-clone-7.dot b/cts/scheduler/ticket-clone-7.dot similarity index 100% rename from cts/pengine/ticket-clone-7.dot rename to cts/scheduler/ticket-clone-7.dot diff --git a/cts/pengine/ticket-clone-7.exp b/cts/scheduler/ticket-clone-7.exp similarity index 100% rename from cts/pengine/ticket-clone-7.exp rename to cts/scheduler/ticket-clone-7.exp diff --git a/cts/pengine/ticket-clone-7.scores b/cts/scheduler/ticket-clone-7.scores similarity index 100% rename from cts/pengine/ticket-clone-7.scores rename to cts/scheduler/ticket-clone-7.scores diff --git a/cts/pengine/ticket-clone-7.summary b/cts/scheduler/ticket-clone-7.summary similarity index 100% rename from cts/pengine/ticket-clone-7.summary rename to cts/scheduler/ticket-clone-7.summary diff --git a/cts/pengine/ticket-clone-7.xml b/cts/scheduler/ticket-clone-7.xml similarity index 100% rename from cts/pengine/ticket-clone-7.xml rename to cts/scheduler/ticket-clone-7.xml diff --git a/cts/pengine/ticket-clone-8.dot b/cts/scheduler/ticket-clone-8.dot similarity index 100% rename from cts/pengine/ticket-clone-8.dot rename to cts/scheduler/ticket-clone-8.dot diff --git a/cts/pengine/ticket-clone-8.exp b/cts/scheduler/ticket-clone-8.exp similarity index 100% rename from cts/pengine/ticket-clone-8.exp rename to cts/scheduler/ticket-clone-8.exp diff --git a/cts/pengine/ticket-clone-8.scores b/cts/scheduler/ticket-clone-8.scores similarity index 100% rename from cts/pengine/ticket-clone-8.scores rename to cts/scheduler/ticket-clone-8.scores diff --git a/cts/pengine/ticket-clone-8.summary b/cts/scheduler/ticket-clone-8.summary similarity index 100% rename from cts/pengine/ticket-clone-8.summary rename to cts/scheduler/ticket-clone-8.summary diff --git a/cts/pengine/ticket-clone-8.xml b/cts/scheduler/ticket-clone-8.xml similarity index 100% rename from cts/pengine/ticket-clone-8.xml rename to cts/scheduler/ticket-clone-8.xml diff --git a/cts/pengine/ticket-clone-9.dot b/cts/scheduler/ticket-clone-9.dot similarity index 100% rename from cts/pengine/ticket-clone-9.dot rename to cts/scheduler/ticket-clone-9.dot diff --git a/cts/pengine/ticket-clone-9.exp b/cts/scheduler/ticket-clone-9.exp similarity index 100% rename from cts/pengine/ticket-clone-9.exp rename to cts/scheduler/ticket-clone-9.exp diff --git a/cts/pengine/ticket-clone-9.scores b/cts/scheduler/ticket-clone-9.scores similarity index 100% rename from cts/pengine/ticket-clone-9.scores rename to cts/scheduler/ticket-clone-9.scores diff --git a/cts/pengine/ticket-clone-9.summary b/cts/scheduler/ticket-clone-9.summary similarity index 100% rename from cts/pengine/ticket-clone-9.summary rename to cts/scheduler/ticket-clone-9.summary diff --git a/cts/pengine/ticket-clone-9.xml b/cts/scheduler/ticket-clone-9.xml similarity index 100% rename from cts/pengine/ticket-clone-9.xml rename to cts/scheduler/ticket-clone-9.xml diff --git a/cts/pengine/ticket-group-1.dot b/cts/scheduler/ticket-group-1.dot similarity index 100% rename from cts/pengine/ticket-group-1.dot rename to cts/scheduler/ticket-group-1.dot diff --git a/cts/pengine/ticket-group-1.exp b/cts/scheduler/ticket-group-1.exp similarity index 100% rename from cts/pengine/ticket-group-1.exp rename to cts/scheduler/ticket-group-1.exp diff --git a/cts/pengine/ticket-group-1.scores b/cts/scheduler/ticket-group-1.scores similarity index 100% rename from cts/pengine/ticket-group-1.scores rename to cts/scheduler/ticket-group-1.scores diff --git a/cts/pengine/ticket-group-1.summary b/cts/scheduler/ticket-group-1.summary similarity index 100% rename from cts/pengine/ticket-group-1.summary rename to cts/scheduler/ticket-group-1.summary diff --git a/cts/pengine/ticket-group-1.xml b/cts/scheduler/ticket-group-1.xml similarity index 100% rename from cts/pengine/ticket-group-1.xml rename to cts/scheduler/ticket-group-1.xml diff --git a/cts/pengine/ticket-group-10.dot b/cts/scheduler/ticket-group-10.dot similarity index 100% rename from cts/pengine/ticket-group-10.dot rename to cts/scheduler/ticket-group-10.dot diff --git a/cts/pengine/ticket-group-10.exp b/cts/scheduler/ticket-group-10.exp similarity index 100% rename from cts/pengine/ticket-group-10.exp rename to cts/scheduler/ticket-group-10.exp diff --git a/cts/pengine/ticket-group-10.scores b/cts/scheduler/ticket-group-10.scores similarity index 100% rename from cts/pengine/ticket-group-10.scores rename to cts/scheduler/ticket-group-10.scores diff --git a/cts/pengine/ticket-group-10.summary b/cts/scheduler/ticket-group-10.summary similarity index 100% rename from cts/pengine/ticket-group-10.summary rename to cts/scheduler/ticket-group-10.summary diff --git a/cts/pengine/ticket-group-10.xml b/cts/scheduler/ticket-group-10.xml similarity index 100% rename from cts/pengine/ticket-group-10.xml rename to cts/scheduler/ticket-group-10.xml diff --git a/cts/pengine/ticket-group-11.dot b/cts/scheduler/ticket-group-11.dot similarity index 100% rename from cts/pengine/ticket-group-11.dot rename to cts/scheduler/ticket-group-11.dot diff --git a/cts/pengine/ticket-group-11.exp b/cts/scheduler/ticket-group-11.exp similarity index 100% rename from cts/pengine/ticket-group-11.exp rename to cts/scheduler/ticket-group-11.exp diff --git a/cts/pengine/ticket-group-11.scores b/cts/scheduler/ticket-group-11.scores similarity index 100% rename from cts/pengine/ticket-group-11.scores rename to cts/scheduler/ticket-group-11.scores diff --git a/cts/pengine/ticket-group-11.summary b/cts/scheduler/ticket-group-11.summary similarity index 100% rename from cts/pengine/ticket-group-11.summary rename to cts/scheduler/ticket-group-11.summary diff --git a/cts/pengine/ticket-group-11.xml b/cts/scheduler/ticket-group-11.xml similarity index 100% rename from cts/pengine/ticket-group-11.xml rename to cts/scheduler/ticket-group-11.xml diff --git a/cts/pengine/ticket-group-12.dot b/cts/scheduler/ticket-group-12.dot similarity index 100% rename from cts/pengine/ticket-group-12.dot rename to cts/scheduler/ticket-group-12.dot diff --git a/cts/pengine/ticket-group-12.exp b/cts/scheduler/ticket-group-12.exp similarity index 100% rename from cts/pengine/ticket-group-12.exp rename to cts/scheduler/ticket-group-12.exp diff --git a/cts/pengine/ticket-group-12.scores b/cts/scheduler/ticket-group-12.scores similarity index 100% rename from cts/pengine/ticket-group-12.scores rename to cts/scheduler/ticket-group-12.scores diff --git a/cts/pengine/ticket-group-12.summary b/cts/scheduler/ticket-group-12.summary similarity index 100% rename from cts/pengine/ticket-group-12.summary rename to cts/scheduler/ticket-group-12.summary diff --git a/cts/pengine/ticket-group-12.xml b/cts/scheduler/ticket-group-12.xml similarity index 100% rename from cts/pengine/ticket-group-12.xml rename to cts/scheduler/ticket-group-12.xml diff --git a/cts/pengine/ticket-group-13.dot b/cts/scheduler/ticket-group-13.dot similarity index 100% rename from cts/pengine/ticket-group-13.dot rename to cts/scheduler/ticket-group-13.dot diff --git a/cts/pengine/ticket-group-13.exp b/cts/scheduler/ticket-group-13.exp similarity index 100% rename from cts/pengine/ticket-group-13.exp rename to cts/scheduler/ticket-group-13.exp diff --git a/cts/pengine/ticket-group-13.scores b/cts/scheduler/ticket-group-13.scores similarity index 100% rename from cts/pengine/ticket-group-13.scores rename to cts/scheduler/ticket-group-13.scores diff --git a/cts/pengine/ticket-group-13.summary b/cts/scheduler/ticket-group-13.summary similarity index 100% rename from cts/pengine/ticket-group-13.summary rename to cts/scheduler/ticket-group-13.summary diff --git a/cts/pengine/ticket-group-13.xml b/cts/scheduler/ticket-group-13.xml similarity index 100% rename from cts/pengine/ticket-group-13.xml rename to cts/scheduler/ticket-group-13.xml diff --git a/cts/pengine/ticket-group-14.dot b/cts/scheduler/ticket-group-14.dot similarity index 100% rename from cts/pengine/ticket-group-14.dot rename to cts/scheduler/ticket-group-14.dot diff --git a/cts/pengine/ticket-group-14.exp b/cts/scheduler/ticket-group-14.exp similarity index 100% rename from cts/pengine/ticket-group-14.exp rename to cts/scheduler/ticket-group-14.exp diff --git a/cts/pengine/ticket-group-14.scores b/cts/scheduler/ticket-group-14.scores similarity index 100% rename from cts/pengine/ticket-group-14.scores rename to cts/scheduler/ticket-group-14.scores diff --git a/cts/pengine/ticket-group-14.summary b/cts/scheduler/ticket-group-14.summary similarity index 100% rename from cts/pengine/ticket-group-14.summary rename to cts/scheduler/ticket-group-14.summary diff --git a/cts/pengine/ticket-group-14.xml b/cts/scheduler/ticket-group-14.xml similarity index 100% rename from cts/pengine/ticket-group-14.xml rename to cts/scheduler/ticket-group-14.xml diff --git a/cts/pengine/ticket-group-15.dot b/cts/scheduler/ticket-group-15.dot similarity index 100% rename from cts/pengine/ticket-group-15.dot rename to cts/scheduler/ticket-group-15.dot diff --git a/cts/pengine/ticket-group-15.exp b/cts/scheduler/ticket-group-15.exp similarity index 100% rename from cts/pengine/ticket-group-15.exp rename to cts/scheduler/ticket-group-15.exp diff --git a/cts/pengine/ticket-group-15.scores b/cts/scheduler/ticket-group-15.scores similarity index 100% rename from cts/pengine/ticket-group-15.scores rename to cts/scheduler/ticket-group-15.scores diff --git a/cts/pengine/ticket-group-15.summary b/cts/scheduler/ticket-group-15.summary similarity index 100% rename from cts/pengine/ticket-group-15.summary rename to cts/scheduler/ticket-group-15.summary diff --git a/cts/pengine/ticket-group-15.xml b/cts/scheduler/ticket-group-15.xml similarity index 100% rename from cts/pengine/ticket-group-15.xml rename to cts/scheduler/ticket-group-15.xml diff --git a/cts/pengine/ticket-group-16.dot b/cts/scheduler/ticket-group-16.dot similarity index 100% rename from cts/pengine/ticket-group-16.dot rename to cts/scheduler/ticket-group-16.dot diff --git a/cts/pengine/ticket-group-16.exp b/cts/scheduler/ticket-group-16.exp similarity index 100% rename from cts/pengine/ticket-group-16.exp rename to cts/scheduler/ticket-group-16.exp diff --git a/cts/pengine/ticket-group-16.scores b/cts/scheduler/ticket-group-16.scores similarity index 100% rename from cts/pengine/ticket-group-16.scores rename to cts/scheduler/ticket-group-16.scores diff --git a/cts/pengine/ticket-group-16.summary b/cts/scheduler/ticket-group-16.summary similarity index 100% rename from cts/pengine/ticket-group-16.summary rename to cts/scheduler/ticket-group-16.summary diff --git a/cts/pengine/ticket-group-16.xml b/cts/scheduler/ticket-group-16.xml similarity index 100% rename from cts/pengine/ticket-group-16.xml rename to cts/scheduler/ticket-group-16.xml diff --git a/cts/pengine/ticket-group-17.dot b/cts/scheduler/ticket-group-17.dot similarity index 100% rename from cts/pengine/ticket-group-17.dot rename to cts/scheduler/ticket-group-17.dot diff --git a/cts/pengine/ticket-group-17.exp b/cts/scheduler/ticket-group-17.exp similarity index 100% rename from cts/pengine/ticket-group-17.exp rename to cts/scheduler/ticket-group-17.exp diff --git a/cts/pengine/ticket-group-17.scores b/cts/scheduler/ticket-group-17.scores similarity index 100% rename from cts/pengine/ticket-group-17.scores rename to cts/scheduler/ticket-group-17.scores diff --git a/cts/pengine/ticket-group-17.summary b/cts/scheduler/ticket-group-17.summary similarity index 100% rename from cts/pengine/ticket-group-17.summary rename to cts/scheduler/ticket-group-17.summary diff --git a/cts/pengine/ticket-group-17.xml b/cts/scheduler/ticket-group-17.xml similarity index 100% rename from cts/pengine/ticket-group-17.xml rename to cts/scheduler/ticket-group-17.xml diff --git a/cts/pengine/ticket-group-18.dot b/cts/scheduler/ticket-group-18.dot similarity index 100% rename from cts/pengine/ticket-group-18.dot rename to cts/scheduler/ticket-group-18.dot diff --git a/cts/pengine/ticket-group-18.exp b/cts/scheduler/ticket-group-18.exp similarity index 100% rename from cts/pengine/ticket-group-18.exp rename to cts/scheduler/ticket-group-18.exp diff --git a/cts/pengine/ticket-group-18.scores b/cts/scheduler/ticket-group-18.scores similarity index 100% rename from cts/pengine/ticket-group-18.scores rename to cts/scheduler/ticket-group-18.scores diff --git a/cts/pengine/ticket-group-18.summary b/cts/scheduler/ticket-group-18.summary similarity index 100% rename from cts/pengine/ticket-group-18.summary rename to cts/scheduler/ticket-group-18.summary diff --git a/cts/pengine/ticket-group-18.xml b/cts/scheduler/ticket-group-18.xml similarity index 100% rename from cts/pengine/ticket-group-18.xml rename to cts/scheduler/ticket-group-18.xml diff --git a/cts/pengine/ticket-group-19.dot b/cts/scheduler/ticket-group-19.dot similarity index 100% rename from cts/pengine/ticket-group-19.dot rename to cts/scheduler/ticket-group-19.dot diff --git a/cts/pengine/ticket-group-19.exp b/cts/scheduler/ticket-group-19.exp similarity index 100% rename from cts/pengine/ticket-group-19.exp rename to cts/scheduler/ticket-group-19.exp diff --git a/cts/pengine/ticket-group-19.scores b/cts/scheduler/ticket-group-19.scores similarity index 100% rename from cts/pengine/ticket-group-19.scores rename to cts/scheduler/ticket-group-19.scores diff --git a/cts/pengine/ticket-group-19.summary b/cts/scheduler/ticket-group-19.summary similarity index 100% rename from cts/pengine/ticket-group-19.summary rename to cts/scheduler/ticket-group-19.summary diff --git a/cts/pengine/ticket-group-19.xml b/cts/scheduler/ticket-group-19.xml similarity index 100% rename from cts/pengine/ticket-group-19.xml rename to cts/scheduler/ticket-group-19.xml diff --git a/cts/pengine/ticket-group-2.dot b/cts/scheduler/ticket-group-2.dot similarity index 100% rename from cts/pengine/ticket-group-2.dot rename to cts/scheduler/ticket-group-2.dot diff --git a/cts/pengine/ticket-group-2.exp b/cts/scheduler/ticket-group-2.exp similarity index 100% rename from cts/pengine/ticket-group-2.exp rename to cts/scheduler/ticket-group-2.exp diff --git a/cts/pengine/ticket-group-2.scores b/cts/scheduler/ticket-group-2.scores similarity index 100% rename from cts/pengine/ticket-group-2.scores rename to cts/scheduler/ticket-group-2.scores diff --git a/cts/pengine/ticket-group-2.summary b/cts/scheduler/ticket-group-2.summary similarity index 100% rename from cts/pengine/ticket-group-2.summary rename to cts/scheduler/ticket-group-2.summary diff --git a/cts/pengine/ticket-group-2.xml b/cts/scheduler/ticket-group-2.xml similarity index 100% rename from cts/pengine/ticket-group-2.xml rename to cts/scheduler/ticket-group-2.xml diff --git a/cts/pengine/ticket-group-20.dot b/cts/scheduler/ticket-group-20.dot similarity index 100% rename from cts/pengine/ticket-group-20.dot rename to cts/scheduler/ticket-group-20.dot diff --git a/cts/pengine/ticket-group-20.exp b/cts/scheduler/ticket-group-20.exp similarity index 100% rename from cts/pengine/ticket-group-20.exp rename to cts/scheduler/ticket-group-20.exp diff --git a/cts/pengine/ticket-group-20.scores b/cts/scheduler/ticket-group-20.scores similarity index 100% rename from cts/pengine/ticket-group-20.scores rename to cts/scheduler/ticket-group-20.scores diff --git a/cts/pengine/ticket-group-20.summary b/cts/scheduler/ticket-group-20.summary similarity index 100% rename from cts/pengine/ticket-group-20.summary rename to cts/scheduler/ticket-group-20.summary diff --git a/cts/pengine/ticket-group-20.xml b/cts/scheduler/ticket-group-20.xml similarity index 100% rename from cts/pengine/ticket-group-20.xml rename to cts/scheduler/ticket-group-20.xml diff --git a/cts/pengine/ticket-group-21.dot b/cts/scheduler/ticket-group-21.dot similarity index 100% rename from cts/pengine/ticket-group-21.dot rename to cts/scheduler/ticket-group-21.dot diff --git a/cts/pengine/ticket-group-21.exp b/cts/scheduler/ticket-group-21.exp similarity index 100% rename from cts/pengine/ticket-group-21.exp rename to cts/scheduler/ticket-group-21.exp diff --git a/cts/pengine/ticket-group-21.scores b/cts/scheduler/ticket-group-21.scores similarity index 100% rename from cts/pengine/ticket-group-21.scores rename to cts/scheduler/ticket-group-21.scores diff --git a/cts/pengine/ticket-group-21.summary b/cts/scheduler/ticket-group-21.summary similarity index 100% rename from cts/pengine/ticket-group-21.summary rename to cts/scheduler/ticket-group-21.summary diff --git a/cts/pengine/ticket-group-21.xml b/cts/scheduler/ticket-group-21.xml similarity index 100% rename from cts/pengine/ticket-group-21.xml rename to cts/scheduler/ticket-group-21.xml diff --git a/cts/pengine/ticket-group-22.dot b/cts/scheduler/ticket-group-22.dot similarity index 100% rename from cts/pengine/ticket-group-22.dot rename to cts/scheduler/ticket-group-22.dot diff --git a/cts/pengine/ticket-group-22.exp b/cts/scheduler/ticket-group-22.exp similarity index 100% rename from cts/pengine/ticket-group-22.exp rename to cts/scheduler/ticket-group-22.exp diff --git a/cts/pengine/ticket-group-22.scores b/cts/scheduler/ticket-group-22.scores similarity index 100% rename from cts/pengine/ticket-group-22.scores rename to cts/scheduler/ticket-group-22.scores diff --git a/cts/pengine/ticket-group-22.summary b/cts/scheduler/ticket-group-22.summary similarity index 100% rename from cts/pengine/ticket-group-22.summary rename to cts/scheduler/ticket-group-22.summary diff --git a/cts/pengine/ticket-group-22.xml b/cts/scheduler/ticket-group-22.xml similarity index 100% rename from cts/pengine/ticket-group-22.xml rename to cts/scheduler/ticket-group-22.xml diff --git a/cts/pengine/ticket-group-23.dot b/cts/scheduler/ticket-group-23.dot similarity index 100% rename from cts/pengine/ticket-group-23.dot rename to cts/scheduler/ticket-group-23.dot diff --git a/cts/pengine/ticket-group-23.exp b/cts/scheduler/ticket-group-23.exp similarity index 100% rename from cts/pengine/ticket-group-23.exp rename to cts/scheduler/ticket-group-23.exp diff --git a/cts/pengine/ticket-group-23.scores b/cts/scheduler/ticket-group-23.scores similarity index 100% rename from cts/pengine/ticket-group-23.scores rename to cts/scheduler/ticket-group-23.scores diff --git a/cts/pengine/ticket-group-23.summary b/cts/scheduler/ticket-group-23.summary similarity index 100% rename from cts/pengine/ticket-group-23.summary rename to cts/scheduler/ticket-group-23.summary diff --git a/cts/pengine/ticket-group-23.xml b/cts/scheduler/ticket-group-23.xml similarity index 100% rename from cts/pengine/ticket-group-23.xml rename to cts/scheduler/ticket-group-23.xml diff --git a/cts/pengine/ticket-group-24.dot b/cts/scheduler/ticket-group-24.dot similarity index 100% rename from cts/pengine/ticket-group-24.dot rename to cts/scheduler/ticket-group-24.dot diff --git a/cts/pengine/ticket-group-24.exp b/cts/scheduler/ticket-group-24.exp similarity index 100% rename from cts/pengine/ticket-group-24.exp rename to cts/scheduler/ticket-group-24.exp diff --git a/cts/pengine/ticket-group-24.scores b/cts/scheduler/ticket-group-24.scores similarity index 100% rename from cts/pengine/ticket-group-24.scores rename to cts/scheduler/ticket-group-24.scores diff --git a/cts/pengine/ticket-group-24.summary b/cts/scheduler/ticket-group-24.summary similarity index 100% rename from cts/pengine/ticket-group-24.summary rename to cts/scheduler/ticket-group-24.summary diff --git a/cts/pengine/ticket-group-24.xml b/cts/scheduler/ticket-group-24.xml similarity index 100% rename from cts/pengine/ticket-group-24.xml rename to cts/scheduler/ticket-group-24.xml diff --git a/cts/pengine/ticket-group-3.dot b/cts/scheduler/ticket-group-3.dot similarity index 100% rename from cts/pengine/ticket-group-3.dot rename to cts/scheduler/ticket-group-3.dot diff --git a/cts/pengine/ticket-group-3.exp b/cts/scheduler/ticket-group-3.exp similarity index 100% rename from cts/pengine/ticket-group-3.exp rename to cts/scheduler/ticket-group-3.exp diff --git a/cts/pengine/ticket-group-3.scores b/cts/scheduler/ticket-group-3.scores similarity index 100% rename from cts/pengine/ticket-group-3.scores rename to cts/scheduler/ticket-group-3.scores diff --git a/cts/pengine/ticket-group-3.summary b/cts/scheduler/ticket-group-3.summary similarity index 100% rename from cts/pengine/ticket-group-3.summary rename to cts/scheduler/ticket-group-3.summary diff --git a/cts/pengine/ticket-group-3.xml b/cts/scheduler/ticket-group-3.xml similarity index 100% rename from cts/pengine/ticket-group-3.xml rename to cts/scheduler/ticket-group-3.xml diff --git a/cts/pengine/ticket-group-4.dot b/cts/scheduler/ticket-group-4.dot similarity index 100% rename from cts/pengine/ticket-group-4.dot rename to cts/scheduler/ticket-group-4.dot diff --git a/cts/pengine/ticket-group-4.exp b/cts/scheduler/ticket-group-4.exp similarity index 100% rename from cts/pengine/ticket-group-4.exp rename to cts/scheduler/ticket-group-4.exp diff --git a/cts/pengine/ticket-group-4.scores b/cts/scheduler/ticket-group-4.scores similarity index 100% rename from cts/pengine/ticket-group-4.scores rename to cts/scheduler/ticket-group-4.scores diff --git a/cts/pengine/ticket-group-4.summary b/cts/scheduler/ticket-group-4.summary similarity index 100% rename from cts/pengine/ticket-group-4.summary rename to cts/scheduler/ticket-group-4.summary diff --git a/cts/pengine/ticket-group-4.xml b/cts/scheduler/ticket-group-4.xml similarity index 100% rename from cts/pengine/ticket-group-4.xml rename to cts/scheduler/ticket-group-4.xml diff --git a/cts/pengine/ticket-group-5.dot b/cts/scheduler/ticket-group-5.dot similarity index 100% rename from cts/pengine/ticket-group-5.dot rename to cts/scheduler/ticket-group-5.dot diff --git a/cts/pengine/ticket-group-5.exp b/cts/scheduler/ticket-group-5.exp similarity index 100% rename from cts/pengine/ticket-group-5.exp rename to cts/scheduler/ticket-group-5.exp diff --git a/cts/pengine/ticket-group-5.scores b/cts/scheduler/ticket-group-5.scores similarity index 100% rename from cts/pengine/ticket-group-5.scores rename to cts/scheduler/ticket-group-5.scores diff --git a/cts/pengine/ticket-group-5.summary b/cts/scheduler/ticket-group-5.summary similarity index 100% rename from cts/pengine/ticket-group-5.summary rename to cts/scheduler/ticket-group-5.summary diff --git a/cts/pengine/ticket-group-5.xml b/cts/scheduler/ticket-group-5.xml similarity index 100% rename from cts/pengine/ticket-group-5.xml rename to cts/scheduler/ticket-group-5.xml diff --git a/cts/pengine/ticket-group-6.dot b/cts/scheduler/ticket-group-6.dot similarity index 100% rename from cts/pengine/ticket-group-6.dot rename to cts/scheduler/ticket-group-6.dot diff --git a/cts/pengine/ticket-group-6.exp b/cts/scheduler/ticket-group-6.exp similarity index 100% rename from cts/pengine/ticket-group-6.exp rename to cts/scheduler/ticket-group-6.exp diff --git a/cts/pengine/ticket-group-6.scores b/cts/scheduler/ticket-group-6.scores similarity index 100% rename from cts/pengine/ticket-group-6.scores rename to cts/scheduler/ticket-group-6.scores diff --git a/cts/pengine/ticket-group-6.summary b/cts/scheduler/ticket-group-6.summary similarity index 100% rename from cts/pengine/ticket-group-6.summary rename to cts/scheduler/ticket-group-6.summary diff --git a/cts/pengine/ticket-group-6.xml b/cts/scheduler/ticket-group-6.xml similarity index 100% rename from cts/pengine/ticket-group-6.xml rename to cts/scheduler/ticket-group-6.xml diff --git a/cts/pengine/ticket-group-7.dot b/cts/scheduler/ticket-group-7.dot similarity index 100% rename from cts/pengine/ticket-group-7.dot rename to cts/scheduler/ticket-group-7.dot diff --git a/cts/pengine/ticket-group-7.exp b/cts/scheduler/ticket-group-7.exp similarity index 100% rename from cts/pengine/ticket-group-7.exp rename to cts/scheduler/ticket-group-7.exp diff --git a/cts/pengine/ticket-group-7.scores b/cts/scheduler/ticket-group-7.scores similarity index 100% rename from cts/pengine/ticket-group-7.scores rename to cts/scheduler/ticket-group-7.scores diff --git a/cts/pengine/ticket-group-7.summary b/cts/scheduler/ticket-group-7.summary similarity index 100% rename from cts/pengine/ticket-group-7.summary rename to cts/scheduler/ticket-group-7.summary diff --git a/cts/pengine/ticket-group-7.xml b/cts/scheduler/ticket-group-7.xml similarity index 100% rename from cts/pengine/ticket-group-7.xml rename to cts/scheduler/ticket-group-7.xml diff --git a/cts/pengine/ticket-group-8.dot b/cts/scheduler/ticket-group-8.dot similarity index 100% rename from cts/pengine/ticket-group-8.dot rename to cts/scheduler/ticket-group-8.dot diff --git a/cts/pengine/ticket-group-8.exp b/cts/scheduler/ticket-group-8.exp similarity index 100% rename from cts/pengine/ticket-group-8.exp rename to cts/scheduler/ticket-group-8.exp diff --git a/cts/pengine/ticket-group-8.scores b/cts/scheduler/ticket-group-8.scores similarity index 100% rename from cts/pengine/ticket-group-8.scores rename to cts/scheduler/ticket-group-8.scores diff --git a/cts/pengine/ticket-group-8.summary b/cts/scheduler/ticket-group-8.summary similarity index 100% rename from cts/pengine/ticket-group-8.summary rename to cts/scheduler/ticket-group-8.summary diff --git a/cts/pengine/ticket-group-8.xml b/cts/scheduler/ticket-group-8.xml similarity index 100% rename from cts/pengine/ticket-group-8.xml rename to cts/scheduler/ticket-group-8.xml diff --git a/cts/pengine/ticket-group-9.dot b/cts/scheduler/ticket-group-9.dot similarity index 100% rename from cts/pengine/ticket-group-9.dot rename to cts/scheduler/ticket-group-9.dot diff --git a/cts/pengine/ticket-group-9.exp b/cts/scheduler/ticket-group-9.exp similarity index 100% rename from cts/pengine/ticket-group-9.exp rename to cts/scheduler/ticket-group-9.exp diff --git a/cts/pengine/ticket-group-9.scores b/cts/scheduler/ticket-group-9.scores similarity index 100% rename from cts/pengine/ticket-group-9.scores rename to cts/scheduler/ticket-group-9.scores diff --git a/cts/pengine/ticket-group-9.summary b/cts/scheduler/ticket-group-9.summary similarity index 100% rename from cts/pengine/ticket-group-9.summary rename to cts/scheduler/ticket-group-9.summary diff --git a/cts/pengine/ticket-group-9.xml b/cts/scheduler/ticket-group-9.xml similarity index 100% rename from cts/pengine/ticket-group-9.xml rename to cts/scheduler/ticket-group-9.xml diff --git a/cts/pengine/ticket-master-1.dot b/cts/scheduler/ticket-master-1.dot similarity index 100% rename from cts/pengine/ticket-master-1.dot rename to cts/scheduler/ticket-master-1.dot diff --git a/cts/pengine/ticket-master-1.exp b/cts/scheduler/ticket-master-1.exp similarity index 100% rename from cts/pengine/ticket-master-1.exp rename to cts/scheduler/ticket-master-1.exp diff --git a/cts/pengine/ticket-master-1.scores b/cts/scheduler/ticket-master-1.scores similarity index 100% rename from cts/pengine/ticket-master-1.scores rename to cts/scheduler/ticket-master-1.scores diff --git a/cts/pengine/ticket-master-1.summary b/cts/scheduler/ticket-master-1.summary similarity index 100% rename from cts/pengine/ticket-master-1.summary rename to cts/scheduler/ticket-master-1.summary diff --git a/cts/pengine/ticket-master-1.xml b/cts/scheduler/ticket-master-1.xml similarity index 100% rename from cts/pengine/ticket-master-1.xml rename to cts/scheduler/ticket-master-1.xml diff --git a/cts/pengine/ticket-master-10.dot b/cts/scheduler/ticket-master-10.dot similarity index 100% rename from cts/pengine/ticket-master-10.dot rename to cts/scheduler/ticket-master-10.dot diff --git a/cts/pengine/ticket-master-10.exp b/cts/scheduler/ticket-master-10.exp similarity index 100% rename from cts/pengine/ticket-master-10.exp rename to cts/scheduler/ticket-master-10.exp diff --git a/cts/pengine/ticket-master-10.scores b/cts/scheduler/ticket-master-10.scores similarity index 100% rename from cts/pengine/ticket-master-10.scores rename to cts/scheduler/ticket-master-10.scores diff --git a/cts/pengine/ticket-master-10.summary b/cts/scheduler/ticket-master-10.summary similarity index 100% rename from cts/pengine/ticket-master-10.summary rename to cts/scheduler/ticket-master-10.summary diff --git a/cts/pengine/ticket-master-10.xml b/cts/scheduler/ticket-master-10.xml similarity index 100% rename from cts/pengine/ticket-master-10.xml rename to cts/scheduler/ticket-master-10.xml diff --git a/cts/pengine/ticket-master-11.dot b/cts/scheduler/ticket-master-11.dot similarity index 100% rename from cts/pengine/ticket-master-11.dot rename to cts/scheduler/ticket-master-11.dot diff --git a/cts/pengine/ticket-master-11.exp b/cts/scheduler/ticket-master-11.exp similarity index 100% rename from cts/pengine/ticket-master-11.exp rename to cts/scheduler/ticket-master-11.exp diff --git a/cts/pengine/ticket-master-11.scores b/cts/scheduler/ticket-master-11.scores similarity index 100% rename from cts/pengine/ticket-master-11.scores rename to cts/scheduler/ticket-master-11.scores diff --git a/cts/pengine/ticket-master-11.summary b/cts/scheduler/ticket-master-11.summary similarity index 100% rename from cts/pengine/ticket-master-11.summary rename to cts/scheduler/ticket-master-11.summary diff --git a/cts/pengine/ticket-master-11.xml b/cts/scheduler/ticket-master-11.xml similarity index 100% rename from cts/pengine/ticket-master-11.xml rename to cts/scheduler/ticket-master-11.xml diff --git a/cts/pengine/ticket-master-12.dot b/cts/scheduler/ticket-master-12.dot similarity index 100% rename from cts/pengine/ticket-master-12.dot rename to cts/scheduler/ticket-master-12.dot diff --git a/cts/pengine/ticket-master-12.exp b/cts/scheduler/ticket-master-12.exp similarity index 100% rename from cts/pengine/ticket-master-12.exp rename to cts/scheduler/ticket-master-12.exp diff --git a/cts/pengine/ticket-master-12.scores b/cts/scheduler/ticket-master-12.scores similarity index 100% rename from cts/pengine/ticket-master-12.scores rename to cts/scheduler/ticket-master-12.scores diff --git a/cts/pengine/ticket-master-12.summary b/cts/scheduler/ticket-master-12.summary similarity index 100% rename from cts/pengine/ticket-master-12.summary rename to cts/scheduler/ticket-master-12.summary diff --git a/cts/pengine/ticket-master-12.xml b/cts/scheduler/ticket-master-12.xml similarity index 100% rename from cts/pengine/ticket-master-12.xml rename to cts/scheduler/ticket-master-12.xml diff --git a/cts/pengine/ticket-master-13.dot b/cts/scheduler/ticket-master-13.dot similarity index 100% rename from cts/pengine/ticket-master-13.dot rename to cts/scheduler/ticket-master-13.dot diff --git a/cts/pengine/ticket-master-13.exp b/cts/scheduler/ticket-master-13.exp similarity index 100% rename from cts/pengine/ticket-master-13.exp rename to cts/scheduler/ticket-master-13.exp diff --git a/cts/pengine/ticket-master-13.scores b/cts/scheduler/ticket-master-13.scores similarity index 100% rename from cts/pengine/ticket-master-13.scores rename to cts/scheduler/ticket-master-13.scores diff --git a/cts/pengine/ticket-master-13.summary b/cts/scheduler/ticket-master-13.summary similarity index 100% rename from cts/pengine/ticket-master-13.summary rename to cts/scheduler/ticket-master-13.summary diff --git a/cts/pengine/ticket-master-13.xml b/cts/scheduler/ticket-master-13.xml similarity index 100% rename from cts/pengine/ticket-master-13.xml rename to cts/scheduler/ticket-master-13.xml diff --git a/cts/pengine/ticket-master-14.dot b/cts/scheduler/ticket-master-14.dot similarity index 100% rename from cts/pengine/ticket-master-14.dot rename to cts/scheduler/ticket-master-14.dot diff --git a/cts/pengine/ticket-master-14.exp b/cts/scheduler/ticket-master-14.exp similarity index 100% rename from cts/pengine/ticket-master-14.exp rename to cts/scheduler/ticket-master-14.exp diff --git a/cts/pengine/ticket-master-14.scores b/cts/scheduler/ticket-master-14.scores similarity index 100% rename from cts/pengine/ticket-master-14.scores rename to cts/scheduler/ticket-master-14.scores diff --git a/cts/pengine/ticket-master-14.summary b/cts/scheduler/ticket-master-14.summary similarity index 100% rename from cts/pengine/ticket-master-14.summary rename to cts/scheduler/ticket-master-14.summary diff --git a/cts/pengine/ticket-master-14.xml b/cts/scheduler/ticket-master-14.xml similarity index 100% rename from cts/pengine/ticket-master-14.xml rename to cts/scheduler/ticket-master-14.xml diff --git a/cts/pengine/ticket-master-15.dot b/cts/scheduler/ticket-master-15.dot similarity index 100% rename from cts/pengine/ticket-master-15.dot rename to cts/scheduler/ticket-master-15.dot diff --git a/cts/pengine/ticket-master-15.exp b/cts/scheduler/ticket-master-15.exp similarity index 100% rename from cts/pengine/ticket-master-15.exp rename to cts/scheduler/ticket-master-15.exp diff --git a/cts/pengine/ticket-master-15.scores b/cts/scheduler/ticket-master-15.scores similarity index 100% rename from cts/pengine/ticket-master-15.scores rename to cts/scheduler/ticket-master-15.scores diff --git a/cts/pengine/ticket-master-15.summary b/cts/scheduler/ticket-master-15.summary similarity index 100% rename from cts/pengine/ticket-master-15.summary rename to cts/scheduler/ticket-master-15.summary diff --git a/cts/pengine/ticket-master-15.xml b/cts/scheduler/ticket-master-15.xml similarity index 100% rename from cts/pengine/ticket-master-15.xml rename to cts/scheduler/ticket-master-15.xml diff --git a/cts/pengine/ticket-master-16.dot b/cts/scheduler/ticket-master-16.dot similarity index 100% rename from cts/pengine/ticket-master-16.dot rename to cts/scheduler/ticket-master-16.dot diff --git a/cts/pengine/ticket-master-16.exp b/cts/scheduler/ticket-master-16.exp similarity index 100% rename from cts/pengine/ticket-master-16.exp rename to cts/scheduler/ticket-master-16.exp diff --git a/cts/pengine/ticket-master-16.scores b/cts/scheduler/ticket-master-16.scores similarity index 100% rename from cts/pengine/ticket-master-16.scores rename to cts/scheduler/ticket-master-16.scores diff --git a/cts/pengine/ticket-master-16.summary b/cts/scheduler/ticket-master-16.summary similarity index 100% rename from cts/pengine/ticket-master-16.summary rename to cts/scheduler/ticket-master-16.summary diff --git a/cts/pengine/ticket-master-16.xml b/cts/scheduler/ticket-master-16.xml similarity index 100% rename from cts/pengine/ticket-master-16.xml rename to cts/scheduler/ticket-master-16.xml diff --git a/cts/pengine/ticket-master-17.dot b/cts/scheduler/ticket-master-17.dot similarity index 100% rename from cts/pengine/ticket-master-17.dot rename to cts/scheduler/ticket-master-17.dot diff --git a/cts/pengine/ticket-master-17.exp b/cts/scheduler/ticket-master-17.exp similarity index 100% rename from cts/pengine/ticket-master-17.exp rename to cts/scheduler/ticket-master-17.exp diff --git a/cts/pengine/ticket-master-17.scores b/cts/scheduler/ticket-master-17.scores similarity index 100% rename from cts/pengine/ticket-master-17.scores rename to cts/scheduler/ticket-master-17.scores diff --git a/cts/pengine/ticket-master-17.summary b/cts/scheduler/ticket-master-17.summary similarity index 100% rename from cts/pengine/ticket-master-17.summary rename to cts/scheduler/ticket-master-17.summary diff --git a/cts/pengine/ticket-master-17.xml b/cts/scheduler/ticket-master-17.xml similarity index 100% rename from cts/pengine/ticket-master-17.xml rename to cts/scheduler/ticket-master-17.xml diff --git a/cts/pengine/ticket-master-18.dot b/cts/scheduler/ticket-master-18.dot similarity index 100% rename from cts/pengine/ticket-master-18.dot rename to cts/scheduler/ticket-master-18.dot diff --git a/cts/pengine/ticket-master-18.exp b/cts/scheduler/ticket-master-18.exp similarity index 100% rename from cts/pengine/ticket-master-18.exp rename to cts/scheduler/ticket-master-18.exp diff --git a/cts/pengine/ticket-master-18.scores b/cts/scheduler/ticket-master-18.scores similarity index 100% rename from cts/pengine/ticket-master-18.scores rename to cts/scheduler/ticket-master-18.scores diff --git a/cts/pengine/ticket-master-18.summary b/cts/scheduler/ticket-master-18.summary similarity index 100% rename from cts/pengine/ticket-master-18.summary rename to cts/scheduler/ticket-master-18.summary diff --git a/cts/pengine/ticket-master-18.xml b/cts/scheduler/ticket-master-18.xml similarity index 100% rename from cts/pengine/ticket-master-18.xml rename to cts/scheduler/ticket-master-18.xml diff --git a/cts/pengine/ticket-master-19.dot b/cts/scheduler/ticket-master-19.dot similarity index 100% rename from cts/pengine/ticket-master-19.dot rename to cts/scheduler/ticket-master-19.dot diff --git a/cts/pengine/ticket-master-19.exp b/cts/scheduler/ticket-master-19.exp similarity index 100% rename from cts/pengine/ticket-master-19.exp rename to cts/scheduler/ticket-master-19.exp diff --git a/cts/pengine/ticket-master-19.scores b/cts/scheduler/ticket-master-19.scores similarity index 100% rename from cts/pengine/ticket-master-19.scores rename to cts/scheduler/ticket-master-19.scores diff --git a/cts/pengine/ticket-master-19.summary b/cts/scheduler/ticket-master-19.summary similarity index 100% rename from cts/pengine/ticket-master-19.summary rename to cts/scheduler/ticket-master-19.summary diff --git a/cts/pengine/ticket-master-19.xml b/cts/scheduler/ticket-master-19.xml similarity index 100% rename from cts/pengine/ticket-master-19.xml rename to cts/scheduler/ticket-master-19.xml diff --git a/cts/pengine/ticket-master-2.dot b/cts/scheduler/ticket-master-2.dot similarity index 100% rename from cts/pengine/ticket-master-2.dot rename to cts/scheduler/ticket-master-2.dot diff --git a/cts/pengine/ticket-master-2.exp b/cts/scheduler/ticket-master-2.exp similarity index 100% rename from cts/pengine/ticket-master-2.exp rename to cts/scheduler/ticket-master-2.exp diff --git a/cts/pengine/ticket-master-2.scores b/cts/scheduler/ticket-master-2.scores similarity index 100% rename from cts/pengine/ticket-master-2.scores rename to cts/scheduler/ticket-master-2.scores diff --git a/cts/pengine/ticket-master-2.summary b/cts/scheduler/ticket-master-2.summary similarity index 100% rename from cts/pengine/ticket-master-2.summary rename to cts/scheduler/ticket-master-2.summary diff --git a/cts/pengine/ticket-master-2.xml b/cts/scheduler/ticket-master-2.xml similarity index 100% rename from cts/pengine/ticket-master-2.xml rename to cts/scheduler/ticket-master-2.xml diff --git a/cts/pengine/ticket-master-20.dot b/cts/scheduler/ticket-master-20.dot similarity index 100% rename from cts/pengine/ticket-master-20.dot rename to cts/scheduler/ticket-master-20.dot diff --git a/cts/pengine/ticket-master-20.exp b/cts/scheduler/ticket-master-20.exp similarity index 100% rename from cts/pengine/ticket-master-20.exp rename to cts/scheduler/ticket-master-20.exp diff --git a/cts/pengine/ticket-master-20.scores b/cts/scheduler/ticket-master-20.scores similarity index 100% rename from cts/pengine/ticket-master-20.scores rename to cts/scheduler/ticket-master-20.scores diff --git a/cts/pengine/ticket-master-20.summary b/cts/scheduler/ticket-master-20.summary similarity index 100% rename from cts/pengine/ticket-master-20.summary rename to cts/scheduler/ticket-master-20.summary diff --git a/cts/pengine/ticket-master-20.xml b/cts/scheduler/ticket-master-20.xml similarity index 100% rename from cts/pengine/ticket-master-20.xml rename to cts/scheduler/ticket-master-20.xml diff --git a/cts/pengine/ticket-master-21.dot b/cts/scheduler/ticket-master-21.dot similarity index 100% rename from cts/pengine/ticket-master-21.dot rename to cts/scheduler/ticket-master-21.dot diff --git a/cts/pengine/ticket-master-21.exp b/cts/scheduler/ticket-master-21.exp similarity index 100% rename from cts/pengine/ticket-master-21.exp rename to cts/scheduler/ticket-master-21.exp diff --git a/cts/pengine/ticket-master-21.scores b/cts/scheduler/ticket-master-21.scores similarity index 100% rename from cts/pengine/ticket-master-21.scores rename to cts/scheduler/ticket-master-21.scores diff --git a/cts/pengine/ticket-master-21.summary b/cts/scheduler/ticket-master-21.summary similarity index 100% rename from cts/pengine/ticket-master-21.summary rename to cts/scheduler/ticket-master-21.summary diff --git a/cts/pengine/ticket-master-21.xml b/cts/scheduler/ticket-master-21.xml similarity index 100% rename from cts/pengine/ticket-master-21.xml rename to cts/scheduler/ticket-master-21.xml diff --git a/cts/pengine/ticket-master-22.dot b/cts/scheduler/ticket-master-22.dot similarity index 100% rename from cts/pengine/ticket-master-22.dot rename to cts/scheduler/ticket-master-22.dot diff --git a/cts/pengine/ticket-master-22.exp b/cts/scheduler/ticket-master-22.exp similarity index 100% rename from cts/pengine/ticket-master-22.exp rename to cts/scheduler/ticket-master-22.exp diff --git a/cts/pengine/ticket-master-22.scores b/cts/scheduler/ticket-master-22.scores similarity index 100% rename from cts/pengine/ticket-master-22.scores rename to cts/scheduler/ticket-master-22.scores diff --git a/cts/pengine/ticket-master-22.summary b/cts/scheduler/ticket-master-22.summary similarity index 100% rename from cts/pengine/ticket-master-22.summary rename to cts/scheduler/ticket-master-22.summary diff --git a/cts/pengine/ticket-master-22.xml b/cts/scheduler/ticket-master-22.xml similarity index 100% rename from cts/pengine/ticket-master-22.xml rename to cts/scheduler/ticket-master-22.xml diff --git a/cts/pengine/ticket-master-23.dot b/cts/scheduler/ticket-master-23.dot similarity index 100% rename from cts/pengine/ticket-master-23.dot rename to cts/scheduler/ticket-master-23.dot diff --git a/cts/pengine/ticket-master-23.exp b/cts/scheduler/ticket-master-23.exp similarity index 100% rename from cts/pengine/ticket-master-23.exp rename to cts/scheduler/ticket-master-23.exp diff --git a/cts/pengine/ticket-master-23.scores b/cts/scheduler/ticket-master-23.scores similarity index 100% rename from cts/pengine/ticket-master-23.scores rename to cts/scheduler/ticket-master-23.scores diff --git a/cts/pengine/ticket-master-23.summary b/cts/scheduler/ticket-master-23.summary similarity index 100% rename from cts/pengine/ticket-master-23.summary rename to cts/scheduler/ticket-master-23.summary diff --git a/cts/pengine/ticket-master-23.xml b/cts/scheduler/ticket-master-23.xml similarity index 100% rename from cts/pengine/ticket-master-23.xml rename to cts/scheduler/ticket-master-23.xml diff --git a/cts/pengine/ticket-master-24.dot b/cts/scheduler/ticket-master-24.dot similarity index 100% rename from cts/pengine/ticket-master-24.dot rename to cts/scheduler/ticket-master-24.dot diff --git a/cts/pengine/ticket-master-24.exp b/cts/scheduler/ticket-master-24.exp similarity index 100% rename from cts/pengine/ticket-master-24.exp rename to cts/scheduler/ticket-master-24.exp diff --git a/cts/pengine/ticket-master-24.scores b/cts/scheduler/ticket-master-24.scores similarity index 100% rename from cts/pengine/ticket-master-24.scores rename to cts/scheduler/ticket-master-24.scores diff --git a/cts/pengine/ticket-master-24.summary b/cts/scheduler/ticket-master-24.summary similarity index 100% rename from cts/pengine/ticket-master-24.summary rename to cts/scheduler/ticket-master-24.summary diff --git a/cts/pengine/ticket-master-24.xml b/cts/scheduler/ticket-master-24.xml similarity index 100% rename from cts/pengine/ticket-master-24.xml rename to cts/scheduler/ticket-master-24.xml diff --git a/cts/pengine/ticket-master-3.dot b/cts/scheduler/ticket-master-3.dot similarity index 100% rename from cts/pengine/ticket-master-3.dot rename to cts/scheduler/ticket-master-3.dot diff --git a/cts/pengine/ticket-master-3.exp b/cts/scheduler/ticket-master-3.exp similarity index 100% rename from cts/pengine/ticket-master-3.exp rename to cts/scheduler/ticket-master-3.exp diff --git a/cts/pengine/ticket-master-3.scores b/cts/scheduler/ticket-master-3.scores similarity index 100% rename from cts/pengine/ticket-master-3.scores rename to cts/scheduler/ticket-master-3.scores diff --git a/cts/pengine/ticket-master-3.summary b/cts/scheduler/ticket-master-3.summary similarity index 100% rename from cts/pengine/ticket-master-3.summary rename to cts/scheduler/ticket-master-3.summary diff --git a/cts/pengine/ticket-master-3.xml b/cts/scheduler/ticket-master-3.xml similarity index 100% rename from cts/pengine/ticket-master-3.xml rename to cts/scheduler/ticket-master-3.xml diff --git a/cts/pengine/ticket-master-4.dot b/cts/scheduler/ticket-master-4.dot similarity index 100% rename from cts/pengine/ticket-master-4.dot rename to cts/scheduler/ticket-master-4.dot diff --git a/cts/pengine/ticket-master-4.exp b/cts/scheduler/ticket-master-4.exp similarity index 100% rename from cts/pengine/ticket-master-4.exp rename to cts/scheduler/ticket-master-4.exp diff --git a/cts/pengine/ticket-master-4.scores b/cts/scheduler/ticket-master-4.scores similarity index 100% rename from cts/pengine/ticket-master-4.scores rename to cts/scheduler/ticket-master-4.scores diff --git a/cts/pengine/ticket-master-4.summary b/cts/scheduler/ticket-master-4.summary similarity index 100% rename from cts/pengine/ticket-master-4.summary rename to cts/scheduler/ticket-master-4.summary diff --git a/cts/pengine/ticket-master-4.xml b/cts/scheduler/ticket-master-4.xml similarity index 100% rename from cts/pengine/ticket-master-4.xml rename to cts/scheduler/ticket-master-4.xml diff --git a/cts/pengine/ticket-master-5.dot b/cts/scheduler/ticket-master-5.dot similarity index 100% rename from cts/pengine/ticket-master-5.dot rename to cts/scheduler/ticket-master-5.dot diff --git a/cts/pengine/ticket-master-5.exp b/cts/scheduler/ticket-master-5.exp similarity index 100% rename from cts/pengine/ticket-master-5.exp rename to cts/scheduler/ticket-master-5.exp diff --git a/cts/pengine/ticket-master-5.scores b/cts/scheduler/ticket-master-5.scores similarity index 100% rename from cts/pengine/ticket-master-5.scores rename to cts/scheduler/ticket-master-5.scores diff --git a/cts/pengine/ticket-master-5.summary b/cts/scheduler/ticket-master-5.summary similarity index 100% rename from cts/pengine/ticket-master-5.summary rename to cts/scheduler/ticket-master-5.summary diff --git a/cts/pengine/ticket-master-5.xml b/cts/scheduler/ticket-master-5.xml similarity index 100% rename from cts/pengine/ticket-master-5.xml rename to cts/scheduler/ticket-master-5.xml diff --git a/cts/pengine/ticket-master-6.dot b/cts/scheduler/ticket-master-6.dot similarity index 100% rename from cts/pengine/ticket-master-6.dot rename to cts/scheduler/ticket-master-6.dot diff --git a/cts/pengine/ticket-master-6.exp b/cts/scheduler/ticket-master-6.exp similarity index 100% rename from cts/pengine/ticket-master-6.exp rename to cts/scheduler/ticket-master-6.exp diff --git a/cts/pengine/ticket-master-6.scores b/cts/scheduler/ticket-master-6.scores similarity index 100% rename from cts/pengine/ticket-master-6.scores rename to cts/scheduler/ticket-master-6.scores diff --git a/cts/pengine/ticket-master-6.summary b/cts/scheduler/ticket-master-6.summary similarity index 100% rename from cts/pengine/ticket-master-6.summary rename to cts/scheduler/ticket-master-6.summary diff --git a/cts/pengine/ticket-master-6.xml b/cts/scheduler/ticket-master-6.xml similarity index 100% rename from cts/pengine/ticket-master-6.xml rename to cts/scheduler/ticket-master-6.xml diff --git a/cts/pengine/ticket-master-7.dot b/cts/scheduler/ticket-master-7.dot similarity index 100% rename from cts/pengine/ticket-master-7.dot rename to cts/scheduler/ticket-master-7.dot diff --git a/cts/pengine/ticket-master-7.exp b/cts/scheduler/ticket-master-7.exp similarity index 100% rename from cts/pengine/ticket-master-7.exp rename to cts/scheduler/ticket-master-7.exp diff --git a/cts/pengine/ticket-master-7.scores b/cts/scheduler/ticket-master-7.scores similarity index 100% rename from cts/pengine/ticket-master-7.scores rename to cts/scheduler/ticket-master-7.scores diff --git a/cts/pengine/ticket-master-7.summary b/cts/scheduler/ticket-master-7.summary similarity index 100% rename from cts/pengine/ticket-master-7.summary rename to cts/scheduler/ticket-master-7.summary diff --git a/cts/pengine/ticket-master-7.xml b/cts/scheduler/ticket-master-7.xml similarity index 100% rename from cts/pengine/ticket-master-7.xml rename to cts/scheduler/ticket-master-7.xml diff --git a/cts/pengine/ticket-master-8.dot b/cts/scheduler/ticket-master-8.dot similarity index 100% rename from cts/pengine/ticket-master-8.dot rename to cts/scheduler/ticket-master-8.dot diff --git a/cts/pengine/ticket-master-8.exp b/cts/scheduler/ticket-master-8.exp similarity index 100% rename from cts/pengine/ticket-master-8.exp rename to cts/scheduler/ticket-master-8.exp diff --git a/cts/pengine/ticket-master-8.scores b/cts/scheduler/ticket-master-8.scores similarity index 100% rename from cts/pengine/ticket-master-8.scores rename to cts/scheduler/ticket-master-8.scores diff --git a/cts/pengine/ticket-master-8.summary b/cts/scheduler/ticket-master-8.summary similarity index 100% rename from cts/pengine/ticket-master-8.summary rename to cts/scheduler/ticket-master-8.summary diff --git a/cts/pengine/ticket-master-8.xml b/cts/scheduler/ticket-master-8.xml similarity index 100% rename from cts/pengine/ticket-master-8.xml rename to cts/scheduler/ticket-master-8.xml diff --git a/cts/pengine/ticket-master-9.dot b/cts/scheduler/ticket-master-9.dot similarity index 100% rename from cts/pengine/ticket-master-9.dot rename to cts/scheduler/ticket-master-9.dot diff --git a/cts/pengine/ticket-master-9.exp b/cts/scheduler/ticket-master-9.exp similarity index 100% rename from cts/pengine/ticket-master-9.exp rename to cts/scheduler/ticket-master-9.exp diff --git a/cts/pengine/ticket-master-9.scores b/cts/scheduler/ticket-master-9.scores similarity index 100% rename from cts/pengine/ticket-master-9.scores rename to cts/scheduler/ticket-master-9.scores diff --git a/cts/pengine/ticket-master-9.summary b/cts/scheduler/ticket-master-9.summary similarity index 100% rename from cts/pengine/ticket-master-9.summary rename to cts/scheduler/ticket-master-9.summary diff --git a/cts/pengine/ticket-master-9.xml b/cts/scheduler/ticket-master-9.xml similarity index 100% rename from cts/pengine/ticket-master-9.xml rename to cts/scheduler/ticket-master-9.xml diff --git a/cts/pengine/ticket-primitive-1.dot b/cts/scheduler/ticket-primitive-1.dot similarity index 100% rename from cts/pengine/ticket-primitive-1.dot rename to cts/scheduler/ticket-primitive-1.dot diff --git a/cts/pengine/ticket-primitive-1.exp b/cts/scheduler/ticket-primitive-1.exp similarity index 100% rename from cts/pengine/ticket-primitive-1.exp rename to cts/scheduler/ticket-primitive-1.exp diff --git a/cts/pengine/ticket-primitive-1.scores b/cts/scheduler/ticket-primitive-1.scores similarity index 100% rename from cts/pengine/ticket-primitive-1.scores rename to cts/scheduler/ticket-primitive-1.scores diff --git a/cts/pengine/ticket-primitive-1.summary b/cts/scheduler/ticket-primitive-1.summary similarity index 100% rename from cts/pengine/ticket-primitive-1.summary rename to cts/scheduler/ticket-primitive-1.summary diff --git a/cts/pengine/ticket-primitive-1.xml b/cts/scheduler/ticket-primitive-1.xml similarity index 100% rename from cts/pengine/ticket-primitive-1.xml rename to cts/scheduler/ticket-primitive-1.xml diff --git a/cts/pengine/ticket-primitive-10.dot b/cts/scheduler/ticket-primitive-10.dot similarity index 100% rename from cts/pengine/ticket-primitive-10.dot rename to cts/scheduler/ticket-primitive-10.dot diff --git a/cts/pengine/ticket-primitive-10.exp b/cts/scheduler/ticket-primitive-10.exp similarity index 100% rename from cts/pengine/ticket-primitive-10.exp rename to cts/scheduler/ticket-primitive-10.exp diff --git a/cts/pengine/ticket-primitive-10.scores b/cts/scheduler/ticket-primitive-10.scores similarity index 100% rename from cts/pengine/ticket-primitive-10.scores rename to cts/scheduler/ticket-primitive-10.scores diff --git a/cts/pengine/ticket-primitive-10.summary b/cts/scheduler/ticket-primitive-10.summary similarity index 100% rename from cts/pengine/ticket-primitive-10.summary rename to cts/scheduler/ticket-primitive-10.summary diff --git a/cts/pengine/ticket-primitive-10.xml b/cts/scheduler/ticket-primitive-10.xml similarity index 100% rename from cts/pengine/ticket-primitive-10.xml rename to cts/scheduler/ticket-primitive-10.xml diff --git a/cts/pengine/ticket-primitive-11.dot b/cts/scheduler/ticket-primitive-11.dot similarity index 100% rename from cts/pengine/ticket-primitive-11.dot rename to cts/scheduler/ticket-primitive-11.dot diff --git a/cts/pengine/ticket-primitive-11.exp b/cts/scheduler/ticket-primitive-11.exp similarity index 100% rename from cts/pengine/ticket-primitive-11.exp rename to cts/scheduler/ticket-primitive-11.exp diff --git a/cts/pengine/ticket-primitive-11.scores b/cts/scheduler/ticket-primitive-11.scores similarity index 100% rename from cts/pengine/ticket-primitive-11.scores rename to cts/scheduler/ticket-primitive-11.scores diff --git a/cts/pengine/ticket-primitive-11.summary b/cts/scheduler/ticket-primitive-11.summary similarity index 100% rename from cts/pengine/ticket-primitive-11.summary rename to cts/scheduler/ticket-primitive-11.summary diff --git a/cts/pengine/ticket-primitive-11.xml b/cts/scheduler/ticket-primitive-11.xml similarity index 100% rename from cts/pengine/ticket-primitive-11.xml rename to cts/scheduler/ticket-primitive-11.xml diff --git a/cts/pengine/ticket-primitive-12.dot b/cts/scheduler/ticket-primitive-12.dot similarity index 100% rename from cts/pengine/ticket-primitive-12.dot rename to cts/scheduler/ticket-primitive-12.dot diff --git a/cts/pengine/ticket-primitive-12.exp b/cts/scheduler/ticket-primitive-12.exp similarity index 100% rename from cts/pengine/ticket-primitive-12.exp rename to cts/scheduler/ticket-primitive-12.exp diff --git a/cts/pengine/ticket-primitive-12.scores b/cts/scheduler/ticket-primitive-12.scores similarity index 100% rename from cts/pengine/ticket-primitive-12.scores rename to cts/scheduler/ticket-primitive-12.scores diff --git a/cts/pengine/ticket-primitive-12.summary b/cts/scheduler/ticket-primitive-12.summary similarity index 100% rename from cts/pengine/ticket-primitive-12.summary rename to cts/scheduler/ticket-primitive-12.summary diff --git a/cts/pengine/ticket-primitive-12.xml b/cts/scheduler/ticket-primitive-12.xml similarity index 100% rename from cts/pengine/ticket-primitive-12.xml rename to cts/scheduler/ticket-primitive-12.xml diff --git a/cts/pengine/ticket-primitive-13.dot b/cts/scheduler/ticket-primitive-13.dot similarity index 100% rename from cts/pengine/ticket-primitive-13.dot rename to cts/scheduler/ticket-primitive-13.dot diff --git a/cts/pengine/ticket-primitive-13.exp b/cts/scheduler/ticket-primitive-13.exp similarity index 100% rename from cts/pengine/ticket-primitive-13.exp rename to cts/scheduler/ticket-primitive-13.exp diff --git a/cts/pengine/ticket-primitive-13.scores b/cts/scheduler/ticket-primitive-13.scores similarity index 100% rename from cts/pengine/ticket-primitive-13.scores rename to cts/scheduler/ticket-primitive-13.scores diff --git a/cts/pengine/ticket-primitive-13.summary b/cts/scheduler/ticket-primitive-13.summary similarity index 100% rename from cts/pengine/ticket-primitive-13.summary rename to cts/scheduler/ticket-primitive-13.summary diff --git a/cts/pengine/ticket-primitive-13.xml b/cts/scheduler/ticket-primitive-13.xml similarity index 100% rename from cts/pengine/ticket-primitive-13.xml rename to cts/scheduler/ticket-primitive-13.xml diff --git a/cts/pengine/ticket-primitive-14.dot b/cts/scheduler/ticket-primitive-14.dot similarity index 100% rename from cts/pengine/ticket-primitive-14.dot rename to cts/scheduler/ticket-primitive-14.dot diff --git a/cts/pengine/ticket-primitive-14.exp b/cts/scheduler/ticket-primitive-14.exp similarity index 100% rename from cts/pengine/ticket-primitive-14.exp rename to cts/scheduler/ticket-primitive-14.exp diff --git a/cts/pengine/ticket-primitive-14.scores b/cts/scheduler/ticket-primitive-14.scores similarity index 100% rename from cts/pengine/ticket-primitive-14.scores rename to cts/scheduler/ticket-primitive-14.scores diff --git a/cts/pengine/ticket-primitive-14.summary b/cts/scheduler/ticket-primitive-14.summary similarity index 100% rename from cts/pengine/ticket-primitive-14.summary rename to cts/scheduler/ticket-primitive-14.summary diff --git a/cts/pengine/ticket-primitive-14.xml b/cts/scheduler/ticket-primitive-14.xml similarity index 100% rename from cts/pengine/ticket-primitive-14.xml rename to cts/scheduler/ticket-primitive-14.xml diff --git a/cts/pengine/ticket-primitive-15.dot b/cts/scheduler/ticket-primitive-15.dot similarity index 100% rename from cts/pengine/ticket-primitive-15.dot rename to cts/scheduler/ticket-primitive-15.dot diff --git a/cts/pengine/ticket-primitive-15.exp b/cts/scheduler/ticket-primitive-15.exp similarity index 100% rename from cts/pengine/ticket-primitive-15.exp rename to cts/scheduler/ticket-primitive-15.exp diff --git a/cts/pengine/ticket-primitive-15.scores b/cts/scheduler/ticket-primitive-15.scores similarity index 100% rename from cts/pengine/ticket-primitive-15.scores rename to cts/scheduler/ticket-primitive-15.scores diff --git a/cts/pengine/ticket-primitive-15.summary b/cts/scheduler/ticket-primitive-15.summary similarity index 100% rename from cts/pengine/ticket-primitive-15.summary rename to cts/scheduler/ticket-primitive-15.summary diff --git a/cts/pengine/ticket-primitive-15.xml b/cts/scheduler/ticket-primitive-15.xml similarity index 100% rename from cts/pengine/ticket-primitive-15.xml rename to cts/scheduler/ticket-primitive-15.xml diff --git a/cts/pengine/ticket-primitive-16.dot b/cts/scheduler/ticket-primitive-16.dot similarity index 100% rename from cts/pengine/ticket-primitive-16.dot rename to cts/scheduler/ticket-primitive-16.dot diff --git a/cts/pengine/ticket-primitive-16.exp b/cts/scheduler/ticket-primitive-16.exp similarity index 100% rename from cts/pengine/ticket-primitive-16.exp rename to cts/scheduler/ticket-primitive-16.exp diff --git a/cts/pengine/ticket-primitive-16.scores b/cts/scheduler/ticket-primitive-16.scores similarity index 100% rename from cts/pengine/ticket-primitive-16.scores rename to cts/scheduler/ticket-primitive-16.scores diff --git a/cts/pengine/ticket-primitive-16.summary b/cts/scheduler/ticket-primitive-16.summary similarity index 100% rename from cts/pengine/ticket-primitive-16.summary rename to cts/scheduler/ticket-primitive-16.summary diff --git a/cts/pengine/ticket-primitive-16.xml b/cts/scheduler/ticket-primitive-16.xml similarity index 100% rename from cts/pengine/ticket-primitive-16.xml rename to cts/scheduler/ticket-primitive-16.xml diff --git a/cts/pengine/ticket-primitive-17.dot b/cts/scheduler/ticket-primitive-17.dot similarity index 100% rename from cts/pengine/ticket-primitive-17.dot rename to cts/scheduler/ticket-primitive-17.dot diff --git a/cts/pengine/ticket-primitive-17.exp b/cts/scheduler/ticket-primitive-17.exp similarity index 100% rename from cts/pengine/ticket-primitive-17.exp rename to cts/scheduler/ticket-primitive-17.exp diff --git a/cts/pengine/ticket-primitive-17.scores b/cts/scheduler/ticket-primitive-17.scores similarity index 100% rename from cts/pengine/ticket-primitive-17.scores rename to cts/scheduler/ticket-primitive-17.scores diff --git a/cts/pengine/ticket-primitive-17.summary b/cts/scheduler/ticket-primitive-17.summary similarity index 100% rename from cts/pengine/ticket-primitive-17.summary rename to cts/scheduler/ticket-primitive-17.summary diff --git a/cts/pengine/ticket-primitive-17.xml b/cts/scheduler/ticket-primitive-17.xml similarity index 100% rename from cts/pengine/ticket-primitive-17.xml rename to cts/scheduler/ticket-primitive-17.xml diff --git a/cts/pengine/ticket-primitive-18.dot b/cts/scheduler/ticket-primitive-18.dot similarity index 100% rename from cts/pengine/ticket-primitive-18.dot rename to cts/scheduler/ticket-primitive-18.dot diff --git a/cts/pengine/ticket-primitive-18.exp b/cts/scheduler/ticket-primitive-18.exp similarity index 100% rename from cts/pengine/ticket-primitive-18.exp rename to cts/scheduler/ticket-primitive-18.exp diff --git a/cts/pengine/ticket-primitive-18.scores b/cts/scheduler/ticket-primitive-18.scores similarity index 100% rename from cts/pengine/ticket-primitive-18.scores rename to cts/scheduler/ticket-primitive-18.scores diff --git a/cts/pengine/ticket-primitive-18.summary b/cts/scheduler/ticket-primitive-18.summary similarity index 100% rename from cts/pengine/ticket-primitive-18.summary rename to cts/scheduler/ticket-primitive-18.summary diff --git a/cts/pengine/ticket-primitive-18.xml b/cts/scheduler/ticket-primitive-18.xml similarity index 100% rename from cts/pengine/ticket-primitive-18.xml rename to cts/scheduler/ticket-primitive-18.xml diff --git a/cts/pengine/ticket-primitive-19.dot b/cts/scheduler/ticket-primitive-19.dot similarity index 100% rename from cts/pengine/ticket-primitive-19.dot rename to cts/scheduler/ticket-primitive-19.dot diff --git a/cts/pengine/ticket-primitive-19.exp b/cts/scheduler/ticket-primitive-19.exp similarity index 100% rename from cts/pengine/ticket-primitive-19.exp rename to cts/scheduler/ticket-primitive-19.exp diff --git a/cts/pengine/ticket-primitive-19.scores b/cts/scheduler/ticket-primitive-19.scores similarity index 100% rename from cts/pengine/ticket-primitive-19.scores rename to cts/scheduler/ticket-primitive-19.scores diff --git a/cts/pengine/ticket-primitive-19.summary b/cts/scheduler/ticket-primitive-19.summary similarity index 100% rename from cts/pengine/ticket-primitive-19.summary rename to cts/scheduler/ticket-primitive-19.summary diff --git a/cts/pengine/ticket-primitive-19.xml b/cts/scheduler/ticket-primitive-19.xml similarity index 100% rename from cts/pengine/ticket-primitive-19.xml rename to cts/scheduler/ticket-primitive-19.xml diff --git a/cts/pengine/ticket-primitive-2.dot b/cts/scheduler/ticket-primitive-2.dot similarity index 100% rename from cts/pengine/ticket-primitive-2.dot rename to cts/scheduler/ticket-primitive-2.dot diff --git a/cts/pengine/ticket-primitive-2.exp b/cts/scheduler/ticket-primitive-2.exp similarity index 100% rename from cts/pengine/ticket-primitive-2.exp rename to cts/scheduler/ticket-primitive-2.exp diff --git a/cts/pengine/ticket-primitive-2.scores b/cts/scheduler/ticket-primitive-2.scores similarity index 100% rename from cts/pengine/ticket-primitive-2.scores rename to cts/scheduler/ticket-primitive-2.scores diff --git a/cts/pengine/ticket-primitive-2.summary b/cts/scheduler/ticket-primitive-2.summary similarity index 100% rename from cts/pengine/ticket-primitive-2.summary rename to cts/scheduler/ticket-primitive-2.summary diff --git a/cts/pengine/ticket-primitive-2.xml b/cts/scheduler/ticket-primitive-2.xml similarity index 100% rename from cts/pengine/ticket-primitive-2.xml rename to cts/scheduler/ticket-primitive-2.xml diff --git a/cts/pengine/ticket-primitive-20.dot b/cts/scheduler/ticket-primitive-20.dot similarity index 100% rename from cts/pengine/ticket-primitive-20.dot rename to cts/scheduler/ticket-primitive-20.dot diff --git a/cts/pengine/ticket-primitive-20.exp b/cts/scheduler/ticket-primitive-20.exp similarity index 100% rename from cts/pengine/ticket-primitive-20.exp rename to cts/scheduler/ticket-primitive-20.exp diff --git a/cts/pengine/ticket-primitive-20.scores b/cts/scheduler/ticket-primitive-20.scores similarity index 100% rename from cts/pengine/ticket-primitive-20.scores rename to cts/scheduler/ticket-primitive-20.scores diff --git a/cts/pengine/ticket-primitive-20.summary b/cts/scheduler/ticket-primitive-20.summary similarity index 100% rename from cts/pengine/ticket-primitive-20.summary rename to cts/scheduler/ticket-primitive-20.summary diff --git a/cts/pengine/ticket-primitive-20.xml b/cts/scheduler/ticket-primitive-20.xml similarity index 100% rename from cts/pengine/ticket-primitive-20.xml rename to cts/scheduler/ticket-primitive-20.xml diff --git a/cts/pengine/ticket-primitive-21.dot b/cts/scheduler/ticket-primitive-21.dot similarity index 100% rename from cts/pengine/ticket-primitive-21.dot rename to cts/scheduler/ticket-primitive-21.dot diff --git a/cts/pengine/ticket-primitive-21.exp b/cts/scheduler/ticket-primitive-21.exp similarity index 100% rename from cts/pengine/ticket-primitive-21.exp rename to cts/scheduler/ticket-primitive-21.exp diff --git a/cts/pengine/ticket-primitive-21.scores b/cts/scheduler/ticket-primitive-21.scores similarity index 100% rename from cts/pengine/ticket-primitive-21.scores rename to cts/scheduler/ticket-primitive-21.scores diff --git a/cts/pengine/ticket-primitive-21.summary b/cts/scheduler/ticket-primitive-21.summary similarity index 100% rename from cts/pengine/ticket-primitive-21.summary rename to cts/scheduler/ticket-primitive-21.summary diff --git a/cts/pengine/ticket-primitive-21.xml b/cts/scheduler/ticket-primitive-21.xml similarity index 100% rename from cts/pengine/ticket-primitive-21.xml rename to cts/scheduler/ticket-primitive-21.xml diff --git a/cts/pengine/ticket-primitive-22.dot b/cts/scheduler/ticket-primitive-22.dot similarity index 100% rename from cts/pengine/ticket-primitive-22.dot rename to cts/scheduler/ticket-primitive-22.dot diff --git a/cts/pengine/ticket-primitive-22.exp b/cts/scheduler/ticket-primitive-22.exp similarity index 100% rename from cts/pengine/ticket-primitive-22.exp rename to cts/scheduler/ticket-primitive-22.exp diff --git a/cts/pengine/ticket-primitive-22.scores b/cts/scheduler/ticket-primitive-22.scores similarity index 100% rename from cts/pengine/ticket-primitive-22.scores rename to cts/scheduler/ticket-primitive-22.scores diff --git a/cts/pengine/ticket-primitive-22.summary b/cts/scheduler/ticket-primitive-22.summary similarity index 100% rename from cts/pengine/ticket-primitive-22.summary rename to cts/scheduler/ticket-primitive-22.summary diff --git a/cts/pengine/ticket-primitive-22.xml b/cts/scheduler/ticket-primitive-22.xml similarity index 100% rename from cts/pengine/ticket-primitive-22.xml rename to cts/scheduler/ticket-primitive-22.xml diff --git a/cts/pengine/ticket-primitive-23.dot b/cts/scheduler/ticket-primitive-23.dot similarity index 100% rename from cts/pengine/ticket-primitive-23.dot rename to cts/scheduler/ticket-primitive-23.dot diff --git a/cts/pengine/ticket-primitive-23.exp b/cts/scheduler/ticket-primitive-23.exp similarity index 100% rename from cts/pengine/ticket-primitive-23.exp rename to cts/scheduler/ticket-primitive-23.exp diff --git a/cts/pengine/ticket-primitive-23.scores b/cts/scheduler/ticket-primitive-23.scores similarity index 100% rename from cts/pengine/ticket-primitive-23.scores rename to cts/scheduler/ticket-primitive-23.scores diff --git a/cts/pengine/ticket-primitive-23.summary b/cts/scheduler/ticket-primitive-23.summary similarity index 100% rename from cts/pengine/ticket-primitive-23.summary rename to cts/scheduler/ticket-primitive-23.summary diff --git a/cts/pengine/ticket-primitive-23.xml b/cts/scheduler/ticket-primitive-23.xml similarity index 100% rename from cts/pengine/ticket-primitive-23.xml rename to cts/scheduler/ticket-primitive-23.xml diff --git a/cts/pengine/ticket-primitive-24.dot b/cts/scheduler/ticket-primitive-24.dot similarity index 100% rename from cts/pengine/ticket-primitive-24.dot rename to cts/scheduler/ticket-primitive-24.dot diff --git a/cts/pengine/ticket-primitive-24.exp b/cts/scheduler/ticket-primitive-24.exp similarity index 100% rename from cts/pengine/ticket-primitive-24.exp rename to cts/scheduler/ticket-primitive-24.exp diff --git a/cts/pengine/ticket-primitive-24.scores b/cts/scheduler/ticket-primitive-24.scores similarity index 100% rename from cts/pengine/ticket-primitive-24.scores rename to cts/scheduler/ticket-primitive-24.scores diff --git a/cts/pengine/ticket-primitive-24.summary b/cts/scheduler/ticket-primitive-24.summary similarity index 100% rename from cts/pengine/ticket-primitive-24.summary rename to cts/scheduler/ticket-primitive-24.summary diff --git a/cts/pengine/ticket-primitive-24.xml b/cts/scheduler/ticket-primitive-24.xml similarity index 100% rename from cts/pengine/ticket-primitive-24.xml rename to cts/scheduler/ticket-primitive-24.xml diff --git a/cts/pengine/ticket-primitive-3.dot b/cts/scheduler/ticket-primitive-3.dot similarity index 100% rename from cts/pengine/ticket-primitive-3.dot rename to cts/scheduler/ticket-primitive-3.dot diff --git a/cts/pengine/ticket-primitive-3.exp b/cts/scheduler/ticket-primitive-3.exp similarity index 100% rename from cts/pengine/ticket-primitive-3.exp rename to cts/scheduler/ticket-primitive-3.exp diff --git a/cts/pengine/ticket-primitive-3.scores b/cts/scheduler/ticket-primitive-3.scores similarity index 100% rename from cts/pengine/ticket-primitive-3.scores rename to cts/scheduler/ticket-primitive-3.scores diff --git a/cts/pengine/ticket-primitive-3.summary b/cts/scheduler/ticket-primitive-3.summary similarity index 100% rename from cts/pengine/ticket-primitive-3.summary rename to cts/scheduler/ticket-primitive-3.summary diff --git a/cts/pengine/ticket-primitive-3.xml b/cts/scheduler/ticket-primitive-3.xml similarity index 100% rename from cts/pengine/ticket-primitive-3.xml rename to cts/scheduler/ticket-primitive-3.xml diff --git a/cts/pengine/ticket-primitive-4.dot b/cts/scheduler/ticket-primitive-4.dot similarity index 100% rename from cts/pengine/ticket-primitive-4.dot rename to cts/scheduler/ticket-primitive-4.dot diff --git a/cts/pengine/ticket-primitive-4.exp b/cts/scheduler/ticket-primitive-4.exp similarity index 100% rename from cts/pengine/ticket-primitive-4.exp rename to cts/scheduler/ticket-primitive-4.exp diff --git a/cts/pengine/ticket-primitive-4.scores b/cts/scheduler/ticket-primitive-4.scores similarity index 100% rename from cts/pengine/ticket-primitive-4.scores rename to cts/scheduler/ticket-primitive-4.scores diff --git a/cts/pengine/ticket-primitive-4.summary b/cts/scheduler/ticket-primitive-4.summary similarity index 100% rename from cts/pengine/ticket-primitive-4.summary rename to cts/scheduler/ticket-primitive-4.summary diff --git a/cts/pengine/ticket-primitive-4.xml b/cts/scheduler/ticket-primitive-4.xml similarity index 100% rename from cts/pengine/ticket-primitive-4.xml rename to cts/scheduler/ticket-primitive-4.xml diff --git a/cts/pengine/ticket-primitive-5.dot b/cts/scheduler/ticket-primitive-5.dot similarity index 100% rename from cts/pengine/ticket-primitive-5.dot rename to cts/scheduler/ticket-primitive-5.dot diff --git a/cts/pengine/ticket-primitive-5.exp b/cts/scheduler/ticket-primitive-5.exp similarity index 100% rename from cts/pengine/ticket-primitive-5.exp rename to cts/scheduler/ticket-primitive-5.exp diff --git a/cts/pengine/ticket-primitive-5.scores b/cts/scheduler/ticket-primitive-5.scores similarity index 100% rename from cts/pengine/ticket-primitive-5.scores rename to cts/scheduler/ticket-primitive-5.scores diff --git a/cts/pengine/ticket-primitive-5.summary b/cts/scheduler/ticket-primitive-5.summary similarity index 100% rename from cts/pengine/ticket-primitive-5.summary rename to cts/scheduler/ticket-primitive-5.summary diff --git a/cts/pengine/ticket-primitive-5.xml b/cts/scheduler/ticket-primitive-5.xml similarity index 100% rename from cts/pengine/ticket-primitive-5.xml rename to cts/scheduler/ticket-primitive-5.xml diff --git a/cts/pengine/ticket-primitive-6.dot b/cts/scheduler/ticket-primitive-6.dot similarity index 100% rename from cts/pengine/ticket-primitive-6.dot rename to cts/scheduler/ticket-primitive-6.dot diff --git a/cts/pengine/ticket-primitive-6.exp b/cts/scheduler/ticket-primitive-6.exp similarity index 100% rename from cts/pengine/ticket-primitive-6.exp rename to cts/scheduler/ticket-primitive-6.exp diff --git a/cts/pengine/ticket-primitive-6.scores b/cts/scheduler/ticket-primitive-6.scores similarity index 100% rename from cts/pengine/ticket-primitive-6.scores rename to cts/scheduler/ticket-primitive-6.scores diff --git a/cts/pengine/ticket-primitive-6.summary b/cts/scheduler/ticket-primitive-6.summary similarity index 100% rename from cts/pengine/ticket-primitive-6.summary rename to cts/scheduler/ticket-primitive-6.summary diff --git a/cts/pengine/ticket-primitive-6.xml b/cts/scheduler/ticket-primitive-6.xml similarity index 100% rename from cts/pengine/ticket-primitive-6.xml rename to cts/scheduler/ticket-primitive-6.xml diff --git a/cts/pengine/ticket-primitive-7.dot b/cts/scheduler/ticket-primitive-7.dot similarity index 100% rename from cts/pengine/ticket-primitive-7.dot rename to cts/scheduler/ticket-primitive-7.dot diff --git a/cts/pengine/ticket-primitive-7.exp b/cts/scheduler/ticket-primitive-7.exp similarity index 100% rename from cts/pengine/ticket-primitive-7.exp rename to cts/scheduler/ticket-primitive-7.exp diff --git a/cts/pengine/ticket-primitive-7.scores b/cts/scheduler/ticket-primitive-7.scores similarity index 100% rename from cts/pengine/ticket-primitive-7.scores rename to cts/scheduler/ticket-primitive-7.scores diff --git a/cts/pengine/ticket-primitive-7.summary b/cts/scheduler/ticket-primitive-7.summary similarity index 100% rename from cts/pengine/ticket-primitive-7.summary rename to cts/scheduler/ticket-primitive-7.summary diff --git a/cts/pengine/ticket-primitive-7.xml b/cts/scheduler/ticket-primitive-7.xml similarity index 100% rename from cts/pengine/ticket-primitive-7.xml rename to cts/scheduler/ticket-primitive-7.xml diff --git a/cts/pengine/ticket-primitive-8.dot b/cts/scheduler/ticket-primitive-8.dot similarity index 100% rename from cts/pengine/ticket-primitive-8.dot rename to cts/scheduler/ticket-primitive-8.dot diff --git a/cts/pengine/ticket-primitive-8.exp b/cts/scheduler/ticket-primitive-8.exp similarity index 100% rename from cts/pengine/ticket-primitive-8.exp rename to cts/scheduler/ticket-primitive-8.exp diff --git a/cts/pengine/ticket-primitive-8.scores b/cts/scheduler/ticket-primitive-8.scores similarity index 100% rename from cts/pengine/ticket-primitive-8.scores rename to cts/scheduler/ticket-primitive-8.scores diff --git a/cts/pengine/ticket-primitive-8.summary b/cts/scheduler/ticket-primitive-8.summary similarity index 100% rename from cts/pengine/ticket-primitive-8.summary rename to cts/scheduler/ticket-primitive-8.summary diff --git a/cts/pengine/ticket-primitive-8.xml b/cts/scheduler/ticket-primitive-8.xml similarity index 100% rename from cts/pengine/ticket-primitive-8.xml rename to cts/scheduler/ticket-primitive-8.xml diff --git a/cts/pengine/ticket-primitive-9.dot b/cts/scheduler/ticket-primitive-9.dot similarity index 100% rename from cts/pengine/ticket-primitive-9.dot rename to cts/scheduler/ticket-primitive-9.dot diff --git a/cts/pengine/ticket-primitive-9.exp b/cts/scheduler/ticket-primitive-9.exp similarity index 100% rename from cts/pengine/ticket-primitive-9.exp rename to cts/scheduler/ticket-primitive-9.exp diff --git a/cts/pengine/ticket-primitive-9.scores b/cts/scheduler/ticket-primitive-9.scores similarity index 100% rename from cts/pengine/ticket-primitive-9.scores rename to cts/scheduler/ticket-primitive-9.scores diff --git a/cts/pengine/ticket-primitive-9.summary b/cts/scheduler/ticket-primitive-9.summary similarity index 100% rename from cts/pengine/ticket-primitive-9.summary rename to cts/scheduler/ticket-primitive-9.summary diff --git a/cts/pengine/ticket-primitive-9.xml b/cts/scheduler/ticket-primitive-9.xml similarity index 100% rename from cts/pengine/ticket-primitive-9.xml rename to cts/scheduler/ticket-primitive-9.xml diff --git a/cts/pengine/ticket-rsc-sets-1.dot b/cts/scheduler/ticket-rsc-sets-1.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-1.dot rename to cts/scheduler/ticket-rsc-sets-1.dot diff --git a/cts/pengine/ticket-rsc-sets-1.exp b/cts/scheduler/ticket-rsc-sets-1.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-1.exp rename to cts/scheduler/ticket-rsc-sets-1.exp diff --git a/cts/pengine/ticket-rsc-sets-1.scores b/cts/scheduler/ticket-rsc-sets-1.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-1.scores rename to cts/scheduler/ticket-rsc-sets-1.scores diff --git a/cts/pengine/ticket-rsc-sets-1.summary b/cts/scheduler/ticket-rsc-sets-1.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-1.summary rename to cts/scheduler/ticket-rsc-sets-1.summary diff --git a/cts/pengine/ticket-rsc-sets-1.xml b/cts/scheduler/ticket-rsc-sets-1.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-1.xml rename to cts/scheduler/ticket-rsc-sets-1.xml diff --git a/cts/pengine/ticket-rsc-sets-10.dot b/cts/scheduler/ticket-rsc-sets-10.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-10.dot rename to cts/scheduler/ticket-rsc-sets-10.dot diff --git a/cts/pengine/ticket-rsc-sets-10.exp b/cts/scheduler/ticket-rsc-sets-10.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-10.exp rename to cts/scheduler/ticket-rsc-sets-10.exp diff --git a/cts/pengine/ticket-rsc-sets-10.scores b/cts/scheduler/ticket-rsc-sets-10.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-10.scores rename to cts/scheduler/ticket-rsc-sets-10.scores diff --git a/cts/pengine/ticket-rsc-sets-10.summary b/cts/scheduler/ticket-rsc-sets-10.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-10.summary rename to cts/scheduler/ticket-rsc-sets-10.summary diff --git a/cts/pengine/ticket-rsc-sets-10.xml b/cts/scheduler/ticket-rsc-sets-10.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-10.xml rename to cts/scheduler/ticket-rsc-sets-10.xml diff --git a/cts/pengine/ticket-rsc-sets-11.dot b/cts/scheduler/ticket-rsc-sets-11.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-11.dot rename to cts/scheduler/ticket-rsc-sets-11.dot diff --git a/cts/pengine/ticket-rsc-sets-11.exp b/cts/scheduler/ticket-rsc-sets-11.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-11.exp rename to cts/scheduler/ticket-rsc-sets-11.exp diff --git a/cts/pengine/ticket-rsc-sets-11.scores b/cts/scheduler/ticket-rsc-sets-11.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-11.scores rename to cts/scheduler/ticket-rsc-sets-11.scores diff --git a/cts/pengine/ticket-rsc-sets-11.summary b/cts/scheduler/ticket-rsc-sets-11.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-11.summary rename to cts/scheduler/ticket-rsc-sets-11.summary diff --git a/cts/pengine/ticket-rsc-sets-11.xml b/cts/scheduler/ticket-rsc-sets-11.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-11.xml rename to cts/scheduler/ticket-rsc-sets-11.xml diff --git a/cts/pengine/ticket-rsc-sets-12.dot b/cts/scheduler/ticket-rsc-sets-12.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-12.dot rename to cts/scheduler/ticket-rsc-sets-12.dot diff --git a/cts/pengine/ticket-rsc-sets-12.exp b/cts/scheduler/ticket-rsc-sets-12.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-12.exp rename to cts/scheduler/ticket-rsc-sets-12.exp diff --git a/cts/pengine/ticket-rsc-sets-12.scores b/cts/scheduler/ticket-rsc-sets-12.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-12.scores rename to cts/scheduler/ticket-rsc-sets-12.scores diff --git a/cts/pengine/ticket-rsc-sets-12.summary b/cts/scheduler/ticket-rsc-sets-12.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-12.summary rename to cts/scheduler/ticket-rsc-sets-12.summary diff --git a/cts/pengine/ticket-rsc-sets-12.xml b/cts/scheduler/ticket-rsc-sets-12.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-12.xml rename to cts/scheduler/ticket-rsc-sets-12.xml diff --git a/cts/pengine/ticket-rsc-sets-13.dot b/cts/scheduler/ticket-rsc-sets-13.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-13.dot rename to cts/scheduler/ticket-rsc-sets-13.dot diff --git a/cts/pengine/ticket-rsc-sets-13.exp b/cts/scheduler/ticket-rsc-sets-13.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-13.exp rename to cts/scheduler/ticket-rsc-sets-13.exp diff --git a/cts/pengine/ticket-rsc-sets-13.scores b/cts/scheduler/ticket-rsc-sets-13.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-13.scores rename to cts/scheduler/ticket-rsc-sets-13.scores diff --git a/cts/pengine/ticket-rsc-sets-13.summary b/cts/scheduler/ticket-rsc-sets-13.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-13.summary rename to cts/scheduler/ticket-rsc-sets-13.summary diff --git a/cts/pengine/ticket-rsc-sets-13.xml b/cts/scheduler/ticket-rsc-sets-13.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-13.xml rename to cts/scheduler/ticket-rsc-sets-13.xml diff --git a/cts/pengine/ticket-rsc-sets-14.dot b/cts/scheduler/ticket-rsc-sets-14.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-14.dot rename to cts/scheduler/ticket-rsc-sets-14.dot diff --git a/cts/pengine/ticket-rsc-sets-14.exp b/cts/scheduler/ticket-rsc-sets-14.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-14.exp rename to cts/scheduler/ticket-rsc-sets-14.exp diff --git a/cts/pengine/ticket-rsc-sets-14.scores b/cts/scheduler/ticket-rsc-sets-14.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-14.scores rename to cts/scheduler/ticket-rsc-sets-14.scores diff --git a/cts/pengine/ticket-rsc-sets-14.summary b/cts/scheduler/ticket-rsc-sets-14.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-14.summary rename to cts/scheduler/ticket-rsc-sets-14.summary diff --git a/cts/pengine/ticket-rsc-sets-14.xml b/cts/scheduler/ticket-rsc-sets-14.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-14.xml rename to cts/scheduler/ticket-rsc-sets-14.xml diff --git a/cts/pengine/ticket-rsc-sets-2.dot b/cts/scheduler/ticket-rsc-sets-2.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-2.dot rename to cts/scheduler/ticket-rsc-sets-2.dot diff --git a/cts/pengine/ticket-rsc-sets-2.exp b/cts/scheduler/ticket-rsc-sets-2.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-2.exp rename to cts/scheduler/ticket-rsc-sets-2.exp diff --git a/cts/pengine/ticket-rsc-sets-2.scores b/cts/scheduler/ticket-rsc-sets-2.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-2.scores rename to cts/scheduler/ticket-rsc-sets-2.scores diff --git a/cts/pengine/ticket-rsc-sets-2.summary b/cts/scheduler/ticket-rsc-sets-2.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-2.summary rename to cts/scheduler/ticket-rsc-sets-2.summary diff --git a/cts/pengine/ticket-rsc-sets-2.xml b/cts/scheduler/ticket-rsc-sets-2.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-2.xml rename to cts/scheduler/ticket-rsc-sets-2.xml diff --git a/cts/pengine/ticket-rsc-sets-3.dot b/cts/scheduler/ticket-rsc-sets-3.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-3.dot rename to cts/scheduler/ticket-rsc-sets-3.dot diff --git a/cts/pengine/ticket-rsc-sets-3.exp b/cts/scheduler/ticket-rsc-sets-3.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-3.exp rename to cts/scheduler/ticket-rsc-sets-3.exp diff --git a/cts/pengine/ticket-rsc-sets-3.scores b/cts/scheduler/ticket-rsc-sets-3.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-3.scores rename to cts/scheduler/ticket-rsc-sets-3.scores diff --git a/cts/pengine/ticket-rsc-sets-3.summary b/cts/scheduler/ticket-rsc-sets-3.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-3.summary rename to cts/scheduler/ticket-rsc-sets-3.summary diff --git a/cts/pengine/ticket-rsc-sets-3.xml b/cts/scheduler/ticket-rsc-sets-3.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-3.xml rename to cts/scheduler/ticket-rsc-sets-3.xml diff --git a/cts/pengine/ticket-rsc-sets-4.dot b/cts/scheduler/ticket-rsc-sets-4.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-4.dot rename to cts/scheduler/ticket-rsc-sets-4.dot diff --git a/cts/pengine/ticket-rsc-sets-4.exp b/cts/scheduler/ticket-rsc-sets-4.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-4.exp rename to cts/scheduler/ticket-rsc-sets-4.exp diff --git a/cts/pengine/ticket-rsc-sets-4.scores b/cts/scheduler/ticket-rsc-sets-4.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-4.scores rename to cts/scheduler/ticket-rsc-sets-4.scores diff --git a/cts/pengine/ticket-rsc-sets-4.summary b/cts/scheduler/ticket-rsc-sets-4.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-4.summary rename to cts/scheduler/ticket-rsc-sets-4.summary diff --git a/cts/pengine/ticket-rsc-sets-4.xml b/cts/scheduler/ticket-rsc-sets-4.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-4.xml rename to cts/scheduler/ticket-rsc-sets-4.xml diff --git a/cts/pengine/ticket-rsc-sets-5.dot b/cts/scheduler/ticket-rsc-sets-5.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-5.dot rename to cts/scheduler/ticket-rsc-sets-5.dot diff --git a/cts/pengine/ticket-rsc-sets-5.exp b/cts/scheduler/ticket-rsc-sets-5.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-5.exp rename to cts/scheduler/ticket-rsc-sets-5.exp diff --git a/cts/pengine/ticket-rsc-sets-5.scores b/cts/scheduler/ticket-rsc-sets-5.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-5.scores rename to cts/scheduler/ticket-rsc-sets-5.scores diff --git a/cts/pengine/ticket-rsc-sets-5.summary b/cts/scheduler/ticket-rsc-sets-5.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-5.summary rename to cts/scheduler/ticket-rsc-sets-5.summary diff --git a/cts/pengine/ticket-rsc-sets-5.xml b/cts/scheduler/ticket-rsc-sets-5.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-5.xml rename to cts/scheduler/ticket-rsc-sets-5.xml diff --git a/cts/pengine/ticket-rsc-sets-6.dot b/cts/scheduler/ticket-rsc-sets-6.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-6.dot rename to cts/scheduler/ticket-rsc-sets-6.dot diff --git a/cts/pengine/ticket-rsc-sets-6.exp b/cts/scheduler/ticket-rsc-sets-6.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-6.exp rename to cts/scheduler/ticket-rsc-sets-6.exp diff --git a/cts/pengine/ticket-rsc-sets-6.scores b/cts/scheduler/ticket-rsc-sets-6.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-6.scores rename to cts/scheduler/ticket-rsc-sets-6.scores diff --git a/cts/pengine/ticket-rsc-sets-6.summary b/cts/scheduler/ticket-rsc-sets-6.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-6.summary rename to cts/scheduler/ticket-rsc-sets-6.summary diff --git a/cts/pengine/ticket-rsc-sets-6.xml b/cts/scheduler/ticket-rsc-sets-6.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-6.xml rename to cts/scheduler/ticket-rsc-sets-6.xml diff --git a/cts/pengine/ticket-rsc-sets-7.dot b/cts/scheduler/ticket-rsc-sets-7.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-7.dot rename to cts/scheduler/ticket-rsc-sets-7.dot diff --git a/cts/pengine/ticket-rsc-sets-7.exp b/cts/scheduler/ticket-rsc-sets-7.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-7.exp rename to cts/scheduler/ticket-rsc-sets-7.exp diff --git a/cts/pengine/ticket-rsc-sets-7.scores b/cts/scheduler/ticket-rsc-sets-7.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-7.scores rename to cts/scheduler/ticket-rsc-sets-7.scores diff --git a/cts/pengine/ticket-rsc-sets-7.summary b/cts/scheduler/ticket-rsc-sets-7.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-7.summary rename to cts/scheduler/ticket-rsc-sets-7.summary diff --git a/cts/pengine/ticket-rsc-sets-7.xml b/cts/scheduler/ticket-rsc-sets-7.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-7.xml rename to cts/scheduler/ticket-rsc-sets-7.xml diff --git a/cts/pengine/ticket-rsc-sets-8.dot b/cts/scheduler/ticket-rsc-sets-8.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-8.dot rename to cts/scheduler/ticket-rsc-sets-8.dot diff --git a/cts/pengine/ticket-rsc-sets-8.exp b/cts/scheduler/ticket-rsc-sets-8.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-8.exp rename to cts/scheduler/ticket-rsc-sets-8.exp diff --git a/cts/pengine/ticket-rsc-sets-8.scores b/cts/scheduler/ticket-rsc-sets-8.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-8.scores rename to cts/scheduler/ticket-rsc-sets-8.scores diff --git a/cts/pengine/ticket-rsc-sets-8.summary b/cts/scheduler/ticket-rsc-sets-8.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-8.summary rename to cts/scheduler/ticket-rsc-sets-8.summary diff --git a/cts/pengine/ticket-rsc-sets-8.xml b/cts/scheduler/ticket-rsc-sets-8.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-8.xml rename to cts/scheduler/ticket-rsc-sets-8.xml diff --git a/cts/pengine/ticket-rsc-sets-9.dot b/cts/scheduler/ticket-rsc-sets-9.dot similarity index 100% rename from cts/pengine/ticket-rsc-sets-9.dot rename to cts/scheduler/ticket-rsc-sets-9.dot diff --git a/cts/pengine/ticket-rsc-sets-9.exp b/cts/scheduler/ticket-rsc-sets-9.exp similarity index 100% rename from cts/pengine/ticket-rsc-sets-9.exp rename to cts/scheduler/ticket-rsc-sets-9.exp diff --git a/cts/pengine/ticket-rsc-sets-9.scores b/cts/scheduler/ticket-rsc-sets-9.scores similarity index 100% rename from cts/pengine/ticket-rsc-sets-9.scores rename to cts/scheduler/ticket-rsc-sets-9.scores diff --git a/cts/pengine/ticket-rsc-sets-9.summary b/cts/scheduler/ticket-rsc-sets-9.summary similarity index 100% rename from cts/pengine/ticket-rsc-sets-9.summary rename to cts/scheduler/ticket-rsc-sets-9.summary diff --git a/cts/pengine/ticket-rsc-sets-9.xml b/cts/scheduler/ticket-rsc-sets-9.xml similarity index 100% rename from cts/pengine/ticket-rsc-sets-9.xml rename to cts/scheduler/ticket-rsc-sets-9.xml diff --git a/cts/pengine/unfence-definition.dot b/cts/scheduler/unfence-definition.dot similarity index 100% rename from cts/pengine/unfence-definition.dot rename to cts/scheduler/unfence-definition.dot diff --git a/cts/pengine/unfence-definition.exp b/cts/scheduler/unfence-definition.exp similarity index 100% rename from cts/pengine/unfence-definition.exp rename to cts/scheduler/unfence-definition.exp diff --git a/cts/pengine/unfence-definition.scores b/cts/scheduler/unfence-definition.scores similarity index 100% rename from cts/pengine/unfence-definition.scores rename to cts/scheduler/unfence-definition.scores diff --git a/cts/pengine/unfence-definition.summary b/cts/scheduler/unfence-definition.summary similarity index 100% rename from cts/pengine/unfence-definition.summary rename to cts/scheduler/unfence-definition.summary diff --git a/cts/pengine/unfence-definition.xml b/cts/scheduler/unfence-definition.xml similarity index 100% rename from cts/pengine/unfence-definition.xml rename to cts/scheduler/unfence-definition.xml diff --git a/cts/pengine/unfence-device.dot b/cts/scheduler/unfence-device.dot similarity index 100% rename from cts/pengine/unfence-device.dot rename to cts/scheduler/unfence-device.dot diff --git a/cts/pengine/unfence-device.exp b/cts/scheduler/unfence-device.exp similarity index 100% rename from cts/pengine/unfence-device.exp rename to cts/scheduler/unfence-device.exp diff --git a/cts/pengine/unfence-device.scores b/cts/scheduler/unfence-device.scores similarity index 100% rename from cts/pengine/unfence-device.scores rename to cts/scheduler/unfence-device.scores diff --git a/cts/pengine/unfence-device.summary b/cts/scheduler/unfence-device.summary similarity index 100% rename from cts/pengine/unfence-device.summary rename to cts/scheduler/unfence-device.summary diff --git a/cts/pengine/unfence-device.xml b/cts/scheduler/unfence-device.xml similarity index 100% rename from cts/pengine/unfence-device.xml rename to cts/scheduler/unfence-device.xml diff --git a/cts/pengine/unfence-parameters.dot b/cts/scheduler/unfence-parameters.dot similarity index 100% rename from cts/pengine/unfence-parameters.dot rename to cts/scheduler/unfence-parameters.dot diff --git a/cts/pengine/unfence-parameters.exp b/cts/scheduler/unfence-parameters.exp similarity index 100% rename from cts/pengine/unfence-parameters.exp rename to cts/scheduler/unfence-parameters.exp diff --git a/cts/pengine/unfence-parameters.scores b/cts/scheduler/unfence-parameters.scores similarity index 100% rename from cts/pengine/unfence-parameters.scores rename to cts/scheduler/unfence-parameters.scores diff --git a/cts/pengine/unfence-parameters.summary b/cts/scheduler/unfence-parameters.summary similarity index 100% rename from cts/pengine/unfence-parameters.summary rename to cts/scheduler/unfence-parameters.summary diff --git a/cts/pengine/unfence-parameters.xml b/cts/scheduler/unfence-parameters.xml similarity index 100% rename from cts/pengine/unfence-parameters.xml rename to cts/scheduler/unfence-parameters.xml diff --git a/cts/pengine/unfence-startup.dot b/cts/scheduler/unfence-startup.dot similarity index 100% rename from cts/pengine/unfence-startup.dot rename to cts/scheduler/unfence-startup.dot diff --git a/cts/pengine/unfence-startup.exp b/cts/scheduler/unfence-startup.exp similarity index 100% rename from cts/pengine/unfence-startup.exp rename to cts/scheduler/unfence-startup.exp diff --git a/cts/pengine/unfence-startup.scores b/cts/scheduler/unfence-startup.scores similarity index 100% rename from cts/pengine/unfence-startup.scores rename to cts/scheduler/unfence-startup.scores diff --git a/cts/pengine/unfence-startup.summary b/cts/scheduler/unfence-startup.summary similarity index 100% rename from cts/pengine/unfence-startup.summary rename to cts/scheduler/unfence-startup.summary diff --git a/cts/pengine/unfence-startup.xml b/cts/scheduler/unfence-startup.xml similarity index 100% rename from cts/pengine/unfence-startup.xml rename to cts/scheduler/unfence-startup.xml diff --git a/cts/pengine/unmanaged-block-restart.dot b/cts/scheduler/unmanaged-block-restart.dot similarity index 100% rename from cts/pengine/unmanaged-block-restart.dot rename to cts/scheduler/unmanaged-block-restart.dot diff --git a/cts/pengine/unmanaged-block-restart.exp b/cts/scheduler/unmanaged-block-restart.exp similarity index 100% rename from cts/pengine/unmanaged-block-restart.exp rename to cts/scheduler/unmanaged-block-restart.exp diff --git a/cts/pengine/unmanaged-block-restart.scores b/cts/scheduler/unmanaged-block-restart.scores similarity index 100% rename from cts/pengine/unmanaged-block-restart.scores rename to cts/scheduler/unmanaged-block-restart.scores diff --git a/cts/pengine/unmanaged-block-restart.summary b/cts/scheduler/unmanaged-block-restart.summary similarity index 100% rename from cts/pengine/unmanaged-block-restart.summary rename to cts/scheduler/unmanaged-block-restart.summary diff --git a/cts/pengine/unmanaged-block-restart.xml b/cts/scheduler/unmanaged-block-restart.xml similarity index 100% rename from cts/pengine/unmanaged-block-restart.xml rename to cts/scheduler/unmanaged-block-restart.xml diff --git a/cts/pengine/unmanaged-master.dot b/cts/scheduler/unmanaged-master.dot similarity index 100% rename from cts/pengine/unmanaged-master.dot rename to cts/scheduler/unmanaged-master.dot diff --git a/cts/pengine/unmanaged-master.exp b/cts/scheduler/unmanaged-master.exp similarity index 100% rename from cts/pengine/unmanaged-master.exp rename to cts/scheduler/unmanaged-master.exp diff --git a/cts/pengine/unmanaged-master.scores b/cts/scheduler/unmanaged-master.scores similarity index 100% rename from cts/pengine/unmanaged-master.scores rename to cts/scheduler/unmanaged-master.scores diff --git a/cts/pengine/unmanaged-master.summary b/cts/scheduler/unmanaged-master.summary similarity index 100% rename from cts/pengine/unmanaged-master.summary rename to cts/scheduler/unmanaged-master.summary diff --git a/cts/pengine/unmanaged-master.xml b/cts/scheduler/unmanaged-master.xml similarity index 100% rename from cts/pengine/unmanaged-master.xml rename to cts/scheduler/unmanaged-master.xml diff --git a/cts/pengine/unmanaged-stop-1.dot b/cts/scheduler/unmanaged-stop-1.dot similarity index 100% rename from cts/pengine/unmanaged-stop-1.dot rename to cts/scheduler/unmanaged-stop-1.dot diff --git a/cts/pengine/unmanaged-stop-1.exp b/cts/scheduler/unmanaged-stop-1.exp similarity index 100% rename from cts/pengine/unmanaged-stop-1.exp rename to cts/scheduler/unmanaged-stop-1.exp diff --git a/cts/pengine/unmanaged-stop-1.scores b/cts/scheduler/unmanaged-stop-1.scores similarity index 100% rename from cts/pengine/unmanaged-stop-1.scores rename to cts/scheduler/unmanaged-stop-1.scores diff --git a/cts/pengine/unmanaged-stop-1.summary b/cts/scheduler/unmanaged-stop-1.summary similarity index 100% rename from cts/pengine/unmanaged-stop-1.summary rename to cts/scheduler/unmanaged-stop-1.summary diff --git a/cts/pengine/unmanaged-stop-1.xml b/cts/scheduler/unmanaged-stop-1.xml similarity index 100% rename from cts/pengine/unmanaged-stop-1.xml rename to cts/scheduler/unmanaged-stop-1.xml diff --git a/cts/pengine/unmanaged-stop-2.dot b/cts/scheduler/unmanaged-stop-2.dot similarity index 100% rename from cts/pengine/unmanaged-stop-2.dot rename to cts/scheduler/unmanaged-stop-2.dot diff --git a/cts/pengine/unmanaged-stop-2.exp b/cts/scheduler/unmanaged-stop-2.exp similarity index 100% rename from cts/pengine/unmanaged-stop-2.exp rename to cts/scheduler/unmanaged-stop-2.exp diff --git a/cts/pengine/unmanaged-stop-2.scores b/cts/scheduler/unmanaged-stop-2.scores similarity index 100% rename from cts/pengine/unmanaged-stop-2.scores rename to cts/scheduler/unmanaged-stop-2.scores diff --git a/cts/pengine/unmanaged-stop-2.summary b/cts/scheduler/unmanaged-stop-2.summary similarity index 100% rename from cts/pengine/unmanaged-stop-2.summary rename to cts/scheduler/unmanaged-stop-2.summary diff --git a/cts/pengine/unmanaged-stop-2.xml b/cts/scheduler/unmanaged-stop-2.xml similarity index 100% rename from cts/pengine/unmanaged-stop-2.xml rename to cts/scheduler/unmanaged-stop-2.xml diff --git a/cts/pengine/unmanaged-stop-3.dot b/cts/scheduler/unmanaged-stop-3.dot similarity index 100% rename from cts/pengine/unmanaged-stop-3.dot rename to cts/scheduler/unmanaged-stop-3.dot diff --git a/cts/pengine/unmanaged-stop-3.exp b/cts/scheduler/unmanaged-stop-3.exp similarity index 100% rename from cts/pengine/unmanaged-stop-3.exp rename to cts/scheduler/unmanaged-stop-3.exp diff --git a/cts/pengine/unmanaged-stop-3.scores b/cts/scheduler/unmanaged-stop-3.scores similarity index 100% rename from cts/pengine/unmanaged-stop-3.scores rename to cts/scheduler/unmanaged-stop-3.scores diff --git a/cts/pengine/unmanaged-stop-3.summary b/cts/scheduler/unmanaged-stop-3.summary similarity index 100% rename from cts/pengine/unmanaged-stop-3.summary rename to cts/scheduler/unmanaged-stop-3.summary diff --git a/cts/pengine/unmanaged-stop-3.xml b/cts/scheduler/unmanaged-stop-3.xml similarity index 100% rename from cts/pengine/unmanaged-stop-3.xml rename to cts/scheduler/unmanaged-stop-3.xml diff --git a/cts/pengine/unmanaged-stop-4.dot b/cts/scheduler/unmanaged-stop-4.dot similarity index 100% rename from cts/pengine/unmanaged-stop-4.dot rename to cts/scheduler/unmanaged-stop-4.dot diff --git a/cts/pengine/unmanaged-stop-4.exp b/cts/scheduler/unmanaged-stop-4.exp similarity index 100% rename from cts/pengine/unmanaged-stop-4.exp rename to cts/scheduler/unmanaged-stop-4.exp diff --git a/cts/pengine/unmanaged-stop-4.scores b/cts/scheduler/unmanaged-stop-4.scores similarity index 100% rename from cts/pengine/unmanaged-stop-4.scores rename to cts/scheduler/unmanaged-stop-4.scores diff --git a/cts/pengine/unmanaged-stop-4.summary b/cts/scheduler/unmanaged-stop-4.summary similarity index 100% rename from cts/pengine/unmanaged-stop-4.summary rename to cts/scheduler/unmanaged-stop-4.summary diff --git a/cts/pengine/unmanaged-stop-4.xml b/cts/scheduler/unmanaged-stop-4.xml similarity index 100% rename from cts/pengine/unmanaged-stop-4.xml rename to cts/scheduler/unmanaged-stop-4.xml diff --git a/cts/pengine/unrunnable-1.dot b/cts/scheduler/unrunnable-1.dot similarity index 100% rename from cts/pengine/unrunnable-1.dot rename to cts/scheduler/unrunnable-1.dot diff --git a/cts/pengine/unrunnable-1.exp b/cts/scheduler/unrunnable-1.exp similarity index 100% rename from cts/pengine/unrunnable-1.exp rename to cts/scheduler/unrunnable-1.exp diff --git a/cts/pengine/unrunnable-1.scores b/cts/scheduler/unrunnable-1.scores similarity index 100% rename from cts/pengine/unrunnable-1.scores rename to cts/scheduler/unrunnable-1.scores diff --git a/cts/pengine/unrunnable-1.summary b/cts/scheduler/unrunnable-1.summary similarity index 100% rename from cts/pengine/unrunnable-1.summary rename to cts/scheduler/unrunnable-1.summary diff --git a/cts/pengine/unrunnable-1.xml b/cts/scheduler/unrunnable-1.xml similarity index 100% rename from cts/pengine/unrunnable-1.xml rename to cts/scheduler/unrunnable-1.xml diff --git a/cts/pengine/unrunnable-2.dot b/cts/scheduler/unrunnable-2.dot similarity index 100% rename from cts/pengine/unrunnable-2.dot rename to cts/scheduler/unrunnable-2.dot diff --git a/cts/pengine/unrunnable-2.exp b/cts/scheduler/unrunnable-2.exp similarity index 100% rename from cts/pengine/unrunnable-2.exp rename to cts/scheduler/unrunnable-2.exp diff --git a/cts/pengine/unrunnable-2.scores b/cts/scheduler/unrunnable-2.scores similarity index 100% rename from cts/pengine/unrunnable-2.scores rename to cts/scheduler/unrunnable-2.scores diff --git a/cts/pengine/unrunnable-2.summary b/cts/scheduler/unrunnable-2.summary similarity index 100% rename from cts/pengine/unrunnable-2.summary rename to cts/scheduler/unrunnable-2.summary diff --git a/cts/pengine/unrunnable-2.xml b/cts/scheduler/unrunnable-2.xml similarity index 100% rename from cts/pengine/unrunnable-2.xml rename to cts/scheduler/unrunnable-2.xml diff --git a/cts/pengine/use-after-free-merge.dot b/cts/scheduler/use-after-free-merge.dot similarity index 100% rename from cts/pengine/use-after-free-merge.dot rename to cts/scheduler/use-after-free-merge.dot diff --git a/cts/pengine/use-after-free-merge.exp b/cts/scheduler/use-after-free-merge.exp similarity index 100% rename from cts/pengine/use-after-free-merge.exp rename to cts/scheduler/use-after-free-merge.exp diff --git a/cts/pengine/use-after-free-merge.scores b/cts/scheduler/use-after-free-merge.scores similarity index 100% rename from cts/pengine/use-after-free-merge.scores rename to cts/scheduler/use-after-free-merge.scores diff --git a/cts/pengine/use-after-free-merge.summary b/cts/scheduler/use-after-free-merge.summary similarity index 100% rename from cts/pengine/use-after-free-merge.summary rename to cts/scheduler/use-after-free-merge.summary diff --git a/cts/pengine/use-after-free-merge.xml b/cts/scheduler/use-after-free-merge.xml similarity index 100% rename from cts/pengine/use-after-free-merge.xml rename to cts/scheduler/use-after-free-merge.xml diff --git a/cts/pengine/utilization-check-allowed-nodes.dot b/cts/scheduler/utilization-check-allowed-nodes.dot similarity index 100% rename from cts/pengine/utilization-check-allowed-nodes.dot rename to cts/scheduler/utilization-check-allowed-nodes.dot diff --git a/cts/pengine/utilization-check-allowed-nodes.exp b/cts/scheduler/utilization-check-allowed-nodes.exp similarity index 100% rename from cts/pengine/utilization-check-allowed-nodes.exp rename to cts/scheduler/utilization-check-allowed-nodes.exp diff --git a/cts/pengine/utilization-check-allowed-nodes.scores b/cts/scheduler/utilization-check-allowed-nodes.scores similarity index 100% rename from cts/pengine/utilization-check-allowed-nodes.scores rename to cts/scheduler/utilization-check-allowed-nodes.scores diff --git a/cts/pengine/utilization-check-allowed-nodes.summary b/cts/scheduler/utilization-check-allowed-nodes.summary similarity index 100% rename from cts/pengine/utilization-check-allowed-nodes.summary rename to cts/scheduler/utilization-check-allowed-nodes.summary diff --git a/cts/pengine/utilization-check-allowed-nodes.xml b/cts/scheduler/utilization-check-allowed-nodes.xml similarity index 100% rename from cts/pengine/utilization-check-allowed-nodes.xml rename to cts/scheduler/utilization-check-allowed-nodes.xml diff --git a/cts/pengine/utilization-order1.dot b/cts/scheduler/utilization-order1.dot similarity index 100% rename from cts/pengine/utilization-order1.dot rename to cts/scheduler/utilization-order1.dot diff --git a/cts/pengine/utilization-order1.exp b/cts/scheduler/utilization-order1.exp similarity index 100% rename from cts/pengine/utilization-order1.exp rename to cts/scheduler/utilization-order1.exp diff --git a/cts/pengine/utilization-order1.scores b/cts/scheduler/utilization-order1.scores similarity index 100% rename from cts/pengine/utilization-order1.scores rename to cts/scheduler/utilization-order1.scores diff --git a/cts/pengine/utilization-order1.summary b/cts/scheduler/utilization-order1.summary similarity index 100% rename from cts/pengine/utilization-order1.summary rename to cts/scheduler/utilization-order1.summary diff --git a/cts/pengine/utilization-order1.xml b/cts/scheduler/utilization-order1.xml similarity index 100% rename from cts/pengine/utilization-order1.xml rename to cts/scheduler/utilization-order1.xml diff --git a/cts/pengine/utilization-order2.dot b/cts/scheduler/utilization-order2.dot similarity index 100% rename from cts/pengine/utilization-order2.dot rename to cts/scheduler/utilization-order2.dot diff --git a/cts/pengine/utilization-order2.exp b/cts/scheduler/utilization-order2.exp similarity index 100% rename from cts/pengine/utilization-order2.exp rename to cts/scheduler/utilization-order2.exp diff --git a/cts/pengine/utilization-order2.scores b/cts/scheduler/utilization-order2.scores similarity index 100% rename from cts/pengine/utilization-order2.scores rename to cts/scheduler/utilization-order2.scores diff --git a/cts/pengine/utilization-order2.summary b/cts/scheduler/utilization-order2.summary similarity index 100% rename from cts/pengine/utilization-order2.summary rename to cts/scheduler/utilization-order2.summary diff --git a/cts/pengine/utilization-order2.xml b/cts/scheduler/utilization-order2.xml similarity index 100% rename from cts/pengine/utilization-order2.xml rename to cts/scheduler/utilization-order2.xml diff --git a/cts/pengine/utilization-order3.dot b/cts/scheduler/utilization-order3.dot similarity index 100% rename from cts/pengine/utilization-order3.dot rename to cts/scheduler/utilization-order3.dot diff --git a/cts/pengine/utilization-order3.exp b/cts/scheduler/utilization-order3.exp similarity index 100% rename from cts/pengine/utilization-order3.exp rename to cts/scheduler/utilization-order3.exp diff --git a/cts/pengine/utilization-order3.scores b/cts/scheduler/utilization-order3.scores similarity index 100% rename from cts/pengine/utilization-order3.scores rename to cts/scheduler/utilization-order3.scores diff --git a/cts/pengine/utilization-order3.summary b/cts/scheduler/utilization-order3.summary similarity index 100% rename from cts/pengine/utilization-order3.summary rename to cts/scheduler/utilization-order3.summary diff --git a/cts/pengine/utilization-order3.xml b/cts/scheduler/utilization-order3.xml similarity index 100% rename from cts/pengine/utilization-order3.xml rename to cts/scheduler/utilization-order3.xml diff --git a/cts/pengine/utilization-order4.dot b/cts/scheduler/utilization-order4.dot similarity index 100% rename from cts/pengine/utilization-order4.dot rename to cts/scheduler/utilization-order4.dot diff --git a/cts/pengine/utilization-order4.exp b/cts/scheduler/utilization-order4.exp similarity index 100% rename from cts/pengine/utilization-order4.exp rename to cts/scheduler/utilization-order4.exp diff --git a/cts/pengine/utilization-order4.scores b/cts/scheduler/utilization-order4.scores similarity index 100% rename from cts/pengine/utilization-order4.scores rename to cts/scheduler/utilization-order4.scores diff --git a/cts/pengine/utilization-order4.summary b/cts/scheduler/utilization-order4.summary similarity index 100% rename from cts/pengine/utilization-order4.summary rename to cts/scheduler/utilization-order4.summary diff --git a/cts/pengine/utilization-order4.xml b/cts/scheduler/utilization-order4.xml similarity index 100% rename from cts/pengine/utilization-order4.xml rename to cts/scheduler/utilization-order4.xml diff --git a/cts/pengine/utilization-shuffle.dot b/cts/scheduler/utilization-shuffle.dot similarity index 100% rename from cts/pengine/utilization-shuffle.dot rename to cts/scheduler/utilization-shuffle.dot diff --git a/cts/pengine/utilization-shuffle.exp b/cts/scheduler/utilization-shuffle.exp similarity index 100% rename from cts/pengine/utilization-shuffle.exp rename to cts/scheduler/utilization-shuffle.exp diff --git a/cts/pengine/utilization-shuffle.scores b/cts/scheduler/utilization-shuffle.scores similarity index 100% rename from cts/pengine/utilization-shuffle.scores rename to cts/scheduler/utilization-shuffle.scores diff --git a/cts/pengine/utilization-shuffle.summary b/cts/scheduler/utilization-shuffle.summary similarity index 100% rename from cts/pengine/utilization-shuffle.summary rename to cts/scheduler/utilization-shuffle.summary diff --git a/cts/pengine/utilization-shuffle.xml b/cts/scheduler/utilization-shuffle.xml similarity index 100% rename from cts/pengine/utilization-shuffle.xml rename to cts/scheduler/utilization-shuffle.xml diff --git a/cts/pengine/utilization.dot b/cts/scheduler/utilization.dot similarity index 100% rename from cts/pengine/utilization.dot rename to cts/scheduler/utilization.dot diff --git a/cts/pengine/utilization.exp b/cts/scheduler/utilization.exp similarity index 100% rename from cts/pengine/utilization.exp rename to cts/scheduler/utilization.exp diff --git a/cts/pengine/utilization.scores b/cts/scheduler/utilization.scores similarity index 100% rename from cts/pengine/utilization.scores rename to cts/scheduler/utilization.scores diff --git a/cts/pengine/utilization.summary b/cts/scheduler/utilization.summary similarity index 100% rename from cts/pengine/utilization.summary rename to cts/scheduler/utilization.summary diff --git a/cts/pengine/utilization.xml b/cts/scheduler/utilization.xml similarity index 100% rename from cts/pengine/utilization.xml rename to cts/scheduler/utilization.xml diff --git a/cts/pengine/versioned-operations-1.dot b/cts/scheduler/versioned-operations-1.dot similarity index 100% rename from cts/pengine/versioned-operations-1.dot rename to cts/scheduler/versioned-operations-1.dot diff --git a/cts/pengine/versioned-operations-1.exp b/cts/scheduler/versioned-operations-1.exp similarity index 100% rename from cts/pengine/versioned-operations-1.exp rename to cts/scheduler/versioned-operations-1.exp diff --git a/cts/pengine/versioned-operations-1.scores b/cts/scheduler/versioned-operations-1.scores similarity index 100% rename from cts/pengine/versioned-operations-1.scores rename to cts/scheduler/versioned-operations-1.scores diff --git a/cts/pengine/versioned-operations-1.summary b/cts/scheduler/versioned-operations-1.summary similarity index 100% rename from cts/pengine/versioned-operations-1.summary rename to cts/scheduler/versioned-operations-1.summary diff --git a/cts/pengine/versioned-operations-1.xml b/cts/scheduler/versioned-operations-1.xml similarity index 100% rename from cts/pengine/versioned-operations-1.xml rename to cts/scheduler/versioned-operations-1.xml diff --git a/cts/pengine/versioned-operations-2.dot b/cts/scheduler/versioned-operations-2.dot similarity index 100% rename from cts/pengine/versioned-operations-2.dot rename to cts/scheduler/versioned-operations-2.dot diff --git a/cts/pengine/versioned-operations-2.exp b/cts/scheduler/versioned-operations-2.exp similarity index 100% rename from cts/pengine/versioned-operations-2.exp rename to cts/scheduler/versioned-operations-2.exp diff --git a/cts/pengine/versioned-operations-2.scores b/cts/scheduler/versioned-operations-2.scores similarity index 100% rename from cts/pengine/versioned-operations-2.scores rename to cts/scheduler/versioned-operations-2.scores diff --git a/cts/pengine/versioned-operations-2.summary b/cts/scheduler/versioned-operations-2.summary similarity index 100% rename from cts/pengine/versioned-operations-2.summary rename to cts/scheduler/versioned-operations-2.summary diff --git a/cts/pengine/versioned-operations-2.xml b/cts/scheduler/versioned-operations-2.xml similarity index 100% rename from cts/pengine/versioned-operations-2.xml rename to cts/scheduler/versioned-operations-2.xml diff --git a/cts/pengine/versioned-operations-3.dot b/cts/scheduler/versioned-operations-3.dot similarity index 100% rename from cts/pengine/versioned-operations-3.dot rename to cts/scheduler/versioned-operations-3.dot diff --git a/cts/pengine/versioned-operations-3.exp b/cts/scheduler/versioned-operations-3.exp similarity index 100% rename from cts/pengine/versioned-operations-3.exp rename to cts/scheduler/versioned-operations-3.exp diff --git a/cts/pengine/versioned-operations-3.scores b/cts/scheduler/versioned-operations-3.scores similarity index 100% rename from cts/pengine/versioned-operations-3.scores rename to cts/scheduler/versioned-operations-3.scores diff --git a/cts/pengine/versioned-operations-3.summary b/cts/scheduler/versioned-operations-3.summary similarity index 100% rename from cts/pengine/versioned-operations-3.summary rename to cts/scheduler/versioned-operations-3.summary diff --git a/cts/pengine/versioned-operations-3.xml b/cts/scheduler/versioned-operations-3.xml similarity index 100% rename from cts/pengine/versioned-operations-3.xml rename to cts/scheduler/versioned-operations-3.xml diff --git a/cts/pengine/versioned-operations-4.dot b/cts/scheduler/versioned-operations-4.dot similarity index 100% rename from cts/pengine/versioned-operations-4.dot rename to cts/scheduler/versioned-operations-4.dot diff --git a/cts/pengine/versioned-operations-4.exp b/cts/scheduler/versioned-operations-4.exp similarity index 100% rename from cts/pengine/versioned-operations-4.exp rename to cts/scheduler/versioned-operations-4.exp diff --git a/cts/pengine/versioned-operations-4.scores b/cts/scheduler/versioned-operations-4.scores similarity index 100% rename from cts/pengine/versioned-operations-4.scores rename to cts/scheduler/versioned-operations-4.scores diff --git a/cts/pengine/versioned-operations-4.summary b/cts/scheduler/versioned-operations-4.summary similarity index 100% rename from cts/pengine/versioned-operations-4.summary rename to cts/scheduler/versioned-operations-4.summary diff --git a/cts/pengine/versioned-operations-4.xml b/cts/scheduler/versioned-operations-4.xml similarity index 100% rename from cts/pengine/versioned-operations-4.xml rename to cts/scheduler/versioned-operations-4.xml diff --git a/cts/pengine/versioned-resources.dot b/cts/scheduler/versioned-resources.dot similarity index 100% rename from cts/pengine/versioned-resources.dot rename to cts/scheduler/versioned-resources.dot diff --git a/cts/pengine/versioned-resources.exp b/cts/scheduler/versioned-resources.exp similarity index 100% rename from cts/pengine/versioned-resources.exp rename to cts/scheduler/versioned-resources.exp diff --git a/cts/pengine/versioned-resources.scores b/cts/scheduler/versioned-resources.scores similarity index 100% rename from cts/pengine/versioned-resources.scores rename to cts/scheduler/versioned-resources.scores diff --git a/cts/pengine/versioned-resources.summary b/cts/scheduler/versioned-resources.summary similarity index 100% rename from cts/pengine/versioned-resources.summary rename to cts/scheduler/versioned-resources.summary diff --git a/cts/pengine/versioned-resources.xml b/cts/scheduler/versioned-resources.xml similarity index 100% rename from cts/pengine/versioned-resources.xml rename to cts/scheduler/versioned-resources.xml diff --git a/cts/pengine/whitebox-asymmetric.dot b/cts/scheduler/whitebox-asymmetric.dot similarity index 100% rename from cts/pengine/whitebox-asymmetric.dot rename to cts/scheduler/whitebox-asymmetric.dot diff --git a/cts/pengine/whitebox-asymmetric.exp b/cts/scheduler/whitebox-asymmetric.exp similarity index 100% rename from cts/pengine/whitebox-asymmetric.exp rename to cts/scheduler/whitebox-asymmetric.exp diff --git a/cts/pengine/whitebox-asymmetric.scores b/cts/scheduler/whitebox-asymmetric.scores similarity index 100% rename from cts/pengine/whitebox-asymmetric.scores rename to cts/scheduler/whitebox-asymmetric.scores diff --git a/cts/pengine/whitebox-asymmetric.summary b/cts/scheduler/whitebox-asymmetric.summary similarity index 100% rename from cts/pengine/whitebox-asymmetric.summary rename to cts/scheduler/whitebox-asymmetric.summary diff --git a/cts/pengine/whitebox-asymmetric.xml b/cts/scheduler/whitebox-asymmetric.xml similarity index 100% rename from cts/pengine/whitebox-asymmetric.xml rename to cts/scheduler/whitebox-asymmetric.xml diff --git a/cts/pengine/whitebox-fail1.dot b/cts/scheduler/whitebox-fail1.dot similarity index 100% rename from cts/pengine/whitebox-fail1.dot rename to cts/scheduler/whitebox-fail1.dot diff --git a/cts/pengine/whitebox-fail1.exp b/cts/scheduler/whitebox-fail1.exp similarity index 100% rename from cts/pengine/whitebox-fail1.exp rename to cts/scheduler/whitebox-fail1.exp diff --git a/cts/pengine/whitebox-fail1.scores b/cts/scheduler/whitebox-fail1.scores similarity index 100% rename from cts/pengine/whitebox-fail1.scores rename to cts/scheduler/whitebox-fail1.scores diff --git a/cts/pengine/whitebox-fail1.summary b/cts/scheduler/whitebox-fail1.summary similarity index 100% rename from cts/pengine/whitebox-fail1.summary rename to cts/scheduler/whitebox-fail1.summary diff --git a/cts/pengine/whitebox-fail1.xml b/cts/scheduler/whitebox-fail1.xml similarity index 100% rename from cts/pengine/whitebox-fail1.xml rename to cts/scheduler/whitebox-fail1.xml diff --git a/cts/pengine/whitebox-fail2.dot b/cts/scheduler/whitebox-fail2.dot similarity index 100% rename from cts/pengine/whitebox-fail2.dot rename to cts/scheduler/whitebox-fail2.dot diff --git a/cts/pengine/whitebox-fail2.exp b/cts/scheduler/whitebox-fail2.exp similarity index 100% rename from cts/pengine/whitebox-fail2.exp rename to cts/scheduler/whitebox-fail2.exp diff --git a/cts/pengine/whitebox-fail2.scores b/cts/scheduler/whitebox-fail2.scores similarity index 100% rename from cts/pengine/whitebox-fail2.scores rename to cts/scheduler/whitebox-fail2.scores diff --git a/cts/pengine/whitebox-fail2.summary b/cts/scheduler/whitebox-fail2.summary similarity index 100% rename from cts/pengine/whitebox-fail2.summary rename to cts/scheduler/whitebox-fail2.summary diff --git a/cts/pengine/whitebox-fail2.xml b/cts/scheduler/whitebox-fail2.xml similarity index 100% rename from cts/pengine/whitebox-fail2.xml rename to cts/scheduler/whitebox-fail2.xml diff --git a/cts/pengine/whitebox-fail3.dot b/cts/scheduler/whitebox-fail3.dot similarity index 100% rename from cts/pengine/whitebox-fail3.dot rename to cts/scheduler/whitebox-fail3.dot diff --git a/cts/pengine/whitebox-fail3.exp b/cts/scheduler/whitebox-fail3.exp similarity index 100% rename from cts/pengine/whitebox-fail3.exp rename to cts/scheduler/whitebox-fail3.exp diff --git a/cts/pengine/whitebox-fail3.scores b/cts/scheduler/whitebox-fail3.scores similarity index 100% rename from cts/pengine/whitebox-fail3.scores rename to cts/scheduler/whitebox-fail3.scores diff --git a/cts/pengine/whitebox-fail3.summary b/cts/scheduler/whitebox-fail3.summary similarity index 100% rename from cts/pengine/whitebox-fail3.summary rename to cts/scheduler/whitebox-fail3.summary diff --git a/cts/pengine/whitebox-fail3.xml b/cts/scheduler/whitebox-fail3.xml similarity index 100% rename from cts/pengine/whitebox-fail3.xml rename to cts/scheduler/whitebox-fail3.xml diff --git a/cts/pengine/whitebox-imply-stop-on-fence.dot b/cts/scheduler/whitebox-imply-stop-on-fence.dot similarity index 100% rename from cts/pengine/whitebox-imply-stop-on-fence.dot rename to cts/scheduler/whitebox-imply-stop-on-fence.dot diff --git a/cts/pengine/whitebox-imply-stop-on-fence.exp b/cts/scheduler/whitebox-imply-stop-on-fence.exp similarity index 100% rename from cts/pengine/whitebox-imply-stop-on-fence.exp rename to cts/scheduler/whitebox-imply-stop-on-fence.exp diff --git a/cts/pengine/whitebox-imply-stop-on-fence.scores b/cts/scheduler/whitebox-imply-stop-on-fence.scores similarity index 100% rename from cts/pengine/whitebox-imply-stop-on-fence.scores rename to cts/scheduler/whitebox-imply-stop-on-fence.scores diff --git a/cts/pengine/whitebox-imply-stop-on-fence.summary b/cts/scheduler/whitebox-imply-stop-on-fence.summary similarity index 100% rename from cts/pengine/whitebox-imply-stop-on-fence.summary rename to cts/scheduler/whitebox-imply-stop-on-fence.summary diff --git a/cts/pengine/whitebox-imply-stop-on-fence.xml b/cts/scheduler/whitebox-imply-stop-on-fence.xml similarity index 100% rename from cts/pengine/whitebox-imply-stop-on-fence.xml rename to cts/scheduler/whitebox-imply-stop-on-fence.xml diff --git a/cts/pengine/whitebox-migrate1.dot b/cts/scheduler/whitebox-migrate1.dot similarity index 100% rename from cts/pengine/whitebox-migrate1.dot rename to cts/scheduler/whitebox-migrate1.dot diff --git a/cts/pengine/whitebox-migrate1.exp b/cts/scheduler/whitebox-migrate1.exp similarity index 100% rename from cts/pengine/whitebox-migrate1.exp rename to cts/scheduler/whitebox-migrate1.exp diff --git a/cts/pengine/whitebox-migrate1.scores b/cts/scheduler/whitebox-migrate1.scores similarity index 100% rename from cts/pengine/whitebox-migrate1.scores rename to cts/scheduler/whitebox-migrate1.scores diff --git a/cts/pengine/whitebox-migrate1.summary b/cts/scheduler/whitebox-migrate1.summary similarity index 100% rename from cts/pengine/whitebox-migrate1.summary rename to cts/scheduler/whitebox-migrate1.summary diff --git a/cts/pengine/whitebox-migrate1.xml b/cts/scheduler/whitebox-migrate1.xml similarity index 100% rename from cts/pengine/whitebox-migrate1.xml rename to cts/scheduler/whitebox-migrate1.xml diff --git a/cts/pengine/whitebox-move.dot b/cts/scheduler/whitebox-move.dot similarity index 100% rename from cts/pengine/whitebox-move.dot rename to cts/scheduler/whitebox-move.dot diff --git a/cts/pengine/whitebox-move.exp b/cts/scheduler/whitebox-move.exp similarity index 100% rename from cts/pengine/whitebox-move.exp rename to cts/scheduler/whitebox-move.exp diff --git a/cts/pengine/whitebox-move.scores b/cts/scheduler/whitebox-move.scores similarity index 100% rename from cts/pengine/whitebox-move.scores rename to cts/scheduler/whitebox-move.scores diff --git a/cts/pengine/whitebox-move.summary b/cts/scheduler/whitebox-move.summary similarity index 100% rename from cts/pengine/whitebox-move.summary rename to cts/scheduler/whitebox-move.summary diff --git a/cts/pengine/whitebox-move.xml b/cts/scheduler/whitebox-move.xml similarity index 100% rename from cts/pengine/whitebox-move.xml rename to cts/scheduler/whitebox-move.xml diff --git a/cts/pengine/whitebox-ms-ordering-move.dot b/cts/scheduler/whitebox-ms-ordering-move.dot similarity index 100% rename from cts/pengine/whitebox-ms-ordering-move.dot rename to cts/scheduler/whitebox-ms-ordering-move.dot diff --git a/cts/pengine/whitebox-ms-ordering-move.exp b/cts/scheduler/whitebox-ms-ordering-move.exp similarity index 100% rename from cts/pengine/whitebox-ms-ordering-move.exp rename to cts/scheduler/whitebox-ms-ordering-move.exp diff --git a/cts/pengine/whitebox-ms-ordering-move.scores b/cts/scheduler/whitebox-ms-ordering-move.scores similarity index 100% rename from cts/pengine/whitebox-ms-ordering-move.scores rename to cts/scheduler/whitebox-ms-ordering-move.scores diff --git a/cts/pengine/whitebox-ms-ordering-move.summary b/cts/scheduler/whitebox-ms-ordering-move.summary similarity index 100% rename from cts/pengine/whitebox-ms-ordering-move.summary rename to cts/scheduler/whitebox-ms-ordering-move.summary diff --git a/cts/pengine/whitebox-ms-ordering-move.xml b/cts/scheduler/whitebox-ms-ordering-move.xml similarity index 100% rename from cts/pengine/whitebox-ms-ordering-move.xml rename to cts/scheduler/whitebox-ms-ordering-move.xml diff --git a/cts/pengine/whitebox-ms-ordering.dot b/cts/scheduler/whitebox-ms-ordering.dot similarity index 100% rename from cts/pengine/whitebox-ms-ordering.dot rename to cts/scheduler/whitebox-ms-ordering.dot diff --git a/cts/pengine/whitebox-ms-ordering.exp b/cts/scheduler/whitebox-ms-ordering.exp similarity index 100% rename from cts/pengine/whitebox-ms-ordering.exp rename to cts/scheduler/whitebox-ms-ordering.exp diff --git a/cts/pengine/whitebox-ms-ordering.scores b/cts/scheduler/whitebox-ms-ordering.scores similarity index 100% rename from cts/pengine/whitebox-ms-ordering.scores rename to cts/scheduler/whitebox-ms-ordering.scores diff --git a/cts/pengine/whitebox-ms-ordering.summary b/cts/scheduler/whitebox-ms-ordering.summary similarity index 100% rename from cts/pengine/whitebox-ms-ordering.summary rename to cts/scheduler/whitebox-ms-ordering.summary diff --git a/cts/pengine/whitebox-ms-ordering.xml b/cts/scheduler/whitebox-ms-ordering.xml similarity index 100% rename from cts/pengine/whitebox-ms-ordering.xml rename to cts/scheduler/whitebox-ms-ordering.xml diff --git a/cts/pengine/whitebox-nested-group.dot b/cts/scheduler/whitebox-nested-group.dot similarity index 100% rename from cts/pengine/whitebox-nested-group.dot rename to cts/scheduler/whitebox-nested-group.dot diff --git a/cts/pengine/whitebox-nested-group.exp b/cts/scheduler/whitebox-nested-group.exp similarity index 100% rename from cts/pengine/whitebox-nested-group.exp rename to cts/scheduler/whitebox-nested-group.exp diff --git a/cts/pengine/whitebox-nested-group.scores b/cts/scheduler/whitebox-nested-group.scores similarity index 100% rename from cts/pengine/whitebox-nested-group.scores rename to cts/scheduler/whitebox-nested-group.scores diff --git a/cts/pengine/whitebox-nested-group.summary b/cts/scheduler/whitebox-nested-group.summary similarity index 100% rename from cts/pengine/whitebox-nested-group.summary rename to cts/scheduler/whitebox-nested-group.summary diff --git a/cts/pengine/whitebox-nested-group.xml b/cts/scheduler/whitebox-nested-group.xml similarity index 100% rename from cts/pengine/whitebox-nested-group.xml rename to cts/scheduler/whitebox-nested-group.xml diff --git a/cts/pengine/whitebox-orphan-ms.dot b/cts/scheduler/whitebox-orphan-ms.dot similarity index 100% rename from cts/pengine/whitebox-orphan-ms.dot rename to cts/scheduler/whitebox-orphan-ms.dot diff --git a/cts/pengine/whitebox-orphan-ms.exp b/cts/scheduler/whitebox-orphan-ms.exp similarity index 100% rename from cts/pengine/whitebox-orphan-ms.exp rename to cts/scheduler/whitebox-orphan-ms.exp diff --git a/cts/pengine/whitebox-orphan-ms.scores b/cts/scheduler/whitebox-orphan-ms.scores similarity index 100% rename from cts/pengine/whitebox-orphan-ms.scores rename to cts/scheduler/whitebox-orphan-ms.scores diff --git a/cts/pengine/whitebox-orphan-ms.summary b/cts/scheduler/whitebox-orphan-ms.summary similarity index 100% rename from cts/pengine/whitebox-orphan-ms.summary rename to cts/scheduler/whitebox-orphan-ms.summary diff --git a/cts/pengine/whitebox-orphan-ms.xml b/cts/scheduler/whitebox-orphan-ms.xml similarity index 100% rename from cts/pengine/whitebox-orphan-ms.xml rename to cts/scheduler/whitebox-orphan-ms.xml diff --git a/cts/pengine/whitebox-orphaned.dot b/cts/scheduler/whitebox-orphaned.dot similarity index 100% rename from cts/pengine/whitebox-orphaned.dot rename to cts/scheduler/whitebox-orphaned.dot diff --git a/cts/pengine/whitebox-orphaned.exp b/cts/scheduler/whitebox-orphaned.exp similarity index 100% rename from cts/pengine/whitebox-orphaned.exp rename to cts/scheduler/whitebox-orphaned.exp diff --git a/cts/pengine/whitebox-orphaned.scores b/cts/scheduler/whitebox-orphaned.scores similarity index 100% rename from cts/pengine/whitebox-orphaned.scores rename to cts/scheduler/whitebox-orphaned.scores diff --git a/cts/pengine/whitebox-orphaned.summary b/cts/scheduler/whitebox-orphaned.summary similarity index 100% rename from cts/pengine/whitebox-orphaned.summary rename to cts/scheduler/whitebox-orphaned.summary diff --git a/cts/pengine/whitebox-orphaned.xml b/cts/scheduler/whitebox-orphaned.xml similarity index 100% rename from cts/pengine/whitebox-orphaned.xml rename to cts/scheduler/whitebox-orphaned.xml diff --git a/cts/pengine/whitebox-start.dot b/cts/scheduler/whitebox-start.dot similarity index 100% rename from cts/pengine/whitebox-start.dot rename to cts/scheduler/whitebox-start.dot diff --git a/cts/pengine/whitebox-start.exp b/cts/scheduler/whitebox-start.exp similarity index 100% rename from cts/pengine/whitebox-start.exp rename to cts/scheduler/whitebox-start.exp diff --git a/cts/pengine/whitebox-start.scores b/cts/scheduler/whitebox-start.scores similarity index 100% rename from cts/pengine/whitebox-start.scores rename to cts/scheduler/whitebox-start.scores diff --git a/cts/pengine/whitebox-start.summary b/cts/scheduler/whitebox-start.summary similarity index 100% rename from cts/pengine/whitebox-start.summary rename to cts/scheduler/whitebox-start.summary diff --git a/cts/pengine/whitebox-start.xml b/cts/scheduler/whitebox-start.xml similarity index 100% rename from cts/pengine/whitebox-start.xml rename to cts/scheduler/whitebox-start.xml diff --git a/cts/pengine/whitebox-stop.dot b/cts/scheduler/whitebox-stop.dot similarity index 100% rename from cts/pengine/whitebox-stop.dot rename to cts/scheduler/whitebox-stop.dot diff --git a/cts/pengine/whitebox-stop.exp b/cts/scheduler/whitebox-stop.exp similarity index 100% rename from cts/pengine/whitebox-stop.exp rename to cts/scheduler/whitebox-stop.exp diff --git a/cts/pengine/whitebox-stop.scores b/cts/scheduler/whitebox-stop.scores similarity index 100% rename from cts/pengine/whitebox-stop.scores rename to cts/scheduler/whitebox-stop.scores diff --git a/cts/pengine/whitebox-stop.summary b/cts/scheduler/whitebox-stop.summary similarity index 100% rename from cts/pengine/whitebox-stop.summary rename to cts/scheduler/whitebox-stop.summary diff --git a/cts/pengine/whitebox-stop.xml b/cts/scheduler/whitebox-stop.xml similarity index 100% rename from cts/pengine/whitebox-stop.xml rename to cts/scheduler/whitebox-stop.xml diff --git a/cts/pengine/whitebox-unexpectedly-running.dot b/cts/scheduler/whitebox-unexpectedly-running.dot similarity index 100% rename from cts/pengine/whitebox-unexpectedly-running.dot rename to cts/scheduler/whitebox-unexpectedly-running.dot diff --git a/cts/pengine/whitebox-unexpectedly-running.exp b/cts/scheduler/whitebox-unexpectedly-running.exp similarity index 100% rename from cts/pengine/whitebox-unexpectedly-running.exp rename to cts/scheduler/whitebox-unexpectedly-running.exp diff --git a/cts/pengine/whitebox-unexpectedly-running.scores b/cts/scheduler/whitebox-unexpectedly-running.scores similarity index 100% rename from cts/pengine/whitebox-unexpectedly-running.scores rename to cts/scheduler/whitebox-unexpectedly-running.scores diff --git a/cts/pengine/whitebox-unexpectedly-running.summary b/cts/scheduler/whitebox-unexpectedly-running.summary similarity index 100% rename from cts/pengine/whitebox-unexpectedly-running.summary rename to cts/scheduler/whitebox-unexpectedly-running.summary diff --git a/cts/pengine/whitebox-unexpectedly-running.xml b/cts/scheduler/whitebox-unexpectedly-running.xml similarity index 100% rename from cts/pengine/whitebox-unexpectedly-running.xml rename to cts/scheduler/whitebox-unexpectedly-running.xml diff --git a/daemons/Makefile.am b/daemons/Makefile.am index 75f8db0300d..6948cf59073 100644 --- a/daemons/Makefile.am +++ b/daemons/Makefile.am @@ -6,4 +6,4 @@ # MAINTAINERCLEANFILES = Makefile.in -SUBDIRS = pacemakerd +SUBDIRS = based schedulerd attrd controld execd fenced pacemakerd diff --git a/daemons/attrd/Makefile.am b/daemons/attrd/Makefile.am new file mode 100644 index 00000000000..5fb5cd54cd3 --- /dev/null +++ b/daemons/attrd/Makefile.am @@ -0,0 +1,38 @@ +# +# Copyright 2004-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# + +include $(top_srcdir)/Makefile.common + +halibdir = $(CRM_DAEMON_DIR) + +halib_PROGRAMS = pacemaker-attrd + +noinst_HEADERS = pacemaker-attrd.h + +pacemaker_attrd_CFLAGS = $(CFLAGS_HARDENED_EXE) +pacemaker_attrd_LDFLAGS = $(LDFLAGS_HARDENED_EXE) + +pacemaker_attrd_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la \ + $(top_builddir)/lib/pengine/libpe_rules.la \ + $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/cib/libcib.la \ + $(top_builddir)/lib/lrmd/liblrmd.la \ + $(CLUSTERLIBS) + +pacemaker_attrd_SOURCES = pacemaker-attrd.c attrd_commands.c \ + attrd_utils.c attrd_alerts.c + +clean-generic: + rm -f *.log *.debug *.xml *~ + +if BUILD_LEGACY_LINKS +install-exec-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && $(LN_S) pacemaker-attrd attrd + +uninstall-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && rm -f attrd +endif diff --git a/attrd/attrd_common_alerts.c b/daemons/attrd/attrd_alerts.c similarity index 80% rename from attrd/attrd_common_alerts.c rename to daemons/attrd/attrd_alerts.c index 3ab4c3c3e15..377e27a19dd 100644 --- a/attrd/attrd_common_alerts.c +++ b/daemons/attrd/attrd_alerts.c @@ -1,30 +1,20 @@ /* - * Copyright (C) 2015 Andrew Beekhof + * Copyright 2015-2018 Andrew Beekhof * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ + #include #include #include #include #include #include -#include #include #include #include +#include "pacemaker-attrd.h" static GListPtr attrd_alert_list = NULL; @@ -34,7 +24,7 @@ attrd_lrmd_callback(lrmd_event_data_t * op) CRM_CHECK(op != NULL, return); switch (op->type) { case lrmd_event_disconnect: - crm_info("Lost connection to LRMD"); + crm_info("Lost connection to executor"); attrd_lrmd_disconnect(); break; default: @@ -60,7 +50,7 @@ attrd_lrmd_connect() break; } - crm_debug("Could not connect to LRMD, %d tries remaining", + crm_debug("Could not connect to executor, %d tries remaining", (max_attempts - fails)); /* @TODO We don't want to block here with sleep, but we should wait * some time between connection attempts. We could possibly add a diff --git a/attrd/commands.c b/daemons/attrd/attrd_commands.c similarity index 99% rename from attrd/commands.c rename to daemons/attrd/attrd_commands.c index fd26cabe190..10158f271bc 100644 --- a/attrd/commands.c +++ b/daemons/attrd/attrd_commands.c @@ -18,7 +18,7 @@ #include #include -#include +#include "pacemaker-attrd.h" /* * Legacy attrd (all pre-1.1.11 Pacemaker versions, plus all versions when used diff --git a/attrd/attrd_common.c b/daemons/attrd/attrd_utils.c similarity index 99% rename from attrd/attrd_common.c rename to daemons/attrd/attrd_utils.c index 300dbc0c2f8..3f6da36e06c 100644 --- a/attrd/attrd_common.c +++ b/daemons/attrd/attrd_utils.c @@ -17,7 +17,7 @@ #include #include -#include +#include "pacemaker-attrd.h" cib_t *the_cib = NULL; diff --git a/attrd/main.c b/daemons/attrd/pacemaker-attrd.c similarity index 87% rename from attrd/main.c rename to daemons/attrd/pacemaker-attrd.c index fdf7b2fafb6..94a7600bdd5 100644 --- a/attrd/main.c +++ b/daemons/attrd/pacemaker-attrd.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2013 Andrew Beekhof + * Copyright 2013-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -41,7 +30,7 @@ #include #include -#include +#include "pacemaker-attrd.h" lrmd_t *the_lrmd = NULL; crm_cluster_t *attrd_cluster = NULL; @@ -86,7 +75,7 @@ attrd_cpg_destroy(gpointer unused) crm_info("Corosync disconnection complete"); } else { - crm_crit("Lost connection to Corosync service!"); + crm_crit("Lost connection to cluster layer, shutting down"); attrd_exit_status = CRM_EX_DISCONNECT; attrd_shutdown(0); } @@ -113,7 +102,7 @@ attrd_cib_destroy_cb(gpointer user_data) } else { /* eventually this should trigger a reconnect, not a shutdown */ - crm_err("Lost connection to CIB service!"); + crm_crit("Lost connection to the CIB manager, shutting down"); attrd_exit_status = CRM_EX_DISCONNECT; attrd_shutdown(0); } @@ -138,13 +127,13 @@ attrd_erase_cb(xmlNode *msg, int call_id, int rc, xmlNode *output, * \brief Wipe all transient attributes for this node from the CIB * * Clear any previous transient node attributes from the CIB. This is - * normally done by the DC's crmd when this node leaves the cluster, but + * normally done by the DC's controller when this node leaves the cluster, but * this handles the case where the node restarted so quickly that the * cluster layer didn't notice. * - * \todo If attrd respawns after crashing (see PCMK_respawned), ideally we'd - * skip this and sync our attributes from the writer. However, currently - * we reject any values for us that the writer has, in + * \todo If pacemaker-attrd respawns after crashing (see PCMK_respawned), + * ideally we'd skip this and sync our attributes from the writer. + * However, currently we reject any values for us that the writer has, in * attrd_peer_update(). */ static void @@ -181,17 +170,18 @@ attrd_cib_connect(int max_retry) } attempts++; - crm_debug("CIB signon attempt %d", attempts); + crm_debug("Connection attempt %d to the CIB manager", attempts); rc = the_cib->cmds->signon(the_cib, T_ATTRD, cib_command); } while(rc != pcmk_ok && attempts < max_retry); if (rc != pcmk_ok) { - crm_err("Signon to CIB failed: %s (%d)", pcmk_strerror(rc), rc); + crm_err("Connection to the CIB manager failed: %s " CRM_XS " rc=%d", + pcmk_strerror(rc), rc); goto cleanup; } - crm_debug("Connected to the CIB after %d attempts", attempts); + crm_debug("Connected to the CIB manager after %d attempts", attempts); rc = the_cib->cmds->set_connection_dnotify(the_cib, attrd_cib_destroy_cb); if (rc != pcmk_ok) { diff --git a/attrd/attrd_common.h b/daemons/attrd/pacemaker-attrd.h similarity index 51% rename from attrd/attrd_common.h rename to daemons/attrd/pacemaker-attrd.h index bed927b8496..91e5ac91a7d 100644 --- a/attrd/attrd_common.h +++ b/daemons/attrd/pacemaker-attrd.h @@ -1,16 +1,18 @@ /* - * Copyright 2017-2018 Andrew Beekhof + * Copyright 2013-2018 Andrew Beekhof * * This source code is licensed under the GNU General Public License version 2 * or later (GPLv2+) WITHOUT ANY WARRANTY. */ -#ifndef PCMK_ATTRD_COMMON__H -# define PCMK_ATTRD_COMMON__H +#ifndef PACEMAKER_ATTRD__H +# define PACEMAKER_ATTRD__H #include #include #include +#include +#include #include void attrd_init_mainloop(void); @@ -61,4 +63,54 @@ gboolean attrd_read_options(gpointer user_data); void attrd_cib_updated_cb(const char *event, xmlNode *msg); int attrd_send_attribute_alert(const char *node, int nodeid, const char *attr, const char *value); -#endif /* PCMK_ATTRD_COMMON__H */ + +typedef struct attribute_s { + char *uuid; /* TODO: Remove if at all possible */ + char *id; + char *set; + GHashTable *values; + int update; + int timeout_ms; + + /* TODO: refactor these three as a bitmask */ + bool changed; /* whether attribute value has changed since last write */ + bool unknown_peer_uuids; /* whether we know we're missing a peer uuid */ + gboolean is_private; /* whether to keep this attribute out of the CIB */ + + mainloop_timer_t *timer; + + char *user; + +} attribute_t; + +typedef struct attribute_value_s { + uint32_t nodeid; + gboolean is_remote; + char *nodename; + char *current; + char *requested; + gboolean seen; +} attribute_value_t; + +crm_cluster_t *attrd_cluster; +GHashTable *attributes; +election_t *writer; + +#define attrd_send_ack(client, id, flags) \ + crm_ipcs_send_ack((client), (id), (flags), "ack", __FUNCTION__, __LINE__) + +void write_attributes(bool all); +void attrd_broadcast_protocol(void); +void attrd_peer_message(crm_node_t *client, xmlNode *msg); +void attrd_client_peer_remove(const char *client_name, xmlNode *xml); +void attrd_client_clear_failure(xmlNode *xml); +void attrd_client_update(xmlNode *xml); +void attrd_client_refresh(void); +void attrd_client_query(crm_client_t *client, uint32_t id, uint32_t flags, xmlNode *query); + +void free_attribute(gpointer data); + +gboolean attrd_election_cb(gpointer user_data); +void attrd_peer_change_cb(enum crm_status_type type, crm_node_t *peer, const void *data); + +#endif /* PACEMAKER_ATTRD__H */ diff --git a/daemons/based/Makefile.am b/daemons/based/Makefile.am new file mode 100644 index 00000000000..23ddadb6eb6 --- /dev/null +++ b/daemons/based/Makefile.am @@ -0,0 +1,53 @@ +# +# Copyright 2004-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# + +include $(top_srcdir)/Makefile.common + +EXTRA_DIST = cib.pam + +halibdir = $(CRM_DAEMON_DIR) + +COMMONLIBS = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/cib/libcib.la + +halib_PROGRAMS = pacemaker-based cibmon + +noinst_HEADERS = pacemaker-based.h + +pacemaker_based_CFLAGS = $(CFLAGS_HARDENED_EXE) +pacemaker_based_LDFLAGS = $(LDFLAGS_HARDENED_EXE) + +pacemaker_based_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la \ + $(COMMONLIBS) $(CLUSTERLIBS) + +pacemaker_based_SOURCES = pacemaker-based.c \ + based_callbacks.c \ + based_common.c \ + based_io.c \ + based_messages.c \ + based_notify.c \ + based_remote.c + +cibmon_LDADD = $(COMMONLIBS) +cibmon_SOURCES = cibmon.c + +clean-generic: + rm -f *.log *.debug *.xml *~ + +install-exec-local: +# cp -f $(top_srcdir)/crm/cib/cib.pam $(DESTDIR)/etc/pam.d/cib + +if BUILD_LEGACY_LINKS +install-exec-hook: + test -d $(DESTDIR)$(CRM_DAEMON_DIR) || mkdir -p $(DESTDIR)$(CRM_DAEMON_DIR) + cd $(DESTDIR)$(CRM_DAEMON_DIR) && $(LN_S) pacemaker-based cib + +uninstall-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && rm -f cib +endif + +uninstall-local: diff --git a/cib/callbacks.c b/daemons/based/based_callbacks.c similarity index 98% rename from cib/callbacks.c rename to daemons/based/based_callbacks.c index 676e7d90476..1ced4721b49 100644 --- a/cib/callbacks.c +++ b/daemons/based/based_callbacks.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -34,11 +23,7 @@ #include -#include -#include -#include -#include -#include "common.h" +#include static unsigned long cib_local_bcast_num = 0; diff --git a/cib/common.c b/daemons/based/based_common.c similarity index 99% rename from cib/common.c rename to daemons/based/based_common.c index 80895c32b79..cfd66dedbec 100644 --- a/cib/common.c +++ b/daemons/based/based_common.c @@ -24,10 +24,7 @@ #include -#include -#include -#include -#include "common.h" +#include extern gboolean cib_is_master; extern const char *cib_root; diff --git a/cib/io.c b/daemons/based/based_io.c similarity index 97% rename from cib/io.c rename to daemons/based/based_io.c index c7cf49ff183..514f56952db 100644 --- a/cib/io.c +++ b/daemons/based/based_io.c @@ -22,7 +22,6 @@ #include -#include #include #include #include @@ -30,6 +29,8 @@ #include #include +#include + extern const char *cib_root; crm_trigger_t *cib_writer = NULL; @@ -194,7 +195,7 @@ readCibXmlFile(const char *dir, const char *file, gboolean discard_status) xmlNode *root = NULL; xmlNode *status = NULL; - if (!crm_is_writable(dir, file, CRM_DAEMON_USER, NULL, FALSE)) { + if (pcmk__daemon_can_write(dir, file) == FALSE) { cib_status = -EACCES; return NULL; } @@ -242,11 +243,11 @@ readCibXmlFile(const char *dir, const char *file, gboolean discard_status) crm_warn("Continuing with an empty configuration."); } - if (cib_writes_enabled && use_valgrind) { - if (crm_is_true(use_valgrind) || strstr(use_valgrind, "cib")) { - cib_writes_enabled = FALSE; - crm_err("*** Disabling disk writes to avoid confusing Valgrind ***"); - } + if (cib_writes_enabled && use_valgrind && + (crm_is_true(use_valgrind) || strstr(use_valgrind, "pacemaker-based"))) { + + cib_writes_enabled = FALSE; + crm_err("*** Disabling disk writes to avoid confusing Valgrind ***"); } status = find_xml_node(root, XML_CIB_TAG_STATUS, FALSE); diff --git a/cib/messages.c b/daemons/based/based_messages.c similarity index 98% rename from cib/messages.c rename to daemons/based/based_messages.c index c51af1058a8..9d733dc92b0 100644 --- a/cib/messages.c +++ b/daemons/based/based_messages.c @@ -25,9 +25,7 @@ #include #include -#include -#include -#include +#include /* Maximum number of diffs to ignore while waiting for a resync */ #define MAX_DIFF_RETRY 5 @@ -35,7 +33,6 @@ gboolean cib_is_master = FALSE; xmlNode *the_cib = NULL; -extern const char *cib_our_uname; int revision_check(xmlNode * cib_update, xmlNode * cib_copy, int flags); int get_revision(xmlNode * xml_obj, int cur_revision); @@ -48,9 +45,6 @@ int cib_update_counter(xmlNode * xml_obj, const char *field, gboolean reset); int sync_our_cib(xmlNode * request, gboolean all); -extern xmlNode *cib_msg_copy(const xmlNode * msg, gboolean with_data); -extern gboolean cib_shutdown_flag; - int cib_process_shutdown_req(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib, @@ -94,7 +88,7 @@ cib_process_default(const char *op, int options, const char *section, xmlNode * } else { result = -EPROTONOSUPPORT; - crm_err("Action [%s] is not supported by the CIB", op); + crm_err("Action [%s] is not supported by the CIB manager", op); } return result; } diff --git a/cib/notify.c b/daemons/based/based_notify.c similarity index 97% rename from cib/notify.c rename to daemons/based/based_notify.c index c62ae2724e0..ae797dbe892 100644 --- a/cib/notify.c +++ b/daemons/based/based_notify.c @@ -23,9 +23,7 @@ #include #include -#include -#include -#include +#include int pending_updates = 0; @@ -108,7 +106,6 @@ cib_notify_send(xmlNode * xml) ssize_t rc = crm_ipc_prepare(0, xml, &iov, 0); crm_trace("Notifying clients"); - if (rc > 0) { update.msg = xml; update.iov = iov; @@ -119,13 +116,7 @@ cib_notify_send(xmlNode * xml) crm_notice("Could not notify clients: %s " CRM_XS " rc=%lld", pcmk_strerror(rc), (long long) rc); } - - if (iov) { - free(iov[0].iov_base); - free(iov[1].iov_base); - free(iov); - } - + pcmk_free_ipc_event(iov); crm_trace("Notify complete"); } diff --git a/cib/remote.c b/daemons/based/based_remote.c similarity index 94% rename from cib/remote.c rename to daemons/based/based_remote.c index ac20470786b..3341350b1c0 100644 --- a/cib/remote.c +++ b/daemons/based/based_remote.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -39,7 +28,8 @@ #include #include -#include "callbacks.h" +#include "pacemaker-based.h" + /* #undef HAVE_PAM_PAM_APPL_H */ /* #undef HAVE_GNUTLS_GNUTLS_H */ @@ -484,13 +474,13 @@ cib_remote_msg(gpointer data) rc = gnutls_handshake(*client->remote->tls_session); if (rc < 0 && rc != GNUTLS_E_AGAIN) { - crm_err("Remote cib tls handshake failed"); + crm_err("TLS handshake with remote CIB manager failed"); return -1; } } while (rc == GNUTLS_E_INTERRUPTED); if (rc == 0) { - crm_debug("Remote cib tls handshake completed"); + crm_debug("TLS handshake with remote CIB manager completed"); client->remote->tls_handshake_complete = TRUE; if (client->remote->auth_timeout) { g_source_remove(client->remote->auth_timeout); @@ -549,7 +539,7 @@ cib_remote_msg(gpointer data) } if (disconnected) { - crm_trace("disconnected while receiving remote cib msg."); + crm_trace("Disconnected while receiving message from remote CIB manager"); return -1; } diff --git a/cib/cib.pam b/daemons/based/cib.pam similarity index 100% rename from cib/cib.pam rename to daemons/based/cib.pam diff --git a/cib/cibmon.c b/daemons/based/cibmon.c similarity index 100% rename from cib/cibmon.c rename to daemons/based/cibmon.c diff --git a/cib/main.c b/daemons/based/pacemaker-based.c similarity index 89% rename from cib/main.c rename to daemons/based/pacemaker-based.c index e4e4289da61..eca232f0909 100644 --- a/cib/main.c +++ b/daemons/based/pacemaker-based.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -33,9 +22,7 @@ #include #include -#include -#include -#include "common.h" +#include #if HAVE_BZLIB_H # include @@ -190,9 +177,10 @@ main(int argc, char **argv) crm_notice("Using custom config location: %s", cib_root); } - if (crm_is_writable(cib_root, NULL, CRM_DAEMON_USER, CRM_DAEMON_GROUP, FALSE) == FALSE) { - crm_err("Bad permissions on %s. Terminating", cib_root); - fprintf(stderr, "ERROR: Bad permissions on %s. See logs for details\n", cib_root); + if (pcmk__daemon_can_write(cib_root, NULL) == FALSE) { + crm_err("Terminating due to bad permissions on %s", cib_root); + fprintf(stderr, "ERROR: Bad permissions on %s (see logs for details)\n", + cib_root); fflush(stderr); return CRM_EX_FATAL; } @@ -258,7 +246,7 @@ cib_cs_destroy(gpointer user_data) if (cib_shutdown_flag) { crm_info("Corosync disconnection complete"); } else { - crm_err("Corosync connection lost! Exiting."); + crm_crit("Lost connection to cluster layer, shutting down"); terminate_cib(__FUNCTION__, CRM_EX_DISCONNECT); } } diff --git a/daemons/based/pacemaker-based.h b/daemons/based/pacemaker-based.h new file mode 100644 index 00000000000..bafa26ef95d --- /dev/null +++ b/daemons/based/pacemaker-based.h @@ -0,0 +1,155 @@ +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ + +#ifndef PACEMAKER_BASED__H +# define PACEMAKER_BASED__H + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_GNUTLS_GNUTLS_H +# undef KEYFILE +# include +#endif + +enum cib_notifications { + cib_notify_pre = 0x0001, + cib_notify_post = 0x0002, + cib_notify_replace = 0x0004, + cib_notify_confirm = 0x0008, + cib_notify_diff = 0x0010, + + // Not a notification, but uses the same IPC bitmask + cib_is_daemon = 0x1000, // Whether client is another cluster daemon +}; + +typedef struct cib_operation_s { + const char *operation; + gboolean modifies_cib; + gboolean needs_privileges; + gboolean needs_quorum; + int (*prepare) (xmlNode *, xmlNode **, const char **); + int (*cleanup) (int, xmlNode **, xmlNode **); + int (*fn) (const char *, int, const char *, xmlNode *, + xmlNode *, xmlNode *, xmlNode **, xmlNode **); +} cib_operation_t; + +extern gboolean cib_is_master; +extern GHashTable *peer_hash; +extern GHashTable *config_hash; +extern xmlNode *the_cib; +extern crm_trigger_t *cib_writer; +extern volatile gboolean cib_writes_enabled; + +extern GMainLoop *mainloop; +extern crm_cluster_t crm_cluster; +extern GHashTable *local_notify_queue; +extern gboolean legacy_mode; +extern gboolean stand_alone; +extern gboolean cib_shutdown_flag; +extern const char *cib_root; +extern char *cib_our_uname; +extern int cib_status; +extern FILE *msg_cib_strm; + +extern struct qb_ipcs_service_handlers ipc_ro_callbacks; +extern struct qb_ipcs_service_handlers ipc_rw_callbacks; +extern qb_ipcs_service_t *ipcs_ro; +extern qb_ipcs_service_t *ipcs_rw; +extern qb_ipcs_service_t *ipcs_shm; + +void cib_peer_callback(xmlNode *msg, void *private_data); +void cib_common_callback_worker(uint32_t id, uint32_t flags, + xmlNode *op_request, crm_client_t *cib_client, + gboolean privileged); +void cib_shutdown(int nsig); +void initiate_exit(void); +void terminate_cib(const char *caller, int fast); +gboolean cib_legacy_mode(void); + +gboolean uninitializeCib(void); +gboolean verifyCibXml(xmlNode *cib); +xmlNode *readCibXml(char *buffer); +xmlNode *readCibXmlFile(const char *dir, const char *file, + gboolean discard_status); +int activateCibXml(xmlNode *doc, gboolean to_disk, const char *op); + +xmlNode *createCibRequest(gboolean isLocal, const char *operation, + const char *section, const char *verbose, + xmlNode *data); +int cib_process_shutdown_req(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, + xmlNode *existing_cib, xmlNode **result_cib, + xmlNode **answer); +int cib_process_default(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, xmlNode *existing_cib, + xmlNode **result_cib, xmlNode **answer); +int cib_process_ping(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, xmlNode *existing_cib, + xmlNode **result_cib, xmlNode **answer); +int cib_process_readwrite(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, xmlNode *existing_cib, + xmlNode **result_cib, xmlNode **answer); +int cib_process_replace_svr(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, xmlNode *existing_cib, + xmlNode **result_cib, xmlNode **answer); +int cib_server_process_diff(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, xmlNode *existing_cib, + xmlNode **result_cib, xmlNode **answer); +int cib_process_sync(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, xmlNode *existing_cib, + xmlNode **result_cib, xmlNode **answer); +int cib_process_sync_one(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, xmlNode *existing_cib, + xmlNode **result_cib, xmlNode **answer); +int cib_process_delete_absolute(const char *op, int options, + const char *section, xmlNode *req, + xmlNode *input, xmlNode *existing_cib, + xmlNode **result_cib, xmlNode **answer); +int cib_process_upgrade_server(const char *op, int options, const char *section, + xmlNode *req, xmlNode *input, + xmlNode *existing_cib, xmlNode **result_cib, + xmlNode **answer); +void send_sync_request(const char *host); + +xmlNode *cib_msg_copy(xmlNode *msg, gboolean with_data); +xmlNode *cib_construct_reply(xmlNode *request, xmlNode *output, int rc); +int cib_get_operation_id(const char *op, int *operation); +cib_op_t *cib_op_func(int call_type); +gboolean cib_op_modifies(int call_type); +int cib_op_prepare(int call_type, xmlNode *request, xmlNode **input, + const char **section); +int cib_op_cleanup(int call_type, int options, xmlNode **input, + xmlNode **output); +int cib_op_can_run(int call_type, int call_options, gboolean privileged, + gboolean global_update); +void cib_diff_notify(int options, const char *client, const char *call_id, + const char *op, xmlNode *update, int result, + xmlNode *old_cib); +void cib_replace_notify(const char *origin, xmlNode *update, int result, + xmlNode *diff); + +static inline const char * +cib_config_lookup(const char *opt) +{ + return g_hash_table_lookup(config_hash, opt); +} + +#endif // PACEMAKER_BASED__H diff --git a/daemons/controld/Makefile.am b/daemons/controld/Makefile.am new file mode 100644 index 00000000000..3add943b8a9 --- /dev/null +++ b/daemons/controld/Makefile.am @@ -0,0 +1,77 @@ +# +# Copyright 2004-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# + +include $(top_srcdir)/Makefile.common + +halibdir = $(CRM_DAEMON_DIR) + +halib_PROGRAMS = pacemaker-controld + +noinst_HEADERS = controld_alerts.h \ + controld_callbacks.h \ + controld_fsa.h \ + controld_lrm.h \ + controld_matrix.h \ + controld_membership.h \ + controld_messages.h \ + controld_metadata.h \ + controld_throttle.h \ + controld_transition.h \ + controld_utils.h \ + pacemaker-controld.h + +pacemaker_controld_CFLAGS = $(CFLAGS_HARDENED_EXE) +pacemaker_controld_LDFLAGS = $(LDFLAGS_HARDENED_EXE) + +pacemaker_controld_LDADD = $(top_builddir)/lib/fencing/libstonithd.la \ + $(top_builddir)/lib/transition/libtransitioner.la \ + $(top_builddir)/lib/pengine/libpe_rules.la \ + $(top_builddir)/lib/cib/libcib.la \ + $(top_builddir)/lib/cluster/libcrmcluster.la \ + $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/services/libcrmservice.la \ + $(top_builddir)/lib/lrmd/liblrmd.la \ + $(CLUSTERLIBS) + +pacemaker_controld_SOURCES = pacemaker-controld.c \ + controld_attrd.c \ + controld_callbacks.c \ + controld_based.c \ + controld_control.c \ + controld_corosync.c \ + controld_election.c \ + controld_execd.c \ + controld_execd_state.c \ + controld_fsa.c \ + controld_join_client.c \ + controld_join_dc.c \ + controld_membership.c \ + controld_messages.c \ + controld_metadata.c \ + controld_remote_ra.c \ + controld_schedulerd.c \ + controld_te_actions.c \ + controld_te_callbacks.c \ + controld_te_events.c \ + controld_te_utils.c \ + controld_throttle.c \ + controld_transition.c \ + controld_utils.c + +if BUILD_XML_HELP +man7_MANS = pacemaker-controld.7 +endif + +CLEANFILES = $(man7_MANS) + +if BUILD_LEGACY_LINKS +install-exec-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && $(LN_S) pacemaker-controld crmd + +uninstall-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && rm -f crmd +endif diff --git a/daemons/controld/controld_alerts.h b/daemons/controld/controld_alerts.h new file mode 100644 index 00000000000..4fb73d42075 --- /dev/null +++ b/daemons/controld/controld_alerts.h @@ -0,0 +1,20 @@ +/* + * Copyright 2015-2018 Andrew Beekhof + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ + +#ifndef CONTROLD_ALERTS__H +# define CONTROLD_ALERTS__H + +# include +# include +# include + +void crmd_unpack_alerts(xmlNode *alerts); +void crmd_alert_node_event(crm_node_t *node); +void crmd_alert_fencing_op(stonith_event_t *e); +void crmd_alert_resource_op(const char *node, lrmd_event_data_t *op); + +#endif diff --git a/crmd/attrd.c b/daemons/controld/controld_attrd.c similarity index 94% rename from crmd/attrd.c rename to daemons/controld/controld_attrd.c index b75551e41d8..460faec43d1 100644 --- a/crmd/attrd.c +++ b/daemons/controld/controld_attrd.c @@ -11,9 +11,9 @@ #include #include -#include -#include -#include +#include +#include +#include crm_ipc_t *attrd_ipc = NULL; @@ -117,7 +117,7 @@ update_attrd(const char *host, const char *name, const char *value, void update_attrd_remote_node_removed(const char *host, const char *user_name) { - crm_trace("Asking attrd to purge Pacemaker Remote node %s", host); + crm_trace("Asking pacemaker-attrd to purge Pacemaker Remote node %s", host); update_attrd_helper(host, NULL, NULL, NULL, user_name, TRUE, 'C'); } @@ -136,7 +136,7 @@ update_attrd_clear_failures(const char *host, const char *rsc, const char *op, interval_desc = "all"; op_desc = "operations"; } - crm_info("Asking attrd to clear failure of %s %s for %s on %s node %s", + crm_info("Asking pacemaker-attrd to clear failure of %s %s for %s on %s node %s", interval_desc, op_desc, rsc, node_type, host); update_attrd_helper(host, rsc, op, interval_spec, NULL, is_remote_node, 0); } diff --git a/crmd/cib.c b/daemons/controld/controld_based.c similarity index 79% rename from crmd/cib.c rename to daemons/controld/controld_based.c index 15a2892358b..ec08831ad05 100644 --- a/crmd/cib.c +++ b/daemons/controld/controld_based.c @@ -1,19 +1,8 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -25,10 +14,10 @@ #include #include -#include -#include /* crmd_cib_connection_destroy */ -#include -#include +#include +#include // for crmd_cib_connection_destroy() +#include +#include int cib_retries = 0; @@ -74,7 +63,7 @@ do_cib_control(long long action, return; } - crm_info("Disconnecting CIB"); + crm_info("Disconnecting from the CIB manager"); clear_bit(fsa_input_register, R_CIB_CONNECTED); fsa_cib_conn->cmds->del_notify_callback(fsa_cib_conn, T_CIB_DIFF_NOTIFY, do_cib_updated); @@ -83,14 +72,14 @@ do_cib_control(long long action, fsa_cib_conn->cmds->set_slave(fsa_cib_conn, cib_scope_local); fsa_cib_conn->cmds->signoff(fsa_cib_conn); } - crm_notice("Disconnected from the CIB"); + crm_notice("Disconnected from the CIB manager"); } if (action & A_CIB_START) { int rc = pcmk_ok; if (cur_state == S_STOPPING) { - crm_err("Ignoring request to start the CIB after shutdown"); + crm_err("Ignoring request to connect to the CIB manager after shutdown"); return; } @@ -103,7 +92,7 @@ do_cib_control(long long action, } if (rc != pcmk_ok) { - crm_info("Could not connect to the CIB service: %s", pcmk_strerror(rc)); + crm_info("Could not connect to the CIB manager: %s", pcmk_strerror(rc)); } else if (pcmk_ok != fsa_cib_conn->cmds->set_connection_dnotify(fsa_cib_conn, diff --git a/crmd/callbacks.c b/daemons/controld/controld_callbacks.c similarity index 93% rename from crmd/callbacks.c rename to daemons/controld/controld_callbacks.c index 01db3c8e4b1..0a03d142544 100644 --- a/crmd/callbacks.c +++ b/daemons/controld/controld_callbacks.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include @@ -18,12 +18,12 @@ #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include /* From join_dc... */ extern gboolean check_join_state(enum crmd_fsa_state cur_state, const char *source); @@ -82,9 +82,9 @@ peer_update_callback(enum crm_status_type type, crm_node_t * node, const void *d bool is_remote = is_set(node->flags, crm_remote_node); const char *status = NULL; - /* Crmd waits to receive some information from the membership layer before - * declaring itself operational. If this is being called for a cluster node, - * indicate that we have it. + /* The controller waits to receive some information from the membership + * layer before declaring itself operational. If this is being called for a + * cluster node, indicate that we have it. */ if (!is_remote) { set_bit(fsa_input_register, R_PEER_DATA); @@ -194,7 +194,7 @@ peer_update_callback(enum crm_status_type type, crm_node_t * node, const void *d if (safe_str_eq(task, CRM_OP_FENCE)) { /* tengine_stonith_callback() confirms fence actions */ - crm_trace("Updating CIB %s stonithd reported fencing of %s complete", + crm_trace("Updating CIB %s fencer reported fencing of %s complete", (down->confirmed? "after" : "before"), node->uname); } else if ((alive == FALSE) && safe_str_eq(task, CRM_OP_SHUTDOWN)) { @@ -266,12 +266,12 @@ crmd_cib_connection_destroy(gpointer user_data) fsa_cib_conn->state = cib_disconnected; if (is_set(fsa_input_register, R_CIB_CONNECTED) == FALSE) { - crm_info("Connection to the CIB terminated..."); + crm_info("Connection to the CIB manager terminated"); return; } - /* eventually this will trigger a reconnect, not a shutdown */ - crm_err("Connection to the CIB terminated..."); + // @TODO This should trigger a reconnect, not a shutdown + crm_crit("Lost connection to the CIB manager, shutting down"); register_fsa_input(C_FSA_INTERNAL, I_ERROR, NULL); clear_bit(fsa_input_register, R_CIB_CONNECTED); diff --git a/daemons/controld/controld_callbacks.h b/daemons/controld/controld_callbacks.h new file mode 100644 index 00000000000..cb3ac150b67 --- /dev/null +++ b/daemons/controld/controld_callbacks.h @@ -0,0 +1,21 @@ +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ + +#ifndef CONTROLD_CALLBACKS__H +# define CONTROLD_CALLBACKS__H + +#include + +extern void crmd_ha_msg_filter(xmlNode * msg); + +extern void crmd_cib_connection_destroy(gpointer user_data); + +extern gboolean crm_fsa_trigger(gpointer user_data); + +extern void peer_update_callback(enum crm_status_type type, crm_node_t * node, const void *data); + +#endif diff --git a/crmd/control.c b/daemons/controld/controld_control.c similarity index 91% rename from crmd/control.c rename to daemons/controld/controld_control.c index 2c6b3bb26b6..2983a1dcf8f 100644 --- a/crmd/control.c +++ b/daemons/controld/controld_control.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -29,16 +18,15 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -133,7 +121,7 @@ do_shutdown(long long action, /* Prevent it from coming up again */ clear_bit(fsa_input_register, R_ST_REQUIRED); - crm_info("Disconnecting STONITH..."); + crm_info("Disconnecting from fencer"); stonith_api->cmds->disconnect(stonith_api); } } @@ -217,7 +205,7 @@ crmd_exit(crm_exit_t exit_code) } if (attrd_ipc) { - crm_trace("Closing attrd connection"); + crm_trace("Closing connection to pacemaker-attrd"); crm_ipc_close(attrd_ipc); crm_ipc_destroy(attrd_ipc); attrd_ipc = NULL; @@ -269,8 +257,8 @@ crmd_exit(crm_exit_t exit_code) election_fini(fsa_election); fsa_election = NULL; - /* Tear down the CIB connection, but don't free it yet -- it could be used - * when we drain the mainloop later. + /* Tear down the CIB manager connection, but don't free it yet -- it could + * be used when we drain the mainloop later. */ cib_free_callbacks(fsa_cib_conn); fsa_cib_conn->cmds->signoff(fsa_cib_conn); @@ -386,7 +374,7 @@ do_exit(long long action, } verify_stopped(cur_state, LOG_ERR); - do_crm_log(log_level, "Performing %s - %s exiting the CRMd", + do_crm_log(log_level, "Performing %s - %s exiting the controller", fsa_action2string(action), exit_type); crm_info("[%s] stopped (%d)", crm_system_name, exit_code); @@ -411,7 +399,7 @@ do_startup(long long action, config_read = mainloop_add_trigger(G_PRIORITY_HIGH, crm_read_options, NULL); transition_trigger = mainloop_add_trigger(G_PRIORITY_LOW, te_graph_trigger, NULL); - crm_debug("Creating CIB and LRM objects"); + crm_debug("Creating CIB manager and executor objects"); fsa_cib_conn = cib_new(); lrm_state_init_local(); @@ -552,7 +540,7 @@ crmd_ipc_dispatch(qb_ipcs_connection_t * c, void *data, size_t size) #endif crm_trace("Processing msg from %s", crm_client_name(client)); - crm_log_xml_trace(msg, "CRMd[inbound]"); + crm_log_xml_trace(msg, "controller[inbound]"); crm_xml_add(msg, F_CRM_SYS_FROM, client->id); if (crmd_authorize_message(msg, client, NULL)) { @@ -623,7 +611,7 @@ do_started(long long action, return; } else if (is_set(fsa_input_register, R_LRM_CONNECTED) == FALSE) { - crm_info("Delaying start, LRM not connected (%.16llx)", R_LRM_CONNECTED); + crm_info("Delaying start, not connected to executor (%.16llx)", R_LRM_CONNECTED); crmd_fsa_stall(TRUE); return; @@ -714,18 +702,25 @@ static pe_cluster_option crmd_opts[] = { { XML_CONFIG_ATTR_FORCE_QUIT, NULL, "time", NULL, "20min", &check_timer, "*** Advanced Use Only ***.", "If need to adjust this value, it probably indicates the presence of a bug." }, - { "crmd-integration-timeout", NULL, "time", NULL, "3min", &check_timer, - "*** Advanced Use Only ***.", "If need to adjust this value, it probably indicates the presence of a bug." - }, - { "crmd-finalization-timeout", NULL, "time", NULL, "30min", &check_timer, - "*** Advanced Use Only ***.", "If you need to adjust this value, it probably indicates the presence of a bug." - }, - { "crmd-transition-delay", NULL, "time", NULL, "0s", &check_timer, - "*** Advanced Use Only ***\n" - "Enabling this option will slow down cluster recovery under all conditions", - "Delay cluster recovery for the configured interval to allow for additional/related events to occur.\n" - "Useful if your configuration is sensitive to the order in which ping updates arrive." - }, + { + "join-integration-timeout", "crmd-integration-timeout", + "time", NULL, "3min", &check_timer, + "*** Advanced Use Only ***", + "If need to adjust this value, it probably indicates the presence of a bug" + }, + { + "join-finalization-timeout", "crmd-finalization-timeout", + "time", NULL, "30min", &check_timer, + "*** Advanced Use Only ***", + "If you need to adjust this value, it probably indicates the presence of a bug" + }, + { + "transition-delay", "crmd-transition-delay", + "time", NULL, "0s", &check_timer, + "*** Advanced Use Only *** Enabling this option will slow down cluster recovery under all conditions", + "Delay cluster recovery for the configured interval to allow for additional/related events to occur.\n" + "Useful if your configuration is sensitive to the order in which ping updates arrive." + }, { "stonith-watchdog-timeout", NULL, "time", NULL, NULL, &check_sbd_timeout, "How long to wait before we can assume nodes are safely down", NULL }, @@ -739,9 +734,9 @@ static pe_cluster_option crmd_opts[] = { void crmd_metadata(void) { - config_metadata("CRM Daemon", "1.0", - "CRM Daemon Options", - "This is a fake resource that details the options that can be configured for the CRM Daemon.", + config_metadata("pacemaker-controld", "1.0", + "controller properties", + "Cluster properties used by Pacemaker's controller", crmd_opts, DIMOF(crmd_opts)); } @@ -831,13 +826,13 @@ config_query_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void recheck_timer->period_ms = crm_get_msec(value); crm_debug("Checking for expired actions every %dms", recheck_timer->period_ms); - value = crmd_pref(config_hash, "crmd-transition-delay"); + value = crmd_pref(config_hash, "transition-delay"); transition_timer->period_ms = crm_get_msec(value); - value = crmd_pref(config_hash, "crmd-integration-timeout"); + value = crmd_pref(config_hash, "join-integration-timeout"); integration_timer->period_ms = crm_get_msec(value); - value = crmd_pref(config_hash, "crmd-finalization-timeout"); + value = crmd_pref(config_hash, "join-finalization-timeout"); finalization_timer->period_ms = crm_get_msec(value); free(fsa_cluster_name); diff --git a/crmd/corosync.c b/daemons/controld/controld_corosync.c similarity index 72% rename from crmd/corosync.c rename to daemons/controld/controld_corosync.c index 5205762d6e6..8e739cd11bb 100644 --- a/crmd/corosync.c +++ b/daemons/controld/controld_corosync.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -24,13 +13,12 @@ #include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include @@ -95,7 +83,7 @@ static void crmd_cs_destroy(gpointer user_data) { if (is_not_set(fsa_input_register, R_HA_DISCONNECTED)) { - crm_err("Corosync connection lost"); + crm_crit("Lost connection to cluster layer, shutting down"); crmd_exit(CRM_EX_DISCONNECT); } else { diff --git a/crmd/election.c b/daemons/controld/controld_election.c similarity index 89% rename from crmd/election.c rename to daemons/controld/controld_election.c index 6112c4d936b..eaccf2245cb 100644 --- a/crmd/election.c +++ b/daemons/controld/controld_election.c @@ -1,20 +1,10 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ + #include #include @@ -26,10 +16,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include /* A_ELECTION_VOTE */ void diff --git a/crmd/lrm.c b/daemons/controld/controld_execd.c similarity index 96% rename from crmd/lrm.c rename to daemons/controld/controld_execd.c index 7ff7b120804..6c767a0a596 100644 --- a/crmd/lrm.c +++ b/daemons/controld/controld_execd.c @@ -17,11 +17,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -58,12 +58,12 @@ static void lrm_connection_destroy(void) { if (is_set(fsa_input_register, R_LRM_CONNECTED)) { - crm_crit("LRM Connection failed"); + crm_crit("Connection to executor failed"); register_fsa_input(C_FSA_INTERNAL, I_ERROR, NULL); clear_bit(fsa_input_register, R_LRM_CONNECTED); } else { - crm_info("LRM Connection disconnected"); + crm_info("Disconnected from executor"); } } @@ -298,8 +298,9 @@ lrm_op_callback(lrmd_event_data_t * op) nodename = op->remote_nodename ? op->remote_nodename : fsa_our_uname; if (op->type == lrmd_event_disconnect && (safe_str_eq(nodename, fsa_our_uname))) { - /* if this is the local lrmd ipc connection, set the right bits in the - * crmd when the connection goes down */ + /* If this is the local executor IPC connection, set the right bits in the + * controller when the connection goes down. + */ lrm_connection_destroy(); return; } else if (op->type != lrmd_event_exec_complete) { @@ -320,9 +321,10 @@ do_lrm_control(long long action, enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) { - /* This only pertains to local lrmd connections. Remote connections are handled as - * resources within the pengine. Connecting and disconnecting from remote lrmd instances - * handled differently than the local. */ + /* This only pertains to local executor connections. Remote connections are + * handled as resources within the scheduler. Connecting and disconnecting + * from remote executor instances is handled differently. + */ lrm_state_t *lrm_state = NULL; @@ -344,21 +346,21 @@ do_lrm_control(long long action, } clear_bit(fsa_input_register, R_LRM_CONNECTED); - crm_info("Disconnecting from the LRM"); + crm_info("Disconnecting from the executor"); lrm_state_disconnect(lrm_state); lrm_state_reset_tables(lrm_state, FALSE); - crm_notice("Disconnected from the LRM"); + crm_notice("Disconnected from the executor"); } if (action & A_LRM_CONNECT) { int ret = pcmk_ok; - crm_debug("Connecting to the LRM"); + crm_debug("Connecting to the executor"); ret = lrm_state_ipc_connect(lrm_state); if (ret != pcmk_ok) { if (lrm_state->num_lrm_register_fails < MAX_LRM_REG_FAILS) { - crm_warn("Failed to connect to the LRM %d time%s (%d max)", + crm_warn("Failed to connect to the executor %d time%s (%d max)", lrm_state->num_lrm_register_fails, s_if_plural(lrm_state->num_lrm_register_fails), MAX_LRM_REG_FAILS); @@ -370,7 +372,7 @@ do_lrm_control(long long action, } if (ret != pcmk_ok) { - crm_err("Failed to connect to the LRM the max allowed %d time%s", + crm_err("Failed to connect to the executor the max allowed %d time%s", lrm_state->num_lrm_register_fails, s_if_plural(lrm_state->num_lrm_register_fails)); register_fsa_error(C_FSA_INTERNAL, I_ERROR, NULL); @@ -378,7 +380,7 @@ do_lrm_control(long long action, } set_bit(fsa_input_register, R_LRM_CONNECTED); - crm_info("LRM connection established"); + crm_info("Connection to the executor established"); } if (action & ~(A_LRM_CONNECT | A_LRM_DISCONNECT)) { @@ -430,7 +432,7 @@ lrm_state_verify_stopped(lrm_state_t * lrm_state, enum crmd_fsa_state cur_state, } if (counter > 0) { - do_crm_log(log_level, "%d pending LRM operation%s at %s", + do_crm_log(log_level, "%d pending executor operation%s at %s", counter, s_if_plural(counter), when); if (cur_state == S_TERMINATE || !is_set(fsa_input_register, R_SENT_RSC_STOP)) { @@ -685,7 +687,7 @@ build_operation_update(xmlNode * parent, lrmd_rsc_info_t * rsc, lrmd_event_data_ lrm_state = lrm_state_find(node_name); if (lrm_state == NULL) { crm_warn("Cannot calculate digests for operation " CRM_OP_FMT - " because we have no LRM connection to %s", + " because we have no connection to executor for %s", op->rsc_id, op->op_type, op->interval_ms, node_name); return TRUE; } @@ -694,14 +696,14 @@ build_operation_update(xmlNode * parent, lrmd_rsc_info_t * rsc, lrmd_event_data_ if (metadata == NULL) { /* For now, we always collect resource agent meta-data via a local, * synchronous, direct execution of the agent. This has multiple issues: - * the lrmd should execute agents, not the crmd; meta-data for + * the executor should execute agents, not the controller; meta-data for * Pacemaker Remote nodes should be collected on those nodes, not * locally; and the meta-data call shouldn't eat into the timeout of the * real action being performed. * - * These issues are planned to be addressed by having the PE schedule - * a meta-data cache check at the beginning of each transition. Once - * that is working, this block will only be a fallback in case the + * These issues are planned to be addressed by having the scheduler + * schedule a meta-data cache check at the beginning of each transition. + * Once that is working, this block will only be a fallback in case the * initial collection fails. */ char *metadata_str = NULL; @@ -829,7 +831,7 @@ do_lrm_query_internal(lrm_state_t *lrm_state, int update_flags) /* Build a list of active (not always running) resources */ build_active_RAs(lrm_state, rsc_list); - crm_log_xml_trace(xml_state, "Current state of the LRM"); + crm_log_xml_trace(xml_state, "Current executor state"); return xml_state; } @@ -840,7 +842,7 @@ do_lrm_query(gboolean is_replace, const char *node_name) lrm_state_t *lrm_state = lrm_state_find(node_name); if (!lrm_state) { - crm_err("Could not query lrm state for lrmd node %s", node_name); + crm_err("Could not find executor state for node %s", node_name); return NULL; } return do_lrm_query_internal(lrm_state, @@ -876,7 +878,8 @@ notify_deleted(lrm_state_t * lrm_state, ha_msg_input_t * input, const char *rsc_ time_t now = time(NULL); char *now_s = crm_itoa(now); - crm_debug("Triggering a refresh after %s deleted %s from the LRM", from_sys, rsc_id); + crm_debug("Triggering a refresh after %s deleted %s from the executor", + from_sys, rsc_id); update_attr_delegate(fsa_cib_conn, cib_none, XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, "last-lrm-refresh", now_s, FALSE, NULL, NULL); @@ -995,7 +998,7 @@ erase_lrm_history_by_op(lrm_state_t *lrm_state, lrmd_event_data_t *op) free(op_id); } - crm_debug("Erasing LRM resource history for " CRM_OP_FMT " (call=%d)", + crm_debug("Erasing resource operation history for " CRM_OP_FMT " (call=%d)", op->rsc_id, op->op_type, op->interval_ms, op->call_id); fsa_cib_conn->cmds->remove(fsa_cib_conn, XML_CIB_TAG_STATUS, xml_top, @@ -1057,7 +1060,7 @@ erase_lrm_history_by_id(lrm_state_t *lrm_state, const char *rsc_id, lrm_state->node_name, rsc_id, key); } - crm_debug("Erasing LRM resource history for %s on %s (call=%d)", + crm_debug("Erasing resource operation history for %s on %s (call=%d)", key, rsc_id, call_id); fsa_cib_conn->cmds->remove(fsa_cib_conn, op_xpath, NULL, cib_quorum_override | cib_xpath); @@ -1239,7 +1242,7 @@ cancel_op_key(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *key, g * \retval -EINVAL Required information is missing from arguments * \retval -ENOTCONN No active connection to LRM * \retval -ENODEV Resource not found - * \retval -errno Error communicating with lrmd when registering resource + * \retval -errno Error communicating with executor when registering resource * * \note Caller is responsible for freeing result on success. */ @@ -1256,7 +1259,7 @@ get_lrm_resource(lrm_state_t *lrm_state, xmlNode *rsc_xml, gboolean do_create, return -ENOTCONN; } - crm_trace("Retrieving resource information for %s from the LRM", id); + crm_trace("Retrieving resource information for %s from the executor", id); *rsc_info = lrm_state_get_rsc_info(lrm_state, id, 0); // If resource isn't known by ID, try clone name, if provided @@ -1274,19 +1277,19 @@ get_lrm_resource(lrm_state_t *lrm_state, xmlNode *rsc_xml, gboolean do_create, const char *type = crm_element_value(rsc_xml, XML_ATTR_TYPE); int rc; - crm_trace("Registering resource %s with LRM", id); + crm_trace("Registering resource %s with the executor", id); rc = lrm_state_register_rsc(lrm_state, id, class, provider, type, lrmd_opt_drop_recurring); if (rc != pcmk_ok) { fsa_data_t *msg_data = NULL; - crm_err("Could not register resource %s with LRM on %s: %s " + crm_err("Could not register resource %s with the executor on %s: %s " CRM_XS " rc=%d", id, lrm_state->node_name, pcmk_strerror(rc), rc); /* Register this as an internal error if this involves the local - * lrmd. Otherwise, we're likely dealing with an unresponsive remote - * node, which is not an FSA failure. + * executor. Otherwise, we're likely dealing with an unresponsive + * remote node, which is not an FSA failure. */ if (lrm_state_is_local(lrm_state) == TRUE) { register_fsa_error(C_FSA_INTERNAL, I_FAIL, NULL); @@ -1407,8 +1410,8 @@ force_reprobe(lrm_state_t *lrm_state, const char *from_sys, /* Now delete the copy in the CIB */ erase_status_tag(lrm_state->node_name, XML_CIB_TAG_LRM, cib_scope_local); - /* And finally, _delete_ the value in attrd - * Setting it to FALSE results in the PE sending us back here again + /* Finally, _delete_ the value in pacemaker-attrd -- setting it to FALSE + * would result in the scheduler sending us back here again */ update_attrd(lrm_state->node_name, CRM_OP_PROBED, NULL, user_name, is_remote_node); } @@ -1458,7 +1461,7 @@ synthesize_lrmd_failure(lrm_state_t *lrm_state, xmlNode *action, int rc) } else { /* If we can't process the result normally, at least write it to the CIB - * if possible, so the PE can act on it. + * if possible, so the scheduler can act on it. */ const char *standard = crm_element_value(xml_rsc, XML_AGENT_ATTR_CLASS); const char *provider = crm_element_value(xml_rsc, XML_AGENT_ATTR_PROVIDER); @@ -1510,13 +1513,13 @@ fail_lrm_resource(xmlNode *xml, lrm_state_t *lrm_state, const char *user_name, CRM_CHECK(xml_rsc != NULL, return); - /* The lrmd simply executes operations and reports the results, without any - * concept of success or failure, so to fail a resource, we must fake what a - * failure looks like. + /* The executor simply executes operations and reports the results, without + * any concept of success or failure, so to fail a resource, we must fake + * what a failure looks like. * - * To do this, we create a fake lrmd operation event for the resource, and - * pass that event to the lrmd client callback so it will be processed as if - * it came from the lrmd. + * To do this, we create a fake executor operation event for the resource, + * and pass that event to the executor client callback so it will be + * processed as if it came from the executor. */ op = construct_op(lrm_state, xml, ID(xml_rsc), "asyncmon"); fake_op_status(lrm_state, op, PCMK_LRM_OP_DONE, PCMK_OCF_UNKNOWN_ERROR); @@ -1558,7 +1561,7 @@ handle_refresh_op(lrm_state_t *lrm_state, const char *user_name, xmlNode *fragment = do_lrm_query_internal(lrm_state, node_update_all); fsa_cib_update(XML_CIB_TAG_STATUS, fragment, cib_quorum_override, rc, user_name); - crm_info("Forced a local LRM refresh: call=%d", rc); + crm_info("Forced a local resource history refresh: call=%d", rc); if (safe_str_neq(CRM_SYSTEM_CRMD, from_sys)) { xmlNode *reply = create_request(CRM_OP_INVOKE_LRM, fragment, from_host, @@ -1644,15 +1647,15 @@ static bool do_lrm_cancel(ha_msg_input_t *input, lrm_state_t *lrm_state, op_key = generate_op_key(rsc->id, op_task, crm_parse_ms(interval_ms_s)); - crm_debug("PE requested op %s (call=%s) be cancelled", + crm_debug("Scheduler requested op %s (call=%s) be cancelled", op_key, (call_id? call_id : "NA")); call = crm_parse_int(call_id, "0"); if (call == 0) { - /* the normal case when the PE cancels a recurring op */ + // Normal case when the scheduler cancels a recurring op in_progress = cancel_op_key(lrm_state, rsc, op_key, TRUE); } else { - /* the normal case when the PE cancels an orphan op */ + // Normal case when the scheduler cancels an orphan op in_progress = cancel_op(lrm_state, rsc->id, NULL, call, TRUE); } @@ -1766,7 +1769,7 @@ do_lrm_invoke(long long action, #if ENABLE_ACL user_name = crm_acl_get_set_user(input->msg, F_CRM_USER, NULL); - crm_trace("LRM command from user '%s'", user_name); + crm_trace("Executor command from user '%s'", user_name); #endif crm_op = crm_element_value(input->msg, F_CRM_TASK); @@ -1774,7 +1777,7 @@ do_lrm_invoke(long long action, if (safe_str_neq(from_sys, CRM_SYSTEM_TENGINE)) { from_host = crm_element_value(input->msg, F_CRM_HOST_FROM); } - crm_trace("LRM %s command from %s", crm_op, from_sys); + crm_trace("Executor %s command from %s", crm_op, from_sys); if (safe_str_eq(crm_op, CRM_OP_LRM_DELETE)) { crm_rsc_delete = TRUE; // Only crm_resource uses this op @@ -1842,8 +1845,9 @@ do_lrm_invoke(long long action, return; } else if (rc < 0) { - // Error communicating with lrmd - crm_err("Could not register resource '%s' with lrmd: %s " CRM_XS " rc=%d", + // Error communicating with the executor + crm_err("Could not register resource '%s' with executor: %s " + CRM_XS " rc=%d", ID(xml_rsc), pcmk_strerror(rc), rc); crm_log_xml_warn(input->msg, "failed registration"); synthesize_lrmd_failure(lrm_state, input->xml, @@ -1930,7 +1934,7 @@ construct_op(lrm_state_t * lrm_state, xmlNode * rsc_op, const char *rsc_id, cons && safe_str_neq(op->op_type, CRMD_ACTION_DELETE) && !is_remote_lrmd_ra(NULL, NULL, rsc_id)) { - // Resource info *should* already be cached, so we don't get lrmd call + // Resource info *should* already be cached, so we don't get executor call lrmd_rsc_info_t *rsc = lrm_state_get_rsc_info(lrm_state, rsc_id, 0); struct ra_metadata_s *metadata; @@ -2425,7 +2429,7 @@ do_update_resource(const char *node_name, lrmd_rsc_info_t * rsc, lrmd_event_data } } else { - crm_warn("Resource %s no longer exists in the lrmd", op->rsc_id); + crm_warn("Resource %s no longer exists in the executor", op->rsc_id); send_direct_ack(NULL, NULL, rsc, op, op->rsc_id); goto cleanup; } @@ -2523,7 +2527,7 @@ process_lrm_event(lrm_state_t * lrm_state, lrmd_event_data_t * op, struct recurr case PCMK_OCF_RUNNING_MASTER: case PCMK_OCF_DEGRADED: case PCMK_OCF_DEGRADED_MASTER: - /* Leave it up to the TE/PE to decide if this is an error */ + // Leave it to the TE/scheduler to decide if this is an error op->op_status = PCMK_LRM_OP_DONE; break; default: diff --git a/crmd/lrm_state.c b/daemons/controld/controld_execd_state.c similarity index 93% rename from crmd/lrm_state.c rename to daemons/controld/controld_execd_state.c index 829d6a9dd02..c6cfd9cf901 100644 --- a/crmd/lrm_state.c +++ b/daemons/controld/controld_execd_state.c @@ -1,19 +1,8 @@ -/* - * Copyright (C) 2012 David Vossel - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2012-2018 David Vossel + * + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -21,12 +10,12 @@ #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -450,7 +439,7 @@ static void crmd_proxy_dispatch(const char *session, xmlNode *msg) { - crm_log_xml_trace(msg, "CRMd-PROXY[inbound]"); + crm_log_xml_trace(msg, "controller-proxy[inbound]"); crm_xml_add(msg, F_CRM_SYS_FROM, session); if (crmd_authorize_message(msg, NULL, session)) { @@ -532,9 +521,8 @@ crmd_remote_proxy_cb(lrmd_t *lrmd, void *userdata, xmlNode *msg) return; } else if (safe_str_eq(op, LRMD_IPC_OP_REQUEST) && proxy && proxy->is_local) { - /* this is for the crmd, which we are, so don't try - * and connect/send to ourselves over ipc. instead - * do it directly. + /* This is for the controller, which we are, so don't try + * to send to ourselves over IPC -- do it directly. */ int flags = 0; xmlNode *request = get_message_xml(msg, F_LRMD_IPC_MSG); @@ -712,9 +700,6 @@ lrm_state_unregister_rsc(lrm_state_t * lrm_state, return -ENOTCONN; } - /* optimize this... this function is a synced round trip from client to daemon. - * The crmd/lrm.c code path that uses this function should always treat it as an - * async operation. The lrmd client api needs to make an async version unreg available. */ if (is_remote_lrmd_ra(NULL, NULL, rsc_id)) { lrm_state_destroy(rsc_id); return pcmk_ok; @@ -722,11 +707,16 @@ lrm_state_unregister_rsc(lrm_state_t * lrm_state, g_hash_table_remove(lrm_state->rsc_info_cache, rsc_id); + /* @TODO Optimize this ... this function is a blocking round trip from + * client to daemon. The controld_execd_state.c code path that uses this + * function should always treat it as an async operation. The executor API + * should make an async version available. + */ return ((lrmd_t *) lrm_state->conn)->cmds->unregister_rsc(lrm_state->conn, rsc_id, options); } /* - * functions for sending alerts via local LRMD connection + * Functions for sending alerts via local executor connection */ static GListPtr crmd_alert_list = NULL; diff --git a/crmd/fsa.c b/daemons/controld/controld_fsa.c similarity index 93% rename from crmd/fsa.c rename to daemons/controld/controld_fsa.c index 1fedfda3edf..7302679eed7 100644 --- a/crmd/fsa.c +++ b/daemons/controld/controld_fsa.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -32,11 +21,10 @@ #include -#include -#include -#include -#include -#include +#include +#include +#include +#include char *fsa_our_dc = NULL; cib_t *fsa_cib_conn = NULL; @@ -49,8 +37,8 @@ char *fsa_cluster_name = NULL; election_t *fsa_election = NULL; -fsa_timer_t *wait_timer = NULL; // How long to wait before retrying cib/lrmd connection -fsa_timer_t *recheck_timer = NULL; /* Periodically re-run the PE to account for time based rules/preferences */ +fsa_timer_t *wait_timer = NULL; // How long to wait before retrying a cib or executor connection +fsa_timer_t *recheck_timer = NULL; // Periodically re-run scheduler to handle time-based actions fsa_timer_t *election_trigger = NULL; /* How long to wait at startup, or after an election, for the DC to make contact */ fsa_timer_t *transition_timer = NULL; /* How long to delay the start of a new transition with the expectation something else might happen too */ fsa_timer_t *integration_timer = NULL; @@ -137,6 +125,47 @@ static long long startup_actions = A_STARTUP | A_CIB_START | A_LRM_CONNECT | A_HA_CONNECT | A_READCONFIG | A_STARTED | A_CL_JOIN_QUERY; +// A_LOG, A_WARN, A_ERROR +void +do_log(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input current_input, fsa_data_t *msg_data) +{ + unsigned log_type = LOG_TRACE; + + if (action & A_LOG) { + log_type = LOG_INFO; + } else if (action & A_WARN) { + log_type = LOG_WARNING; + } else if (action & A_ERROR) { + log_type = LOG_ERR; + } + + do_crm_log(log_type, "Input %s received in state %s from %s", + fsa_input2string(msg_data->fsa_input), + fsa_state2string(cur_state), msg_data->origin); + + if (msg_data->data_type == fsa_dt_ha_msg) { + ha_msg_input_t *input = fsa_typed_data(msg_data->data_type); + + crm_log_xml_debug(input->msg, __FUNCTION__); + + } else if (msg_data->data_type == fsa_dt_xml) { + xmlNode *input = fsa_typed_data(msg_data->data_type); + + crm_log_xml_debug(input, __FUNCTION__); + + } else if (msg_data->data_type == fsa_dt_lrm) { + lrmd_event_data_t *input = fsa_typed_data(msg_data->data_type); + + do_crm_log(log_type, + "Resource %s: Call ID %d returned %d (%d)." + " New status if rc=0: %s", + input->rsc_id, input->call_id, input->rc, + input->op_status, (char *)input->user_data); + } +} + enum crmd_fsa_state s_crmd_fsa(enum crmd_fsa_cause cause) { diff --git a/daemons/controld/controld_fsa.h b/daemons/controld/controld_fsa.h new file mode 100644 index 00000000000..254d78457f5 --- /dev/null +++ b/daemons/controld/controld_fsa.h @@ -0,0 +1,734 @@ +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ + +#ifndef CRMD_FSA__H +# define CRMD_FSA__H + +# include +# include +# include +# include +# include +# include +# include + +/*! States the controller can be in */ +enum crmd_fsa_state { + S_IDLE = 0, /* Nothing happening */ + + S_ELECTION, /* Take part in the election algorithm as + * described below + */ + S_INTEGRATION, /* integrate that status of new nodes (which is + * all of them if we have just been elected DC) + * to form a complete and up-to-date picture of + * the CIB + */ + S_FINALIZE_JOIN, /* integrate that status of new nodes (which is + * all of them if we have just been elected DC) + * to form a complete and up-to-date picture of + * the CIB + */ + S_NOT_DC, /* we are in non-DC mode */ + S_POLICY_ENGINE, /* Determine next stable state of the cluster */ + S_RECOVERY, /* Something bad happened, check everything is ok + * before continuing and attempt to recover if + * required + */ + S_RELEASE_DC, /* we were the DC, but now we arent anymore, + * possibly by our own request, and we should + * release all unnecessary sub-systems, finish + * any pending actions, do general cleanup and + * unset anything that makes us think we are + * special :) + */ + S_STARTING, /* we are just starting out */ + S_PENDING, /* we are not a full/active member yet */ + S_STOPPING, /* We are in the final stages of shutting down */ + S_TERMINATE, /* We are going to shutdown, this is the equiv of + * "Sending TERM signal to all processes" in Linux + * and in worst case scenarios could be considered + * a self STONITH + */ + S_TRANSITION_ENGINE, /* Attempt to make the calculated next stable + * state of the cluster a reality + */ + + S_HALT, /* Freeze - don't do anything + * Something bad happened that needs the admin to fix + * Wait for I_ELECTION + */ + + /* ----------- Last input found in table is above ---------- */ + S_ILLEGAL /* This is an illegal FSA state */ + /* (must be last) */ +}; + +# define MAXSTATE S_ILLEGAL + +/* + Once we start and do some basic sanity checks, we go into the + S_NOT_DC state and await instructions from the DC or input from + the cluster layer which indicates the election algorithm needs to run. + + If the election algorithm is triggered, we enter the S_ELECTION state + from where we can either go back to the S_NOT_DC state or progress + to the S_INTEGRATION state (or S_RELEASE_DC if we used to be the DC + but aren't anymore). + + The election algorithm has been adapted from + http://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR521 + + Loosely known as the Bully Algorithm, its major points are: + - Election is initiated by any node (N) that notices that the controller + is no longer responding + - Concurrent multiple elections are possible + - Algorithm: + + N sends ELECTION messages to all nodes that occur earlier in the + cluster layer's membership list + + If no one responds, N wins and becomes controller + + N sends out CONTROLLER messages to all other nodes in the partition + + If one of higher-ups answers, it takes over. N is done. + + Once the election is complete, if we are the DC, we enter the + S_INTEGRATION state which is a DC-in-waiting style state. We are + the DC, but we shouldn't do anything yet because we may not have an + up-to-date picture of the cluster. There may of course be times + when this fails, so we should go back to the S_RECOVERY stage and + check everything is ok. We may also end up here if a new node came + online, since each node is authorative on itself and we would want + to incorporate its information into the CIB. + + Once we have the latest CIB, we then enter the S_POLICY_ENGINE state + where invoke the scheduler. It is possible that between + invoking the scheduler and receiving an answer, that we receive + more input. In this case, we would discard the orginal result and + invoke it again. + + Once we are satisfied with the output from the scheduler, we + enter S_TRANSITION_ENGINE and feed the scheduler's output to the + Transition Engine who attempts to make the scheduler's + calculation a reality. If the transition completes successfully, + we enter S_IDLE, otherwise we go back to S_POLICY_ENGINE with the + current unstable state and try again. + + Of course, we may be asked to shutdown at any time, however we must + progress to S_NOT_DC before doing so. Once we have handed over DC + duties to another node, we can then shut down like everyone else, + that is, by asking the DC for permission and waiting for it to take all + our resources away. + + The case where we are the DC and the only node in the cluster is a + special case and handled as an escalation which takes us to + S_SHUTDOWN. Similarly, if any other point in the shutdown + fails or stalls, this is escalated and we end up in S_TERMINATE. + + At any point, the controller can relay messages for its subsystems, + but outbound messages (from subsystems) should probably be blocked + until S_INTEGRATION (for the DC) or the join protocol has + completed (for non-DC controllers). +*/ + +/*====================================== + * + * Inputs/Events/Stimuli to be given to the finite state machine + * + * Some of these a true events, and others are synthesised based on + * the "register" (see below) and the contents or source of messages. + * + * The machine keeps processing until receiving I_NULL + * + *======================================*/ +enum crmd_fsa_input { +/* 0 */ + I_NULL, /* Nothing happened */ +/* 1 */ + + I_CIB_OP, /* An update to the CIB occurred */ + I_CIB_UPDATE, /* An update to the CIB occurred */ + I_DC_TIMEOUT, /* We have lost communication with the DC */ + I_ELECTION, /* Someone started an election */ + I_PE_CALC, /* The scheduler needs to be invoked */ + I_RELEASE_DC, /* The election completed and we were not + * elected, but we were the DC beforehand + */ + I_ELECTION_DC, /* The election completed and we were (re-)elected + * DC + */ + I_ERROR, /* Something bad happened (more serious than + * I_FAIL) and may not have been due to the action + * being performed. For example, we may have lost + * our connection to the CIB. + */ +/* 9 */ + I_FAIL, /* The action failed to complete successfully */ + I_INTEGRATED, + I_FINALIZED, + I_NODE_JOIN, /* A node has entered the cluster */ + I_NOT_DC, /* We are not and were not the DC before or after + * the current operation or state + */ + I_RECOVERED, /* The recovery process completed successfully */ + I_RELEASE_FAIL, /* We could not give up DC status for some reason + */ + I_RELEASE_SUCCESS, /* We are no longer the DC */ + I_RESTART, /* The current set of actions needs to be + * restarted + */ + I_TE_SUCCESS, /* Some non-resource, non-cluster-layer action + * is required of us, e.g. ping + */ +/* 20 */ + I_ROUTER, /* Do our job as router and forward this to the + * right place + */ + I_SHUTDOWN, /* We are asking to shutdown */ + I_STOP, /* We have been told to shutdown */ + I_TERMINATE, /* Actually exit */ + I_STARTUP, + I_PE_SUCCESS, /* The action completed successfully */ + + I_JOIN_OFFER, /* The DC is offering membership */ + I_JOIN_REQUEST, /* The client is requesting membership */ + I_JOIN_RESULT, /* If not the DC: The result of a join request + * Else: A client is responding with its local state info + */ + + I_WAIT_FOR_EVENT, /* we may be waiting for an async task to "happen" + * and until it does, we can't do anything else + */ + + I_DC_HEARTBEAT, /* The DC is telling us that it is alive and well */ + + I_LRM_EVENT, + +/* 30 */ + I_PENDING, + I_HALT, + + /* ------------ Last input found in table is above ----------- */ + I_ILLEGAL /* This is an illegal value for an FSA input */ + /* (must be last) */ +}; + +# define MAXINPUT I_ILLEGAL + +# define I_MESSAGE I_ROUTER + +/*====================================== + * + * actions + * + * Some of the actions below will always occur together for now, but this may + * not always be the case, so they are split up so that they can easily be + * called independently in the future, if necessary. + * + * For example, separating A_LRM_CONNECT from A_STARTUP might be useful + * if we ever try to recover from a faulty or disconnected executor. + * + *======================================*/ + + /* Don't do anything */ +# define A_NOTHING 0x0000000000000000ULL + +/* -- Startup actions -- */ + /* Hook to perform any actions (other than connecting to other daemons) + * that might be needed as part of the startup. + */ +# define A_STARTUP 0x0000000000000001ULL + /* Hook to perform any actions that might be needed as part + * after startup is successful. + */ +# define A_STARTED 0x0000000000000002ULL + /* Connect to cluster layer */ +# define A_HA_CONNECT 0x0000000000000004ULL +# define A_HA_DISCONNECT 0x0000000000000008ULL + +# define A_INTEGRATE_TIMER_START 0x0000000000000010ULL +# define A_INTEGRATE_TIMER_STOP 0x0000000000000020ULL +# define A_FINALIZE_TIMER_START 0x0000000000000040ULL +# define A_FINALIZE_TIMER_STOP 0x0000000000000080ULL + +/* -- Election actions -- */ +# define A_DC_TIMER_START 0x0000000000000100ULL +# define A_DC_TIMER_STOP 0x0000000000000200ULL +# define A_ELECTION_COUNT 0x0000000000000400ULL +# define A_ELECTION_VOTE 0x0000000000000800ULL + +# define A_ELECTION_START 0x0000000000001000ULL + +/* -- Message processing -- */ + /* Process the queue of requests */ +# define A_MSG_PROCESS 0x0000000000002000ULL + /* Send the message to the correct recipient */ +# define A_MSG_ROUTE 0x0000000000004000ULL + + /* Send a welcome message to new node(s) */ +# define A_DC_JOIN_OFFER_ONE 0x0000000000008000ULL + +/* -- Server Join protocol actions -- */ + /* Send a welcome message to all nodes */ +# define A_DC_JOIN_OFFER_ALL 0x0000000000010000ULL + /* Process the remote node's ack of our join message */ +# define A_DC_JOIN_PROCESS_REQ 0x0000000000020000ULL + /* Send out the results of the Join phase */ +# define A_DC_JOIN_FINALIZE 0x0000000000040000ULL + /* Send out the results of the Join phase */ +# define A_DC_JOIN_PROCESS_ACK 0x0000000000080000ULL + +/* -- Client Join protocol actions -- */ +# define A_CL_JOIN_QUERY 0x0000000000100000ULL +# define A_CL_JOIN_ANNOUNCE 0x0000000000200000ULL + /* Request membership to the DC list */ +# define A_CL_JOIN_REQUEST 0x0000000000400000ULL + /* Did the DC accept or reject the request */ +# define A_CL_JOIN_RESULT 0x0000000000800000ULL + +/* -- Recovery, DC start/stop -- */ + /* Something bad happened, try to recover */ +# define A_RECOVER 0x0000000001000000ULL + /* Hook to perform any actions (apart from starting, the TE, scheduler, + * and gathering the latest CIB) that might be necessary before + * giving up the responsibilities of being the DC. + */ +# define A_DC_RELEASE 0x0000000002000000ULL + /* */ +# define A_DC_RELEASED 0x0000000004000000ULL + /* Hook to perform any actions (apart from starting, the TE, scheduler, + * and gathering the latest CIB) that might be necessary before + * taking over the responsibilities of being the DC. + */ +# define A_DC_TAKEOVER 0x0000000008000000ULL + +/* -- Shutdown actions -- */ +# define A_SHUTDOWN 0x0000000010000000ULL +# define A_STOP 0x0000000020000000ULL +# define A_EXIT_0 0x0000000040000000ULL +# define A_EXIT_1 0x0000000080000000ULL + +# define A_SHUTDOWN_REQ 0x0000000100000000ULL +# define A_ELECTION_CHECK 0x0000000200000000ULL +# define A_DC_JOIN_FINAL 0x0000000400000000ULL + +/* -- CIB actions -- */ +# define A_CIB_START 0x0000020000000000ULL +# define A_CIB_STOP 0x0000040000000000ULL + +/* -- Transition Engine actions -- */ + /* Attempt to reach the newly calculated cluster state. This is + * only called once per transition (except if it is asked to + * stop the transition or start a new one). + * Once given a cluster state to reach, the TE will determine + * tasks that can be performed in parallel, execute them, wait + * for replies and then determine the next set until the new + * state is reached or no further tasks can be taken. + */ +# define A_TE_INVOKE 0x0000100000000000ULL +# define A_TE_START 0x0000200000000000ULL +# define A_TE_STOP 0x0000400000000000ULL +# define A_TE_CANCEL 0x0000800000000000ULL +# define A_TE_HALT 0x0001000000000000ULL + +/* -- Scheduler actions -- */ + /* Calculate the next state for the cluster. This is only + * invoked once per needed calculation. + */ +# define A_PE_INVOKE 0x0002000000000000ULL +# define A_PE_START 0x0004000000000000ULL +# define A_PE_STOP 0x0008000000000000ULL +/* -- Misc actions -- */ + /* Add a system generate "block" so that resources arent moved + * to or are activly moved away from the affected node. This + * way we can return quickly even if busy with other things. + */ +# define A_NODE_BLOCK 0x0010000000000000ULL + /* Update our information in the local CIB */ +# define A_UPDATE_NODESTATUS 0x0020000000000000ULL +# define A_READCONFIG 0x0080000000000000ULL + +/* -- LRM Actions -- */ + /* Connect to pacemaker-execd */ +# define A_LRM_CONNECT 0x0100000000000000ULL + /* Disconnect from pacemaker-execd */ +# define A_LRM_DISCONNECT 0x0200000000000000ULL +# define A_LRM_INVOKE 0x0400000000000000ULL +# define A_LRM_EVENT 0x0800000000000000ULL + +/* -- Logging actions -- */ +# define A_LOG 0x1000000000000000ULL +# define A_ERROR 0x2000000000000000ULL +# define A_WARN 0x4000000000000000ULL + +# define O_EXIT (A_SHUTDOWN|A_STOP|A_LRM_DISCONNECT|A_HA_DISCONNECT|A_EXIT_0|A_CIB_STOP) +# define O_RELEASE (A_DC_TIMER_STOP|A_DC_RELEASE|A_PE_STOP|A_TE_STOP|A_DC_RELEASED) +# define O_PE_RESTART (A_PE_START|A_PE_STOP) +# define O_TE_RESTART (A_TE_START|A_TE_STOP) +# define O_CIB_RESTART (A_CIB_START|A_CIB_STOP) +# define O_LRM_RECONNECT (A_LRM_CONNECT|A_LRM_DISCONNECT) +# define O_DC_TIMER_RESTART (A_DC_TIMER_STOP|A_DC_TIMER_START) +/*====================================== + * + * "register" contents + * + * Things we may want to remember regardless of which state we are in. + * + * These also count as inputs for synthesizing I_* + * + *======================================*/ +# define R_THE_DC 0x00000001ULL + /* Are we the DC? */ +# define R_STARTING 0x00000002ULL + /* Are we starting up? */ +# define R_SHUTDOWN 0x00000004ULL + /* Are we trying to shut down? */ +# define R_STAYDOWN 0x00000008ULL + /* Should we restart? */ + +# define R_JOIN_OK 0x00000010ULL /* Have we completed the join process */ +# define R_READ_CONFIG 0x00000040ULL +# define R_INVOKE_PE 0x00000080ULL // Should the scheduler be invoked? + +# define R_CIB_CONNECTED 0x00000100ULL + /* Is the CIB connected? */ +# define R_PE_CONNECTED 0x00000200ULL // Is the scheduler connected? +# define R_TE_CONNECTED 0x00000400ULL + /* Is the Transition Engine connected? */ +# define R_LRM_CONNECTED 0x00000800ULL // Is pacemaker-execd connected? + +# define R_CIB_REQUIRED 0x00001000ULL + /* Is the CIB required? */ +# define R_PE_REQUIRED 0x00002000ULL // Is the scheduler required? +# define R_TE_REQUIRED 0x00004000ULL + /* Is the Transition Engine required? */ +# define R_ST_REQUIRED 0x00008000ULL + /* Is the Stonith daemon required? */ + +# define R_CIB_DONE 0x00010000ULL + /* Have we calculated the CIB? */ +# define R_HAVE_CIB 0x00020000ULL /* Do we have an up-to-date CIB */ +# define R_CIB_ASKED 0x00040000ULL /* Have we asked for an up-to-date CIB */ + +# define R_MEMBERSHIP 0x00100000ULL /* Have we got cluster layer data yet */ +# define R_PEER_DATA 0x00200000ULL /* Have we got T_CL_STATUS data yet */ + +# define R_HA_DISCONNECTED 0x00400000ULL /* did we sign out of our own accord */ + +# define R_REQ_PEND 0x01000000ULL + /* Are there Requests waiting for + processing? */ +# define R_PE_PEND 0x02000000ULL // Are we awaiting reply from scheduler? +# define R_TE_PEND 0x04000000ULL + /* Has the TE been invoked and we're + awaiting completion? */ +# define R_RESP_PEND 0x08000000ULL + /* Do we have clients waiting on a + response? if so perhaps we shouldn't + stop yet */ + +# define R_IN_TRANSITION 0x10000000ULL + /* */ +# define R_SENT_RSC_STOP 0x20000000ULL /* Have we sent a stop action to all + * resources in preparation for + * shutting down */ + +# define R_IN_RECOVERY 0x80000000ULL + +/* + * Magic RC used within the controller to indicate direct nacks + * (operation is invalid in current state) + */ +#define CRM_DIRECT_NACK_RC (99) + +enum crmd_fsa_cause { + C_UNKNOWN = 0, + C_STARTUP, + C_IPC_MESSAGE, + C_HA_MESSAGE, + C_CRMD_STATUS_CALLBACK, + C_LRM_OP_CALLBACK, + C_TIMER_POPPED, + C_SHUTDOWN, + C_FSA_INTERNAL, +}; + +typedef struct fsa_timer_s fsa_timer_t; +struct fsa_timer_s { + guint source_id; /* timer source id */ + int period_ms; /* timer period */ + enum crmd_fsa_input fsa_input; + gboolean(*callback) (gpointer data); + gboolean repeat; + int counter; +}; + +enum fsa_data_type { + fsa_dt_none, + fsa_dt_ha_msg, + fsa_dt_xml, + fsa_dt_lrm, +}; + +typedef struct fsa_data_s fsa_data_t; +struct fsa_data_s { + int id; + enum crmd_fsa_input fsa_input; + enum crmd_fsa_cause fsa_cause; + long long actions; + const char *origin; + void *data; + enum fsa_data_type data_type; +}; + +/* Global FSA stuff */ +extern volatile gboolean do_fsa_stall; +extern volatile enum crmd_fsa_state fsa_state; +extern volatile long long fsa_input_register; +extern volatile long long fsa_actions; + +extern cib_t *fsa_cib_conn; + +extern char *fsa_our_uname; +extern char *fsa_our_uuid; +extern char *fsa_pe_ref; // Last invocation of the scheduler +extern char *fsa_our_dc; +extern char *fsa_our_dc_version; +extern GListPtr fsa_message_queue; + +extern char *fsa_cluster_name; + +extern election_t *fsa_election; +extern fsa_timer_t *election_trigger; +extern fsa_timer_t *election_timeout; +extern fsa_timer_t *shutdown_escalation_timer; +extern fsa_timer_t *transition_timer; +extern fsa_timer_t *integration_timer; +extern fsa_timer_t *finalization_timer; +extern fsa_timer_t *wait_timer; +extern fsa_timer_t *recheck_timer; + +extern crm_trigger_t *fsa_source; +extern crm_trigger_t *config_read; + +extern unsigned long long saved_ccm_membership_id; +extern gboolean ever_had_quorum; + +// These should be moved elsewhere +void do_update_cib_nodes(gboolean overwrite, const char *caller); +int crmd_cib_smart_opt(void); +xmlNode *do_lrm_query(gboolean, const char *node_name); + +const char *fsa_input2string(enum crmd_fsa_input input); +const char *fsa_state2string(enum crmd_fsa_state state); +const char *fsa_cause2string(enum crmd_fsa_cause cause); +const char *fsa_action2string(long long action); + +enum crmd_fsa_state s_crmd_fsa(enum crmd_fsa_cause cause); + +# define AM_I_DC is_set(fsa_input_register, R_THE_DC) +# define AM_I_OPERATIONAL (is_set(fsa_input_register, R_STARTING) == FALSE) +# define trigger_fsa(source) do { \ + crm_trace("Triggering FSA: %s", __FUNCTION__); \ + mainloop_set_trigger(source); \ + } while(0) + +/* A_READCONFIG */ +void do_read_config(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input current_input, fsa_data_t *msg_data); + +/* A_PE_INVOKE */ +void do_pe_invoke(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input current_input, fsa_data_t *msg_data); + +/* A_ERROR */ +void do_error(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_LOG */ +void do_log(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_STARTUP */ +void do_startup(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_CIB_START, STOP, RESTART */ +void do_cib_control(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_HA_CONNECT */ +void do_ha_control(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_LRM_CONNECT */ +void do_lrm_control(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_PE_START, STOP, RESTART */ +void do_pe_control(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_TE_START, STOP, RESTART */ +void do_te_control(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_STARTED */ +void do_started(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_MSG_ROUTE */ +void do_msg_route(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_RECOVER */ +void do_recover(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_ELECTION_VOTE */ +void do_election_vote(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_ELECTION_COUNT */ +void do_election_count_vote(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, + fsa_data_t *msg_data); + +/* A_ELECTION_CHECK */ +void do_election_check(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_DC_TIMER_STOP */ +void do_timer_control(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_DC_TAKEOVER */ +void do_dc_takeover(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_DC_RELEASE */ +void do_dc_release(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_DC_JOIN_OFFER_ALL */ +void do_dc_join_offer_all(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_DC_JOIN_OFFER_ONE */ +void do_dc_join_offer_one(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_DC_JOIN_ACK */ +void do_dc_join_ack(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_DC_JOIN_REQ */ +void do_dc_join_filter_offer(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, + fsa_data_t *msg_data); + +/* A_DC_JOIN_FINALIZE */ +void do_dc_join_finalize(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_CL_JOIN_QUERY */ +/* is there a DC out there? */ +void do_cl_join_query(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input current_input, fsa_data_t *msg_data); + +/* A_CL_JOIN_ANNOUNCE */ +void do_cl_join_announce(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input current_input, fsa_data_t *msg_data); + +/* A_CL_JOIN_REQUEST */ +void do_cl_join_offer_respond(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input current_input, + fsa_data_t *msg_data); + +/* A_CL_JOIN_RESULT */ +void do_cl_join_finalize_respond(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input current_input, + fsa_data_t *msg_data); + +/* A_UPDATE_NODESTATUS */ +void do_update_node_status(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_LRM_INVOKE */ +void do_lrm_invoke(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_LRM_EVENT */ +void do_lrm_event(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_TE_INVOKE, A_TE_CANCEL */ +void do_te_invoke(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_TE_INVOKE */ +void do_te_copyto(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_SHUTDOWN_REQ */ +void do_shutdown_req(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_SHUTDOWN */ +void do_shutdown(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_STOP */ +void do_stop(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_EXIT_0, A_EXIT_1 */ +void do_exit(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input cur_input, fsa_data_t *msg_data); + +/* A_DC_JOIN_FINAL */ +void do_dc_join_final(long long action, enum crmd_fsa_cause cause, + enum crmd_fsa_state cur_state, + enum crmd_fsa_input current_input, fsa_data_t *msg_data); + +# include +#endif diff --git a/crmd/join_client.c b/daemons/controld/controld_join_client.c similarity index 95% rename from crmd/join_client.c rename to daemons/controld/controld_join_client.c index 30bdf51ee20..12966b2d24e 100644 --- a/crmd/join_client.c +++ b/daemons/controld/controld_join_client.c @@ -12,8 +12,8 @@ #include #include -#include -#include +#include +#include int reannounce_count = 0; void join_query_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void *user_data); @@ -274,16 +274,16 @@ do_cl_join_finalize_respond(long long action, join_id, fsa_our_dc); /* - * If this is the node's first join since the crmd started on it, + * If this is the node's first join since the controller started on it, * set its initial state (standby or member) according to the user's * preference. * * We do not clear the LRM history here. Even if the DC failed to do it * when we last left, removing them here creates a race condition if the - * crmd is being recovered. Instead of a list of active resources from - * the lrmd, we may end up with a blank status section. If we are _NOT_ - * lucky, we will probe for the "wrong" instance of anonymous clones and - * end up with multiple active instances on the machine. + * controller is being recovered. Instead of a list of active resources + * from the executor, we may end up with a blank status section. If we + * are _NOT_ lucky, we will probe for the "wrong" instance of anonymous + * clones and end up with multiple active instances on the machine. */ if (first_join && is_not_set(fsa_input_register, R_SHUTDOWN)) { first_join = FALSE; diff --git a/crmd/join_dc.c b/daemons/controld/controld_join_dc.c similarity index 93% rename from crmd/join_dc.c rename to daemons/controld/controld_join_dc.c index c15635168d3..cf6473c9524 100644 --- a/crmd/join_dc.c +++ b/daemons/controld/controld_join_dc.c @@ -1,20 +1,10 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ + #include #include @@ -23,9 +13,9 @@ #include #include -#include -#include -#include "tengine.h" +#include +#include +#include "controld_transition.h" char *max_epoch = NULL; char *max_generation_from = NULL; @@ -193,10 +183,9 @@ do_dc_join_offer_all(long long action, enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) { - /* reset everyone's status back to down or in_ccm in the CIB - * - * any nodes that are active in the CIB but not in the cluster membership - * will be seen as offline by the PE anyway + /* Reset everyone's status back to down or in_ccm in the CIB. + * Any nodes that are active in the CIB but not in the cluster membership + * will be seen as offline by the scheduler anyway. */ current_join_id++; initialize_join(TRUE); @@ -208,7 +197,7 @@ do_dc_join_offer_all(long long action, } g_hash_table_foreach(crm_peer_cache, join_make_offer, NULL); - /* don't waste time by invoking the PE yet; */ + // Don't waste time by invoking the scheduler yet crm_info("join-%d: Waiting on %d outstanding join acks", current_join_id, crmd_join_phase_count(crm_join_welcomed)); } @@ -277,7 +266,7 @@ do_dc_join_offer_one(long long action, */ abort_transition(INFINITY, tg_restart, "Node join", NULL); - /* don't waste time by invoking the PE yet; */ + // Don't waste time by invoking the scheduler yet crm_debug("Waiting on %d outstanding join acks for join-%d", crmd_join_phase_count(crm_join_welcomed), current_join_id); } @@ -401,7 +390,7 @@ do_dc_join_filter_offer(long long action, if (check_join_state(cur_state, __FUNCTION__) == FALSE) { - /* don't waste time by invoking the PE yet; */ + // Don't waste time by invoking the scheduler yet crm_debug("join-%d: Still waiting on %d outstanding offers", join_id, crmd_join_phase_count(crm_join_welcomed)); } @@ -492,8 +481,8 @@ finalize_sync_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, voi } } else { - crm_debug("No longer the DC in S_FINALIZE_JOIN: %s/%s", - AM_I_DC ? "DC" : "CRMd", fsa_state2string(fsa_state)); + crm_debug("No longer the DC in S_FINALIZE_JOIN: %s in %s", + AM_I_DC ? "DC" : "controller", fsa_state2string(fsa_state)); } } @@ -563,23 +552,24 @@ do_dc_join_ack(long long action, xmlNode *now_dc_lrmd_state = do_lrm_query(TRUE, fsa_our_uname); if (now_dc_lrmd_state != NULL) { - crm_debug("LRM state is updated from do_lrm_query.(%s)", join_from); + crm_debug("Local executor state updated from query"); fsa_cib_update(XML_CIB_TAG_STATUS, now_dc_lrmd_state, cib_scope_local | cib_quorum_override | cib_can_create, call_id, NULL); free_xml(now_dc_lrmd_state); } else { - crm_warn("Could not get our LRM state. LRM state is updated from join_ack->xml.(%s)", join_from); + crm_warn("Local executor state updated from join acknowledgement because query failed"); fsa_cib_update(XML_CIB_TAG_STATUS, join_ack->xml, cib_scope_local | cib_quorum_override | cib_can_create, call_id, NULL); } } else { - crm_debug("LRM state is updated from join_ack->xml.(%s)", join_from); + crm_debug("Executor state for %s updated from join acknowledgement", + join_from); fsa_cib_update(XML_CIB_TAG_STATUS, join_ack->xml, cib_scope_local | cib_quorum_override | cib_can_create, call_id, NULL); } fsa_register_cib_callback(call_id, FALSE, NULL, join_update_complete_callback); - crm_debug("join-%d: Registered callback for LRM update %d", join_id, call_id); + crm_debug("join-%d: Registered callback for CIB status update %d", join_id, call_id); } void diff --git a/crmd/crmd_lrm.h b/daemons/controld/controld_lrm.h similarity index 75% rename from crmd/crmd_lrm.h rename to daemons/controld/controld_lrm.h index 382f7b5505e..15a0bf7e7bf 100644 --- a/crmd/crmd_lrm.h +++ b/daemons/controld/controld_lrm.h @@ -1,23 +1,12 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ -#include -#include +#include +#include extern gboolean verify_stopped(enum crmd_fsa_state cur_state, int log_level); void lrm_clear_last_failure(const char *rsc_id, const char *node_name, @@ -58,10 +47,8 @@ struct recurring_op_s { typedef struct lrm_state_s { const char *node_name; - /* reserved for lrm_state.c usage only */ - void *conn; - /* reserved for remote_lrmd_ra.c usage only */ - void *remote_ra_data; + void *conn; // Reserved for controld_execd_state.c usage + void *remote_ra_data; // Reserved for controld_remote_ra.c usage GHashTable *resource_history; GHashTable *pending_ops; @@ -78,7 +65,7 @@ struct pending_deletion_op_s { }; /*! - * \brief Is this the local ipc connection to the lrmd + * \brief Check whether this the local IPC connection to the executor */ gboolean lrm_state_is_local(lrm_state_t *lrm_state); @@ -86,7 +73,7 @@ lrm_state_is_local(lrm_state_t *lrm_state); /*! * \brief Clear all state information from a single state entry. * \note It sometimes useful to save metadata cache when it won't go stale. - * \note This does not close the lrmd connection + * \note This does not close the executor connection */ void lrm_state_reset_tables(lrm_state_t * lrm_state, gboolean reset_metadata); GList *lrm_state_get_list(void); @@ -102,12 +89,12 @@ gboolean lrm_state_init_local(void); void lrm_state_destroy_all(void); /*! - * \brief Create lrmd connection entry. + * \brief Create executor connection entry */ lrm_state_t *lrm_state_create(const char *node_name); /*! - * \brief Destroy lrmd connection keyed of node name + * \brief Destroy executor connection by node name */ void lrm_state_destroy(const char *node_name); @@ -122,11 +109,11 @@ lrm_state_t *lrm_state_find(const char *node_name); lrm_state_t *lrm_state_find_or_create(const char *node_name); /*! - * The functions below are wrappers for the lrmd api calls the crmd - * uses. These wrapper functions allow us to treat the crmd's remote - * lrmd connection resources the same as regular resources. Internally - * Regular resources go to the lrmd, and remote connection resources are - * handled locally in the crmd. + * The functions below are wrappers for the executor API the the controller + * uses. These wrapper functions allow us to treat the controller's remote + * executor connection resources the same as regular resources. Internally, + * regular resources go to the executor, and remote connection resources are + * handled locally in the controller. */ void lrm_state_disconnect_only(lrm_state_t * lrm_state); void lrm_state_disconnect(lrm_state_t * lrm_state); @@ -156,7 +143,7 @@ int lrm_state_register_rsc(lrm_state_t * lrm_state, int lrm_state_unregister_rsc(lrm_state_t * lrm_state, const char *rsc_id, enum lrmd_call_options options); -/*! These functions are used to manage the remote lrmd connection resources */ +// Functions used to manage remote executor connection resources void remote_lrm_op_callback(lrmd_event_data_t * op); gboolean is_remote_lrmd_ra(const char *agent, const char *provider, const char *id); lrmd_rsc_info_t *remote_ra_get_rsc_info(lrm_state_t * lrm_state, const char *rsc_id); diff --git a/crmd/fsa_matrix.h b/daemons/controld/controld_matrix.h similarity index 100% rename from crmd/fsa_matrix.h rename to daemons/controld/controld_matrix.h diff --git a/crmd/membership.c b/daemons/controld/controld_membership.c similarity index 93% rename from crmd/membership.c rename to daemons/controld/controld_membership.c index ab06bece641..f29d76e8766 100644 --- a/crmd/membership.c +++ b/daemons/controld/controld_membership.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ /* put these first so that uuid_t is defined without conflicts */ @@ -26,14 +15,13 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include gboolean membership_flux_hack = FALSE; void post_cache_update(int instance); diff --git a/daemons/controld/controld_membership.h b/daemons/controld/controld_membership.h new file mode 100644 index 00000000000..4798f6527db --- /dev/null +++ b/daemons/controld/controld_membership.h @@ -0,0 +1,26 @@ +/* + * Copyright 2012-2018 Andrew Beekhof + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ +#ifndef MEMBERSHIP__H +# define MEMBERSHIP__H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +void post_cache_update(int instance); + +extern gboolean check_join_state(enum crmd_fsa_state cur_state, const char *source); + +#define proc_flags (crm_proc_controld | crm_get_cluster_proc()) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/crmd/messages.c b/daemons/controld/controld_messages.c similarity index 98% rename from crmd/messages.c rename to daemons/controld/controld_messages.c index 12842c0bfe9..fc377418ac7 100644 --- a/crmd/messages.c +++ b/daemons/controld/controld_messages.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include @@ -20,11 +20,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include GListPtr fsa_message_queue = NULL; extern void crm_shutdown(int nsig); @@ -413,16 +413,14 @@ relay_message(xmlNode * msg, gboolean originated_locally) send_msg_via_ipc(msg, sys_to); } else if (AM_I_DC) { - ROUTER_RESULT("Message result: DC/CRMd process"); + ROUTER_RESULT("Message result: DC/controller process"); processing_complete = FALSE; /* more to be done by caller */ } else if (originated_locally && safe_str_neq(sys_from, CRM_SYSTEM_PENGINE) && safe_str_neq(sys_from, CRM_SYSTEM_TENGINE)) { - /* Neither the TE or PE should be sending messages - * to DC's on other nodes - * - * By definition, if we are no longer the DC, then - * the PE or TE's data should be discarded + /* Neither the TE nor the scheduler should be sending messages + * to DCs on other nodes. By definition, if we are no longer the DC, + * then the scheduler's or TE's data should be discarded. */ #if SUPPORT_COROSYNC @@ -439,7 +437,7 @@ relay_message(xmlNode * msg, gboolean originated_locally) } } else if (is_local && (is_for_crm || is_for_cib)) { - ROUTER_RESULT("Message result: CRMd process"); + ROUTER_RESULT("Message result: controller process"); processing_complete = FALSE; /* more to be done by caller */ } else if (is_local) { @@ -918,7 +916,7 @@ handle_response(xmlNode * stored_msg) crm_log_xml_err(stored_msg, "Bad message"); } else if (AM_I_DC && strcmp(op, CRM_OP_PECALC) == 0) { - /* Check if the PE answer been superseded by a subsequent request? */ + // Check whether scheduler answer been superseded by subsequent request const char *msg_ref = crm_element_value(stored_msg, XML_ATTR_REFERENCE); if (msg_ref == NULL) { @@ -942,7 +940,7 @@ handle_response(xmlNode * stored_msg) const char *host_from = crm_element_value(stored_msg, F_CRM_HOST_FROM); crm_err("Unexpected response (op=%s, src=%s) sent to the %s", - op, host_from, AM_I_DC ? "DC" : "CRMd"); + op, host_from, AM_I_DC ? "DC" : "controller"); } } diff --git a/crmd/crmd_messages.h b/daemons/controld/controld_messages.h similarity index 81% rename from crmd/crmd_messages.h rename to daemons/controld/controld_messages.h index 5ed6f5db84a..8c80b5cf109 100644 --- a/crmd/crmd_messages.h +++ b/daemons/controld/controld_messages.h @@ -1,20 +1,10 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ + #ifndef XML_CRM_MESSAGES__H # define XML_CRM_MESSAGES__H @@ -22,7 +12,7 @@ # include # include # include -# include +# include typedef struct ha_msg_input_s { xmlNode *msg; diff --git a/crmd/crmd_metadata.c b/daemons/controld/controld_metadata.c similarity index 98% rename from crmd/crmd_metadata.c rename to daemons/controld/controld_metadata.c index a8a94af525b..2b38fa1b71b 100644 --- a/crmd/crmd_metadata.c +++ b/daemons/controld/controld_metadata.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 Andrew Beekhof + * Copyright 2017-2018 Andrew Beekhof * * This source code is licensed under the GNU General Public License version 2 * or later (GPLv2+) WITHOUT ANY WARRANTY. @@ -14,7 +14,7 @@ #include #include -#include "crmd_lrm.h" +#include "controld_lrm.h" #if ENABLE_VERSIONED_ATTRS static regex_t *version_format_regex = NULL; diff --git a/crmd/crmd_metadata.h b/daemons/controld/controld_metadata.h similarity index 100% rename from crmd/crmd_metadata.h rename to daemons/controld/controld_metadata.h diff --git a/crmd/remote_lrmd_ra.c b/daemons/controld/controld_remote_ra.c similarity index 96% rename from crmd/remote_lrmd_ra.c rename to daemons/controld/controld_remote_ra.c index 57b0fdf7218..d2c31c57936 100644 --- a/crmd/remote_lrmd_ra.c +++ b/daemons/controld/controld_remote_ra.c @@ -1,30 +1,19 @@ -/* - * Copyright (C) 2013 David Vossel - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2013-2018 David Vossel + * + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -81,10 +70,11 @@ typedef struct remote_ra_data_s { enum remote_migration_status migrate_status; gboolean active; - gboolean is_maintenance; /* kind of complex to determine from crmd-context - * so we have it signalled back with the - * transition from pengine - */ + + /* Maintenance mode is difficult to determine from the controller's context, + * so we have it signalled back with the transition from the scheduler. + */ + gboolean is_maintenance; } remote_ra_data_t; static int handle_remote_ra_start(lrm_state_t * lrm_state, remote_ra_cmd_t * cmd, int timeout_ms); @@ -530,7 +520,7 @@ remote_lrm_op_callback(lrmd_event_data_t * op) lrm_state = lrm_state_find(op->remote_nodename); if (!lrm_state || !lrm_state->remote_ra_data) { - crm_debug("lrm_state info not found for remote lrmd connection event"); + crm_debug("No state information found for remote connection event"); return; } ra_data = lrm_state->remote_ra_data; @@ -622,7 +612,7 @@ remote_lrm_op_callback(lrmd_event_data_t * op) ra_data->active = TRUE; } - crm_debug("remote lrmd connect event matched %s action. ", cmd->action); + crm_debug("Remote connection event matched %s action", cmd->action); report_remote_ra_result(cmd); cmd_handled = TRUE; @@ -643,7 +633,7 @@ remote_lrm_op_callback(lrmd_event_data_t * op) cmd->reported_success = 1; } - crm_debug("remote lrmd poke event matched %s action. ", cmd->action); + crm_debug("Remote poke event matched %s action", cmd->action); /* success, keep rescheduling if interval is present. */ if (cmd->interval_ms && (cmd->cancel == FALSE)) { @@ -769,7 +759,7 @@ handle_remote_ra_exec(gpointer user_data) rc = handle_remote_ra_start(lrm_state, cmd, cmd->timeout); if (rc == 0) { /* take care of this later when we get async connection result */ - crm_debug("began remote lrmd connect, waiting for connect event."); + crm_debug("Remote connection started, waiting for connect event"); ra_data->cur_cmd = cmd; return TRUE; } else { @@ -794,7 +784,8 @@ handle_remote_ra_exec(gpointer user_data) } if (rc == 0) { - crm_debug("poked remote lrmd at node %s, waiting for async response.", cmd->rsc_id); + crm_debug("Poked Pacemaker Remote at node %s, waiting for async response", + cmd->rsc_id); ra_data->cur_cmd = cmd; cmd->monitor_timeout_id = g_timeout_add(cmd->timeout, monitor_timeout_cb, cmd); return TRUE; diff --git a/crmd/pengine.c b/daemons/controld/controld_schedulerd.c similarity index 87% rename from crmd/pengine.c rename to daemons/controld/controld_schedulerd.c index 5e86d9c448a..e5d5f69b08d 100644 --- a/crmd/pengine.c +++ b/daemons/controld/controld_schedulerd.c @@ -15,15 +15,15 @@ #include #include -#include -#include -#include /* register_fsa_error_adv */ +#include +#include +#include /* register_fsa_error_adv */ static mainloop_io_t *pe_subsystem = NULL; /*! * \internal - * \brief Close any PE connection and free associated memory + * \brief Close any scheduler connection and free associated memory */ void pe_subsystem_free(void) @@ -44,7 +44,7 @@ pe_subsystem_free(void) * \param[in] output Result of CIB query * \param[in] user_data Unique identifier for filename (will be freed) * - * \note This is intended to be called after a PE connection fails. + * \note This is intended to be called after a scheduler connection fails. */ static void save_cib_contents(xmlNode *msg, int call_id, int rc, xmlNode *output, @@ -59,10 +59,10 @@ save_cib_contents(xmlNode *msg, int call_id, int rc, xmlNode *output, char *filename = crm_strdup_printf(PE_STATE_DIR "/pe-core-%s.bz2", id); if (write_xml_file(output, filename, TRUE) < 0) { - crm_err("Could not save Cluster Information Base to %s after Policy Engine crash", + crm_err("Could not save Cluster Information Base to %s after scheduler crash", filename); } else { - crm_notice("Saved Cluster Information Base to %s after Policy Engine crash", + crm_notice("Saved Cluster Information Base to %s after scheduler crash", filename); } free(filename); @@ -71,7 +71,7 @@ save_cib_contents(xmlNode *msg, int call_id, int rc, xmlNode *output, /*! * \internal - * \brief Respond to PE connection failure + * \brief Respond to scheduler connection failure * * \param[in] user_data Ignored */ @@ -82,11 +82,11 @@ pe_ipc_destroy(gpointer user_data) int rc = pcmk_ok; char *uuid_str = crm_generate_uuid(); - crm_crit("Connection to the Policy Engine failed " + crm_crit("Connection to the scheduler failed " CRM_XS " uuid=%s", uuid_str); /* - * The PE died... + * The scheduler died... * * Save the current CIB so that we have a chance of * figuring out what killed it. @@ -99,7 +99,7 @@ pe_ipc_destroy(gpointer user_data) fsa_register_cib_callback(rc, FALSE, uuid_str, save_cib_contents); } else { - crm_info("Connection to the Policy Engine released"); + crm_info("Connection to the scheduler released"); } clear_bit(fsa_input_register, R_PE_CONNECTED); @@ -110,7 +110,7 @@ pe_ipc_destroy(gpointer user_data) /*! * \internal - * \brief Handle message from PE connection + * \brief Handle message from scheduler connection * * \param[in] buffer XML message (will be freed) * \param[in] length Ignored @@ -198,11 +198,11 @@ do_pe_control(long long action, if (pe_subsystem_new()) { set_bit(fsa_input_register, R_PE_CONNECTED); } else { - crm_warn("Could not connect to Policy Engine"); + crm_warn("Could not connect to scheduler"); register_fsa_error(C_FSA_INTERNAL, I_FAIL, NULL); } } else { - crm_info("Ignoring request to connect to PE while shutting down"); + crm_info("Ignoring request to connect to scheduler while shutting down"); } } } @@ -218,18 +218,18 @@ do_pe_invoke(long long action, enum crmd_fsa_input current_input, fsa_data_t * msg_data) { if (AM_I_DC == FALSE) { - crm_err("Not invoking Policy Engine because not DC: %s", + crm_err("Not invoking scheduler because not DC: %s", fsa_action2string(action)); return; } if (is_set(fsa_input_register, R_PE_CONNECTED) == FALSE) { if (is_set(fsa_input_register, R_SHUTDOWN)) { - crm_err("Cannot shut down gracefully without the Policy Engine"); + crm_err("Cannot shut down gracefully without the scheduler"); register_fsa_input_before(C_FSA_INTERNAL, I_TERMINATE, NULL); } else { - crm_info("Waiting for the Policy Engine to connect"); + crm_info("Waiting for the scheduler to connect"); crmd_fsa_stall(FALSE); register_fsa_action(A_PE_START); } @@ -237,12 +237,12 @@ do_pe_invoke(long long action, } if (cur_state != S_POLICY_ENGINE) { - crm_notice("Not invoking Policy Engine because in state %s", + crm_notice("Not invoking scheduler because in state %s", fsa_state2string(cur_state)); return; } if (is_set(fsa_input_register, R_HAVE_CIB) == FALSE) { - crm_err("Attempted to invoke Policy Engine without consistent Cluster Information Base!"); + crm_err("Attempted to invoke scheduler without consistent Cluster Information Base!"); /* start the join from scratch */ register_fsa_input_before(C_FSA_INTERNAL, I_ELECTION, NULL); @@ -332,11 +332,12 @@ do_pe_invoke_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void return; } else if (AM_I_DC == FALSE || is_set(fsa_input_register, R_PE_CONNECTED) == FALSE) { - crm_debug("No need to invoke the PE anymore"); + crm_debug("No need to invoke the scheduler anymore"); return; } else if (fsa_state != S_POLICY_ENGINE) { - crm_debug("Discarding PE request in state: %s", fsa_state2string(fsa_state)); + crm_debug("Discarding scheduler request in state: %s", + fsa_state2string(fsa_state)); return; /* this callback counts as 1 */ @@ -348,13 +349,13 @@ do_pe_invoke_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void return; } else if (fsa_state != S_POLICY_ENGINE) { - crm_err("Invoking PE in state: %s", fsa_state2string(fsa_state)); + crm_err("Invoking scheduler in state: %s", fsa_state2string(fsa_state)); return; } CRM_LOG_ASSERT(output != NULL); - /* refresh our remote-node cache when the pengine is invoked */ + // Refresh the remote node cache when the scheduler is invoked crm_remote_peer_cache_refresh(output); crm_xml_add(output, XML_ATTR_DC_UUID, fsa_our_uuid); @@ -373,11 +374,11 @@ do_pe_invoke_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void rc = pe_subsystem_send(cmd); if (rc < 0) { - crm_err("Could not contact the Policy Engine: %s " CRM_XS " rc=%d", + crm_err("Could not contact the scheduler: %s " CRM_XS " rc=%d", pcmk_strerror(rc), rc); register_fsa_error_adv(C_FSA_INTERNAL, I_ERROR, NULL, NULL, __FUNCTION__); } - crm_debug("Invoking the PE: query=%d, ref=%s, seq=%llu, quorate=%d", + crm_debug("Invoking the scheduler: query=%d, ref=%s, seq=%llu, quorate=%d", fsa_pe_query, fsa_pe_ref, crm_peer_seq, fsa_has_quorum); free_xml(cmd); } diff --git a/crmd/te_actions.c b/daemons/controld/controld_te_actions.c similarity index 98% rename from crmd/te_actions.c rename to daemons/controld/controld_te_actions.c index ac68edd6ca4..26bfd41fd78 100644 --- a/crmd/te_actions.c +++ b/daemons/controld/controld_te_actions.c @@ -13,13 +13,13 @@ #include #include -#include +#include -#include -#include -#include +#include +#include +#include #include -#include +#include char *te_uuid = NULL; GHashTable *te_targets = NULL; @@ -735,7 +735,7 @@ notify_crmd(crm_graph_t * graph) event = I_STOP; } else { - crm_err("We didn't ask to be shut down, yet our PE is telling us to."); + crm_err("We didn't ask to be shut down, yet the scheduler is telling us to"); event = I_TERMINATE; } } diff --git a/crmd/te_callbacks.c b/daemons/controld/controld_te_callbacks.c similarity index 99% rename from crmd/te_callbacks.c rename to daemons/controld/controld_te_callbacks.c index 7d512124ea5..ce1edb73753 100644 --- a/crmd/te_callbacks.c +++ b/daemons/controld/controld_te_callbacks.c @@ -13,9 +13,8 @@ #include #include -#include -#include -#include +#include +#include #include /* For ONLINESTATUS etc */ @@ -151,10 +150,10 @@ te_update_diff_v1(const char *event, xmlNode *diff) "//" XML_LRM_TAG_RESOURCE); max = numXpathResults(xpathObj); if (max > 1) { - crm_debug("Ignoring resource operation updates due to LRM refresh of %d resources", + crm_debug("Ignoring resource operation updates due to history refresh of %d resources", max); crm_log_xml_trace(diff, "lrm-refresh"); - abort_transition(INFINITY, tg_restart, "LRM Refresh", NULL); + abort_transition(INFINITY, tg_restart, "History refresh", NULL); goto bail; } freeXpathObject(xpathObj); @@ -265,7 +264,7 @@ process_resource_updates(const char *node, xmlNode *xml, xmlNode *change, && xml->children && xml->children->next) { crm_log_xml_trace(change, "lrm-refresh"); - abort_transition(INFINITY, tg_restart, "LRM Refresh", NULL); + abort_transition(INFINITY, tg_restart, "History refresh", NULL); return; } diff --git a/crmd/te_events.c b/daemons/controld/controld_te_events.c similarity index 99% rename from crmd/te_events.c rename to daemons/controld/controld_te_events.c index 8ecc48504d6..65b892ffc48 100644 --- a/crmd/te_events.c +++ b/daemons/controld/controld_te_events.c @@ -13,9 +13,9 @@ #include #include -#include +#include -#include +#include char *failed_stop_offset = NULL; char *failed_start_offset = NULL; diff --git a/crmd/te_utils.c b/daemons/controld/controld_te_utils.c similarity index 94% rename from crmd/te_utils.c rename to daemons/controld/controld_te_utils.c index 319cb17154a..f6d79099455 100644 --- a/crmd/te_utils.c +++ b/daemons/controld/controld_te_utils.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -24,11 +13,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include crm_trigger_t *stonith_reconnect = NULL; @@ -154,14 +143,14 @@ fail_incompletable_stonith(crm_graph_t * graph) action->failed = TRUE; last_action = action->xml; update_graph(graph, action); - crm_notice("Failing action %d (%s): STONITHd terminated", + crm_notice("Failing action %d (%s): fencer terminated", action->id, ID(action->xml)); } } } if (last_action != NULL) { - crm_warn("STONITHd failure resulted in un-runnable actions"); + crm_warn("Fencer failure resulted in unrunnable actions"); abort_for_stonith_failure(tg_restart, NULL, last_action); return TRUE; } @@ -295,8 +284,8 @@ tengine_stonith_notify(stonith_t * st, stonith_event_t * st_event) /* @TODO Ideally, at this point, we'd check whether the fenced node * hosted any guest nodes, and call remote_node_down() for them. - * Unfortunately, the crmd doesn't have a simple, reliable way to - * map hosts to guests. It might be possible to track this in the + * Unfortunately, the controller doesn't have a simple, reliable way + * to map hosts to guests. It might be possible to track this in the * peer cache via crm_remote_peer_cache_refresh(). For now, we rely * on the PE creating fence pseudo-events for the guests. */ diff --git a/crmd/throttle.c b/daemons/controld/controld_throttle.c similarity index 99% rename from crmd/throttle.c rename to daemons/controld/controld_throttle.c index 98a45cf3420..eb45696761e 100644 --- a/crmd/throttle.c +++ b/daemons/controld/controld_throttle.c @@ -18,8 +18,8 @@ #include #include -#include -#include +#include +#include enum throttle_state_e { @@ -60,7 +60,7 @@ static mainloop_timer_t *throttle_timer = NULL; static char * find_cib_loadfile(void) { - int pid = crm_procfs_pid_of("cib"); + int pid = crm_procfs_pid_of("pacemaker-based"); return pid? crm_strdup_printf("/proc/%d/stat", pid) : NULL; } diff --git a/crmd/throttle.h b/daemons/controld/controld_throttle.h similarity index 100% rename from crmd/throttle.h rename to daemons/controld/controld_throttle.h diff --git a/crmd/tengine.c b/daemons/controld/controld_transition.c similarity index 97% rename from crmd/tengine.c rename to daemons/controld/controld_transition.c index f126a56f37f..3bd7c6fde29 100644 --- a/crmd/tengine.c +++ b/daemons/controld/controld_transition.c @@ -11,11 +11,10 @@ #include #include -#include -#include -#include -#include /* te_update_diff */ -#include +#include +#include +#include +#include extern crm_graph_functions_t te_graph_fns; diff --git a/crmd/tengine.h b/daemons/controld/controld_transition.h similarity index 82% rename from crmd/tengine.h rename to daemons/controld/controld_transition.h index 7101486da7c..43c8c9fd355 100644 --- a/crmd/tengine.h +++ b/daemons/controld/controld_transition.h @@ -45,7 +45,16 @@ extern char *te_uuid; extern void notify_crmd(crm_graph_t * graph); -# include +void cib_fencing_updated(xmlNode *msg, int call_id, int rc, xmlNode *output, + void *user_data); +void cib_action_updated(xmlNode *msg, int call_id, int rc, xmlNode *output, + void *user_data); +gboolean action_timer_callback(gpointer data); +gboolean te_graph_trigger(gpointer user_data); +void te_update_diff(const char *event, xmlNode *msg); +void tengine_stonith_callback(stonith_t *stonith, + stonith_callback_data_t *data); +void update_stonith_max_attempts(const char* value); extern void trigger_graph_processing(const char *fn, int line); void abort_after_delay(int abort_priority, enum transition_action abort_action, diff --git a/crmd/utils.c b/daemons/controld/controld_utils.c similarity index 99% rename from crmd/utils.c rename to daemons/controld/controld_utils.c index 2aef7b5ddca..e301c3949f0 100644 --- a/crmd/utils.c +++ b/daemons/controld/controld_utils.c @@ -15,9 +15,9 @@ #include #include -#include -#include -#include +#include +#include +#include /* A_DC_TIMER_STOP, A_DC_TIMER_START, * A_FINALIZE_TIMER_STOP, A_FINALIZE_TIMER_START @@ -79,7 +79,7 @@ get_timer_desc(fsa_timer_t * timer) return "Wait Timer"; } else if (timer == recheck_timer) { - return "PEngine Recheck Timer"; + return "Cluster Recheck Timer"; } return "Unknown Timer"; diff --git a/crmd/crmd_utils.h b/daemons/controld/controld_utils.h similarity index 80% rename from crmd/crmd_utils.h rename to daemons/controld/controld_utils.h index 44f055fe108..e972be0f9c5 100644 --- a/crmd/crmd_utils.h +++ b/daemons/controld/controld_utils.h @@ -1,20 +1,10 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ + #ifndef CRMD_UTILS__H # define CRMD_UTILS__H @@ -22,7 +12,7 @@ # include # include # include /* For CIB_OP_MODIFY */ -# include "crmd_alerts.h" +# include "controld_alerts.h" # define FAKE_TE_ID "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" @@ -34,7 +24,7 @@ NULL, options, user_name); \ \ } else { \ - crm_err("No CIB connection available"); \ + crm_err("No CIB manager connection available"); \ } # define fsa_cib_anon_update(section, data, options) \ diff --git a/crmd/crmd_dsa.dot b/daemons/controld/crmd_dsa.dot similarity index 100% rename from crmd/crmd_dsa.dot rename to daemons/controld/crmd_dsa.dot diff --git a/crmd/main.c b/daemons/controld/pacemaker-controld.c similarity index 69% rename from crmd/main.c rename to daemons/controld/pacemaker-controld.c index 174e9fbb3df..1f3fa8bfdd0 100644 --- a/crmd/main.c +++ b/daemons/controld/pacemaker-controld.c @@ -1,19 +1,8 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -32,9 +21,9 @@ #include #include -#include -#include -#include +#include +#include +#include #define OPTARGS "hV" @@ -104,16 +93,17 @@ main(int argc, char **argv) crm_help('?', CRM_EX_USAGE); } - if (crm_is_writable(PE_STATE_DIR, NULL, CRM_DAEMON_USER, CRM_DAEMON_GROUP, FALSE) == FALSE) { - crm_err("Bad permissions on " PE_STATE_DIR ". Terminating"); - fprintf(stderr, "ERROR: Bad permissions on " PE_STATE_DIR ". See logs for details\n"); + if (pcmk__daemon_can_write(PE_STATE_DIR, NULL) == FALSE) { + crm_err("Terminating due to bad permissions on " PE_STATE_DIR); + fprintf(stderr, + "ERROR: Bad permissions on " PE_STATE_DIR " (see logs for details)\n"); fflush(stderr); return CRM_EX_FATAL; - } else if (crm_is_writable(CRM_CONFIG_DIR, NULL, CRM_DAEMON_USER, CRM_DAEMON_GROUP, FALSE) == - FALSE) { - crm_err("Bad permissions on " CRM_CONFIG_DIR ". Terminating"); - fprintf(stderr, "ERROR: Bad permissions on " CRM_CONFIG_DIR ". See logs for details\n"); + } else if (pcmk__daemon_can_write(CRM_CONFIG_DIR, NULL) == FALSE) { + crm_err("Terminating due to bad permissions on " CRM_CONFIG_DIR); + fprintf(stderr, + "ERROR: Bad permissions on " CRM_CONFIG_DIR " (see logs for details)\n"); fflush(stderr); return CRM_EX_FATAL; } @@ -171,7 +161,8 @@ crmd_init(void) exit_code = CRM_EX_ERROR; } - crm_info("crmd[%lu] exiting with status %d (%s)", - (unsigned long) getpid(), exit_code, crm_exit_str(exit_code)); + crm_info("%s[%lu] exiting with status %d (%s)", + crm_system_name, (unsigned long) getpid(), exit_code, + crm_exit_str(exit_code)); return crmd_fast_exit(exit_code); } diff --git a/crmd/crmd.h b/daemons/controld/pacemaker-controld.h similarity index 100% rename from crmd/crmd.h rename to daemons/controld/pacemaker-controld.h diff --git a/daemons/execd/Makefile.am b/daemons/execd/Makefile.am new file mode 100644 index 00000000000..f05d58ee61a --- /dev/null +++ b/daemons/execd/Makefile.am @@ -0,0 +1,61 @@ +# +# Copyright 2012-2018 David Vossel +# +# This source code is licensed under the GNU Lesser General Public License +# version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. +# + +include $(top_srcdir)/Makefile.common + +halibdir = $(CRM_DAEMON_DIR) + +halib_PROGRAMS = pacemaker-execd cts-exec-helper + +initdir = $(INITDIR) +init_SCRIPTS = pacemaker_remote +sbin_PROGRAMS = pacemaker-remoted + +if BUILD_SYSTEMD +systemdunit_DATA = pacemaker_remote.service +endif + +pacemaker_execd_CFLAGS = $(CFLAGS_HARDENED_EXE) +pacemaker_execd_LDFLAGS = $(LDFLAGS_HARDENED_EXE) + +pacemaker_execd_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/services/libcrmservice.la \ + $(top_builddir)/lib/fencing/libstonithd.la ${COMPAT_LIBS} +pacemaker_execd_SOURCES = pacemaker-execd.c execd_commands.c \ + execd_alerts.c + +pacemaker_remoted_CPPFLAGS = -DSUPPORT_REMOTE $(AM_CPPFLAGS) + +pacemaker_remoted_CFLAGS = $(CFLAGS_HARDENED_EXE) +pacemaker_remoted_LDFLAGS = $(LDFLAGS_HARDENED_EXE) + +pacemaker_remoted_LDADD = $(pacemaker_execd_LDADD) \ + $(top_builddir)/lib/lrmd/liblrmd.la +pacemaker_remoted_SOURCES = $(pacemaker_execd_SOURCES) \ + remoted_tls.c remoted_proxy.c + +cts_exec_helper_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/lrmd/liblrmd.la \ + $(top_builddir)/lib/cib/libcib.la \ + $(top_builddir)/lib/services/libcrmservice.la \ + $(top_builddir)/lib/pengine/libpe_status.la \ + $(top_builddir)/daemons/schedulerd/libpengine.la +cts_exec_helper_SOURCES = cts-exec-helper.c + +noinst_HEADERS = pacemaker-execd.h + +CLEANFILES = $(man8_MANS) + +if BUILD_LEGACY_LINKS +install-exec-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && $(LN_S) pacemaker-execd lrmd + cd $(DESTDIR)$(sbindir) && $(LN_S) pacemaker-remoted pacemaker_remoted + +uninstall-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && rm -f lrmd + cd $(DESTDIR)$(sbindir) && rm -f pacemaker_remoted +endif diff --git a/lrmd/test.c b/daemons/execd/cts-exec-helper.c similarity index 96% rename from lrmd/test.c rename to daemons/execd/cts-exec-helper.c index 0e044b9ee06..633d49bbc03 100644 --- a/lrmd/test.c +++ b/daemons/execd/cts-exec-helper.c @@ -25,7 +25,7 @@ static struct crm_option long_options[] = { {"quiet", 0, 0, 'Q', "\t\tSuppress all output to screen"}, {"tls", 0, 0, 'S', "\t\tUse tls backend for local connection"}, {"listen", 1, 0, 'l', "\tListen for a specific event string"}, - {"api-call", 1, 0, 'c', "\tDirectly relates to lrmd api functions"}, + {"api-call", 1, 0, 'c', "\tDirectly relates to executor API functions"}, {"no-wait", 0, 0, 'w', "\tMake api call and do not wait for result."}, {"is-running", 0, 0, 'R', "\tDetermine if a resource is registered and running."}, {"notify-orig", 0, 0, 'n', "\tOnly notify this client the results of an api action."}, @@ -153,13 +153,13 @@ connection_events(lrmd_event_data_t * event) } if (!rc) { - crm_info("lrmd client connection established"); + crm_info("Executor client connection established"); start_test(NULL); return; } else { sleep(1); try_connect(); - crm_notice("lrmd client connection failed"); + crm_notice("Executor client connection failed"); } } @@ -172,7 +172,7 @@ try_connect(void) lrmd_conn->cmds->set_callback(lrmd_conn, connection_events); for (; num_tries < tries; num_tries++) { - rc = lrmd_conn->cmds->connect_async(lrmd_conn, "lrmd", 3000); + rc = lrmd_conn->cmds->connect_async(lrmd_conn, "pacemaker-execd", 3000); if (!rc) { return; /* we'll hear back in async callback */ @@ -366,9 +366,9 @@ generate_params(void) set_working_set_defaults(&data_set); cib_conn = cib_new(); - rc = cib_conn->cmds->signon(cib_conn, "lrmd_test", cib_query); + rc = cib_conn->cmds->signon(cib_conn, "cts-exec-helper", cib_query); if (rc != pcmk_ok) { - crm_err("Error signing on to the CIB service: %s", pcmk_strerror(rc)); + crm_err("Could not connect to the CIB manager: %s", pcmk_strerror(rc)); rc = -1; goto param_gen_bail; } @@ -454,7 +454,7 @@ main(int argc, char **argv) crm_trigger_t *trig; crm_set_options(NULL, "mode [options]", long_options, - "Inject commands into the lrmd and watch for events\n"); + "Inject commands into the executor, and watch for events\n"); while (1) { flag = crm_get_option(argc, argv, &option_index); @@ -563,7 +563,8 @@ main(int argc, char **argv) options.no_connect = 1; } - crm_log_init("lrmd_ctest", LOG_INFO, TRUE, options.verbose ? TRUE : FALSE, argc, argv, FALSE); + crm_log_init(NULL, LOG_INFO, TRUE, (options.verbose? TRUE : FALSE), + argc, argv, FALSE); if (options.is_running) { if (!options.timeout) { diff --git a/lrmd/lrmd_alert_api.c b/daemons/execd/execd_alerts.c similarity index 98% rename from lrmd/lrmd_alert_api.c rename to daemons/execd/execd_alerts.c index 854b6ae40a2..2fa920b7c77 100644 --- a/lrmd/lrmd_alert_api.c +++ b/daemons/execd/execd_alerts.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016-2017 Andrew Beekhof + * Copyright 2016-2018 Andrew Beekhof * * This source code is licensed under the GNU General Public License version 2 * or later (GPLv2+) WITHOUT ANY WARRANTY. @@ -16,7 +16,7 @@ #include #include -#include +#include "pacemaker-execd.h" /* Track in-flight alerts so we can wait for them at shutdown */ static GHashTable *inflight_alerts; /* key = call_id, value = timeout */ diff --git a/lrmd/lrmd.c b/daemons/execd/execd_commands.c similarity index 97% rename from lrmd/lrmd.c rename to daemons/execd/execd_commands.c index 063c195f1ac..13e00f1ca94 100644 --- a/lrmd/lrmd.c +++ b/daemons/execd/execd_commands.c @@ -17,7 +17,7 @@ #include #include -#include +#include "pacemaker-execd.h" #ifdef HAVE_SYS_TIMEB_H # include @@ -56,8 +56,9 @@ typedef struct lrmd_cmd_s { char *userdata_str; #ifdef HAVE_SYS_TIMEB_H - /* recurring and systemd operations may involve more than one lrmd command - * per operation, so they need info about original and most recent + /* Recurring and systemd operations may involve more than one executor + * command per operation, so they need info about the original and the most + * recent. */ struct timeb t_first_run; /* Timestamp of when op first ran */ struct timeb t_run; /* Timestamp of when op most recently ran */ @@ -283,8 +284,9 @@ merge_recurring_duplicate(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) merge_dup: - /* This should not occur, if it does we need to investigate in the crmd - * how something like this is possible */ + /* This should not occur. If it does, we need to investigate how something + * like this is possible in the controller. + */ crm_warn("Duplicate recurring op entry detected (" CRM_OP_FMT "), merging with previous op entry", rsc->rsc_id, normalize_action_name(rsc, dup->action), @@ -331,7 +333,9 @@ schedule_lrmd_cmd(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) return; } - /* crmd expects lrmd to automatically cancel recurring ops before rsc stops. */ + /* The controller expects the executor to automatically cancel + * recurring operations before a resource stops. + */ if (safe_str_eq(cmd->action, "stop")) { cancel_all_recurring(rsc, NULL); } @@ -417,7 +421,7 @@ time_diff_ms(struct timeb *now, struct timeb *old) * command, so we report the entire time since then and not just the time since * the most recent command (for recurring and systemd operations). * - * /param[in] cmd LRMD command object to reset + * /param[in] cmd Executor command object to reset * * /note It's not obvious what the queued time should be for a systemd * start/stop operation, which might go like this: @@ -767,7 +771,8 @@ action_complete(svc_action_t * action) bool goagain = false; if (!cmd) { - crm_err("LRMD action (%s) completed does not match any known operations.", action->id); + crm_err("Completed executor action (%s) does not match any known operations", + action->id); return; } #ifdef HAVE_SYS_TIMEB_H @@ -994,7 +999,7 @@ stonith_connection_failed(void) return; } - crm_err("STONITH connection failed, finalizing %d pending operations.", + crm_err("Connection to fencer failed, finalizing %d pending operations", g_list_length(cmd_list)); for (cmd_iter = cmd_list; cmd_iter; cmd_iter = cmd_iter->next) { stonith_action_complete(cmd_iter->data, -ENOTCONN); @@ -1032,10 +1037,12 @@ lrmd_rsc_execute_stonith(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) } } - /* Stonith automatically registers devices from the IPC when changes occur, - * but to avoid a possible race condition between stonith receiving the IPC update - * and the lrmd requesting that resource, the lrmd still registers the device as well. - * Stonith knows how to handle duplicate device registrations correctly. */ + /* Stonith automatically registers devices from the IPC when changes + * occur, but to avoid a possible race condition between stonith + * receiving the IPC update and the executor requesting that resource, + * the executor still registers the device as well. Stonith knows how to + * handle duplicate device registrations correctly. + */ rc = stonith_api->cmds->register_device(stonith_api, st_opt_sync_call, cmd->rsc_id, @@ -1282,7 +1289,7 @@ process_lrmd_signon(crm_client_t *client, xmlNode *request, int call_id) crm_xml_add(reply, F_LRMD_PROTOCOL_VERSION, LRMD_PROTOCOL_VERSION); if (crm_is_true(is_ipc_provider)) { - /* this is a remote connection from a cluster nodes crmd */ + // This is a remote connection from a cluster node's controller #ifdef SUPPORT_REMOTE ipc_proxy_add_provider(client); #endif diff --git a/lrmd/main.c b/daemons/execd/pacemaker-execd.c similarity index 91% rename from lrmd/main.c rename to daemons/execd/pacemaker-execd.c index 76afb09d1ea..f9530991251 100644 --- a/lrmd/main.c +++ b/daemons/execd/pacemaker-execd.c @@ -1,20 +1,8 @@ /* - * Copyright (c) 2012 David Vossel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2012-2018 David Vossel * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #include @@ -33,7 +21,7 @@ #include #include -#include +#include "pacemaker-execd.h" #if defined(HAVE_GNUTLS_GNUTLS_H) && defined(SUPPORT_REMOTE) # define ENABLE_PCMK_REMOTE @@ -58,7 +46,7 @@ static void stonith_connection_destroy_cb(stonith_t * st, stonith_event_t * e) { stonith_api->state = stonith_disconnected; - crm_err("LRMD lost STONITH connection"); + crm_err("Connection to fencer lost"); stonith_connection_failed(); } @@ -76,7 +64,7 @@ get_stonith_connection(void) stonith_api = stonith_api_new(); do { - rc = stonith_api->cmds->connect(stonith_api, "lrmd", NULL); + rc = stonith_api->cmds->connect(stonith_api, "pacemaker-execd", NULL); if (rc == pcmk_ok) { stonith_api->cmds->register_notification(stonith_api, T_STONITH_NOTIFY_DISCONNECT, @@ -339,9 +327,9 @@ lrmd_shutdown(int nsig) /* Stop accepting new proxy connections */ lrmd_tls_server_destroy(); - /* Older crmd versions will never acknowledge our request, so set a - * fairly short timeout to exit quickly in that case. If we get the - * ack, we'll defuse this timer. + /* Older controller versions will never acknowledge our request, so + * set a fairly short timeout to exit quickly in that case. If we + * get the ack, we'll defuse this timer. */ shutdown_ack_timer = g_timeout_add_seconds(20, lrmd_exit, NULL); @@ -452,7 +440,7 @@ static void spawn_pidone(int argc, char **argv, char **envp) setsid(); setpgid(0, 0); - /* Child remains as pacemaker_remoted */ + /* Child remains as pacemaker-remoted */ return; case -1: perror("fork"); @@ -536,13 +524,13 @@ main(int argc, char **argv, char **envp) spawn_pidone(argc, argv, envp); #ifndef ENABLE_PCMK_REMOTE - crm_log_preinit("lrmd", argc, argv); + crm_log_preinit("pacemaker-execd", argc, argv); crm_set_options(NULL, "[options]", long_options, - "Daemon for controlling services confirming to different standards"); + "Resource agent executor daemon for cluster nodes"); #else - crm_log_preinit("pacemaker_remoted", argc, argv); + crm_log_preinit("pacemaker-remoted", argc, argv); crm_set_options(NULL, "[options]", long_options, - "Pacemaker Remote daemon for extending pacemaker functionality to remote nodes."); + "Resource agent executor daemon for Pacemaker Remote nodes"); #endif while (1) { diff --git a/lrmd/lrmd_private.h b/daemons/execd/pacemaker-execd.h similarity index 74% rename from lrmd/lrmd_private.h rename to daemons/execd/pacemaker-execd.h index 913cbc53288..3115e6e65ff 100644 --- a/lrmd/lrmd_private.h +++ b/daemons/execd/pacemaker-execd.h @@ -1,24 +1,12 @@ /* - * Copyright (c) 2012 David Vossel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2012-2018 David Vossel * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ -#ifndef LRMD_PVT__H -# define LRMD_PVT__H +#ifndef PACEMAKER_EXECD__H +# define PACEMAKER_EXECD__H # include # include @@ -111,4 +99,5 @@ int ipc_proxy_shutdown_req(crm_client_t *ipc_proxy); int process_lrmd_alert_exec(crm_client_t *client, uint32_t id, xmlNode *request); void lrmd_drain_alerts(GMainContext *ctx); -#endif + +#endif // PACEMAKER_EXECD__H diff --git a/lrmd/pacemaker_remote.in b/daemons/execd/pacemaker_remote.in similarity index 92% rename from lrmd/pacemaker_remote.in rename to daemons/execd/pacemaker_remote.in index e07e1b9671e..2096c5f39cb 100644 --- a/lrmd/pacemaker_remote.in +++ b/daemons/execd/pacemaker_remote.in @@ -7,7 +7,7 @@ # chkconfig: - 99 01 # description: Pacemaker Cluster Manager -# processname: pacemaker_remoted +# processname: pacemaker-remoted # ### BEGIN INIT INFO # Provides: pacemaker_remote @@ -16,12 +16,12 @@ # Required-Stop: $network $remote_fs # Default-Start: # Default-Stop: -# Short-Description: Starts and stops the Pacemaker remote agent for non-cluster nodes -# Description: Starts and stops the Pacemaker remote agent for non-cluster nodes +# Short-Description: Manage the executor for Pacemaker Remote nodes +# Description: Manage the executor for Pacemaker Remote nodes ### END INIT INFO -desc="Pacemaker Remote Agent" -prog="pacemaker_remoted" +desc="Pacemaker Remote Executor" +prog="pacemaker-remoted" # set secure PATH PATH="/sbin:/bin:/usr/sbin:/usr/bin:@sbindir@" diff --git a/lrmd/pacemaker_remote.service.in b/daemons/execd/pacemaker_remote.service.in similarity index 84% rename from lrmd/pacemaker_remote.service.in rename to daemons/execd/pacemaker_remote.service.in index 8269d796e8c..f0cf0b1c281 100644 --- a/lrmd/pacemaker_remote.service.in +++ b/daemons/execd/pacemaker_remote.service.in @@ -1,6 +1,7 @@ [Unit] -Description=Pacemaker Remote Service -Documentation=man:pacemaker_remoted http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html/Pacemaker_Remote/index.html +Description=Pacemaker Remote executor daemon +Documentation=man:pacemaker-remoted +Documentation=https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/2.0/html-single/Pacemaker_Remote/index.html # See main pacemaker unit file for descriptions of why these are needed After=network.target @@ -22,7 +23,7 @@ NotifyAccess=none EnvironmentFile=-@CONFIGDIR@/pacemaker EnvironmentFile=-@CONFIGDIR@/sbd -ExecStart=@sbindir@/pacemaker_remoted +ExecStart=@sbindir@/pacemaker-remoted # Systemd v227 and above can limit the number of processes spawned by a # service. That is a bad idea for an HA cluster resource manager, so disable it diff --git a/lrmd/ipc_proxy.c b/daemons/execd/remoted_proxy.c similarity index 89% rename from lrmd/ipc_proxy.c rename to daemons/execd/remoted_proxy.c index 493ec6271d8..d430cd396f3 100644 --- a/lrmd/ipc_proxy.c +++ b/daemons/execd/remoted_proxy.c @@ -1,29 +1,16 @@ /* - * Copyright (c) 2012 David Vossel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2012-2018 David Vossel * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ - #include -#include #include #include +#include "pacemaker-execd.h" #include #include #include @@ -41,7 +28,7 @@ static qb_ipcs_service_t *attrd_ipcs = NULL; static qb_ipcs_service_t *crmd_ipcs = NULL; static qb_ipcs_service_t *stonith_ipcs = NULL; -/* ipc providers == crmd clients connecting from cluster nodes */ +// An IPC provider is a cluster node controller connecting as a client static GList *ipc_providers = NULL; /* ipc clients == things like cibadmin, crm_resource, connecting locally */ static GHashTable *ipc_clients = NULL; @@ -175,7 +162,9 @@ ipc_proxy_forward_client(crm_client_t *ipc_proxy, xmlNode *xml) * Looking at the chain of events. * * -----remote node----------------|---- cluster node ------ - * ipc_client <--1--> this code <--2--> crmd:remote_proxy_cb/remote_proxy_relay_event() <----3----> ipc server + * ipc_client <--1--> this code + * <--2--> pacemaker-controld:remote_proxy_cb/remote_proxy_relay_event() + * <--3--> ipc server * * This function is receiving a msg from connection 2 * and forwarding it to connection 1. @@ -228,7 +217,9 @@ ipc_proxy_dispatch(qb_ipcs_connection_t * c, void *data, size_t size) * Looking at the chain of events. * * -----remote node----------------|---- cluster node ------ - * ipc_client <--1--> this code <--2--> crmd:remote_proxy_dispatch_internal() <----3----> ipc server + * ipc_client <--1--> this code + * <--2--> pacemaker-controld:remote_proxy_dispatch_internal() + * <--3--> ipc server * * This function is receiving a request from connection * 1 and forwarding it to connection 2. @@ -244,8 +235,9 @@ ipc_proxy_dispatch(qb_ipcs_connection_t * c, void *data, size_t size) CRM_CHECK(client->id != NULL, crm_err("Invalid client: %p", client); free_xml(request); return FALSE); - /* this ensures that synced request/responses happen over the event channel - * in the crmd, allowing the crmd to process the messages async */ + /* This ensures that synced request/responses happen over the event channel + * in the controller, allowing the controller to process the messages async. + */ set_bit(flags, crm_ipc_proxied); client->request_id = id; @@ -278,7 +270,7 @@ ipc_proxy_shutdown_req(crm_client_t *ipc_proxy) crm_xml_add(msg, F_LRMD_IPC_OP, LRMD_IPC_OP_SHUTDOWN_REQ); - /* We don't really have a session, but crmd needs this attribute + /* We don't really have a session, but the controller needs this attribute * to recognize this as proxy communication. */ crm_xml_add(msg, F_LRMD_IPC_SESSION, "0"); @@ -421,8 +413,8 @@ ipc_proxy_init(void) stonith_ipc_server_init(&stonith_ipcs, &stonith_proxy_callbacks); crmd_ipcs = crmd_ipc_server_init(&crmd_proxy_callbacks); if (crmd_ipcs == NULL) { - crm_err("Failed to create crmd server: exiting and inhibiting respawn."); - crm_warn("Verify pacemaker and pacemaker_remote are not both enabled."); + crm_err("Failed to create controller: exiting and inhibiting respawn"); + crm_warn("Verify pacemaker and pacemaker_remote are not both enabled"); crm_exit(CRM_EX_FATAL); } } diff --git a/lrmd/tls_backend.c b/daemons/execd/remoted_tls.c similarity index 88% rename from lrmd/tls_backend.c rename to daemons/execd/remoted_tls.c index edfb02da7dc..9a14b072d0b 100644 --- a/lrmd/tls_backend.c +++ b/daemons/execd/remoted_tls.c @@ -1,20 +1,8 @@ /* - * Copyright (c) 2012 David Vossel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2012-2018 David Vossel * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #include @@ -28,14 +16,14 @@ #include #include -#include - #include #include #include #include #include +#include "pacemaker-execd.h" + #ifdef HAVE_GNUTLS_GNUTLS_H # define LRMD_REMOTE_AUTH_TIMEOUT 10000 gnutls_psk_server_credentials_t psk_cred_s; @@ -67,13 +55,13 @@ lrmd_remote_client_msg(gpointer data) rc = gnutls_handshake(*client->remote->tls_session); if (rc < 0 && rc != GNUTLS_E_AGAIN) { - crm_err("Remote lrmd tls handshake failed"); + crm_err("TLS handshake with Pacemaker Remote failed"); return -1; } } while (rc == GNUTLS_E_INTERRUPTED); if (rc == 0) { - crm_debug("Remote lrmd tls handshake completed"); + crm_debug("TLS handshake with Pacemaker Remote completed"); client->remote->tls_handshake_complete = TRUE; if (client->remote->auth_timeout) { g_source_remove(client->remote->auth_timeout); @@ -219,11 +207,12 @@ lrmd_remote_listen(gpointer data) new_client->remote->tls_session = session; new_client->remote->auth_timeout = g_timeout_add(LRMD_REMOTE_AUTH_TIMEOUT, lrmd_auth_timeout_cb, new_client); - crm_notice("LRMD client connection established. %p id: %s", new_client, new_client->id); + crm_notice("Client connection to Pacemaker Remote established " + CRM_XS " %p id: %s", new_client, new_client->id); new_client->remote->source = - mainloop_add_fd("lrmd-remote-client", G_PRIORITY_DEFAULT, csock, new_client, - &lrmd_remote_fd_cb); + mainloop_add_fd("pacemaker-remote-client", G_PRIORITY_DEFAULT, csock, + new_client, &lrmd_remote_fd_cb); return TRUE; } @@ -366,7 +355,8 @@ lrmd_init_remote_tls_server() goto init_remote_cleanup; } - mainloop_add_fd("lrmd-remote", G_PRIORITY_DEFAULT, ssock, NULL, &remote_listen_fd_callbacks); + mainloop_add_fd("pacemaker-remote-server", G_PRIORITY_DEFAULT, ssock, NULL, + &remote_listen_fd_callbacks); rc = ssock; init_remote_cleanup: diff --git a/daemons/fenced/Makefile.am b/daemons/fenced/Makefile.am new file mode 100644 index 00000000000..05abc05c679 --- /dev/null +++ b/daemons/fenced/Makefile.am @@ -0,0 +1,49 @@ +# +# Copyright 2004-2018 International Business Machines +# Author: Sun Jiang Dong +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# + +include $(top_srcdir)/Makefile.common + +halibdir = $(CRM_DAEMON_DIR) + +halib_PROGRAMS = pacemaker-fenced cts-fence-helper + +sbin_SCRIPTS = fence_legacy + +noinst_HEADERS = pacemaker-fenced.h + +if BUILD_XML_HELP +man7_MANS = pacemaker-fenced.7 +endif + +cts_fence_helper_SOURCES = cts-fence-helper.c +cts_fence_helper_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/fencing/libstonithd.la + +pacemaker_fenced_CPPFLAGS = -I$(top_srcdir)/daemons/schedulerd $(AM_CPPFLAGS) +pacemaker_fenced_YFLAGS = -d +pacemaker_fenced_CFLAGS = $(CFLAGS_HARDENED_EXE) +pacemaker_fenced_LDFLAGS = $(LDFLAGS_HARDENED_EXE) +pacemaker_fenced_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/cluster/libcrmcluster.la \ + $(top_builddir)/lib/fencing/libstonithd.la \ + $(top_builddir)/lib/pengine/libpe_status.la \ + $(top_builddir)/daemons/schedulerd/libpengine.la \ + $(CLUSTERLIBS) +pacemaker_fenced_SOURCES = pacemaker-fenced.c \ + fenced_commands.c \ + fenced_remote.c + +CLEANFILES = $(man7_MANS) $(man8_MANS) + +if BUILD_LEGACY_LINKS +install-exec-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && $(LN_S) pacemaker-fenced stonithd + +uninstall-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && rm -f stonithd +endif diff --git a/fencing/README.md b/daemons/fenced/README.md similarity index 72% rename from fencing/README.md rename to daemons/fenced/README.md index b5fd4b2bba3..3c0f0623b68 100644 --- a/fencing/README.md +++ b/daemons/fenced/README.md @@ -1,12 +1,11 @@ # Directory contents -* `admin.c`, `stonith_admin.8`: `stonith_admin` command-line tool and its man - page -* `commands.c`, `internal.h`, `main.c`, `remote.c`, `stonithd.7`: stonithd and - its man page -* `fence_dummy`, `fence_legacy`, `fence_legacy.8`: - Pacemaker-supplied fence agents and their man pages -* `test.c`: `stonith-test` command-line tool +* `pacemaker-fenced.c`, `pacemaker-fenced.h`, `fenced_commands.c`, + `fenced_remote.c`, `pacemaker-fenced.7`: pacemaker-fenced (the fencer) and + its man page +* `fence_legacy`, `fence_legacy.8`: Pacemaker-supplied wrapper for + LHA fence agents and its man page +* `cts-fence-helper.c`: `cts-fence-helper` command-line tool # How fencing requests are handled @@ -15,21 +14,21 @@ In the broadest terms, stonith works like this: 1. The initiator (an external program such as `stonith_admin`, or the cluster - itself via the `crmd`) asks the local `stonithd`, "Hey, can you fence this + itself via the controller) asks the local fencer, "Hey, can you fence this node?" -1. The local `stonithd` asks all the `stonithd's` in the cluster (including +1. The local fencer asks all the fencers in the cluster (including itself), "Hey, what fencing devices do you have access to that can fence this node?" -1. Each `stonithd` in the cluster replies with a list of available devices that +1. Each fencer in the cluster replies with a list of available devices that it knows about. -1. Once the original `stonithd` gets all the replies, it asks the most - appropriate `stonithd` peer to actually carry out the fencing. It may send +1. Once the original fencer gets all the replies, it asks the most + appropriate fencer peer to actually carry out the fencing. It may send out more than one such request if the target node must be fenced with multiple devices. -1. The chosen `stonithd(s)` call the appropriate fencing resource agent(s) to - do the fencing, then replies to the original `stonithd` with the result. -1. The original `stonithd` broadcasts the result to all `stonithd's`. -1. Each `stonithd` sends the result to each of its local clients (including, at +1. The chosen fencer(s) call the appropriate fencing resource agent(s) to + do the fencing, then replies to the original fencer with the result. +1. The original fencer broadcasts the result to all fencers. +1. Each fencer sends the result to each of its local clients (including, at some point, the initiator). ## Detailed view @@ -39,10 +38,11 @@ In the broadest terms, stonith works like this: A fencing request can be initiated by the cluster or externally, using the libfencing API. -* The cluster always initiates fencing via `crmd/te_actions.c:te_fence_node()` - (which calls the `fence()` API). This occurs when a graph synapse contains a - `CRM_OP_FENCE` XML operation. -* The main external clients are `stonith_admin` and `stonith-test`. +* The cluster always initiates fencing via + `daemons/controld/controld_te_actions.c:te_fence_node()` (which calls the + `fence()` API). This occurs when a graph synapse contains a `CRM_OP_FENCE` + XML operation. +* The main external clients are `stonith_admin` and `cts-fence-helper`. Highlights of the fencing API: * `stonith_api_new()` creates and returns a new `stonith_t` object, whose @@ -55,19 +55,19 @@ Highlights of the fencing API: The function calls for a stonith request go something like this as of this writing: -The local `stonithd` receives the client's request via an IPC or messaging +The local fencer receives the client's request via an IPC or messaging layer callback, which calls * `stonith_command()`, which (for requests) calls * `handle_request()`, which (for `STONITH_OP_FENCE` from a client) calls * `initiate_remote_stonith_op()`, which creates a `STONITH_OP_QUERY` XML request with the target, desired action, timeout, etc.. then broadcasts - the operation to the cluster group (i.e. all `stonithd` instances) and + the operation to the cluster group (i.e. all fencer instances) and starts a timer. The query is broadcast because (1) location constraints might prevent the local node from accessing the stonith device directly, and (2) even if the local node does have direct access, another node might be preferred to carry out the fencing. -Each `stonithd` receives the original `stonithd's STONITH_OP_QUERY` broadcast +Each fencer receives the original fencer's STONITH_OP_QUERY` broadcast request via IPC or messaging layer callback, which calls: * `stonith_command()`, which (for requests) calls * `handle_request()`, which (for `STONITH_OP_QUERY` from a peer) calls @@ -75,9 +75,9 @@ request via IPC or messaging layer callback, which calls: * `get_capable_devices()` with `stonith_query_capable_device_db()` to add device information to an XML reply and send it. (A message is considered a reply if it contains `T_STONITH_REPLY`, which is only set - by `stonithd` peers, not clients.) + by fencer peers, not clients.) -The original `stonithd` receives all peers' `STONITH_OP_QUERY` replies via IPC +The original fencer receives all peers' `STONITH_OP_QUERY` replies via IPC or messaging layer callback, which calls: * `stonith_command()`, which (for replies) calls * `handle_reply()` which (for `STONITH_OP_QUERY`) calls @@ -100,7 +100,7 @@ or messaging layer callback, which calls: Each `STONITH_OP_FENCE` request goes something like this as of this writing: -The chosen peer `stonithd` receives the `STONITH_OP_FENCE` request via IPC or +The chosen peer fencer receives the `STONITH_OP_FENCE` request via IPC or messaging layer callback, which calls: * `stonith_command()`, which (for requests) calls * `handle_request()`, which (for `STONITH_OP_FENCE` from a peer) calls @@ -111,24 +111,24 @@ messaging layer callback, which calls: `stonith_fence_get_devices_cb()`), which adds the operation to the device's pending operations list and triggers processing. -The chosen peer `stonithd's` mainloop is triggered and calls +The chosen peer fencer's mainloop is triggered and calls * `stonith_device_dispatch()`, which calls * `stonith_device_execute()`, which pops off the next item from the device's pending operations list. If acting as the (internally implemented) watchdog agent, it panics the node, otherwise it calls * `stonith_action_create()` and `stonith_action_execute_async()` to call the fencing agent. -The chosen peer stonithd's mainloop is triggered again once the fencing agent returns, and calls +The chosen peer fencer's mainloop is triggered again once the fencing agent returns, and calls * `stonith_action_async_done()` which adds the results to an action object then calls its * done callback (`st_child_done()`), which calls `schedule_stonith_command()` for a new device if there are further required actions to execute or if the original action failed, then builds and sends an XML reply to the original - `stonithd` (via `stonith_send_async_reply()`), then checks whether any + fencer (via `stonith_send_async_reply()`), then checks whether any pending actions are the same as the one just executed and merges them if so. ### Fencing replies -The original `stonithd` receives the `STONITH_OP_FENCE` reply via IPC or +The original fencer receives the `STONITH_OP_FENCE` reply via IPC or messaging layer callback, which calls: * `stonith_command()`, which (for replies) calls * `handle_reply()`, which calls diff --git a/fencing/test.c b/daemons/fenced/cts-fence-helper.c similarity index 99% rename from fencing/test.c rename to daemons/fenced/cts-fence-helper.c index 24a1777be86..c0d2b41db29 100644 --- a/fencing/test.c +++ b/daemons/fenced/cts-fence-helper.c @@ -638,7 +638,8 @@ main(int argc, char **argv) } } - crm_log_init("stonith-test", LOG_INFO, TRUE, verbose ? TRUE : FALSE, argc, argv, FALSE); + crm_log_init(NULL, LOG_INFO, TRUE, (verbose? TRUE : FALSE), argc, argv, + FALSE); if (optind > argc) { ++argerr; diff --git a/fencing/fence_legacy.in b/daemons/fenced/fence_legacy.in similarity index 100% rename from fencing/fence_legacy.in rename to daemons/fenced/fence_legacy.in diff --git a/fencing/commands.c b/daemons/fenced/fenced_commands.c similarity index 99% rename from fencing/commands.c rename to daemons/fenced/fenced_commands.c index fe624da7d5c..4eb8e02f2b6 100644 --- a/fencing/commands.c +++ b/daemons/fenced/fenced_commands.c @@ -35,7 +35,7 @@ # include #endif -#include +#include GHashTable *device_list = NULL; GHashTable *topology = NULL; @@ -168,10 +168,10 @@ get_action_delay_base(stonith_device_t * device, const char * action) * set the same way as start/stop/monitor timeouts, i.e. with an * entry in the fencing resource configuration. However that * is insufficient because fencing devices may be registered directly via - * the STONITH register_device() API instead of going through the CIB - * (e.g. stonith_admin uses it for its -R option, and the LRMD uses it to - * ensure a device is registered when a command is issued). As device - * properties, pcmk_*_timeout parameters can be grabbed by stonithd when + * the fencer's register_device() API instead of going through the CIB + * (e.g. stonith_admin uses it for its -R option, and the executor uses it + * to ensure a device is registered when a command is issued). As device + * properties, pcmk_*_timeout parameters can be grabbed by the fencer when * the device is registered, whether by CIB change or API call. */ static int @@ -1904,7 +1904,7 @@ stonith_query_capable_device_cb(GList * devices, void *user_data) crm_xml_add(dev, "agent", device->agent); crm_xml_add_int(dev, F_STONITH_DEVICE_VERIFIED, device->verified); - /* If the originating stonithd wants to reboot the node, and we have a + /* If the originating fencer wants to reboot the node, and we have a * capable device that doesn't support "reboot", remap to "off" instead. */ if (is_not_set(device->flags, st_device_supports_reboot) @@ -1925,7 +1925,7 @@ stonith_query_capable_device_cb(GList * devices, void *user_data) * disallowed for the local host. However if only one or two are * disallowed, we send back the results and mark which ones are * disallowed. If "reboot" is disallowed, this might cause problems - * with older stonithd versions, which won't check for it. Older + * with older fencer versions, which won't check for it. Older * versions will ignore "off" and "on", so they are not a problem. */ add_disallowed(dev, action, device, query->target, @@ -2202,9 +2202,9 @@ st_child_done(GPid pid, int rc, const char *output, gpointer user_data) } /* Duplicate merging will do the right thing for either type of remapped - * reboot. If the executing stonithd remapped an unsupported reboot to + * reboot. If the executing fencer remapped an unsupported reboot to * off, then cmd->action will be reboot and will be merged with any - * other reboot requests. If the originating stonithd remapped a + * other reboot requests. If the originating fencer remapped a * topology reboot to off then on, we will get here once with * cmd->action "off" and once with "on", and they will be merged * separately with similar requests. diff --git a/fencing/remote.c b/daemons/fenced/fenced_remote.c similarity index 99% rename from fencing/remote.c rename to daemons/fenced/fenced_remote.c index 5bbc0853594..ade3c92161b 100644 --- a/fencing/remote.c +++ b/daemons/fenced/fenced_remote.c @@ -32,11 +32,11 @@ #include #include -#include +#include #define TIMEOUT_MULTIPLY_FACTOR 1.2 -/* When one stonithd queries its peers for devices able to handle a fencing +/* When one fencer queries its peers for devices able to handle a fencing * request, each peer will reply with a list of such devices available to it. * Each reply will be parsed into a st_query_result_t, with each device's * information kept in a device_properties_t. diff --git a/fencing/main.c b/daemons/fenced/pacemaker-fenced.c similarity index 98% rename from fencing/main.c rename to daemons/fenced/pacemaker-fenced.c index 888f9605e07..b3dcad24d37 100644 --- a/fencing/main.c +++ b/daemons/fenced/pacemaker-fenced.c @@ -32,9 +32,9 @@ #include #include -#include +#include -#include +#include char *stonith_our_uname = NULL; char *stonith_our_uuid = NULL; @@ -214,7 +214,7 @@ stonith_peer_ais_callback(cpg_handle_t handle, static void stonith_peer_cs_destroy(gpointer user_data) { - crm_err("Corosync connection terminated"); + crm_crit("Lost connection to cluster layer, shutting down"); stonith_shutdown(0); } #endif @@ -1119,10 +1119,10 @@ static void cib_connection_destroy(gpointer user_data) { if (stonith_shutdown_flag) { - crm_info("Connection to the CIB closed."); + crm_info("Connection to the CIB manager closed"); return; } else { - crm_notice("Connection to the CIB terminated. Shutting down."); + crm_crit("Lost connection to the CIB manager, shutting down"); } if (cib_api) { cib_api->cmds->signoff(cib_api); @@ -1182,7 +1182,7 @@ setup_cib(void) } if (cib_api == NULL) { - crm_err("No connection to the CIB"); + crm_err("No connection to the CIB manager"); return; } @@ -1192,7 +1192,7 @@ setup_cib(void) } while (rc == -ENOTCONN && ++retries < 5); if (rc != pcmk_ok) { - crm_err("Could not connect to the CIB service: %s (%d)", pcmk_strerror(rc), rc); + crm_err("Could not connect to the CIB manager: %s (%d)", pcmk_strerror(rc), rc); } else if (pcmk_ok != cib_api->cmds->add_notify_callback(cib_api, T_CIB_DIFF_NOTIFY, update_cib_cache_cb)) { @@ -1260,7 +1260,7 @@ main(int argc, char **argv) crm_cluster_t cluster; const char *actions[] = { "reboot", "off", "on", "list", "monitor", "status" }; - crm_log_preinit("stonith-ng", argc, argv); + crm_log_preinit(NULL, argc, argv); crm_set_options(NULL, "mode [options]", long_options, "Provides a summary of cluster's current state." "\n\nOutputs varying levels of detail in a number of different formats.\n"); @@ -1297,11 +1297,10 @@ main(int argc, char **argv) if (argc - optind == 1 && safe_str_eq("metadata", argv[optind])) { printf("\n"); - printf("\n"); + printf("\n"); printf(" 1.0\n"); - printf - (" This is a fake resource that details the instance attributes handled by stonithd.\n"); - printf(" Options available for all stonith resources\n"); + printf(" Instance attributes available for all \"stonith\"-class resources\n"); + printf(" Instance attributes available for all \"stonith\"-class resources\n"); printf(" \n"); printf(" \n"); @@ -1369,7 +1368,7 @@ main(int argc, char **argv) printf (" The maximum number of actions can be performed in parallel on this device\n"); printf - (" Pengine property concurrent-fencing=true needs to be configured first.\n" + (" Cluster property concurrent-fencing=true needs to be configured first.\n" "Then use this to specify the maximum number of actions can be performed in parallel on this device. -1 is unlimited.\n"); printf(" \n"); printf(" \n"); @@ -1423,7 +1422,7 @@ main(int argc, char **argv) crm_help('?', CRM_EX_USAGE); } - crm_log_init("stonith-ng", LOG_INFO, TRUE, FALSE, argc, argv, FALSE); + crm_log_init(NULL, LOG_INFO, TRUE, FALSE, argc, argv, FALSE); mainloop_add_signal(SIGTERM, stonith_shutdown); crm_peer_init(); diff --git a/fencing/internal.h b/daemons/fenced/pacemaker-fenced.h similarity index 100% rename from fencing/internal.h rename to daemons/fenced/pacemaker-fenced.h diff --git a/daemons/pacemakerd/pacemaker.combined.upstart.in b/daemons/pacemakerd/pacemaker.combined.upstart.in index b13993dc2e5..af59ff05d14 100644 --- a/daemons/pacemakerd/pacemaker.combined.upstart.in +++ b/daemons/pacemakerd/pacemaker.combined.upstart.in @@ -54,12 +54,12 @@ post-stop script # if you use watchdog of corosync, uncomment the line below. #pidof corosync || false - pidof crmd || stop corosync + pidof pacemaker-controld || stop corosync # if you want to reboot a machine by watchdog of corosync when # pacemakerd disappeared unexpectedly, uncomment the line below # and invalidate above "respawn" stanza. - #pidof crmd && killall -q -9 corosync + #pidof pacemaker-controld && killall -q -9 corosync # if you use crm_mon, uncomment the line below. #stop crm_mon diff --git a/daemons/pacemakerd/pacemaker.in b/daemons/pacemakerd/pacemaker.in index 8f5ca1905bc..6ed78a83e3d 100644 --- a/daemons/pacemakerd/pacemaker.in +++ b/daemons/pacemakerd/pacemaker.in @@ -131,7 +131,7 @@ stop() { shutdown_prog=$prog if ! status $prog > /dev/null 2>&1; then - shutdown_prog="crmd" + shutdown_prog="pacemaker-controld" fi if status $shutdown_prog > /dev/null 2>&1; then @@ -151,7 +151,9 @@ stop() rm -f "$LOCK_FILE" rm -f "@localstatedir@/run/$prog.pid" - killall -q -9 'crmd stonithd attrd cib lrmd pacemakerd' + killall -q -9 pacemakerd pacemaker-attrd pacemaker-based \ + pacemaker-controld pacemaker-execd pacemaker-fenced \ + pacemaker-schedulerd success echo } diff --git a/daemons/pacemakerd/pacemaker.service.in b/daemons/pacemakerd/pacemaker.service.in index 3c60b8e4422..6a7df8cd33a 100644 --- a/daemons/pacemakerd/pacemaker.service.in +++ b/daemons/pacemakerd/pacemaker.service.in @@ -57,19 +57,21 @@ TasksMax=infinity # resource. Sending -KILL will just get the node fenced SendSIGKILL=no -# If we ever hit the StartLimitInterval/StartLimitBurst limit and the +# If we ever hit the StartLimitInterval/StartLimitBurst limit, and the # admin wants to stop the cluster while pacemakerd is not running, it # might be a good idea to enable the ExecStopPost directive below. # -# Although the node will likely end up being fenced as a result so it's -# not on by default +# However, the node will likely end up being fenced as a result, so it's +# not enabled by default. # -# ExecStopPost=/usr/bin/killall -TERM crmd attrd stonithd cib pengine lrmd +# ExecStopPost=/usr/bin/killall -TERM pacemaker-attrd pacemaker-based \ +# pacemaker-controld pacemaker-execd pacemaker-fenced \ +# pacemaker-schedulerd # If you want Corosync to stop whenever Pacemaker is stopped, # uncomment the next line too: # -# ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync' +# ExecStopPost=/bin/sh -c 'pidof pacemaker-controld || killall -TERM corosync' # Uncomment this for older versions of systemd that didn't support # TimeoutStopSec diff --git a/daemons/pacemakerd/pacemaker.sysconfig b/daemons/pacemakerd/pacemaker.sysconfig index 1034191b95c..a6709b7e6b5 100644 --- a/daemons/pacemakerd/pacemaker.sysconfig +++ b/daemons/pacemakerd/pacemaker.sysconfig @@ -1,9 +1,16 @@ #==#==# Variables that control logging -# Enable debug logging globally or per-subsystem. -# Multiple subsystems may be listed separated by commas, -# e.g. PCMK_debug=crmd,pengine -# PCMK_debug=yes|no|crmd|pengine|cib|stonith-ng|attrd|pacemakerd +# Enable debug logging globally (yes|no) or by subsystem. Multiple subsystems +# may be comma-separated, for example: PCMK_debug=pacemakerd,pacemaker-execd +# Subsystems are: +# pacemakerd +# pacemaker-attrd +# pacemaker-based +# pacemaker-controld +# pacemaker-execd +# pacemaker-fenced +# pacemaker-schedulerd +# PCMK_debug=no # Send detailed log messages to the specified file. Compared to messages logged # via syslog, messages in this file may have extended information, and will @@ -45,9 +52,9 @@ # rolling buffer of all logs (including info, debug, and trace) and is written # after a crash or assertion failure, and/or when SIGTRAP is received. The # blackbox recorder can also be enabled for Pacemaker daemons at runtime by -# sending SIGUSR1 (or SIGTRAP), and disabled by sending SIGUSR2. Multiple -# subsystems may be listed separated by commas, e.g. PCMK_blackbox=crmd,pengine -# PCMK_blackbox=yes|no|crmd|pengine|cib|stonith-ng|attrd|pacemakerd +# sending SIGUSR1 (or SIGTRAP), and disabled by sending SIGUSR2. Specify value +# as for PCMK_debug above. +# PCMK_blackbox=no #==#==# Advanced use only @@ -111,17 +118,15 @@ # for some (inexpensive) memory checks. # MALLOC_CHECK_=3 -# Set to yes/no or cib,crmd etc. to run some or all daemons under valgrind. -# PCMK_valgrind_enabled=yes -# PCMK_valgrind_enabled=cib,crmd +# Set as for PCMK_debug above to run some or all daemons under valgrind. +# PCMK_valgrind_enabled=no -# Set to yes/no or cib,crmd etc. to run some or all daemons under valgrind with +# Set as for PCMK_debug above to run some or all daemons under valgrind with # the callgrind tool enabled. -# PCMK_callgrind_enabled=yes -# PCMK_callgrind_enabled=cib,crmd +# PCMK_callgrind_enabled=no # Set the options to pass to valgrind, when valgrind is enabled. See -# valgrind(1) man page for details. "--vgdb=no" is specified because lrmd can -# lower privileges when executing commands, which would otherwise leave a bunch -# of unremovable files in /tmp. +# valgrind(1) man page for details. "--vgdb=no" is specified because +# pacemaker-execd can lower privileges when executing commands, which would +# otherwise leave a bunch of unremovable files in /tmp. VALGRIND_OPTS="--leak-check=full --trace-children=no --vgdb=no --num-callers=25 --log-file=/var/lib/pacemaker/valgrind-%p --suppressions=/usr/share/pacemaker/tests/valgrind-pcmk.suppressions --gen-suppressions=all" diff --git a/daemons/pacemakerd/pacemakerd.c b/daemons/pacemakerd/pacemakerd.c index d5bfa34c778..1062bea121b 100644 --- a/daemons/pacemakerd/pacemakerd.c +++ b/daemons/pacemakerd/pacemakerd.c @@ -50,19 +50,38 @@ typedef struct pcmk_child_s { } pcmk_child_t; /* Index into the array below */ -#define pcmk_child_crmd 3 -/* *INDENT-OFF* */ +#define pcmk_child_controld 3 + static pcmk_child_t pcmk_children[] = { - { 0, crm_proc_none, 0, 0, FALSE, "none", NULL, NULL }, - { 0, crm_proc_lrmd, 3, 0, TRUE, "lrmd", NULL, CRM_DAEMON_DIR"/lrmd" }, - { 0, crm_proc_cib, 1, 0, TRUE, "cib", CRM_DAEMON_USER, CRM_DAEMON_DIR"/cib" }, - { 0, crm_proc_crmd, 6, 0, TRUE, "crmd", CRM_DAEMON_USER, CRM_DAEMON_DIR"/crmd" }, - { 0, crm_proc_attrd, 4, 0, TRUE, "attrd", CRM_DAEMON_USER, CRM_DAEMON_DIR"/attrd" }, - { 0, crm_proc_stonithd, 0, 0, TRUE, "stonithd", NULL, NULL }, - { 0, crm_proc_pe, 5, 0, TRUE, "pengine", CRM_DAEMON_USER, CRM_DAEMON_DIR"/pengine" }, - { 0, crm_proc_stonith_ng, 2, 0, TRUE, "stonith-ng", NULL, CRM_DAEMON_DIR"/stonithd" }, + { + 0, crm_proc_none, 0, 0, FALSE, "none", + NULL, NULL + }, + { + 0, crm_proc_execd, 3, 0, TRUE, "pacemaker-execd", + NULL, CRM_DAEMON_DIR "/pacemaker-execd" + }, + { + 0, crm_proc_based, 1, 0, TRUE, "pacemaker-based", + CRM_DAEMON_USER, CRM_DAEMON_DIR "/pacemaker-based" + }, + { + 0, crm_proc_controld, 6, 0, TRUE, "pacemaker-controld", + CRM_DAEMON_USER, CRM_DAEMON_DIR "/pacemaker-controld" + }, + { + 0, crm_proc_attrd, 4, 0, TRUE, "pacemaker-attrd", + CRM_DAEMON_USER, CRM_DAEMON_DIR "/pacemaker-attrd" + }, + { + 0, crm_proc_schedulerd, 5, 0, TRUE, "pacemaker-schedulerd", + CRM_DAEMON_USER, CRM_DAEMON_DIR "/pacemaker-schedulerd" + }, + { + 0, crm_proc_fenced, 2, 0, TRUE, "pacemaker-fenced", + NULL, CRM_DAEMON_DIR "/pacemaker-fenced" + }, }; -/* *INDENT-ON* */ static gboolean start_child(pcmk_child_t * child); static gboolean check_active_before_startup_processes(gpointer user_data); @@ -377,7 +396,7 @@ pcmk_shutdown_worker(gpointer user_data) next_log = now + 30; child->respawn = FALSE; stop_child(child, SIGTERM); - if (phase < pcmk_children[pcmk_child_crmd].start_seq) { + if (phase < pcmk_children[pcmk_child_controld].start_seq) { g_timeout_add(180000 /* 3m */ , escalate_shutdown, child); } @@ -676,9 +695,6 @@ check_active_before_startup_processes(gpointer user_data) continue; } else { const char *name = pcmk_children[lpc].name; - if (pcmk_children[lpc].flag == crm_proc_stonith_ng) { - name = "stonithd"; - } if (crm_pid_active(pcmk_children[lpc].pid, name) != 1) { crm_notice("Process %s terminated (pid=%d)", @@ -726,9 +742,6 @@ find_and_track_existing_processes(void) if (pcmk_children[i].start_seq == 0) { continue; } - if (pcmk_children[i].flag == crm_proc_stonith_ng) { - name = "stonithd"; - } if (safe_str_eq(entry_name, name) && (crm_pid_active(pid, NULL) == 1)) { crm_notice("Tracking existing %s process (pid=%d)", name, pid); pcmk_children[i].pid = pid; @@ -781,7 +794,7 @@ init_children_processes(void) static void mcp_cpg_destroy(gpointer user_data) { - crm_err("Connection destroyed"); + crm_crit("Lost connection to cluster layer, shutting down"); crm_exit(CRM_EX_DISCONNECT); } @@ -1015,7 +1028,7 @@ main(int argc, char **argv) mkdir(CRM_STATE_DIR, 0750); mcp_chown(CRM_STATE_DIR, pcmk_uid, pcmk_gid); - /* Used to store core/blackbox/pengine/cib files in */ + /* Used to store core/blackbox/scheduler/cib files in */ crm_build_path(CRM_PACEMAKER_DIR, 0750); mcp_chown(CRM_PACEMAKER_DIR, pcmk_uid, pcmk_gid); @@ -1027,7 +1040,7 @@ main(int argc, char **argv) crm_build_path(CRM_BLACKBOX_DIR, 0750); mcp_chown(CRM_BLACKBOX_DIR, pcmk_uid, pcmk_gid); - /* Used to store policy engine inputs in */ + // Used to store scheduler inputs in crm_build_path(PE_STATE_DIR, 0750); mcp_chown(PE_STATE_DIR, pcmk_uid, pcmk_gid); @@ -1035,7 +1048,7 @@ main(int argc, char **argv) crm_build_path(CRM_CONFIG_DIR, 0750); mcp_chown(CRM_CONFIG_DIR, pcmk_uid, pcmk_gid); - /* Resource agent paths are constructed by the lrmd */ + // Don't build CRM_RSCTMP_DIR, pacemaker-execd will do it ipcs = mainloop_add_ipc_server(CRM_SYSTEM_MCP, QB_IPC_NATIVE, &mcp_ipc_callbacks); if (ipcs == NULL) { diff --git a/daemons/schedulerd/Makefile.am b/daemons/schedulerd/Makefile.am new file mode 100644 index 00000000000..59754b94185 --- /dev/null +++ b/daemons/schedulerd/Makefile.am @@ -0,0 +1,80 @@ +# +# Copyright 2004-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# + +include $(top_srcdir)/Makefile.common + +AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) + +halibdir = $(CRM_DAEMON_DIR) + +COMMONLIBS = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/pengine/libpe_status.la \ + libpengine.la + +## libraries +lib_LTLIBRARIES = libpengine.la + +## binary progs + +halib_PROGRAMS = pacemaker-schedulerd + +if BUILD_XML_HELP +man7_MANS = pacemaker-schedulerd.7 +endif + +## SOURCES + +noinst_HEADERS = pacemaker-schedulerd.h \ + sched_allocate.h \ + sched_notif.h \ + sched_utils.h + + +libpengine_la_LDFLAGS = -version-info 16:0:0 + +libpengine_la_CFLAGS = $(CFLAGS_HARDENED_LIB) +libpengine_la_LDFLAGS += $(LDFLAGS_HARDENED_LIB) + +libpengine_la_LIBADD = $(top_builddir)/lib/pengine/libpe_status.la \ + $(top_builddir)/lib/cib/libcib.la +# -L$(top_builddir)/lib/pils -lpils -export-dynamic -module -avoid-version +libpengine_la_SOURCES = sched_allocate.c \ + sched_bundle.c \ + sched_clone.c \ + sched_constraints.c \ + sched_graph.c \ + sched_group.c \ + sched_messages.c \ + sched_native.c \ + sched_notif.c \ + sched_promotable.c \ + sched_utilization.c \ + sched_utils.c + +pacemaker_schedulerd_CFLAGS = $(CFLAGS_HARDENED_EXE) +pacemaker_schedulerd_LDFLAGS = $(LDFLAGS_HARDENED_EXE) +pacemaker_schedulerd_LDADD = $(top_builddir)/lib/cib/libcib.la $(COMMONLIBS) +# libcib for get_object_root() +pacemaker_schedulerd_SOURCES = pacemaker-schedulerd.c + +install-exec-local: + $(mkinstalldirs) $(DESTDIR)/$(PE_STATE_DIR) + -chown $(CRM_DAEMON_USER) $(DESTDIR)/$(PE_STATE_DIR) + -chgrp $(CRM_DAEMON_GROUP) $(DESTDIR)/$(PE_STATE_DIR) + -chmod 750 $(DESTDIR)/$(PE_STATE_DIR) + +if BUILD_LEGACY_LINKS +install-exec-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && $(LN_S) pacemaker-schedulerd pengine + +uninstall-hook: + cd $(DESTDIR)$(CRM_DAEMON_DIR) && rm -f pengine +endif + +uninstall-local: + +CLEANFILES = $(man7_MANS) diff --git a/pengine/main.c b/daemons/schedulerd/pacemaker-schedulerd.c similarity index 93% rename from pengine/main.c rename to daemons/schedulerd/pacemaker-schedulerd.c index 6c6fbb4fb03..50b2f396224 100644 --- a/pengine/main.c +++ b/daemons/schedulerd/pacemaker-schedulerd.c @@ -150,9 +150,10 @@ main(int argc, char **argv) } crm_log_init(NULL, LOG_INFO, TRUE, FALSE, argc, argv, FALSE); - if (crm_is_writable(PE_STATE_DIR, NULL, CRM_DAEMON_USER, CRM_DAEMON_GROUP, FALSE) == FALSE) { - crm_err("Bad permissions on " PE_STATE_DIR ". Terminating"); - fprintf(stderr, "ERROR: Bad permissions on " PE_STATE_DIR ". See logs for details\n"); + if (pcmk__daemon_can_write(PE_STATE_DIR, NULL) == FALSE) { + crm_err("Terminating due to bad permissions on " PE_STATE_DIR); + fprintf(stderr, + "ERROR: Bad permissions on " PE_STATE_DIR " (see logs for details)\n"); fflush(stderr); return CRM_EX_FATAL; } diff --git a/pengine/pengine.h b/daemons/schedulerd/pacemaker-schedulerd.h similarity index 100% rename from pengine/pengine.h rename to daemons/schedulerd/pacemaker-schedulerd.h diff --git a/pengine/ptest.c b/daemons/schedulerd/ptest.c similarity index 98% rename from pengine/ptest.c rename to daemons/schedulerd/ptest.c index ee0fdecbed5..6f01c00673b 100644 --- a/pengine/ptest.c +++ b/daemons/schedulerd/ptest.c @@ -24,8 +24,8 @@ #include #include -#include -#include +#include +#include #include gboolean use_stdin = FALSE; @@ -115,7 +115,7 @@ static struct crm_option long_options[] = { {"show-utilization", 0, 0, 'U', "Display utilization information"}, {"all-actions", 0, 0, 'a', "Display all possible actions - even ones not part of the transition graph"}, - {"live-check", 0, 0, 'L', "Connect to the CIB and use the current contents as input"}, + {"live-check", 0, 0, 'L', "Connect to the CIB manager and use the current CIB contents as input"}, {"xml-text", 1, 0, 'X', "Retrieve XML from the supplied string"}, {"xml-file", 1, 0, 'x', "Retrieve XML from the named file"}, /* {"xml-pipe", 0, 0, 'p', "Retrieve XML from stdin\n"}, */ diff --git a/pengine/sample-status-input-1.xml b/daemons/schedulerd/sample-status-input-1.xml similarity index 100% rename from pengine/sample-status-input-1.xml rename to daemons/schedulerd/sample-status-input-1.xml diff --git a/pengine/sample-status-input-2.xml b/daemons/schedulerd/sample-status-input-2.xml similarity index 100% rename from pengine/sample-status-input-2.xml rename to daemons/schedulerd/sample-status-input-2.xml diff --git a/pengine/allocate.c b/daemons/schedulerd/sched_allocate.c similarity index 99% rename from pengine/allocate.c rename to daemons/schedulerd/sched_allocate.c index e007fdaa4e3..351b370fd54 100644 --- a/pengine/allocate.c +++ b/daemons/schedulerd/sched_allocate.c @@ -17,9 +17,9 @@ #include #include -#include -#include -#include +#include +#include +#include CRM_TRACE_INIT_DATA(pe_allocate); @@ -2369,7 +2369,7 @@ stage7(pe_working_set_t * data_set) int transition_id = -1; /* - * Create a dependency graph to send to the transitioner (via the CRMd) + * Create a dependency graph to send to the transitioner (via the controller) */ gboolean stage8(pe_working_set_t * data_set) diff --git a/pengine/allocate.h b/daemons/schedulerd/sched_allocate.h similarity index 90% rename from pengine/allocate.h rename to daemons/schedulerd/sched_allocate.h index a410f5c6a0d..8bd5a0e6274 100644 --- a/pengine/allocate.h +++ b/daemons/schedulerd/sched_allocate.h @@ -1,29 +1,19 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ -#ifndef CRM_PENGINE_COMPLEX_ALLOC__H -# define CRM_PENGINE_COMPLEX_ALLOC__H + +#ifndef SCHED_ALLOCATE__H +# define SCHED_ALLOCATE__H # include # include # include # include # include -# include +# include struct resource_alloc_functions_s { GHashTable *(*merge_weights) (resource_t *, const char *, GHashTable *, const char *, float, diff --git a/pengine/container.c b/daemons/schedulerd/sched_bundle.c similarity index 97% rename from pengine/container.c rename to daemons/schedulerd/sched_bundle.c index 7f0fc3dfee4..a5c08a02aaf 100644 --- a/pengine/container.c +++ b/daemons/schedulerd/sched_bundle.c @@ -1,27 +1,16 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include #include -#include -#include -#include +#include +#include +#include #define VARIANT_CONTAINER 1 #include @@ -308,7 +297,7 @@ container_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) if(tuple->child) { CRM_ASSERT(tuple->remote); - // Start of the remote then child is implicit in the PE's remote logic + // "Start remote then child" is implicit in scheduler's remote logic } } diff --git a/pengine/clone.c b/daemons/schedulerd/sched_clone.c similarity index 99% rename from pengine/clone.c rename to daemons/schedulerd/sched_clone.c index dd848c2f844..5688c95fa2a 100644 --- a/pengine/clone.c +++ b/daemons/schedulerd/sched_clone.c @@ -8,10 +8,9 @@ #include #include -#include -#include -#include -#include +#include +#include +#include #define VARIANT_CLONE 1 #include diff --git a/pengine/constraints.c b/daemons/schedulerd/sched_constraints.c similarity index 99% rename from pengine/constraints.c rename to daemons/schedulerd/sched_constraints.c index c68efe61126..e4bf61d9dcd 100644 --- a/pengine/constraints.c +++ b/daemons/schedulerd/sched_constraints.c @@ -19,9 +19,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include <../lib/pengine/unpack.h> @@ -1183,8 +1183,9 @@ sort_cons_priority_lh(gconstpointer a, gconstpointer b) return 1; } - /* @COMPAT PE <2.0.0: Process promotable clones before nonpromotable clones - * (probably unnecessary, but avoids having to update regression tests) + /* @COMPAT scheduler <2.0.0: Process promotable clones before nonpromotable + * clones (probably unnecessary, but avoids having to update regression + * tests) */ if (rsc_constraint1->rsc_lh->variant == pe_clone) { if (is_set(rsc_constraint1->rsc_lh->flags, pe_rsc_promotable) @@ -1230,8 +1231,9 @@ sort_cons_priority_rh(gconstpointer a, gconstpointer b) return 1; } - /* @COMPAT PE <2.0.0: Process promotable clones before nonpromotable clones - * (probably unnecessary, but avoids having to update regression tests) + /* @COMPAT scheduler <2.0.0: Process promotable clones before nonpromotable + * clones (probably unnecessary, but avoids having to update regression + * tests) */ if (rsc_constraint1->rsc_rh->variant == pe_clone) { if (is_set(rsc_constraint1->rsc_rh->flags, pe_rsc_promotable) @@ -1360,13 +1362,14 @@ new_rsc_order(resource_t * lh_rsc, const char *lh_task, CRM_CHECK(rh_rsc != NULL, return -1); CRM_CHECK(rh_task != NULL, return -1); - /* We no longer need to test if these reference stonith resources - * now that stonithd has access to them even when they're not "running" - * +#if 0 + /* We do not need to test if these reference stonith resources + * because the fencer has access to them even when they're not "running" + */ if (validate_order_resources(lh_rsc, lh_task, rh_rsc, rh_task)) { return -1; } - */ +#endif lh_key = generate_op_key(lh_rsc->id, lh_task, 0); rh_key = generate_op_key(rh_rsc->id, rh_task, 0); diff --git a/pengine/graph.c b/daemons/schedulerd/sched_graph.c similarity index 98% rename from pengine/graph.c rename to daemons/schedulerd/sched_graph.c index 0802bf38d9b..aabc7482727 100644 --- a/pengine/graph.c +++ b/daemons/schedulerd/sched_graph.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -26,8 +15,8 @@ #include -#include -#include +#include +#include void update_colo_start_chain(action_t * action); gboolean rsc_update_action(action_t * first, action_t * then, enum pe_ordering type); @@ -930,8 +919,8 @@ add_maintenance_update(pe_working_set_t *data_set) * \brief Add XML with nodes that an action is expected to bring down * * If a specified action is expected to bring any nodes down, add an XML block - * with their UUIDs. When a node is lost, this allows the crmd to determine - * whether it was expected. + * with their UUIDs. When a node is lost, this allows the controller to + * determine whether it was expected. * * \param[in,out] xml Parent XML tag to add to * \param[in] action Action to check for downed nodes @@ -1489,7 +1478,7 @@ check_dump_input(int last_action, action_t * action, action_wrapper_t * wrapper) if (action->rsc && safe_str_eq(action->task, RSC_MIGRATE)) { /* Remove the orders like the following if not relevant: * "load_stopped_node2" -> "rscA_migrate_to node1" - * which were created also from: pengine/native.c: MigrateRsc() + * which were created also from: sched_native.c: MigrateRsc() * order_actions(other, then, other_w->type); */ @@ -1665,7 +1654,7 @@ should_dump_input(int last_action, action_t * action, action_wrapper_t * wrapper if (graph_has_loop(action, action, wrapper)) { /* Remove the orders like the following if they are introducing any graph loops: * "load_stopped_node2" -> "rscA_migrate_to node1" - * which were created also from: pengine/native.c: MigrateRsc() + * which were created also from: sched_native.c: MigrateRsc() * order_actions(other, then, other_w->type); */ crm_debug("Breaking graph loop - load migrate: %s.%s -> %s.%s", diff --git a/pengine/group.c b/daemons/schedulerd/sched_group.c similarity index 99% rename from pengine/group.c rename to daemons/schedulerd/sched_group.c index 0bc47df6531..86959840246 100644 --- a/pengine/group.c +++ b/daemons/schedulerd/sched_group.c @@ -7,11 +7,11 @@ #include -#include +#include #include -#include -#include +#include +#include #define VARIANT_GROUP 1 #include diff --git a/pengine/pengine.c b/daemons/schedulerd/sched_messages.c similarity index 89% rename from pengine/pengine.c rename to daemons/schedulerd/sched_messages.c index 6c513e683fe..50ff55cc699 100644 --- a/pengine/pengine.c +++ b/daemons/schedulerd/sched_messages.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -29,9 +18,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include xmlNode *do_calculations(pe_working_set_t * data_set, xmlNode * xml_input, crm_time_t * now); @@ -200,8 +189,8 @@ process_pe_message(xmlNode * msg, xmlNode * xml_data, crm_client_t * sender) } if (crm_config_error) { - crm_notice("Configuration ERRORs found during PE processing." - " Please run \"crm_verify -L\" to identify issues."); + crm_notice("Configuration errors found during scheduler processing," + " please run \"crm_verify -L\" to identify issues"); } if (is_repoke == FALSE && series_wrap != 0) { diff --git a/pengine/native.c b/daemons/schedulerd/sched_native.c similarity index 99% rename from pengine/native.c rename to daemons/schedulerd/sched_native.c index bbb48eac15b..1315cb982b9 100644 --- a/pengine/native.c +++ b/daemons/schedulerd/sched_native.c @@ -7,15 +7,17 @@ #include -#include +#include #include #include -#include -#include -#include +#include +#include +#include #include -/* #define DELETE_THEN_REFRESH 1 // The crmd will remove the resource from the CIB itself, making this redundant */ +// The controller removes the resource from the CIB, making this redundant +// #define DELETE_THEN_REFRESH 1 + #define INFINITY_HACK (INFINITY * -100) #define VARIANT_NATIVE 1 diff --git a/pengine/notif.c b/daemons/schedulerd/sched_notif.c similarity index 99% rename from pengine/notif.c rename to daemons/schedulerd/sched_notif.c index bd39bf1f76d..959dcb63d7a 100644 --- a/pengine/notif.c +++ b/daemons/schedulerd/sched_notif.c @@ -7,9 +7,9 @@ #include #include -#include -#include -#include +#include +#include +#include typedef struct notify_entry_s { resource_t *rsc; diff --git a/pengine/notif.h b/daemons/schedulerd/sched_notif.h similarity index 100% rename from pengine/notif.h rename to daemons/schedulerd/sched_notif.h diff --git a/pengine/pe_promotable.c b/daemons/schedulerd/sched_promotable.c similarity index 97% rename from pengine/pe_promotable.c rename to daemons/schedulerd/sched_promotable.c index 1a89fd26736..533dd0c78a7 100644 --- a/pengine/pe_promotable.c +++ b/daemons/schedulerd/sched_promotable.c @@ -1,27 +1,16 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include #include -#include -#include -#include +#include +#include +#include #define VARIANT_CLONE 1 #include diff --git a/pengine/utilization.c b/daemons/schedulerd/sched_utilization.c similarity index 94% rename from pengine/utilization.c rename to daemons/schedulerd/sched_utilization.c index 05f8d78fe2e..f658d09f870 100644 --- a/pengine/utilization.c +++ b/daemons/schedulerd/sched_utilization.c @@ -1,25 +1,14 @@ /* - * Copyright (C) 2014 Gao,Yan + * Copyright 2014-2018 Gao,Yan * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include #include -#include -#include +#include +#include static GListPtr find_colocated_rscs(GListPtr colocated_rscs, resource_t * rsc, resource_t * orig_rsc); diff --git a/pengine/utils.c b/daemons/schedulerd/sched_utils.c similarity index 99% rename from pengine/utils.c rename to daemons/schedulerd/sched_utils.c index 8043d05d5b7..82059226833 100644 --- a/pengine/utils.c +++ b/daemons/schedulerd/sched_utils.c @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include void pe_free_ordering(GListPtr constraints) @@ -431,7 +431,7 @@ create_pseudo_resource_op(resource_t * rsc, const char *task, bool optional, boo /*! * \internal - * \brief Create a LRMD cancel op + * \brief Create an executor cancel op * * \param[in] rsc Resource of action to cancel * \param[in] task Name of action to cancel diff --git a/pengine/utils.h b/daemons/schedulerd/sched_utils.h similarity index 100% rename from pengine/utils.h rename to daemons/schedulerd/sched_utils.h diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Stonith.txt b/doc/Clusters_from_Scratch/en-US/Ch-Stonith.txt index 3597cc4ffb1..baaebeff52d 100644 --- a/doc/Clusters_from_Scratch/en-US/Ch-Stonith.txt +++ b/doc/Clusters_from_Scratch/en-US/Ch-Stonith.txt @@ -55,15 +55,15 @@ Any flags that do not take arguments, such as +--ssl+, should be passed as +ssl= . If the device does not know how to fence nodes based on their uname, you may also need to set the special *pcmk_host_map* parameter. See - `man stonithd` for details. + `man pacemaker-fenced` for details. . If the device does not support the *list* command, you may also need to set the special *pcmk_host_list* and/or *pcmk_host_check* - parameters. See `man stonithd` for details. + parameters. See `man pacemaker-fenced` for details. . If the device does not expect the victim to be specified with the *port* parameter, you may also need to set the special - *pcmk_host_argument* parameter. See `man stonithd` for details. + *pcmk_host_argument* parameter. See `man pacemaker-fenced` for details. . Commit the new configuration: `pcs cluster cib-push stonith_cfg` @@ -123,7 +123,7 @@ Stonith options: none (assume every device can fence every machine) pcmk_delay_max: Enable random delay for stonith actions and specify the maximum of random delay This prevents double fencing when using slow devices such as sbd. Use this to enable random delay for stonith actions and specify the maximum of random delay. - pcmk_action_limit: The maximum number of actions can be performed in parallel on this device Pengine property concurrent-fencing=true needs to be configured first. Then use this + pcmk_action_limit: The maximum number of actions can be performed in parallel on this device Cluster property concurrent-fencing=true needs to be configured first. Then use this to specify the maximum number of actions can be performed in parallel on this device. -1 is unlimited. Default operations: diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Verification.txt b/doc/Clusters_from_Scratch/en-US/Ch-Verification.txt index 784a3b27234..b13f2287546 100644 --- a/doc/Clusters_from_Scratch/en-US/Ch-Verification.txt +++ b/doc/Clusters_from_Scratch/en-US/Ch-Verification.txt @@ -100,12 +100,12 @@ the necessary processes are running: ...lots of processes... 1362 ? Ssl 0:35 corosync 1379 ? Ss 0:00 /usr/sbin/pacemakerd -f - 1380 ? Ss 0:00 \_ /usr/libexec/pacemaker/cib - 1381 ? Ss 0:00 \_ /usr/libexec/pacemaker/stonithd - 1382 ? Ss 0:00 \_ /usr/libexec/pacemaker/lrmd - 1383 ? Ss 0:00 \_ /usr/libexec/pacemaker/attrd - 1384 ? Ss 0:00 \_ /usr/libexec/pacemaker/pengine - 1385 ? Ss 0:00 \_ /usr/libexec/pacemaker/crmd + 1380 ? Ss 0:00 \_ /usr/libexec/pacemaker/pacemaker-based + 1381 ? Ss 0:00 \_ /usr/libexec/pacemaker/pacemaker-fenced + 1382 ? Ss 0:00 \_ /usr/libexec/pacemaker/pacemaker-execd + 1383 ? Ss 0:00 \_ /usr/libexec/pacemaker/pacemaker-attrd + 1384 ? Ss 0:00 \_ /usr/libexec/pacemaker/pacemaker-schedulerd + 1385 ? Ss 0:00 \_ /usr/libexec/pacemaker/pacemaker-controld ---- If that looks OK, check the `pcs status` output: diff --git a/doc/Pacemaker_Development/en-US/Ch-FAQ.txt b/doc/Pacemaker_Development/en-US/Ch-FAQ.txt index 10be0e0fe32..065ba04d943 100644 --- a/doc/Pacemaker_Development/en-US/Ch-FAQ.txt +++ b/doc/Pacemaker_Development/en-US/Ch-FAQ.txt @@ -59,12 +59,13 @@ How should I format my Git commit messages?:: to indicate the severity. The important thing is that only commits with +Feature+, +Fix+, +Bug+, or +High+ will automatically be included in the change log for the next release. The +affected-code+ is the name of the - component(s) being changed, for example, +crmd+ or +libcrmcommon+ (it's more - free-form, so don't sweat getting it exact). The +explanation+ briefly - describes the change. The git project recommends the entire summary line stay - under 50 characters, but more is fine if needed for clarity. Except for the - most simple and obvious of changes, the summary should be followed by a blank - line and then a longer explanation of 'why' the change was made. + component(s) being changed, for example, +pacemaker-controld+ or + +libcrmcommon+ (it's more free-form, so don't sweat getting it exact). The + +explanation+ briefly describes the change. The git project recommends the + entire summary line stay under 50 characters, but more is fine if needed for + clarity. Except for the most simple and obvious of changes, the summary should + be followed by a blank line and then a longer explanation of 'why' the change + was made. How can I test my changes?:: Most importantly, Pacemaker has regression tests for most major components; diff --git a/doc/Pacemaker_Explained/en-US/Ch-Advanced-Options.txt b/doc/Pacemaker_Explained/en-US/Ch-Advanced-Options.txt index a1b5debbae2..fbd992267d8 100644 --- a/doc/Pacemaker_Explained/en-US/Ch-Advanced-Options.txt +++ b/doc/Pacemaker_Explained/en-US/Ch-Advanced-Options.txt @@ -512,9 +512,9 @@ restarted rather than migrated. For example, if the resource depends on a clone, and at the time the resource needs to be moved, the clone has instances that are stopping and instances -that are starting, then the resource will be restarted. -The Policy Engine is not yet able to model this -situation correctly and so takes the safer (if less optimal) path. +that are starting, then the resource will be restarted. The scheduler is not +yet able to model this situation correctly and so takes the safer (if less +optimal) path. Also, if a migratable resource depends on a non-migratable resource, and both need to be moved, the migratable resource will be restarted. diff --git a/doc/Pacemaker_Explained/en-US/Ch-Advanced-Resources.txt b/doc/Pacemaker_Explained/en-US/Ch-Advanced-Resources.txt index 9fda599e54e..096e9c10e3f 100644 --- a/doc/Pacemaker_Explained/en-US/Ch-Advanced-Resources.txt +++ b/doc/Pacemaker_Explained/en-US/Ch-Advanced-Resources.txt @@ -1067,10 +1067,12 @@ installed on every node allowed to run the bundle. indexterm:[Docker,Property,network] |run-command -|`/usr/sbin/pacemaker_remoted` if bundle contains a +primitive+, otherwise none +|`/usr/sbin/pacemaker-remoted` if bundle contains a +primitive+, otherwise none |This command will be run inside the container when launching it ("PID 1"). If - the bundle contains a +primitive+, this command 'must' start pacemaker_remoted - (but could, for example, be a script that does other stuff, too). + the bundle contains a +primitive+, this command 'must' start pacemaker-remoted + (but could, for example, be a script that does other stuff, too). If the + container image has a pre-2.0.0 version of Pacemaker, set this to + +/usr/sbin/pacemaker_remoted+ (note the underbar instead of dash). indexterm:[run-command,Docker] indexterm:[Docker,Property,run-command] @@ -1139,10 +1141,12 @@ installed on every node allowed to run the bundle. indexterm:[rkt,Property,network] |run-command -|`/usr/sbin/pacemaker_remoted` if bundle contains a +primitive+, otherwise none +|`/usr/sbin/pacemaker-remoted` if bundle contains a +primitive+, otherwise none |This command will be run inside the container when launching it ("PID 1"). If - the bundle contains a +primitive+, this command 'must' start pacemaker_remoted - (but could, for example, be a script that does other stuff, too). + the bundle contains a +primitive+, this command 'must' start pacemaker-remoted + (but could, for example, be a script that does other stuff, too). If the + container image has a pre-2.0.0 version of Pacemaker, set this to + +/usr/sbin/pacemaker_remoted+ (note the underbar instead of dash). indexterm:[run-command,rkt] indexterm:[rkt,Property,run-command] diff --git a/doc/Pacemaker_Explained/en-US/Ch-Options.txt b/doc/Pacemaker_Explained/en-US/Ch-Options.txt index 6438f9e164b..e2431181b0b 100644 --- a/doc/Pacemaker_Explained/en-US/Ch-Options.txt +++ b/doc/Pacemaker_Explained/en-US/Ch-Options.txt @@ -38,7 +38,7 @@ The empty configuration above contains the major sections that make up a CIB: ** +status+: This section contains the history of each resource on each node. Based on this data, the cluster can construct the complete current state of the cluster. The authoritative source for this section - is the local resource manager (lrmd process) on each cluster node, and + is the local executor (pacemaker-execd process) on each cluster node, and the cluster will occasionally repopulate the entire section. For this reason, it is never written to disk, and administrators are advised against modifying it in any way. @@ -137,7 +137,8 @@ different sets of options during working hours than during weekends.) For now, we will describe the simple case where each option is present at most once. You can obtain an up-to-date list of cluster options, including -their default values, by running the `man pengine` and `man crmd` commands. +their default values, by running the `man pacemaker-schedulerd` and +`man pacemaker-controld` commands. .Cluster Options [width="95%",cols="5m,2,11 /dev/null 2>&1 + (pacemaker-remoted &) & > /dev/null 2>&1 sleep 5 - pid=$(pidof pacemaker_remoted) + pid=$(pidof pacemaker-remoted) if [ "$?" -ne 0 ]; then echo "startup of pacemaker failed" exit 1 fi - echo "$pid" > /var/run/pacemaker_remoted.pid + echo "$pid" > /var/run/pacemaker-remoted.pid fi exit 0 diff --git a/extra/ansible/docker/roles/docker-host/files/pcmk_remote_stop b/extra/ansible/docker/roles/docker-host/files/pcmk_remote_stop index 074cd598aac..9424cb0d80a 100644 --- a/extra/ansible/docker/roles/docker-host/files/pcmk_remote_stop +++ b/extra/ansible/docker/roles/docker-host/files/pcmk_remote_stop @@ -29,8 +29,10 @@ stop() rm -f /var/lock/subsystem/pacemaker rm -f /var/run/${prog}.pid - killall -q -9 'crmd stonithd attrd cib lrmd pacemakerd pacemaker_remoted' + killall -q -9 pacemakerd pacemaker-attrd pacemaker-based \ + pacemaker-controld pacemaker-execd pacemaker-fenced \ + pacemaker-schedulerd pacemaker-remoted } -stop "pacemaker_remoted" +stop "pacemaker-remoted" exit 0 diff --git a/extra/ansible/docker/roles/docker-host/files/pcmk_stop b/extra/ansible/docker/roles/docker-host/files/pcmk_stop index a8f395ad470..845c166f6f5 100644 --- a/extra/ansible/docker/roles/docker-host/files/pcmk_stop +++ b/extra/ansible/docker/roles/docker-host/files/pcmk_stop @@ -17,7 +17,7 @@ stop() shutdown_prog=$prog if ! status $prog > /dev/null 2>&1; then - shutdown_prog="crmd" + shutdown_prog="pacemaker-controld" fi cname=$(crm_node --name) @@ -36,7 +36,9 @@ stop() rm -f /var/lock/subsystem/pacemaker rm -f /var/run/${prog}.pid - killall -q -9 'crmd stonithd attrd cib lrmd pacemakerd pacemaker_remoted' + killall -q -9 pacemakerd pacemaker-attrd pacemaker-based \ + pacemaker-controld pacemaker-execd pacemaker-fenced \ + pacemaker-schedulerd pacemaker-remoted } stop "pacemakerd" diff --git a/extra/cluster-clean b/extra/cluster-clean index 7294eac7539..ac402ddfdcd 100755 --- a/extra/cluster-clean +++ b/extra/cluster-clean @@ -1,4 +1,10 @@ #!/bin/bash +# +# Copyright 2011-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# hosts= group= @@ -41,7 +47,7 @@ if [ $kill != 0 ]; then cluster-helper $target -- "service corosync stop" &> /dev/null & cluster-helper $target -- "service pacemaker stop" &> /dev/null & - cluster-helper $target -- "killall -q -9 corosync pacemakerd pacemaker_remoted stonithd lrmd crmd pengine attrd cib dlm_controld gfs_controld" &> /dev/null + cluster-helper $target -- "killall -q -9 corosync pacemakerd pacemaker-attrd pacemaker-based pacemaker-controld pacemaker-execd pacemaker-fenced pacemaker-remoted pacemaker-schedulerd dlm_controld gfs_controld" &> /dev/null cluster-helper $target -- 'kill -9 `pidof valgrind`' &> /dev/null if [ $kill == 2 ]; then diff --git a/extra/resources/Dummy b/extra/resources/Dummy index f3a34377b01..722b9108cd7 100755 --- a/extra/resources/Dummy +++ b/extra/resources/Dummy @@ -1,30 +1,13 @@ #!/bin/sh # -# # Dummy OCF RA. Does nothing but wait a few seconds, can be # configured to fail occassionally. # -# Copyright (c) 2004 SUSE LINUX AG, Lars Marowsky-Brée -# All Rights Reserved. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of version 2 of the GNU General Public License as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it would be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# -# Further, this software is distributed without any warranty that it is -# free of the rightful claim of any third person regarding infringement -# or the like. Any license provided herein, whether implied or -# otherwise, applies only to this software file. Patent licenses, if -# any, provided herein do not apply to combinations of this program with -# other software, or any other product whatsoever. +# Copyright 2004-2018 SUSE LINUX AG, Lars Marowsky-Brée +# All Rights Reserved. # -# You should have received a copy of the GNU General Public License -# along with this program; if not, write the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. +# This source code is licensed under the GNU General Public License version 2 +# (GPLv2) WITHOUT ANY WARRANTY. # ####################################################################### @@ -127,7 +110,7 @@ END ####################################################################### -# don't exit on TERM, to test that lrmd makes sure that we do exit +# don't exit on TERM, to test that pacemaker-execd makes sure that we do exit trap sigterm_handler TERM sigterm_handler() { ocf_log info "They use TERM to bring us down. No such luck." @@ -188,7 +171,7 @@ dummy_monitor() { if [ $OCF_RESKEY_op_sleep -ne 0 ]; then if [ "$1" = "" -a -f "${VERIFY_SERIALIZED_FILE}" ]; then # two monitor ops have occurred at the same time. - # this is to verify a condition in the lrmd regression tests. + # This verifies a condition in pacemaker-execd regression tests. ocf_log err "$VERIFY_SERIALIZED_FILE exists already" return $OCF_ERR_GENERIC fi diff --git a/extra/resources/remote b/extra/resources/remote index afd8c79973b..ce10f89f896 100755 --- a/extra/resources/remote +++ b/extra/resources/remote @@ -1,33 +1,17 @@ #!/bin/sh # +# ocf:pacmaker:remote OCF resource agent # -# remote OCF RA. This script provides metadata for the internal -# pacemaker remote lrmd connection agent. Outside of acting -# as a place holder so the remote ra script can be indexed and -# providing metadata, this script should never be invoked. The -# actual functionality behind the remote lrmd connection lives -# within pacemaker's crmd component. +# This script provides metadata for Pacemaker's internal remote agent. +# Outside of acting as a placeholder so the agent can be indexed, and +# providing metadata, this script should never be invoked. The actual +# functionality behind the remote connection lives within Pacemaker's +# controller daemon. # -# Copyright (c) 2013 David Vossel +# Copyright 2013-2018 David Vossel # -# This program is free software; you can redistribute it and/or modify -# it under the terms of version 2 of the GNU General Public License as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it would be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# -# Further, this software is distributed without any warranty that it is -# free of the rightful claim of any third person regarding infringement -# or the like. Any license provided herein, whether implied or -# otherwise, applies only to this software file. Patent licenses, if -# any, provided herein do not apply to combinations of this program with -# other software, or any other product whatsoever. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. +# This source code is licensed under the GNU General Public License version 2 +# (GPLv2) WITHOUT ANY WARRANTY. # ####################################################################### diff --git a/fencing/Makefile.am b/fencing/Makefile.am deleted file mode 100644 index 2f799ac44ee..00000000000 --- a/fencing/Makefile.am +++ /dev/null @@ -1,62 +0,0 @@ -# Author: Sun Jiang Dong -# Copyright (c) 2004 International Business Machines -# -# This program 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. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -include $(top_srcdir)/Makefile.common - -## binary progs -halibdir = $(CRM_DAEMON_DIR) -halib_PROGRAMS = stonithd stonith-test - -sbin_PROGRAMS = stonith_admin -sbin_SCRIPTS = fence_legacy - -noinst_HEADERS = internal.h - -if BUILD_XML_HELP -man7_MANS = stonithd.7 -endif - -stonith_test_SOURCES = test.c - -stonith_test_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/fencing/libstonithd.la - -stonith_admin_SOURCES = admin.c - -stonith_admin_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/cib/libcib.la \ - $(top_builddir)/lib/pengine/libpe_status.la \ - $(top_builddir)/lib/cluster/libcrmcluster.la \ - $(top_builddir)/lib/fencing/libstonithd.la \ - $(CLUSTERLIBS) - -stonithd_CPPFLAGS = -I$(top_srcdir)/pengine $(AM_CPPFLAGS) -stonithd_YFLAGS = -d - -stonithd_CFLAGS = $(CFLAGS_HARDENED_EXE) -stonithd_LDFLAGS = $(LDFLAGS_HARDENED_EXE) - -stonithd_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/cluster/libcrmcluster.la \ - $(top_builddir)/lib/fencing/libstonithd.la \ - $(top_builddir)/lib/pengine/libpe_status.la \ - $(top_builddir)/pengine/libpengine.la \ - $(CLUSTERLIBS) - -stonithd_SOURCES = main.c commands.c remote.c - -CLEANFILES = $(man7_MANS) $(man8_MANS) diff --git a/include/crm/cluster/internal.h b/include/crm/cluster/internal.h index 7fe8984fc16..22e13d2f37e 100644 --- a/include/crm/cluster/internal.h +++ b/include/crm/cluster/internal.h @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #ifndef CRM_CLUSTER_INTERNAL__H @@ -51,21 +40,18 @@ struct crm_ais_msg_s { /* *INDENT-OFF* */ enum crm_proc_flag { - crm_proc_none = 0x00000001, + crm_proc_none = 0x00000001, // Cluster layers - crm_proc_cpg = 0x04000000, - - crm_proc_lrmd = 0x00000010, - crm_proc_cib = 0x00000100, - crm_proc_crmd = 0x00000200, - crm_proc_attrd = 0x00001000, - - crm_proc_stonithd = 0x00002000, - crm_proc_stonith_ng= 0x00100000, - - crm_proc_pe = 0x00010000, - crm_proc_te = 0x00020000, + crm_proc_cpg = 0x04000000, + + // Daemons + crm_proc_execd = 0x00000010, + crm_proc_based = 0x00000100, + crm_proc_controld = 0x00000200, + crm_proc_attrd = 0x00001000, + crm_proc_schedulerd = 0x00010000, + crm_proc_fenced = 0x00100000, }; /* *INDENT-ON* */ @@ -93,7 +79,7 @@ peer2text(enum crm_proc_flag proc) { const char *text = "unknown"; - if (proc == (crm_proc_crmd | crm_get_cluster_proc())) { + if (proc == (crm_proc_controld | crm_get_cluster_proc())) { return "peer"; } @@ -101,29 +87,23 @@ peer2text(enum crm_proc_flag proc) case crm_proc_none: text = "none"; break; - case crm_proc_cib: - text = "cib"; - break; - case crm_proc_crmd: - text = "crmd"; + case crm_proc_based: + text = "pacemaker-based"; break; - case crm_proc_pe: - text = "pengine"; + case crm_proc_controld: + text = "pacemaker-controld"; break; - case crm_proc_te: - text = "tengine"; + case crm_proc_schedulerd: + text = "pacemaker-schedulerd"; break; - case crm_proc_lrmd: - text = "lrmd"; + case crm_proc_execd: + text = "pacemaker-execd"; break; case crm_proc_attrd: - text = "attrd"; + text = "pacemaker-attrd"; break; - case crm_proc_stonithd: - text = "stonithd"; - break; - case crm_proc_stonith_ng: - text = "stonith-ng"; + case crm_proc_fenced: + text = "pacemaker-fenced"; break; case crm_proc_cpg: text = "corosync-cpg"; @@ -137,10 +117,11 @@ text2proc(const char *proc) { /* We only care about these two so far */ - if (proc && strcmp(proc, "cib") == 0) { - return crm_proc_cib; - } else if (proc && strcmp(proc, "crmd") == 0) { - return crm_proc_crmd; + if (proc && strcmp(proc, "pacemaker-based") == 0) { + return crm_proc_based; + + } else if (proc && strcmp(proc, "pacemaker-controld") == 0) { + return crm_proc_controld; } return crm_proc_none; diff --git a/include/crm/common/internal.h b/include/crm/common/internal.h index 4aa0c49c631..d33f041a5da 100644 --- a/include/crm/common/internal.h +++ b/include/crm/common/internal.h @@ -23,9 +23,7 @@ int get_last_sequence(const char *directory, const char *series); void write_last_sequence(const char *directory, const char *series, int sequence, int max); int crm_chown_last_sequence(const char *directory, const char *series, uid_t uid, gid_t gid); -gboolean crm_is_writable(const char *dir, const char *file, const char *user, const char *group, - gboolean need_both); - +bool pcmk__daemon_can_write(const char *dir, const char *file); void crm_sync_directory(const char *name); char *crm_read_contents(const char *filename); diff --git a/include/crm/common/ipc.h b/include/crm/common/ipc.h index 71fb8478791..1270cbeeb4f 100644 --- a/include/crm/common/ipc.h +++ b/include/crm/common/ipc.h @@ -1,20 +1,10 @@ /* - * Copyright (C) 2013 Andrew Beekhof + * Copyright 2013-2018 Andrew Beekhof * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ + #ifndef CRM_COMMON_IPC__H # define CRM_COMMON_IPC__H @@ -28,7 +18,9 @@ extern "C" { * \ingroup core */ -# include +#include +#include +#include /* clplumbing based IPC */ @@ -61,13 +53,13 @@ enum crm_ipc_flags }; /* *INDENT-ON* */ -# include typedef struct crm_ipc_s crm_ipc_t; crm_ipc_t *crm_ipc_new(const char *name, size_t max_size); bool crm_ipc_connect(crm_ipc_t * client); void crm_ipc_close(crm_ipc_t * client); void crm_ipc_destroy(crm_ipc_t * client); +void pcmk_free_ipc_event(struct iovec *event); int crm_ipc_send(crm_ipc_t * client, xmlNode * message, enum crm_ipc_flags flags, int32_t ms_timeout, xmlNode ** reply); diff --git a/include/crm/lrmd.h b/include/crm/lrmd.h index 3b35ff87c46..65ec1937f83 100644 --- a/include/crm/lrmd.h +++ b/include/crm/lrmd.h @@ -1,20 +1,8 @@ /* - * Copyright (c) 2012 David Vossel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2012-2018 David Vossel * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #ifndef LRMD__H @@ -26,7 +14,7 @@ extern "C" { /** * \file - * \brief Local Resource Manager + * \brief Resource agent executor * \ingroup lrmd */ #include @@ -137,12 +125,12 @@ typedef struct lrmd_key_value_s { /* *INDENT-ON* */ /*! - * \brief Create a new local lrmd connection + * \brief Create a new connection to the local executor */ lrmd_t *lrmd_api_new(void); /*! - * \brief Create a new remote lrmd connection using tls backend + * \brief Create a new TLS connection to a remote executor * * \param nodename name of remote node identified with this connection * \param server name of server to connect to @@ -155,7 +143,7 @@ lrmd_t *lrmd_remote_api_new(const char *nodename, const char *server, int port); /*! * \brief Use after lrmd_poll returns 1 to read and dispatch a message * - * \param[in,out] lrmd lrmd connection object + * \param[in,out] lrmd Executor connection object * * \return TRUE if connection is still up, FALSE if disconnected */ @@ -171,7 +159,7 @@ bool lrmd_dispatch(lrmd_t * lrmd); int lrmd_poll(lrmd_t * lrmd, int timeout); /*! - * \brief Destroy lrmd object + * \brief Destroy executor connection object */ void lrmd_api_delete(lrmd_t * lrmd); lrmd_key_value_t *lrmd_key_value_add(lrmd_key_value_t * kvp, const char *key, const char *value); @@ -228,7 +216,7 @@ typedef struct lrmd_event_data_s { /*! The executed ra return code mapped to OCF */ enum ocf_exitcode rc; - /*! The lrmd status returned for exec_complete events */ + /*! The executor status returned for exec_complete events */ int op_status; /*! stdout from resource agent operation */ const char *output; @@ -292,7 +280,7 @@ void lrmd_key_value_freeall(lrmd_key_value_t * head); typedef struct lrmd_api_operations_s { /*! - * \brief Connect from the lrmd. + * \brief Connect to an executor * * \retval 0, success * \retval negative error code on failure @@ -300,7 +288,7 @@ typedef struct lrmd_api_operations_s { int (*connect) (lrmd_t * lrmd, const char *client_name, int *fd); /*! - * \brief Establish an connection to lrmd, don't block while connecting. + * \brief Initiate an executor connection without blocking * \note this function requires the use of mainloop. * * \note The is returned using the event callback. @@ -320,7 +308,7 @@ typedef struct lrmd_api_operations_s { int (*is_connected) (lrmd_t * lrmd); /*! - * \brief Poke lrmd connection to verify it is still capable of serving requests + * \brief Poke executor connection to verify it is still capable of serving requests * \note The response comes in the form of a poke event to the callback. * * \retval 0, wait for response in callback @@ -329,7 +317,7 @@ typedef struct lrmd_api_operations_s { int (*poke_connection) (lrmd_t * lrmd); /*! - * \brief Disconnect from the lrmd. + * \brief Disconnect from the executor. * * \retval 0, success * \retval negative error code on failure @@ -337,7 +325,7 @@ typedef struct lrmd_api_operations_s { int (*disconnect) (lrmd_t * lrmd); /*! - * \brief Register a resource with the lrmd. + * \brief Register a resource with the executor. * * \note Synchronous, guaranteed to occur in daemon before function returns. * @@ -367,7 +355,7 @@ typedef struct lrmd_api_operations_s { enum lrmd_call_options options, GList **output); /*! - * \brief Unregister a resource from the lrmd. + * \brief Unregister a resource from the executor. * * \note All pending and recurring operations will be cancelled * automatically. @@ -383,7 +371,7 @@ typedef struct lrmd_api_operations_s { int (*unregister_rsc) (lrmd_t * lrmd, const char *rsc_id, enum lrmd_call_options options); /*! - * \brief Sets the callback to receive lrmd events on. + * \brief Set a callback for executor events */ void (*set_callback) (lrmd_t * lrmd, lrmd_event_callback callback); @@ -421,7 +409,7 @@ typedef struct lrmd_api_operations_s { * \note For each resource, cancel operations and exec operations * are processed in the order they are received. * It is safe to assume that for a single resource, a cancel - * will occur in the lrmd before an exec if the client's cancel + * will occur in the executor before an exec if the client's cancel * api call occurs before the exec api call. * * It is not however safe to assume any operation on one resource will @@ -437,22 +425,22 @@ typedef struct lrmd_api_operations_s { /*! * \brief Get resource metadata for a specified resource agent * - * \param[in] lrmd LRMD connection (unused) + * \param[in] lrmd Executor connection (unused) * \param[in] class Resource agent class * \param[in] provider Resource agent provider * \param[in] agent Resource agent type * \param[out] output Metadata will be stored here (must not be NULL) - * \param[in] options Options to use with any LRMD API calls (unused) + * \param[in] options Options to use with any executor API calls (unused) * * \note Caller is responsible for freeing output. This call is currently * always synchronous (blocking), and always done directly by the - * library (not via the LRMD connection). This means that it is based - * on the local host environment, even if the lrmd connection is to a + * library (not via the executor connection). This means that it is based + * on the local host environment, even if the executor connection is to a * remote node, so (for most resource agent classes) this will fail if * the agent is not installed locally. This also means that, if an * external agent must be executed, it will be executed by the - * caller's user, not the lrmd's. - * \todo Add a metadata call to the LRMD API and let the server handle this. + * caller's user, not the executor's. + * \todo Add a metadata call to the executor API and let the server handle this. * * \retval lrmd_ok success * \retval negative error code on failure diff --git a/include/crm/msg_xml.h b/include/crm/msg_xml.h index aec4ae661c7..6cae1004ac7 100644 --- a/include/crm/msg_xml.h +++ b/include/crm/msg_xml.h @@ -1,20 +1,10 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ + #ifndef XML_TAGS__H # define XML_TAGS__H @@ -249,8 +239,9 @@ extern "C" { # define XML_CIB_ATTR_SHUTDOWN "shutdown" -/* LRM is a bit of a misnomer here; the crmd and pengine use these to track - * actions, which usually but not always are LRM operations +/* Aside from being an old name for the executor, LRM is a misnomer here because + * the controller and scheduler use these to track actions, which are not always + * executor operations. */ // XML attribute that takes interval specification (user-facing configuration) @@ -264,9 +255,9 @@ extern "C" { # define XML_LRM_ATTR_TASK_KEY "operation_key" # define XML_LRM_ATTR_TARGET "on_node" # define XML_LRM_ATTR_TARGET_UUID "on_node_uuid" -/*! Actions to be executed on Pacemaker Remote nodes are routed through - * crmd on the cluster node hosting the remote connection. That cluster node - * is considered the router node for the action. +/*! Actions to be executed on Pacemaker Remote nodes are routed through the + * controller on the cluster node hosting the remote connection. That cluster + * node is considered the router node for the action. */ # define XML_LRM_ATTR_ROUTER_NODE "router_node" # define XML_LRM_ATTR_RSCID "rsc-id" diff --git a/include/crm/stonith-ng.h b/include/crm/stonith-ng.h index 0dade59d70d..4ec1de987eb 100644 --- a/include/crm/stonith-ng.h +++ b/include/crm/stonith-ng.h @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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 Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #ifdef __cplusplus @@ -321,8 +310,8 @@ typedef struct stonith_api_operations_s /*! * \brief Remove fencing level for specific node, node regex or attribute * - * \param[in] st Stonithd connection to use - * \param[in] options Bitmask of stonith_call_options to pass to stonithd + * \param[in] st Fencer connection to use + * \param[in] options Bitmask of stonith_call_options to pass to the fencer * \param[in] node If not NULL, target level by this node name * \param[in] pattern If not NULL, target by node name using this regex * \param[in] attr If not NULL, target by this node attribute @@ -341,8 +330,8 @@ typedef struct stonith_api_operations_s /*! * \brief Register fencing level for specific node, node regex or attribute * - * \param[in] st Stonithd connection to use - * \param[in] options Bitmask of stonith_call_options to pass to stonithd + * \param[in] st Fencer connection to use + * \param[in] options Bitmask of stonith_call_options to pass to fencer * \param[in] node If not NULL, target level by this node name * \param[in] pattern If not NULL, target by node name using this regex * \param[in] attr If not NULL, target by this node attribute diff --git a/include/crm_config.h.in b/include/crm_config.h.in index 8a37decd860..fbea4255525 100644 --- a/include/crm_config.h.in +++ b/include/crm_config.h.in @@ -52,7 +52,7 @@ /* Where to keep configuration files */ #undef CRM_CONFIG_DIR -/* Where to keep PEngine outputs */ +/* Where to keep scheduler outputs */ #undef PE_STATE_DIR /* Location to store core files produced by Pacemaker daemons */ diff --git a/include/doxygen.h b/include/doxygen.h index d7f90a672cc..7293f8524c0 100644 --- a/include/doxygen.h +++ b/include/doxygen.h @@ -1,22 +1,8 @@ -/* doxygen.h */ - /* - * Copyright (C) 2006 - 2012 - * Andrew Beekhof - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 Lesser General Public License for more details. + * Copyright 2006-2018 Andrew Beekhof * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #ifndef DOXYGEN__H @@ -34,8 +20,8 @@ * \defgroup core Core API * \defgroup date ISO-8601 Date/Time API * \defgroup cib Configuration API - * \defgroup lrmd Local Resource Manager API - * \defgroup pengine Policy Engine API + * \defgroup lrmd Executor API + * \defgroup pengine Scheduler API * \defgroup fencing Fencing API */ diff --git a/lib/cib/cib_file.c b/lib/cib/cib_file.c index 582d16735d4..2816e5b5cd0 100644 --- a/lib/cib/cib_file.c +++ b/lib/cib/cib_file.c @@ -665,7 +665,7 @@ cib_file_write_live(char *path) * \param[in] cib CIB object to sign off * * \return pcmk_ok on success, pcmk_err_generic on failure - * \todo This method should refuse to write the live CIB if the CIB daemon is + * \todo This method should refuse to write the live CIB if the CIB manager is * running. */ int @@ -674,7 +674,7 @@ cib_file_signoff(cib_t * cib) int rc = pcmk_ok; cib_file_opaque_t *private = cib->variant_opaque; - crm_debug("Signing out of the CIB Service"); + crm_debug("Disconnecting from the CIB manager"); cib->state = cib_disconnected; cib->type = cib_no_connection; diff --git a/lib/cib/cib_native.c b/lib/cib/cib_native.c index 0fc48a701a7..8e0ecadbadd 100644 --- a/lib/cib/cib_native.c +++ b/lib/cib/cib_native.c @@ -1,21 +1,18 @@ /* - * Copyright (c) 2004 International Business Machines - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2004 International Business Machines * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ + +#include + +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif + +#include +#include #include #include #include @@ -107,7 +104,7 @@ cib_native_dispatch_internal(const char *buffer, ssize_t length, gpointer userda msg = string2xml(buffer); if (msg == NULL) { - crm_warn("Received a NULL msg from CIB service."); + crm_warn("Received a NULL message from the CIB manager"); return 0; } @@ -266,11 +263,11 @@ cib_native_signon_raw(cib_t * cib, const char *name, enum cib_conn_type type, in } if (rc == pcmk_ok) { - crm_debug("Connection to CIB successful"); + crm_debug("Connection to CIB manager successful"); return pcmk_ok; } - crm_debug("Connection to CIB failed: %s", pcmk_strerror(rc)); + crm_debug("Connection to CIB manager failed: %s", pcmk_strerror(rc)); cib_native_signoff(cib); return rc; } @@ -280,7 +277,7 @@ cib_native_signoff(cib_t * cib) { cib_native_opaque_t *native = cib->variant_opaque; - crm_debug("Signing out of the CIB Service"); + crm_debug("Disconnecting from the CIB manager"); if (native->source != NULL) { /* Attached to mainloop */ @@ -381,7 +378,7 @@ cib_native_perform_op_delegate(cib_t * cib, const char *op, const char *host, co return -EPROTO; } - crm_trace("Sending %s message to CIB service (timeout=%ds)", op, cib->call_timeout); + crm_trace("Sending %s message to the CIB manager (timeout=%ds)", op, cib->call_timeout); rc = crm_ipc_send(native->ipc, op_msg, ipc_flags, cib->call_timeout * 1000, &op_reply); free_xml(op_msg); @@ -465,7 +462,7 @@ cib_native_perform_op_delegate(cib_t * cib, const char *op, const char *host, co done: if (crm_ipc_connected(native->ipc) == FALSE) { - crm_err("CIB disconnected"); + crm_err("The CIB manager disconnected"); cib->state = cib_disconnected; } diff --git a/lib/cib/cib_remote.c b/lib/cib/cib_remote.c index 4d7b93b6c53..f0cba2b2fd9 100644 --- a/lib/cib/cib_remote.c +++ b/lib/cib/cib_remote.c @@ -1,21 +1,10 @@ /* - * Copyright (c) 2008 Andrew Beekhof - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2008-2018 Andrew Beekhof * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ + #include #include @@ -447,7 +436,7 @@ cib_remote_signoff(cib_t * cib) /* cib_remote_opaque_t *private = cib->variant_opaque; */ - crm_debug("Signing out of the CIB Service"); + crm_debug("Disconnecting from the CIB manager"); #ifdef HAVE_GNUTLS_GNUTLS_H cib_tls_close(cib); #endif @@ -524,7 +513,7 @@ cib_remote_perform_op(cib_t * cib, const char *op, const char *host, const char return -EPROTO; } - crm_trace("Sending %s message to CIB service", op); + crm_trace("Sending %s message to the CIB manager", op); if (!(call_options & cib_sync_call)) { crm_remote_send(&private->callback, op_msg); } else { @@ -581,7 +570,7 @@ cib_remote_perform_op(cib_t * cib, const char *op, const char *host, const char } /* if(IPC_ISRCONN(native->command_channel) == FALSE) { */ - /* crm_err("CIB disconnected: %d", */ + /* crm_err("The CIB manager disconnected: %d", */ /* native->command_channel->ch_status); */ /* cib->state = cib_disconnected; */ /* } */ diff --git a/lib/cluster/membership.c b/lib/cluster/membership.c index 83542e159b9..c3b7d894bd6 100644 --- a/lib/cluster/membership.c +++ b/lib/cluster/membership.c @@ -1,20 +1,10 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ + #include #ifndef _GNU_SOURCE @@ -141,7 +131,7 @@ crm_remote_peer_cache_remove(const char *node_name) * \return CRM_NODE_LOST if XML_NODE_IN_CLUSTER is false in node_state, * CRM_NODE_MEMBER otherwise * \note Unlike most boolean XML attributes, this one defaults to true, for - * backward compatibility with older crmd versions that don't set it. + * backward compatibility with older controllers that don't set it. */ static const char * remote_state_from_cib(xmlNode *node_state) diff --git a/lib/common/attrd_client.c b/lib/common/attrd_client.c index 5042da64cb5..7a3b2503de2 100644 --- a/lib/common/attrd_client.c +++ b/lib/common/attrd_client.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2017 Andrew Beekhof + * Copyright 2011-2018 Andrew Beekhof * * This source code is licensed under the GNU Lesser General Public License * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. @@ -20,11 +20,11 @@ /*! * \internal - * \brief Create a generic attrd operation + * \brief Create a generic pacemaker-attrd operation * * \param[in] user_name If not NULL, ACL user to set for operation * - * \return XML of attrd operation + * \return XML of pacemaker-attrd operation */ static xmlNode * create_attrd_op(const char *user_name) @@ -42,10 +42,10 @@ create_attrd_op(const char *user_name) /*! * \internal - * \brief Send an operation to attrd via IPC + * \brief Send an operation to pacemaker-attrd via IPC * - * \param[in] ipc Connection to attrd (or NULL to use a local connection) - * \param[in] attrd_op XML of attrd operation to send + * \param[in] ipc Connection to pacemaker-attrd (or NULL to use a local connection) + * \param[in] attrd_op XML of pacemaker-attrd operation to send * * \return pcmk_ok on success, -errno otherwise */ @@ -106,10 +106,10 @@ send_attrd_op(crm_ipc_t *ipc, xmlNode *attrd_op) } /*! - * \brief Send a request to attrd + * \brief Send a request to pacemaker-attrd * - * \param[in] ipc Connection to attrd (or NULL to use a local connection) - * \param[in] command A character indicating the type of attrd request: + * \param[in] ipc Connection to pacemaker-attrd (or NULL to use a local connection) + * \param[in] command A character indicating the type of pacemaker-attrd request: * U or v: update attribute (or refresh if name is NULL) * u: update attributes matching regular expression in name * D: delete attribute (value must be NULL) @@ -124,12 +124,12 @@ send_attrd_op(crm_ipc_t *ipc, xmlNode *attrd_op) * \param[in] section Status or nodes * \param[in] set ID of attribute set to use (or NULL to choose first) * \param[in] dampen Attribute dampening to use with B/Y, and U/v if creating - * \param[in] user_name ACL user to pass to attrd + * \param[in] user_name ACL user to pass to pacemaker-attrd * \param[in] options Bitmask that may include: * attrd_opt_remote: host is a Pacemaker Remote node * attrd_opt_private: attribute is private (not kept in CIB) * - * \return pcmk_ok if request was successfully submitted to attrd, else -errno + * \return pcmk_ok if request was successfully submitted to pacemaker-attrd, else -errno */ int attrd_update_delegate(crm_ipc_t *ipc, char command, const char *host, @@ -212,27 +212,27 @@ attrd_update_delegate(crm_ipc_t *ipc, char command, const char *host, free_xml(update); if (display_command) { - crm_debug("Asked attrd to %s %s: %s (%d)", + crm_debug("Asked pacemaker-attrd to %s %s: %s (%d)", display_command, display_host, pcmk_strerror(rc), rc); } else { - crm_debug("Asked attrd to update %s=%s for %s: %s (%d)", + crm_debug("Asked pacemaker-attrd to update %s=%s for %s: %s (%d)", name, value, display_host, pcmk_strerror(rc), rc); } return rc; } /*! - * \brief Send a request to attrd to clear resource failure + * \brief Send a request to pacemaker-attrd to clear resource failure * - * \param[in] ipc Connection to attrd (NULL to use local connection) + * \param[in] ipc Connection to pacemaker-attrd (NULL to use local connection) * \param[in] host Affect only this host (or NULL for all hosts) * \param[in] resource Name of resource to clear (or NULL for all) * \param[in] operation Name of operation to clear (or NULL for all) * \param[in] interval_spec If operation is not NULL, its interval - * \param[in] user_name ACL user to pass to attrd + * \param[in] user_name ACL user to pass to pacemaker-attrd * \param[in] options attrd_opt_remote if host is a Pacemaker Remote node * - * \return pcmk_ok if request was successfully submitted to attrd, else -errno + * \return pcmk_ok if request was successfully submitted to pacemaker-attrd, else -errno */ int attrd_clear_delegate(crm_ipc_t *ipc, const char *host, const char *resource, @@ -261,7 +261,7 @@ attrd_clear_delegate(crm_ipc_t *ipc, const char *host, const char *resource, interval_desc = "all"; op_desc = "operations"; } - crm_debug("Asked attrd to clear failure of %s %s for %s on %s: %s (%d)", + crm_debug("Asked pacemaker-attrd to clear failure of %s %s for %s on %s: %s (%d)", interval_desc, op_desc, (resource? resource : "all resources"), (host? host : "all nodes"), pcmk_strerror(rc), rc); return rc; @@ -285,7 +285,7 @@ attrd_get_target(const char *name) const char *target = getenv(target_var); const char *host_physical = getenv(phys_var); - /* It is important we use the names by which the PE knows us */ + // It is important to use the name by which the scheduler knows us if (host_physical && safe_str_eq(target, "host")) { name = host_physical; diff --git a/lib/common/digest.c b/lib/common/digest.c index 55d6f114532..f6fb9c1ec6c 100644 --- a/lib/common/digest.c +++ b/lib/common/digest.c @@ -198,7 +198,7 @@ calculate_xml_versioned_digest(xmlNode * input, gboolean sort, gboolean do_filte * removing this affects even full-restart upgrades from old versions * * The sorting associated with v1 digest creation accounted for 23% of - * the CIB's CPU usage on the server. v2 drops this. + * the CIB manager's CPU usage on the server. v2 drops this. * * The filtering accounts for an additional 2.5% and we may want to * remove it in future. diff --git a/lib/common/io.c b/lib/common/io.c index 448e380ffff..fd7cbef69cd 100644 --- a/lib/common/io.c +++ b/lib/common/io.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #include @@ -240,88 +229,137 @@ crm_chown_last_sequence(const char *directory, const char *series, uid_t uid, gi return rc; } +static bool +pcmk__daemon_user_can_write(const char *target_name, struct stat *target_stat) +{ + struct passwd *sys_user = NULL; + + errno = 0; + sys_user = getpwnam(CRM_DAEMON_USER); + if (sys_user == NULL) { + crm_notice("Could not find user %s: %s", + CRM_DAEMON_USER, pcmk_strerror(errno)); + return FALSE; + } + if (target_stat->st_uid != sys_user->pw_uid) { + crm_notice("%s is not owned by user %s " CRM_XS " uid %d != %d", + target_name, CRM_DAEMON_USER, sys_user->pw_uid, + target_stat->st_uid); + return FALSE; + } + if ((target_stat->st_mode & (S_IRUSR | S_IWUSR)) == 0) { + crm_notice("%s is not readable and writable by user %s " + CRM_XS " st_mode=0%lo", + target_name, CRM_DAEMON_USER, + (unsigned long) target_stat->st_mode); + return FALSE; + } + return TRUE; +} + +static bool +pcmk__daemon_group_can_write(const char *target_name, struct stat *target_stat) +{ + struct group *sys_grp = NULL; + + errno = 0; + sys_grp = getgrnam(CRM_DAEMON_GROUP); + if (sys_grp == NULL) { + crm_notice("Could not find group %s: %s", + CRM_DAEMON_GROUP, pcmk_strerror(errno)); + return FALSE; + } + + if (target_stat->st_gid != sys_grp->gr_gid) { + crm_notice("%s is not owned by group %s " CRM_XS " uid %d != %d", + target_name, CRM_DAEMON_GROUP, + sys_grp->gr_gid, target_stat->st_gid); + return FALSE; + } + + if ((target_stat->st_mode & (S_IRGRP | S_IWGRP)) == 0) { + crm_notice("%s is not readable and writable by group %s " + CRM_XS " st_mode=0%lo", + target_name, CRM_DAEMON_GROUP, + (unsigned long) target_stat->st_mode); + return FALSE; + } + return TRUE; +} + /*! * \internal - * \brief Return whether a directory or file is writable by a user/group + * \brief Check whether a directory or file is writable by the cluster daemon + * + * Return TRUE if either the cluster daemon user or cluster daemon group has + * write permission on a specified file or directory. * - * \param[in] dir Directory to check or that contains file - * \param[in] file File name to check (or NULL to check directory) - * \param[in] user Name of user that should have write permission - * \param[in] group Name of group that should have write permission - * \param[in] need_both Whether both user and group must be able to write + * \param[in] dir Directory to check (this argument must be specified, and + * the directory must exist) + * \param[in] file File to check (only the directory will be checked if this + * argument is not specified or the file does not exist) * - * \return TRUE if permissions match, FALSE if they don't or on error + * \return TRUE if target is writable by cluster daemon, FALSE otherwise */ -gboolean -crm_is_writable(const char *dir, const char *file, - const char *user, const char *group, gboolean need_both) +bool +pcmk__daemon_can_write(const char *dir, const char *file) { - int s_res = -1; + int s_res = 0; struct stat buf; char *full_file = NULL; const char *target = NULL; - gboolean pass = TRUE; - gboolean readwritable = FALSE; - + // Caller must supply directory CRM_ASSERT(dir != NULL); + + // If file is given, check whether it exists as a regular file if (file != NULL) { full_file = crm_concat(dir, file, '/'); target = full_file; + s_res = stat(full_file, &buf); - if (s_res == 0 && S_ISREG(buf.st_mode) == FALSE) { - crm_err("%s must be a regular file", target); - pass = FALSE; - goto out; + if (s_res < 0) { + crm_notice("%s not found: %s", target, pcmk_strerror(errno)); + free(full_file); + full_file = NULL; + target = NULL; + + } else if (S_ISREG(buf.st_mode) == FALSE) { + crm_err("%s must be a regular file " CRM_XS " st_mode=0%lo", + target, (unsigned long) buf.st_mode); + free(full_file); + return FALSE; } } - if (s_res != 0) { + // If file is not given, ensure dir exists as directory + if (target == NULL) { target = dir; s_res = stat(dir, &buf); - if (s_res != 0) { - crm_err("%s must exist and be a directory", dir); - pass = FALSE; - goto out; + if (s_res < 0) { + crm_err("%s not found: %s", dir, pcmk_strerror(errno)); + return FALSE; } else if (S_ISDIR(buf.st_mode) == FALSE) { - crm_err("%s must be a directory", dir); - pass = FALSE; + crm_err("%s must be a directory " CRM_XS " st_mode=0%lo", + dir, (unsigned long) buf.st_mode); + return FALSE; } } - if (user) { - struct passwd *sys_user = NULL; + if (!pcmk__daemon_user_can_write(target, &buf) + && !pcmk__daemon_group_can_write(target, &buf)) { - sys_user = getpwnam(user); - readwritable = (sys_user != NULL - && buf.st_uid == sys_user->pw_uid && (buf.st_mode & (S_IRUSR | S_IWUSR))); - if (readwritable == FALSE) { - crm_err("%s must be owned and r/w by user %s", target, user); - if (need_both) { - pass = FALSE; - } - } - } - - if (group) { - struct group *sys_grp = getgrnam(group); - - readwritable = (sys_grp != NULL - && buf.st_gid == sys_grp->gr_gid && (buf.st_mode & (S_IRGRP | S_IWGRP))); - if (readwritable == FALSE) { - if (need_both || user == NULL) { - pass = FALSE; - crm_err("%s must be owned and r/w by group %s", target, group); - } else { - crm_warn("%s should be owned and r/w by group %s", target, group); - } - } + crm_err("%s must be owned and writable by either user %s or group %s " + CRM_XS " st_mode=0%ol", + target, CRM_DAEMON_USER, CRM_DAEMON_GROUP, + (unsigned long) buf.st_mode); + free(full_file); + return FALSE; } - out: free(full_file); - return pass; + return TRUE; } /*! diff --git a/lib/common/ipc.c b/lib/common/ipc.c index e911fcf8218..2c933315f88 100644 --- a/lib/common/ipc.c +++ b/lib/common/ipc.c @@ -86,7 +86,7 @@ create_request_adv(const char *task, xmlNode * msg_data, crm_err("No sys from specified"); } - /* host_from will get set for us if necessary by CRMd when routed */ + // host_from will get set for us if necessary by the controller when routed request = create_xml_node(NULL, __FUNCTION__); crm_xml_add(request, F_CRM_ORIGIN, origin); crm_xml_add(request, F_TYPE, T_CRM); @@ -347,14 +347,34 @@ crm_client_new(qb_ipcs_connection_t * c, uid_t uid_client, gid_t gid_client) return client; } +static struct iovec * +pcmk__new_ipc_event() +{ + struct iovec *iov = calloc(2, sizeof(struct iovec)); + + CRM_ASSERT(iov != NULL); + return iov; +} + +/*! + * \brief Free an I/O vector created by crm_ipc_prepare() + * + * \param[in] event I/O vector to free + */ +void +pcmk_free_ipc_event(struct iovec *event) +{ + if (event != NULL) { + free(event[0].iov_base); + free(event[1].iov_base); + free(event); + } +} + static void free_event(gpointer data) { - struct iovec *event = data; - - free(event[0].iov_base); - free(event[1].iov_base); - free(event); + pcmk_free_ipc_event((struct iovec *) data); } static void @@ -456,9 +476,10 @@ crm_ipcs_recv(crm_client_t * c, void *data, size_t size, uint32_t * id, uint32_t } if (is_set(header->flags, crm_ipc_proxied)) { - /* mark this client as being the endpoint of a proxy connection. - * Proxy connections responses are sent on the event channel to avoid - * blocking the proxy daemon (crmd) */ + /* Mark this client as being the endpoint of a proxy connection. + * Proxy connections responses are sent on the event channel, to avoid + * blocking the controller serving as proxy. + */ c->flags |= crm_client_flag_ipc_proxied; } @@ -556,6 +577,8 @@ crm_ipcs_flush_events(crm_client_t * c) rc = qb_ipcs_event_sendv(c->ipcs, event, 2); if (rc < 0) { + // The event didn't get sent, so put it back + g_queue_push_head(c->event_queue, event); break; } @@ -569,7 +592,7 @@ crm_ipcs_flush_events(crm_client_t * c) header->qb.id, c->ipcs, c->pid, (long long) rc, (char *) (event[1].iov_base)); } - free_event((gpointer) event); + pcmk_free_ipc_event(event); } queue_len -= sent; @@ -631,9 +654,7 @@ crm_ipc_prepare(uint32_t request, xmlNode * message, struct iovec ** result, uin CRM_LOG_ASSERT(max_send_size != 0); *result = NULL; - iov = calloc(2, sizeof(struct iovec)); - - + iov = pcmk__new_ipc_event(); iov[0].iov_len = hdr_offset; iov[0].iov_base = header; @@ -673,10 +694,7 @@ crm_ipc_prepare(uint32_t request, xmlNode * message, struct iovec ** result, uin header->size_uncompressed, max_send_size, 4 * biggest); free(compressed); - free(buffer); - free(header); - free(iov); - + pcmk_free_ipc_event(iov); return rc; } } @@ -715,7 +733,7 @@ crm_ipcs_sendv(crm_client_t * c, struct iovec * iov, enum crm_ipc_flags flags) add_event(c, iov); } else { - struct iovec *iov_copy = calloc(2, sizeof(struct iovec)); + struct iovec *iov_copy = pcmk__new_ipc_event(); crm_trace("Sending a copy to %p[%d]", c->ipcs, c->pid); iov_copy[0].iov_len = iov[0].iov_len; @@ -745,9 +763,7 @@ crm_ipcs_sendv(crm_client_t * c, struct iovec * iov, enum crm_ipc_flags flags) } if (flags & crm_ipc_server_free) { - free(iov[0].iov_base); - free(iov[1].iov_base); - free(iov); + pcmk_free_ipc_event(iov); } } @@ -779,13 +795,11 @@ crm_ipcs_send(crm_client_t * c, uint32_t request, xmlNode * message, rc = crm_ipc_prepare(request, message, &iov, ipc_buffer_max); if (rc > 0) { rc = crm_ipcs_sendv(c, iov, flags | crm_ipc_server_free); - } else { - free(iov); + pcmk_free_ipc_event(iov); crm_notice("Message to pid %d failed: %s " CRM_XS " rc=%lld ipcs=%p", c->pid, pcmk_strerror(rc), (long long) rc, c->ipcs); } - return rc; } @@ -1330,9 +1344,7 @@ crm_ipc_send(crm_ipc_t * client, xmlNode * message, enum crm_ipc_flags flags, in header->qb.id, client->name, client->ipc, pcmk_strerror(rc), rc); } - free(header); - free(iov[1].iov_base); - free(iov); + pcmk_free_ipc_event(iov); return rc; } diff --git a/lib/common/logging.c b/lib/common/logging.c index 60ba585877b..258578692e3 100644 --- a/lib/common/logging.c +++ b/lib/common/logging.c @@ -181,37 +181,49 @@ crm_log_deinit(void) } #define FMT_MAX 256 + static void set_format_string(int method, const char *daemon) { - int offset = 0; - char fmt[FMT_MAX]; + if (method == QB_LOG_SYSLOG) { + // The system log gets a simplified, user-friendly format + crm_extended_logging(method, QB_FALSE); + qb_log_format_set(method, "%g %p: %b"); - if (method > QB_LOG_STDERR) { - /* When logging to a file */ - struct utsname res; + } else { + // Everything else gets more detail, for advanced troubleshooting - if (uname(&res) == 0) { - offset += - snprintf(fmt + offset, FMT_MAX - offset, "%%t [%lu] %s %10s: ", - (unsigned long) getpid(), res.nodename, daemon); - } else { - offset += snprintf(fmt + offset, FMT_MAX - offset, "%%t [%lu] %10s: ", - (unsigned long) getpid(), daemon); + int offset = 0; + char fmt[FMT_MAX]; + + if (method > QB_LOG_STDERR) { + struct utsname res; + const char *nodename = "localhost"; + + if (uname(&res) == 0) { + nodename = res.nodename; + } + + // If logging to file, prefix with timestamp, node name, daemon ID + offset += snprintf(fmt + offset, FMT_MAX - offset, + "%%t %s %-20s[%lu] ", + nodename, daemon, (unsigned long) getpid()); } - } - if (method == QB_LOG_SYSLOG) { - offset += snprintf(fmt + offset, FMT_MAX - offset, "%%g %%-7p: %%b"); - crm_extended_logging(method, QB_FALSE); - } else if (crm_tracing_enabled()) { - offset += snprintf(fmt + offset, FMT_MAX - offset, "(%%-12f:%%5l %%g) %%-7p: %%n:\t%%b"); - } else { - offset += snprintf(fmt + offset, FMT_MAX - offset, "%%g %%-7p: %%n:\t%%b"); - } + // Add function name (in parentheses) + offset += snprintf(fmt + offset, FMT_MAX - offset, "(%%n"); + if (crm_tracing_enabled()) { + // When tracing, add file and line number + offset += snprintf(fmt + offset, FMT_MAX - offset, "@%%f:%%l"); + } + offset += snprintf(fmt + offset, FMT_MAX - offset, ")"); - CRM_LOG_ASSERT(offset > 0); - qb_log_format_set(method, fmt); + // Add tag (if any), severity, and actual message + offset += snprintf(fmt + offset, FMT_MAX - offset, " %%g\t%%p: %%b"); + + CRM_LOG_ASSERT(offset > 0); + qb_log_format_set(method, fmt); + } } gboolean diff --git a/lib/common/mainloop.c b/lib/common/mainloop.c index ce9f0ec3dc4..3627ca19eb0 100644 --- a/lib/common/mainloop.c +++ b/lib/common/mainloop.c @@ -674,7 +674,8 @@ mainloop_gio_callback(GIOChannel * gio, GIOCondition condition, gpointer data) } if (client->ipc && crm_ipc_connected(client->ipc) == FALSE) { - crm_err("Connection to %s[%p] closed (I/O condition=%d)", client->name, client, condition); + crm_err("Connection to %s closed " CRM_XS "client=%p condition=%d", + client->name, client, condition); keep = FALSE; } else if (condition & (G_IO_HUP | G_IO_NVAL | G_IO_ERR)) { diff --git a/lib/common/utils.c b/lib/common/utils.c index 07ba1b7d1de..61c8bef9acc 100644 --- a/lib/common/utils.c +++ b/lib/common/utils.c @@ -992,8 +992,8 @@ void cib_ipc_servers_init(qb_ipcs_service_t **ipcs_ro, *ipcs_shm = mainloop_add_ipc_server(cib_channel_shm, QB_IPC_SHM, rw_cb); if (*ipcs_ro == NULL || *ipcs_rw == NULL || *ipcs_shm == NULL) { - crm_err("Failed to create cib servers: exiting and inhibiting respawn."); - crm_warn("Verify pacemaker and pacemaker_remote are not both enabled."); + crm_err("Failed to create the CIB manager: exiting and inhibiting respawn"); + crm_warn("Verify pacemaker and pacemaker_remote are not both enabled"); crm_exit(CRM_EX_FATAL); } } @@ -1019,7 +1019,7 @@ attrd_ipc_server_init(qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *ipcs = mainloop_add_ipc_server(T_ATTRD, QB_IPC_NATIVE, cb); if (*ipcs == NULL) { - crm_err("Failed to create attrd servers: exiting and inhibiting respawn."); + crm_err("Failed to create pacemaker-attrd server: exiting and inhibiting respawn"); crm_warn("Verify pacemaker and pacemaker_remote are not both enabled."); crm_exit(CRM_EX_FATAL); } @@ -1031,7 +1031,7 @@ stonith_ipc_server_init(qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handler *ipcs = mainloop_add_ipc_server("stonith-ng", QB_IPC_NATIVE, cb); if (*ipcs == NULL) { - crm_err("Failed to create stonith-ng servers: exiting and inhibiting respawn."); + crm_err("Failed to create fencer: exiting and inhibiting respawn."); crm_warn("Verify pacemaker and pacemaker_remote are not both enabled."); crm_exit(CRM_EX_FATAL); } diff --git a/lib/common/watchdog.c b/lib/common/watchdog.c index 2aa4bb527c5..92f0ecbbd47 100644 --- a/lib/common/watchdog.c +++ b/lib/common/watchdog.c @@ -104,10 +104,11 @@ pcmk_panic_local(void) pid_t ppid = getppid(); if(uid != 0 && ppid > 1) { - /* We're a non-root pacemaker daemon (cib, crmd, pengine, - * attrd, etc) with the original pacemakerd parent + /* We're a non-root pacemaker daemon (pacemaker-based, + * pacemaker-controld, pacemaker-schedulerd, pacemaker-attrd, etc.) with + * the original pacemakerd parent. * - * Of these, only crmd is likely to be initiating resets + * Of these, only the controller is likely to be initiating resets. */ do_crm_log_always(LOG_EMERG, "Signaling parent %d to panic", ppid); crm_exit(CRM_EX_PANIC); diff --git a/lib/common/xml.c b/lib/common/xml.c index 2d1fe82d608..c3874cff8d1 100644 --- a/lib/common/xml.c +++ b/lib/common/xml.c @@ -3742,7 +3742,7 @@ crm_xml_dump(xmlNode * data, int options, char **buffer, int *offset, int *max, } #if 0 if (is_not_set(options, xml_log_option_filtered)) { - /* Turning this code on also changes the PE tests for some reason + /* Turning this code on also changes the scheduler tests for some reason * (not just newlines). Figure out why before considering to * enable this permanently. * diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c index c28e4b90d1a..a0a418cbb78 100644 --- a/lib/fencing/st_client.c +++ b/lib/fencing/st_client.c @@ -289,7 +289,7 @@ stonith_api_remove_level(stonith_t * st, int options, const char *node, int leve /*! * \internal - * \brief Create XML for stonithd topology level registration request + * \brief Create XML for fence topology level registration request * * \param[in] node If not NULL, target level by this node name * \param[in] pattern If not NULL, target by node name using this regex @@ -411,7 +411,7 @@ append_arg(const char *key, const char *value, char **args) static void append_config_arg(gpointer key, gpointer value, gpointer user_data) { - /* stonithd will filter action out when it registers the device, + /* The fencer will filter action out when it registers the device, * but ignore it here just in case any other library callers * fail to do so. */ @@ -1134,8 +1134,8 @@ stonith_api_device_metadata(stonith_t * stonith, int call_options, const char *a crm_trace("looking up %s/%s metadata", agent, provider); /* By having this in a library, we can access it from stonith_admin - * when neither lrmd or stonith-ng are running - * Important for the crm shell's validations... + * when neither the executor nor the fencer are running, which is + * important for higher-level tools. */ if (safe_str_eq(provider, "redhat")) { @@ -1597,7 +1597,7 @@ stonith_api_signoff(stonith_t * stonith) { stonith_private_t *native = stonith->st_private; - crm_debug("Signing out of the STONITH Service"); + crm_debug("Disconnecting from the fencer"); if (native->source != NULL) { /* Attached to mainloop */ @@ -1695,8 +1695,8 @@ stonith_perform_callback(stonith_t * stonith, xmlNode * msg, int call_id, int rc invoke_callback(stonith, call_id, rc, local_blob.user_data, local_blob.callback); } else if (private->op_callback == NULL && rc != pcmk_ok) { - crm_warn("STONITH command failed: %s", pcmk_strerror(rc)); - crm_log_xml_debug(msg, "Failed STONITH Update"); + crm_warn("Fencing command failed: %s", pcmk_strerror(rc)); + crm_log_xml_debug(msg, "Failed fence update"); } if (private->op_callback != NULL) { @@ -1777,7 +1777,7 @@ stonith_dispatch_internal(const char *buffer, ssize_t length, gpointer userdata) blob.stonith = st; blob.xml = string2xml(buffer); if (blob.xml == NULL) { - crm_warn("Received a NULL msg from STONITH service: %s.", buffer); + crm_warn("Received malformed message from fencer: %s", buffer); return 0; } @@ -1828,7 +1828,7 @@ stonith_api_signon(stonith_t * stonith, const char *name, int *stonith_fd) if (native->ipc && crm_ipc_connect(native->ipc)) { *stonith_fd = crm_ipc_get_fd(native->ipc); } else if (native->ipc) { - crm_perror(LOG_ERR, "Connection to STONITH manager failed"); + crm_perror(LOG_ERR, "Connection to fencer failed"); rc = -ENOTCONN; } @@ -1890,11 +1890,11 @@ stonith_api_signon(stonith_t * stonith, const char *name, int *stonith_fd) #if HAVE_MSGFROMIPC_TIMEOUT stonith->call_timeout = MAX_IPC_DELAY; #endif - crm_debug("Connection to STONITH successful"); + crm_debug("Connection to fencer successful"); return pcmk_ok; } - crm_debug("Connection to STONITH failed: %s", pcmk_strerror(rc)); + crm_debug("Connection to fencer failed: %s", pcmk_strerror(rc)); stonith->cmds->disconnect(stonith); return rc; } @@ -2013,7 +2013,7 @@ stonith_api_add_callback(stonith_t * stonith, int call_id, int timeout, int opti crm_trace("Call failed, calling %s: %s", callback_name, pcmk_strerror(call_id)); invoke_callback(stonith, call_id, call_id, user_data, callback); } else { - crm_warn("STONITH call failed: %s", pcmk_strerror(call_id)); + crm_warn("Fencer call failed: %s", pcmk_strerror(call_id)); } return FALSE; } @@ -2058,7 +2058,7 @@ stonith_dump_pending_callbacks(stonith_t * stonith) /* - + @@ -2208,7 +2208,7 @@ stonith_send_command(stonith_t * stonith, const char *op, xmlNode * data, xmlNod } crm_xml_add_int(op_msg, F_STONITH_TIMEOUT, timeout); - crm_trace("Sending %s message to STONITH service, Timeout: %ds", op, timeout); + crm_trace("Sending %s message to fencer with timeout %ds", op, timeout); rc = crm_ipc_send(native->ipc, op_msg, ipc_flags, 1000 * (timeout + 60), &op_reply); free_xml(op_msg); @@ -2262,7 +2262,7 @@ stonith_send_command(stonith_t * stonith, const char *op, xmlNode * data, xmlNod done: if (crm_ipc_connected(native->ipc) == FALSE) { - crm_err("STONITH disconnected"); + crm_err("Fencer disconnected"); stonith->state = stonith_disconnected; } diff --git a/lib/lrmd/lrmd_alerts.c b/lib/lrmd/lrmd_alerts.c index 727c10e97cf..d22e10ff5c2 100644 --- a/lib/lrmd/lrmd_alerts.c +++ b/lib/lrmd/lrmd_alerts.c @@ -1,20 +1,8 @@ /* - * Copyright (c) 2015 David Vossel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2015-2018 David Vossel * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #include @@ -124,7 +112,7 @@ is_target_alert(char **list, const char *value) * \internal * \brief Execute alert agents for an event * - * \param[in] lrmd LRMD connection to use + * \param[in] lrmd Executor connection to use * \param[in] alert_list Alerts to execute * \param[in] kind Type of event that is being alerted for * \param[in] attr_name If crm_alert_attribute, the attribute name @@ -227,7 +215,7 @@ exec_alert_list(lrmd_t *lrmd, GList *alert_list, enum crm_alert_flags kind, * \internal * \brief Send an alert for a node attribute change * - * \param[in] lrmd LRMD connection to use + * \param[in] lrmd Executor connection to use * \param[in] alert_list List of alert agents to execute * \param[in] node Name of node with attribute change * \param[in] nodeid Node ID of node with attribute change @@ -265,7 +253,7 @@ lrmd_send_attribute_alert(lrmd_t *lrmd, GList *alert_list, * \internal * \brief Send an alert for a node membership event * - * \param[in] lrmd LRMD connection to use + * \param[in] lrmd Executor connection to use * \param[in] alert_list List of alert agents to execute * \param[in] node Name of node with change * \param[in] nodeid Node ID of node with change @@ -299,7 +287,7 @@ lrmd_send_node_alert(lrmd_t *lrmd, GList *alert_list, * \internal * \brief Send an alert for a fencing event * - * \param[in] lrmd LRMD connection to use + * \param[in] lrmd Executor connection to use * \param[in] alert_list List of alert agents to execute * \param[in] target Name of fence target node * \param[in] task Type of fencing event that occurred @@ -336,7 +324,7 @@ lrmd_send_fencing_alert(lrmd_t *lrmd, GList *alert_list, * \internal * \brief Send an alert for a resource operation * - * \param[in] lrmd LRMD connection to use + * \param[in] lrmd Executor connection to use * \param[in] alert_list List of alert agents to execute * \param[in] node Name of node that executed operation * \param[in] op Resource operation diff --git a/lib/lrmd/lrmd_client.c b/lib/lrmd/lrmd_client.c index 723ec047b25..ea5bc0551b3 100644 --- a/lib/lrmd/lrmd_client.c +++ b/lib/lrmd/lrmd_client.c @@ -1,20 +1,8 @@ /* - * Copyright (c) 2012 David Vossel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2012-2018 David Vossel * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #include @@ -382,7 +370,7 @@ lrmd_tls_dispatch(gpointer userdata) int reply_id = 0; crm_element_value_int(xml, F_LRMD_CALLID, &reply_id); /* if this happens, we want to know about it */ - crm_err("Got outdated remote LRM reply %d", reply_id); + crm_err("Got outdated Pacemaker Remote reply %d", reply_id); } } free_xml(xml); @@ -390,7 +378,7 @@ lrmd_tls_dispatch(gpointer userdata) } if (disconnected) { - crm_info("Lost %s LRM connection while reading data", + crm_info("Lost %s executor connection while reading data", (native->remote_nodename? native->remote_nodename : "local")); lrmd_tls_disconnect(lrmd); return 0; @@ -480,7 +468,7 @@ lrmd_create_op(const char *token, const char *op, xmlNode *data, int timeout, add_message_xml(op_msg, F_LRMD_CALLDATA, data); } - crm_trace("Created lrmd %s command with call options %.8lx (%d)", + crm_trace("Created executor %s command with call options %.8lx (%d)", op, (long)options, options); return op_msg; } @@ -656,7 +644,7 @@ lrmd_tls_send(lrmd_t * lrmd, xmlNode * msg) rc = lrmd_tls_send_msg(native->remote, msg, global_remote_msg_id, "request"); if (rc <= 0) { - crm_err("Remote lrmd send failed, disconnecting"); + crm_err("Disconnecting because TLS message could not be sent to Pacemaker Remote"); lrmd_tls_disconnect(lrmd); return -ENOTCONN; } @@ -682,12 +670,12 @@ lrmd_tls_send_recv(lrmd_t * lrmd, xmlNode * msg, int timeout, xmlNode ** reply) xml = lrmd_tls_recv_reply(lrmd, timeout, global_remote_msg_id, &disconnected); if (disconnected) { - crm_err("Remote lrmd server disconnected while waiting for reply with id %d. ", + crm_err("Pacemaker Remote disconnected while waiting for reply to request id %d", global_remote_msg_id); lrmd_tls_disconnect(lrmd); rc = -ENOTCONN; } else if (!xml) { - crm_err("Remote lrmd never received reply for request id %d. timeout: %dms ", + crm_err("Did not receive reply from Pacemaker Remote for request id %d (timeout %dms)", global_remote_msg_id, timeout); rc = -ECOMM; } @@ -775,9 +763,9 @@ lrmd_api_is_connected(lrmd_t * lrmd) /*! * \internal - * \brief Send a prepared API command to the lrmd server + * \brief Send a prepared API command to the executor * - * \param[in] lrmd Existing connection to the lrmd server + * \param[in] lrmd Existing connection to the executor * \param[in] op Name of API command to send * \param[in] data Command data XML to add to the sent command * \param[out] output_data If expecting a reply, it will be stored here @@ -810,7 +798,7 @@ lrmd_send_command(lrmd_t *lrmd, const char *op, xmlNode *data, CRM_CHECK(native->token != NULL,; ); - crm_trace("sending %s op to lrmd", op); + crm_trace("Sending %s op to executor", op); op_msg = lrmd_create_op(native->token, op, data, timeout, options); @@ -851,7 +839,7 @@ lrmd_send_command(lrmd_t *lrmd, const char *op, xmlNode *data, done: if (lrmd_api_is_connected(lrmd) == FALSE) { - crm_err("LRMD disconnected"); + crm_err("Executor disconnected"); } free_xml(op_msg); @@ -913,7 +901,7 @@ lrmd_handshake(lrmd_t * lrmd, const char *name) rc = lrmd_send_xml(lrmd, hello, -1, &reply); if (rc < 0) { - crm_perror(LOG_DEBUG, "Couldn't complete registration with the lrmd API: %d", rc); + crm_perror(LOG_DEBUG, "Couldn't complete registration with the executor API: %d", rc); rc = -ECOMM; } else if (reply == NULL) { crm_err("Did not receive registration reply"); @@ -926,7 +914,7 @@ lrmd_handshake(lrmd_t * lrmd, const char *name) crm_element_value_int(reply, F_LRMD_RC, &rc); if (rc == -EPROTO) { - crm_err("LRMD protocol mismatch client version %s, server version %s", + crm_err("Executor protocol version mismatch between client (%s) and server (%s)", LRMD_PROTOCOL_VERSION, version); crm_log_xml_err(reply, "Protocol Error"); @@ -966,7 +954,7 @@ lrmd_ipc_connect(lrmd_t * lrmd, int *fd) .destroy = lrmd_ipc_connection_destroy }; - crm_info("Connecting to lrmd"); + crm_info("Connecting to executor"); if (fd) { /* No mainloop */ @@ -974,7 +962,7 @@ lrmd_ipc_connect(lrmd_t * lrmd, int *fd) if (native->ipc && crm_ipc_connect(native->ipc)) { *fd = crm_ipc_get_fd(native->ipc); } else if (native->ipc) { - crm_perror(LOG_ERR, "Connection to local resource manager failed"); + crm_perror(LOG_ERR, "Connection to executor failed"); rc = -ENOTCONN; } } else { @@ -983,7 +971,7 @@ lrmd_ipc_connect(lrmd_t * lrmd, int *fd) } if (native->ipc == NULL) { - crm_debug("Could not connect to the LRMD API"); + crm_debug("Could not connect to the executor API"); rc = -ENOTCONN; } @@ -1014,14 +1002,14 @@ set_key(gnutls_datum_t * key, const char *location) key->size = key_cache_len; memcpy(key->data, key_cache, key_cache_len); - crm_debug("using cached LRMD key"); + crm_debug("Using cached executor key"); return 0; } else { key_cache_len = 0; key_cache_updated = 0; free(key_cache); key_cache = NULL; - crm_debug("clearing lrmd key cache"); + crm_debug("Clearing executor key cache"); } } @@ -1076,12 +1064,12 @@ lrmd_tls_set_key(gnutls_datum_t * key) return pcmk_ok; } else if (specific_location) { - crm_err("No valid lrmd remote key found at %s, trying default location", specific_location); + crm_err("No valid Pacemaker Remote key found at %s, trying default location", specific_location); } if ((set_key(key, DEFAULT_REMOTE_KEY_LOCATION) != 0) && (set_key(key, ALT_REMOTE_KEY_LOCATION) != 0)) { - crm_err("No valid lrmd remote key found at %s", DEFAULT_REMOTE_KEY_LOCATION); + crm_err("No valid Pacemaker Remote key found at %s", DEFAULT_REMOTE_KEY_LOCATION); return -ENOKEY; } @@ -1132,7 +1120,7 @@ lrmd_tcp_connect_cb(void *userdata, int sock) if (rc < 0) { lrmd_tls_connection_destroy(lrmd); - crm_info("Could not connect to remote LRMD at %s:%d", + crm_info("Could not connect to Pacemaker Remote at %s:%d", native->server, native->port); report_async_connection_result(lrmd, rc); return; @@ -1146,7 +1134,7 @@ lrmd_tcp_connect_cb(void *userdata, int sock) rc = lrmd_tls_set_key(&psk_key); if (rc != 0) { - crm_warn("Could not set key for remote LRMD at %s:%d " CRM_XS " rc=%d", + crm_warn("Could not set key for Pacemaker Remote at %s:%d " CRM_XS " rc=%d", native->server, native->port, rc); lrmd_tls_connection_destroy(lrmd); report_async_connection_result(lrmd, rc); @@ -1160,7 +1148,7 @@ lrmd_tcp_connect_cb(void *userdata, int sock) native->remote->tls_session = create_psk_tls_session(sock, GNUTLS_CLIENT, native->psk_cred_c); if (crm_initiate_client_tls_handshake(native->remote, LRMD_CLIENT_HANDSHAKE_TIMEOUT) != 0) { - crm_warn("Disconnecting after TLS handshake with remote LRMD %s:%d failed", + crm_warn("Disconnecting after TLS handshake with Pacemaker Remote server %s:%d failed", native->server, native->port); gnutls_deinit(*native->remote->tls_session); gnutls_free(native->remote->tls_session); @@ -1170,10 +1158,11 @@ lrmd_tcp_connect_cb(void *userdata, int sock) return; } - crm_info("TLS connection to remote LRMD %s:%d succeeded", + crm_info("TLS connection to Pacemaker Remote server %s:%d succeeded", native->server, native->port); - name = crm_strdup_printf("remote-lrmd-%s:%d", native->server, native->port); + name = crm_strdup_printf("pacemaker-remote-%s:%d", + native->server, native->port); native->process_notify = mainloop_add_trigger(G_PRIORITY_HIGH, lrmd_tls_dispatch, lrmd); native->source = @@ -1221,7 +1210,7 @@ lrmd_tls_connect(lrmd_t * lrmd, int *fd) sock = crm_remote_tcp_connect(native->server, native->port); if (sock < 0) { - crm_warn("Could not establish remote lrmd connection to %s", native->server); + crm_warn("Could not establish Pacemaker Remote connection to %s", native->server); lrmd_tls_connection_destroy(lrmd); return -ENOTCONN; } @@ -1249,13 +1238,13 @@ lrmd_tls_connect(lrmd_t * lrmd, int *fd) return -EKEYREJECTED; } - crm_info("Remote lrmd client TLS connection established with server %s:%d", native->server, + crm_info("Client TLS connection established with Pacemaker Remote server %s:%d", native->server, native->port); if (fd) { *fd = sock; } else { - char *name = crm_strdup_printf("remote-lrmd-%s:%d", + char *name = crm_strdup_printf("pacemaker-remote-%s:%d", native->server, native->port); native->process_notify = mainloop_add_trigger(G_PRIORITY_HIGH, lrmd_tls_dispatch, lrmd); @@ -1299,10 +1288,7 @@ lrmd_api_connect_async(lrmd_t * lrmd, const char *name, int timeout) int rc = 0; lrmd_private_t *native = lrmd->lrmd_private; - if (!native->callback) { - crm_err("Async connect not possible, no lrmd client callback set."); - return -1; - } + CRM_CHECK(native && native->callback, return -1); switch (native->type) { case CRM_CLIENT_IPC: @@ -1390,7 +1376,7 @@ lrmd_api_disconnect(lrmd_t * lrmd) { lrmd_private_t *native = lrmd->lrmd_private; - crm_info("Disconnecting %s LRM connection to %s", + crm_info("Disconnecting %s %s executor connection", crm_client_type_text(native->type), (native->remote_nodename? native->remote_nodename : "local")); switch (native->type) { @@ -1586,7 +1572,7 @@ lrmd_api_get_recurring_ops(lrmd_t *lrmd, const char *rsc_id, int timeout_ms, const char *rsc_id = crm_element_value(rsc_xml, F_LRMD_RSC_ID); if (rsc_id == NULL) { - crm_err("Could not parse recurring operation information from LRMD"); + crm_err("Could not parse recurring operation information from executor"); continue; } for (xmlNode *op_xml = first_named_child(rsc_xml, T_LRMD_RSC_OP); @@ -1958,10 +1944,9 @@ lrmd_remote_api_new(const char *nodename, const char *server, int port) return new_lrmd; #else - crm_err("GNUTLS is not enabled for this build, remote LRMD client can not be created"); + crm_err("Cannot communicate with Pacemaker Remote because GnuTLS is not enabled for this build"); return NULL; #endif - } void diff --git a/lib/lrmd/proxy_common.c b/lib/lrmd/proxy_common.c index 3335148b889..41c0cce9fdb 100644 --- a/lib/lrmd/proxy_common.c +++ b/lib/lrmd/proxy_common.c @@ -1,20 +1,8 @@ /* - * Copyright (c) 2015 David Vossel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright 2015-2018 David Vossel * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #include @@ -127,7 +115,7 @@ remote_proxy_free(gpointer data) int remote_proxy_dispatch(const char *buffer, ssize_t length, gpointer userdata) { - /* Async responses from cib and friends back to clients via pacemaker_remoted */ + // Async responses from cib and friends to clients via pacemaker-remoted xmlNode *xml = NULL; uint32_t flags = 0; remote_proxy_t *proxy = userdata; @@ -191,7 +179,7 @@ remote_proxy_new(lrmd_t *lrmd, struct ipc_client_callbacks *proxy_callbacks, if (safe_str_eq(crm_system_name, CRM_SYSTEM_CRMD) && safe_str_eq(channel, CRM_SYSTEM_CRMD)) { - /* The crmd doesn't need to connect to itself */ + // The controller doesn't need to connect to itself proxy->is_local = TRUE; } else { @@ -245,7 +233,7 @@ remote_proxy_cb(lrmd_t *lrmd, const char *node_name, xmlNode *msg) return; } - /* crmd requests MUST be handled by the crmd, not us */ + // Controller requests MUST be handled by the controller, not us CRM_CHECK(proxy->is_local == FALSE, remote_proxy_end_session(proxy); return); @@ -295,7 +283,7 @@ remote_proxy_cb(lrmd_t *lrmd, const char *node_name, xmlNode *msg) } else { int rc = pcmk_ok; xmlNode *op_reply = NULL; - /* For backwards compatibility with pacemaker_remoted <= 1.1.10 */ + // @COMPAT pacemaker_remoted <= 1.1.10 crm_trace("Relaying %s request %d from %s to %s for %s", op, msg_id, proxy->node_name, crm_ipc_name(proxy->ipc), name); diff --git a/lib/pengine/common.c b/lib/pengine/common.c index ffe73f6424c..b7a04ba7e07 100644 --- a/lib/pengine/common.c +++ b/lib/pengine/common.c @@ -1,20 +1,10 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ + #include #include #include @@ -128,17 +118,26 @@ static pe_cluster_option pe_opts[] = { { "stop-orphan-actions", NULL, "boolean", NULL, "true", &check_boolean, "Should deleted actions be cancelled", NULL }, { "remove-after-stop", NULL, "boolean", NULL, "false", &check_boolean, - "Remove resources from the LRM after they are stopped", + "Remove resources from the executor after they are stopped", "Always set this to false. Other values are, at best, poorly tested and potentially dangerous." }, /* { "", "", , "0", "", NULL }, */ /* Storing inputs */ - { "pe-error-series-max", NULL, "integer", NULL, "-1", &check_number, - "The number of PE inputs resulting in ERRORs to save", "Zero to disable, -1 to store unlimited." }, - { "pe-warn-series-max", NULL, "integer", NULL, "5000", &check_number, - "The number of PE inputs resulting in WARNINGs to save", "Zero to disable, -1 to store unlimited." }, - { "pe-input-series-max", NULL, "integer", NULL, "4000", &check_number, - "The number of other PE inputs to save", "Zero to disable, -1 to store unlimited." }, + { + "pe-error-series-max", NULL, "integer", NULL, "-1", &check_number, + "The number of scheduler inputs resulting in ERRORs to save", + "Zero to disable, -1 to store unlimited" + }, + { + "pe-warn-series-max", NULL, "integer", NULL, "5000", &check_number, + "The number of scheduler inputs resulting in WARNINGs to save", + "Zero to disable, -1 to store unlimited" + }, + { + "pe-input-series-max", NULL, "integer", NULL, "4000", &check_number, + "The number of other scheduler inputs to save", + "Zero to disable, -1 to store unlimited" + }, /* Node health */ { "node-health-strategy", NULL, "enum", "none, migrate-on-red, only-green, progressive, custom", "none", &check_health, @@ -166,9 +165,8 @@ static pe_cluster_option pe_opts[] = { void pe_metadata(void) { - config_metadata("Policy Engine", "1.0", - "Policy Engine Options", - "This is a fake resource that details the options that can be configured for the Policy Engine.", + config_metadata("pacemaker-schedulerd", "1.0", "scheduler properties", + "Cluster properties used by Pacemaker's scheduler", pe_opts, DIMOF(pe_opts)); } diff --git a/lib/pengine/container.c b/lib/pengine/container.c index 568a5024754..5eab244f9d7 100644 --- a/lib/pengine/container.c +++ b/lib/pengine/container.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #include @@ -287,7 +276,7 @@ create_docker_resource( "run_cmd", data->docker_run_command); } else { crm_create_nvpair_xml(xml_obj, NULL, - "run_cmd", SBIN_DIR "/pacemaker_remoted"); + "run_cmd", SBIN_DIR "/pacemaker-remoted"); } /* TODO: Allow users to specify their own? @@ -306,7 +295,8 @@ create_docker_resource( * "normal" remote nodes * * crm_create_nvpair_xml(xml_obj, NULL, - * "run_cmd", "/usr/libexec/pacemaker/lrmd"); + * "run_cmd", + * "/usr/libexec/pacemaker/pacemaker-execd"); * crm_create_nvpair_xml(xml_obj, NULL, "monitor_cmd", * "/usr/libexec/pacemaker/lrmd_internal_ctl -c poke"); */ @@ -447,7 +437,8 @@ create_rkt_resource( if(data->docker_run_command) { crm_create_nvpair_xml(xml_obj, NULL, "run_cmd", data->docker_run_command); } else { - crm_create_nvpair_xml(xml_obj, NULL, "run_cmd", SBIN_DIR"/pacemaker_remoted"); + crm_create_nvpair_xml(xml_obj, NULL, "run_cmd", + SBIN_DIR "/pacemaker-remoted"); } /* TODO: Allow users to specify their own? @@ -466,7 +457,8 @@ create_rkt_resource( * "normal" remote nodes * * crm_create_nvpair_xml(xml_obj, NULL, - * "run_cmd", "/usr/libexec/pacemaker/lrmd"); + * "run_cmd", + * "/usr/libexec/pacemaker/pacemaker-execd"); * crm_create_nvpair_xml(xml_obj, NULL, "monitor_cmd", * "/usr/libexec/pacemaker/lrmd_internal_ctl -c poke"); */ @@ -690,8 +682,8 @@ create_container( * different node than the one on which the docker container * is active. * - * Makes it possible to have remote nodes, running docker - * containers with pacemaker_remoted inside in order to start + * This makes it possible to have Pacemaker Remote nodes running + * containers with pacemaker-remoted inside in order to start * services inside those containers. */ set_bit(tuple->remote->flags, pe_rsc_allow_remote_remotes); diff --git a/lib/pengine/rules_alerts.c b/lib/pengine/rules_alerts.c index bc01e42a410..c98780f85e9 100644 --- a/lib/pengine/rules_alerts.c +++ b/lib/pengine/rules_alerts.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015-2017 Andrew Beekhof + * Copyright 2015-2018 Andrew Beekhof * * This source code is licensed under the GNU Lesser General Public License * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. @@ -168,7 +168,7 @@ unpack_alert(xmlNode *alert, crm_alert_entry_t *entry, guint *max_timeout) * * \return List of unpacked alert entries * - * \note Unlike most unpack functions, this is not used by the pengine itself, + * \note Unlike most unpack functions, this is not used by the scheduler itself, * but is supplied for use by daemons that need to send alerts. */ GListPtr diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c index 4a837373733..67b1ef97c00 100644 --- a/lib/pengine/unpack.c +++ b/lib/pengine/unpack.c @@ -1176,7 +1176,7 @@ determine_online_status_no_fencing(pe_working_set_t * data_set, xmlNode * node_s } } else if (this_node->details->expected_up == FALSE) { - crm_trace("CRMd is down: in_cluster=%s", crm_str(in_cluster)); + crm_trace("Controller is down: in_cluster=%s", crm_str(in_cluster)); crm_trace("\tis_peer=%s, join=%s, expected=%s", crm_str(is_peer), crm_str(join), crm_str(exp_state)); @@ -1772,7 +1772,7 @@ process_rsc_state(resource_t * rsc, node_t * node, /* If this is a guest node, fence it (regardless of whether fencing is * enabled, because guest node fencing is done by recovery of the - * container resource rather than by stonithd). Mark the resource + * container resource rather than by the fencer). Mark the resource * we're processing as failed. When the guest comes back up, its * operation history in the CIB will be cleared, freeing the affected * resource to run again once we are sure we know its state. diff --git a/lib/services/systemd.c b/lib/services/systemd.c index 46423865383..46d21e1b725 100644 --- a/lib/services/systemd.c +++ b/lib/services/systemd.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2016 Andrew Beekhof + * Copyright 2012-2018 Andrew Beekhof * * This source code is licensed under the GNU Lesser General Public License * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. @@ -764,7 +764,7 @@ systemd_unit_exec(svc_action_t * op) op->synchronous ? "" : "a", op->action, op->agent, op->rsc); if (safe_str_eq(op->action, "meta-data")) { - /* TODO: See if we can teach the lrmd not to make these calls synchronously */ + // @TODO Implement an async meta-data call in executor API op->stdout_data = systemd_unit_metadata(op->agent, op->timeout); op->rc = PCMK_OCF_OK; diff --git a/lrmd/Makefile.am b/lrmd/Makefile.am deleted file mode 100644 index 0d05fcf010d..00000000000 --- a/lrmd/Makefile.am +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright (c) 2012 David Vossel -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -include $(top_srcdir)/Makefile.common - -lrmdlibdir = $(CRM_DAEMON_DIR) -lrmdlib_PROGRAMS = lrmd - -# Test components -lrmdlib_PROGRAMS += lrmd_test - -initdir = $(INITDIR) -init_SCRIPTS = pacemaker_remote -sbin_PROGRAMS = pacemaker_remoted - -if BUILD_SYSTEMD -systemdunit_DATA = pacemaker_remote.service -endif - -lrmd_CFLAGS = $(CFLAGS_HARDENED_EXE) -lrmd_LDFLAGS = $(LDFLAGS_HARDENED_EXE) - -lrmd_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/services/libcrmservice.la \ - $(top_builddir)/lib/fencing/libstonithd.la ${COMPAT_LIBS} -lrmd_SOURCES = main.c lrmd.c lrmd_alert_api.c - -pacemaker_remoted_CPPFLAGS = -DSUPPORT_REMOTE $(AM_CPPFLAGS) - -pacemaker_remoted_CFLAGS = $(CFLAGS_HARDENED_EXE) -pacemaker_remoted_LDFLAGS = $(LDFLAGS_HARDENED_EXE) - -pacemaker_remoted_LDADD = $(lrmd_LDADD) \ - $(top_builddir)/lib/lrmd/liblrmd.la -pacemaker_remoted_SOURCES = $(lrmd_SOURCES) tls_backend.c ipc_proxy.c - -lrmd_test_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/lrmd/liblrmd.la \ - $(top_builddir)/lib/cib/libcib.la \ - $(top_builddir)/lib/services/libcrmservice.la \ - $(top_builddir)/lib/pengine/libpe_status.la \ - $(top_builddir)/pengine/libpengine.la -lrmd_test_SOURCES = test.c - -noinst_HEADERS = lrmd_private.h - -CLEANFILES = $(man8_MANS) diff --git a/pacemaker.spec.in b/pacemaker.spec.in index b6d5cccda5c..4dad538494c 100644 --- a/pacemaker.spec.in +++ b/pacemaker.spec.in @@ -146,6 +146,9 @@ ## Add option to turn off hardening of libraries and daemon executables %bcond_without hardening +## Add option to disable links for legacy daemon names +%bcond_without legacy_links + # Keep sane profiling data if requested %if %{with profiling} @@ -393,15 +396,16 @@ export LDFLAGS_HARDENED_LIB="%{?_hardening_ldflags}" ./autogen.sh -%{configure} \ - %{?with_profiling: --with-profiling} \ - %{?with_coverage: --with-coverage} \ - %{!?with_doc: --with-brand=} \ - %{!?with_hardening: --disable-hardening} \ - %{?python_path: PYTHON=%{python_path}} \ - %{?gnutls_priorities: --with-gnutls-priorities="%{gnutls_priorities}"} \ - --with-initdir=%{_initrddir} \ - --localstatedir=%{_var} \ +%{configure} \ + %{?python_path: PYTHON=%{python_path}} \ + %{!?with_hardening: --disable-hardening} \ + %{!?with_legacy_links: --disable-legacy-links} \ + %{?with_profiling: --with-profiling} \ + %{?with_coverage: --with-coverage} \ + %{!?with_doc: --with-brand=} \ + %{?gnutls_priorities: --with-gnutls-priorities="%{gnutls_priorities}"} \ + --with-initdir=%{_initrddir} \ + --localstatedir=%{_var} \ --with-version=%{version}-%{release} %if 0%{?suse_version} >= 1200 @@ -413,7 +417,7 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool make %{_smp_mflags} V=1 all %check -{ cts/cts-pengine --run one-or-more-unrunnable-instances \ +{ cts/cts-scheduler --run one-or-more-unrunnable-instances \ && cts/cts-cli \ && touch .CHECKED } 2>&1 | sed 's/[fF]ail/faiil/g' # prevent false positives in rpmlint @@ -438,9 +442,6 @@ install -m 644 tools/crm_mon.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/crm_mo mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/lib/rpm-state/%{name} %endif -# These are not actually scripts -find %{buildroot} -name '*.xml' -type f -print0 | xargs -0 chmod a-x - # Don't package static libs find %{buildroot} -name '*.a' -type f -print0 | xargs -0 rm -f find %{buildroot} -name '*.la' -type f -print0 | xargs -0 rm -f @@ -594,8 +595,11 @@ exit 0 %{_initrddir}/pacemaker %endif -%exclude %{_libexecdir}/pacemaker/lrmd_test +%exclude %{_libexecdir}/pacemaker/cts-exec-helper +%exclude %{_sbindir}/pacemaker-remoted +%if %{with legacy_links} %exclude %{_sbindir}/pacemaker_remoted +%endif %{_libexecdir}/pacemaker/* %{_sbindir}/crm_attribute @@ -604,9 +608,9 @@ exit 0 %{_sbindir}/fence_legacy %{_sbindir}/stonith_admin -%doc %{_mandir}/man7/crmd.* -%doc %{_mandir}/man7/pengine.* -%doc %{_mandir}/man7/stonithd.* +%doc %{_mandir}/man7/pacemaker-controld.* +%doc %{_mandir}/man7/pacemaker-schedulerd.* +%doc %{_mandir}/man7/pacemaker-fenced.* %doc %{_mandir}/man7/ocf_pacemaker_controld.* %doc %{_mandir}/man7/ocf_pacemaker_o2cb.* %doc %{_mandir}/man7/ocf_pacemaker_remote.* @@ -666,7 +670,7 @@ exit 0 %exclude %{_datadir}/pacemaker/tests %{_datadir}/pacemaker %{_datadir}/snmp/mibs/PCMK-MIB.txt -%{_libexecdir}/pacemaker/lrmd_test +%{_libexecdir}/pacemaker/cts-exec-helper %exclude /usr/lib/ocf/resource.d/pacemaker/controld %exclude /usr/lib/ocf/resource.d/pacemaker/o2cb @@ -677,9 +681,9 @@ exit 0 /usr/lib/ocf/resource.d/pacemaker %doc %{_mandir}/man7/* -%exclude %{_mandir}/man7/crmd.* -%exclude %{_mandir}/man7/pengine.* -%exclude %{_mandir}/man7/stonithd.* +%exclude %{_mandir}/man7/pacemaker-controld.* +%exclude %{_mandir}/man7/pacemaker-schedulerd.* +%exclude %{_mandir}/man7/pacemaker-fenced.* %exclude %{_mandir}/man7/ocf_pacemaker_controld.* %exclude %{_mandir}/man7/ocf_pacemaker_o2cb.* %exclude %{_mandir}/man7/ocf_pacemaker_remote.* @@ -689,7 +693,7 @@ exit 0 %exclude %{_mandir}/man8/crm_master.* %exclude %{_mandir}/man8/fence_legacy.* %exclude %{_mandir}/man8/pacemakerd.* -%exclude %{_mandir}/man8/pacemaker_remoted.* +%exclude %{_mandir}/man8/pacemaker-remoted.* %exclude %{_mandir}/man8/stonith_admin.* %license licenses/GPLv2 @@ -734,8 +738,11 @@ exit 0 %{_initrddir}/pacemaker_remote %endif +%{_sbindir}/pacemaker-remoted +%if %{with legacy_links} %{_sbindir}/pacemaker_remoted -%{_mandir}/man8/pacemaker_remoted.* +%endif +%{_mandir}/man8/pacemaker-remoted.* %license licenses/GPLv2 %doc COPYING %doc ChangeLog diff --git a/pengine/Makefile.am b/pengine/Makefile.am deleted file mode 100644 index 00ed049f8a5..00000000000 --- a/pengine/Makefile.am +++ /dev/null @@ -1,68 +0,0 @@ -# -# Copyright (C) 2004 Andrew Beekhof -# -# This program 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. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -include $(top_srcdir)/Makefile.common - -AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) - -halibdir = $(CRM_DAEMON_DIR) - -COMMONLIBS = $(top_builddir)/lib/common/libcrmcommon.la \ - $(top_builddir)/lib/pengine/libpe_status.la \ - libpengine.la - -## libraries -lib_LTLIBRARIES = libpengine.la - -## binary progs -halib_PROGRAMS = pengine - -if BUILD_XML_HELP -man7_MANS = pengine.7 -endif - -## SOURCES - -noinst_HEADERS = allocate.h notif.h utils.h pengine.h - -libpengine_la_LDFLAGS = -version-info 16:0:0 - -libpengine_la_CFLAGS = $(CFLAGS_HARDENED_LIB) -libpengine_la_LDFLAGS += $(LDFLAGS_HARDENED_LIB) - -libpengine_la_LIBADD = $(top_builddir)/lib/pengine/libpe_status.la \ - $(top_builddir)/lib/cib/libcib.la -# -L$(top_builddir)/lib/pils -lpils -export-dynamic -module -avoid-version -libpengine_la_SOURCES = pengine.c allocate.c notif.c utils.c constraints.c \ - native.c group.c clone.c pe_promotable.c graph.c \ - utilization.c container.c - -pengine_CFLAGS = $(CFLAGS_HARDENED_EXE) -pengine_LDFLAGS = $(LDFLAGS_HARDENED_EXE) -pengine_LDADD = $(top_builddir)/lib/cib/libcib.la $(COMMONLIBS) -# libcib for get_object_root() -pengine_SOURCES = main.c - -install-exec-local: - $(mkinstalldirs) $(DESTDIR)/$(PE_STATE_DIR) - -chown $(CRM_DAEMON_USER) $(DESTDIR)/$(PE_STATE_DIR) - -chgrp $(CRM_DAEMON_GROUP) $(DESTDIR)/$(PE_STATE_DIR) - -chmod 750 $(DESTDIR)/$(PE_STATE_DIR) - -uninstall-local: - -CLEANFILES = $(man7_MANS) diff --git a/tools/Makefile.am b/tools/Makefile.am index 24b1d8bdd56..ed40f14abcf 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -21,8 +21,21 @@ sbin_SCRIPTS += cibsecret endif EXTRA_DIST = $(sbin_SCRIPTS) -sbin_PROGRAMS = crm_simulate crmadmin cibadmin crm_node crm_attribute crm_resource crm_verify \ - crm_shadow attrd_updater crm_diff crm_mon iso8601 crm_ticket crm_error +sbin_PROGRAMS = attrd_updater \ + cibadmin \ + crmadmin \ + crm_simulate \ + crm_attribute \ + crm_diff \ + crm_error \ + crm_mon \ + crm_node \ + crm_resource \ + crm_shadow \ + crm_verify \ + crm_ticket \ + iso8601 \ + stonith_admin if BUILD_SERVICELOG sbin_PROGRAMS += notifyServicelogEvent @@ -59,10 +72,10 @@ crm_node_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la \ $(CLUSTERLIBS) crm_simulate_SOURCES = crm_simulate.c fake_transition.c -crm_simulate_CFLAGS = -I$(top_srcdir)/pengine +crm_simulate_CFLAGS = -I$(top_srcdir)/daemons/schedulerd crm_simulate_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ - $(top_builddir)/pengine/libpengine.la \ + $(top_builddir)/daemons/schedulerd/libpengine.la \ $(top_builddir)/lib/cib/libcib.la \ $(top_builddir)/lib/lrmd/liblrmd.la \ $(top_builddir)/lib/transition/libtransitioner.la \ @@ -72,9 +85,10 @@ crm_diff_SOURCES = crm_diff.c crm_diff_LDADD = $(top_builddir)/lib/common/libcrmcommon.la crm_mon_SOURCES = crm_mon.c +crm_mon_CFLAGS = -I$(top_srcdir)/daemons/schedulerd crm_mon_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ $(top_builddir)/lib/fencing/libstonithd.la \ - $(top_builddir)/pengine/libpengine.la \ + $(top_builddir)/daemons/schedulerd/libpengine.la \ $(top_builddir)/lib/cib/libcib.la \ $(top_builddir)/lib/common/libcrmcommon.la \ $(CURSESLIBS) @@ -82,7 +96,7 @@ crm_mon_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ # Arguments could be made that this should live in crm/pengine crm_verify_SOURCES = crm_verify.c crm_verify_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ - $(top_builddir)/pengine/libpengine.la \ + $(top_builddir)/daemons/schedulerd/libpengine.la \ $(top_builddir)/lib/cib/libcib.la \ $(top_builddir)/lib/common/libcrmcommon.la @@ -92,12 +106,12 @@ crm_attribute_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la \ $(top_builddir)/lib/common/libcrmcommon.la crm_resource_SOURCES = crm_resource.c crm_resource_ban.c crm_resource_runtime.c crm_resource_print.c fake_transition.c -crm_resource_CFLAGS = -I$(top_srcdir)/pengine +crm_resource_CFLAGS = -I$(top_srcdir)/daemons/schedulerd crm_resource_LDADD = $(top_builddir)/lib/pengine/libpe_rules.la \ $(top_builddir)/lib/lrmd/liblrmd.la \ $(top_builddir)/lib/services/libcrmservice.la \ $(top_builddir)/lib/pengine/libpe_status.la \ - $(top_builddir)/pengine/libpengine.la \ + $(top_builddir)/daemons/schedulerd/libpengine.la \ $(top_builddir)/lib/transition/libtransitioner.la \ $(top_builddir)/lib/cib/libcib.la \ $(top_builddir)/lib/common/libcrmcommon.la @@ -109,12 +123,21 @@ attrd_updater_SOURCES = attrd_updater.c attrd_updater_LDADD = $(top_builddir)/lib/common/libcrmcommon.la crm_ticket_SOURCES = crm_ticket.c +crm_ticket_CFLAGS = -I$(top_srcdir)/daemons/schedulerd crm_ticket_LDADD = $(top_builddir)/lib/pengine/libpe_rules.la \ $(top_builddir)/lib/pengine/libpe_status.la \ - $(top_builddir)/pengine/libpengine.la \ + $(top_builddir)/daemons/schedulerd/libpengine.la \ $(top_builddir)/lib/cib/libcib.la \ $(top_builddir)/lib/common/libcrmcommon.la +stonith_admin_SOURCES = stonith_admin.c +stonith_admin_LDADD = $(top_builddir)/lib/common/libcrmcommon.la \ + $(top_builddir)/lib/cib/libcib.la \ + $(top_builddir)/lib/pengine/libpe_status.la \ + $(top_builddir)/lib/cluster/libcrmcluster.la \ + $(top_builddir)/lib/fencing/libstonithd.la \ + $(CLUSTERLIBS) + if BUILD_SERVICELOG notifyServicelogEvent_SOURCES = notifyServicelogEvent.c notifyServicelogEvent_CFLAGS = $(SERVICELOG_CFLAGS) diff --git a/tools/attrd_updater.c b/tools/attrd_updater.c index 9bed489d9ec..116a125b7db 100644 --- a/tools/attrd_updater.c +++ b/tools/attrd_updater.c @@ -1,20 +1,8 @@ - -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -43,19 +31,19 @@ static struct crm_option long_options[] = { {"name", 1, 0, 'n', "The attribute's name"}, {"-spacer-",1, 0, '-', "\nCommands:"}, - {"update", 1, 0, 'U', "Update the attribute's value in attrd. If this causes the value to change, it will also be updated in the cluster configuration"}, - {"update-both", 1, 0, 'B', "Update the attribute's value and time to wait (dampening) in attrd. If this causes the value or dampening to change, the attribute will also be written to the cluster configuration, so be aware that repeatedly changing the dampening reduces its effectiveness."}, - {"update-delay", 0, 0, 'Y', "Update the attribute's dampening in attrd (requires -d/--delay). If this causes the dampening to change, the attribute will also be written to the cluster configuration, so be aware that repeatedly changing the dampening reduces its effectiveness."}, - {"query", 0, 0, 'Q', "\tQuery the attribute's value from attrd"}, - {"delete", 0, 0, 'D', "\tDelete the attribute in attrd. If a value was previously set, it will also be removed from the cluster configuration"}, - {"refresh", 0, 0, 'R', "\t(Advanced) Force the attrd daemon to resend all current values to the CIB\n"}, - + {"update", 1, 0, 'U', "Update the attribute's value in pacemaker-attrd. If this causes the value to change, it will also be updated in the cluster configuration"}, + {"update-both", 1, 0, 'B', "Update the attribute's value and time to wait (dampening) in pacemaker-attrd. If this causes the value or dampening to change, the attribute will also be written to the cluster configuration, so be aware that repeatedly changing the dampening reduces its effectiveness."}, + {"update-delay", 0, 0, 'Y', "Update the attribute's dampening in pacemaker-attrd (requires -d/--delay). If this causes the dampening to change, the attribute will also be written to the cluster configuration, so be aware that repeatedly changing the dampening reduces its effectiveness."}, + {"query", 0, 0, 'Q', "\tQuery the attribute's value from pacemaker-attrd"}, + {"delete", 0, 0, 'D', "\tDelete the attribute in pacemaker-attrd. If a value was previously set, it will also be removed from the cluster configuration"}, + {"refresh", 0, 0, 'R', "\t(Advanced) Force the pacemaker-attrd daemon to resend all current values to the CIB\n"}, + {"-spacer-",1, 0, '-', "\nAdditional options:"}, {"delay", 1, 0, 'd', "The time to wait (dampening) in seconds for further changes before writing"}, {"set", 1, 0, 's', "(Advanced) The attribute set in which to place the value"}, {"node", 1, 0, 'N', "Set the attribute for the named node (instead of the local one)"}, {"all", 0, 0, 'A', "Show values of the attribute for all nodes (query only)"}, - /* lifetime could be implemented for atomic attrd if there is sufficient user demand */ + /* lifetime could be implemented if there is sufficient user demand */ {"lifetime",1, 0, 'l', "(Deprecated) Lifetime of the node attribute (silently ignored by cluster)"}, {"private", 0, 0, 'p', "\tIf this creates a new attribute, never write the attribute to the CIB"}, @@ -172,8 +160,8 @@ main(int argc, char **argv) } else { /* @TODO We don't know whether the specified node is a Pacemaker Remote * node or not, so we can't set attrd_opt_remote when appropriate. - * However, it's not a big problem, because attrd will learn and - * remember a node's "remoteness". + * However, it's not a big problem, because pacemaker-attrd will learn + * and remember a node's "remoteness". */ attr_node = attrd_get_target(attr_node); @@ -186,7 +174,7 @@ main(int argc, char **argv) /*! * \internal - * \brief Submit a query request to attrd and wait for reply + * \brief Submit a query request to pacemaker-attrd and wait for reply * * \param[in] name Name of attribute to query * \param[in] host Query applies to this host only (or all hosts if NULL) @@ -213,7 +201,7 @@ send_attrd_query(const char *name, const char *host, xmlNode **reply) crm_xml_add(query, F_ATTRD_TASK, ATTRD_OP_QUERY); crm_xml_add(query, F_ATTRD_ATTRIBUTE, name); - /* Connect to attrd, send query XML and get reply */ + /* Connect to pacemaker-attrd, send query XML and get reply */ crm_debug("Sending query for value of %s on %s", name, (host? host : "all nodes")); ipc = crm_ipc_new(T_ATTRD, 0); if (crm_ipc_connect(ipc) == FALSE) { @@ -232,7 +220,7 @@ send_attrd_query(const char *name, const char *host, xmlNode **reply) } /*! - * \brief Validate attrd's XML reply to an query + * \brief Validate pacemaker-attrd's XML reply to an query * * param[in] reply Root of reply XML tree to validate * param[in] attr_name Name of attribute that was queried @@ -271,7 +259,7 @@ validate_attrd_reply(xmlNode *reply, const char *attr_name) } /*! - * \brief Print the attribute values in an attrd XML query reply + * \brief Print the attribute values in a pacemaker-attrd XML query reply * * \param[in] reply Root of XML tree with query reply * \param[in] attr_name Name of attribute that was queried @@ -307,7 +295,7 @@ print_attrd_values(xmlNode *reply, const char *attr_name) } /*! - * \brief Submit a query to attrd and print reply + * \brief Submit a query to pacemaker-attrd and print reply * * \param[in] attr_name Name of attribute to be affected by request * \param[in] attr_node Name of host to query for (or NULL for localhost) @@ -328,7 +316,7 @@ do_query(const char *attr_name, const char *attr_node, gboolean query_all) attr_node = attrd_get_target(attr_node); } - /* Build and send attrd request, and get XML reply */ + /* Build and send pacemaker-attrd request, and get XML reply */ rc = send_attrd_query(attr_name, attr_node, &reply); if (rc != pcmk_ok) { fprintf(stderr, "Could not query value of %s: %s (%d)\n", attr_name, pcmk_strerror(rc), rc); diff --git a/tools/cib_shadow.c b/tools/cib_shadow.c index fd2cfdc96a6..84d8ac97972 100644 --- a/tools/cib_shadow.c +++ b/tools/cib_shadow.c @@ -1,20 +1,8 @@ - /* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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. + * Copyright 2004-2018 Andrew Beekhof * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -347,7 +335,8 @@ main(int argc, char **argv) if (command == 'c' || command == 'r') { rc = real_cib->cmds->query(real_cib, NULL, &output, command_options); if (rc != pcmk_ok) { - fprintf(stderr, "Could not connect to the CIB: %s\n", pcmk_strerror(rc)); + fprintf(stderr, "Could not connect to the CIB manager: %s\n", + pcmk_strerror(rc)); exit_code = crm_errno2exit(rc); goto done; } diff --git a/tools/cibadmin.c b/tools/cibadmin.c index 2ebb90641f2..68aa6ed0866 100644 --- a/tools/cibadmin.c +++ b/tools/cibadmin.c @@ -1,20 +1,8 @@ - /* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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. + * Copyright 2004-2018 Andrew Beekhof * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -512,8 +500,9 @@ do_init(void) the_cib = cib_new(); rc = the_cib->cmds->signon(the_cib, crm_system_name, cib_command); if (rc != pcmk_ok) { - crm_err("Signon to CIB failed: %s", pcmk_strerror(rc)); - fprintf(stderr, "Signon to CIB failed: %s\n", pcmk_strerror(rc)); + crm_err("Connection to the CIB manager failed: %s", pcmk_strerror(rc)); + fprintf(stderr, "Connection to the CIB manager failed: %s\n", + pcmk_strerror(rc)); } return rc; diff --git a/tools/crm_attribute.c b/tools/crm_attribute.c index 8379b4c5f70..f0bfdd214d1 100644 --- a/tools/crm_attribute.c +++ b/tools/crm_attribute.c @@ -1,20 +1,8 @@ - /* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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. + * Copyright 2004-2018 Andrew Beekhof * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -221,7 +209,8 @@ main(int argc, char **argv) rc = the_cib->cmds->signon(the_cib, crm_system_name, cib_command); if (rc != pcmk_ok) { - fprintf(stderr, "Error signing on to the CIB service: %s\n", pcmk_strerror(rc)); + fprintf(stderr, "Error connecting to the CIB manager: %s\n", + pcmk_strerror(rc)); return crm_exit(crm_errno2exit(rc)); } @@ -282,7 +271,8 @@ main(int argc, char **argv) && pcmk_ok == attrd_update_delegate(NULL, command, dest_uname, attr_name, attr_value, type, set_name, NULL, NULL, is_remote_node?attrd_opt_remote:attrd_opt_none)) { - crm_info("Update %s=%s sent via attrd", attr_name, command == 'D' ? "" : attr_value); + crm_info("Update %s=%s sent via pacemaker-attrd", + attr_name, ((command == 'D')? "" : attr_value)); } else if (command == 'D') { rc = delete_attr_delegate(the_cib, cib_opts, type, dest_node, set_type, set_name, diff --git a/tools/crm_mon.c b/tools/crm_mon.c index 3eb1577044e..c59366b369d 100644 --- a/tools/crm_mon.c +++ b/tools/crm_mon.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2004-2015 Andrew Beekhof + * Copyright 2004-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -46,7 +35,7 @@ #include #include #include <../lib/pengine/unpack.h> -#include <../pengine/pengine.h> +#include #include extern void cleanup_alloc_calculations(pe_working_set_t * data_set); @@ -208,7 +197,7 @@ mon_timer_popped(gpointer data) static void mon_cib_connection_destroy(gpointer user_data) { - print_as("Connection to the CIB terminated\n"); + print_as("Connection to the CIB manager terminated\n"); if (cib) { cib->cmds->signoff(cib); timer_id = g_timeout_add(reconnect_msec, mon_timer_popped, NULL); @@ -3714,7 +3703,7 @@ mon_st_callback(stonith_t * st, stonith_event_t * e) } /* - * De-init ncurses, signoff from the CIB and deallocate memory. + * De-init ncurses, disconnect from the CIB manager, and deallocate memory. */ static void clean_up(crm_exit_t exit_code) diff --git a/tools/crm_report.in b/tools/crm_report.in index 3a3e91b2ded..ffd8137ee6c 100644 --- a/tools/crm_report.in +++ b/tools/crm_report.in @@ -1,22 +1,10 @@ #!/bin/sh - - # Copyright (C) 2010 Andrew Beekhof - # - # This program 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.1 of the License, or (at your option) any later version. - # - # This software 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 this library; if not, write to the Free Software - # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - # - +# +# Copyright 2010-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# TEMP=`@GETOPT_PATH@ \ -o hv?xl:f:t:n:T:L:p:c:dSCu:D:MVse: \ @@ -460,7 +448,7 @@ elif [ "x$start_time" != "x" ]; then debug "We are a cluster node" else debug "We are a log master" - masterlog=`findmsg 1 "crmd\\|CTS"` + masterlog=`findmsg 1 "pacemaker-controld\\|CTS"` fi diff --git a/tools/crm_resource.c b/tools/crm_resource.c index 2798e61470f..9818692b389 100644 --- a/tools/crm_resource.c +++ b/tools/crm_resource.c @@ -1,20 +1,8 @@ - /* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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. + * Copyright 2004-2018 Andrew Beekhof * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -53,7 +41,7 @@ resource_ipc_timeout(gpointer data) static void resource_ipc_connection_destroy(gpointer user_data) { - crm_info("Connection to CRMd was terminated"); + crm_info("Connection to controller was terminated"); crm_exit(CRM_EX_DISCONNECT); } @@ -65,8 +53,10 @@ start_mainloop(void) } mainloop = g_main_loop_new(NULL, FALSE); - fprintf(stderr, "Waiting for %d replies from the CRMd", crmd_replies_needed); - crm_debug("Waiting for %d replies from the CRMd", crmd_replies_needed); + fprintf(stderr, "Waiting for %d replies from the controller", + crmd_replies_needed); + crm_debug("Waiting for %d replies from the controller", + crmd_replies_needed); g_timeout_add(message_timeout_ms, resource_ipc_timeout, NULL); g_main_loop_run(mainloop); @@ -429,7 +419,7 @@ main(int argc, char **argv) bool require_resource = TRUE; /* whether command requires that resource be specified */ bool require_dataset = TRUE; /* whether command requires populated dataset instance */ - bool require_crmd = FALSE; /* whether command requires connection to CRMd */ + bool require_crmd = FALSE; // whether command requires controller connection int rc = pcmk_ok; int is_ocf_rc = 0; @@ -784,11 +774,11 @@ main(int argc, char **argv) require_dataset = TRUE; } - /* Establish a connection to the CIB */ + /* Establish a connection to the CIB manager */ cib_conn = cib_new(); rc = cib_conn->cmds->signon(cib_conn, crm_system_name, cib_command); if (rc != pcmk_ok) { - CMD_ERR("Error signing on to the CIB service: %s", pcmk_strerror(rc)); + CMD_ERR("Error connecting to the CIB manager: %s", pcmk_strerror(rc)); goto bail; } @@ -827,7 +817,7 @@ main(int argc, char **argv) } } - /* Establish a connection to the CRMd if needed */ + // Establish a connection to the controller if needed if (require_crmd) { xmlNode *xml = NULL; mainloop_io_t *source = @@ -835,7 +825,7 @@ main(int argc, char **argv) crmd_channel = mainloop_get_ipc_client(source); if (crmd_channel == NULL) { - CMD_ERR("Error signing on to the CRMd service"); + CMD_ERR("Error connecting to the controller"); rc = -ENOTCONN; goto bail; } @@ -1126,7 +1116,8 @@ main(int argc, char **argv) if (node && is_remote_node(node)) { if (node->details->remote_rsc == NULL || node->details->remote_rsc->running_on == NULL) { - CMD_ERR("No lrmd connection detected to remote node %s", host_uname); + CMD_ERR("No cluster connection to Pacemaker Remote node %s detected", + host_uname); rc = -ENXIO; goto bail; } diff --git a/tools/crm_resource.h b/tools/crm_resource.h index 7078ca579cc..d4cb1d13c3e 100644 --- a/tools/crm_resource.h +++ b/tools/crm_resource.h @@ -1,20 +1,8 @@ - /* - * Copyright (C) 2004 Andrew Beekhof - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This software 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. + * Copyright 2004-2018 Andrew Beekhof * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #include @@ -30,7 +18,7 @@ #include #include #include -#include "../pengine/pengine.h" +#include #include "fake_transition.h" extern bool print_pending; diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c index 8373a495127..61430c3d8f2 100644 --- a/tools/crm_resource_runtime.c +++ b/tools/crm_resource_runtime.c @@ -1,20 +1,8 @@ - /* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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. + * Copyright 2004-2018 Andrew Beekhof * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -447,7 +435,8 @@ send_lrm_rsc_op(crm_ipc_t * crmd_channel, const char *op, if (node && is_remote_node(node)) { if (node->details->remote_rsc == NULL || node->details->remote_rsc->running_on == NULL) { - CMD_ERR("No lrmd connection detected to remote node %s", host_uname); + CMD_ERR("No cluster connection to Pacemaker Remote node %s detected", + host_uname); return -ENXIO; } node = node->details->remote_rsc->running_on->data; @@ -506,7 +495,7 @@ send_lrm_rsc_op(crm_ipc_t * crmd_channel, const char *op, rc = 0; } else { - crm_debug("Could not send %s op to the crmd", op); + crm_debug("Could not send %s op to the controller", op); rc = -ENOTCONN; } @@ -1065,7 +1054,7 @@ update_working_set_xml(pe_working_set_t *data_set, xmlNode **xml) * \brief Update a working set's XML input based on a CIB query * * \param[in] data_set Data set instance to initialize - * \param[in] cib Connection to the CIB + * \param[in] cib Connection to the CIB manager * * \return pcmk_ok on success, -errno on failure * \note On success, caller is responsible for freeing memory allocated for @@ -1218,7 +1207,7 @@ max_delay_in(pe_working_set_t * data_set, GList *resources) * (specified in milliseconds, but a two-second * granularity is actually used; if 0, a timeout will be * calculated based on the resource timeout) - * \param[in] cib Connection to the CIB for modifying/checking resource + * \param[in] cib Connection to the CIB manager * * \return pcmk_ok on success, -errno on failure (exits on certain failures) */ @@ -1571,7 +1560,7 @@ print_pending_actions(GListPtr actions) * \param[in] timeout_ms Consider failed if actions do not complete in this time * (specified in milliseconds, but one-second granularity * is actually used; if 0, a default will be used) - * \param[in] cib Connection to the CIB + * \param[in] cib Connection to the CIB manager * * \return pcmk_ok on success, -errno on failure */ @@ -1616,8 +1605,8 @@ wait_till_stable(int timeout_ms, cib_t * cib) * done. Warn the user in this case. * * @TODO A possible long-term solution would be to reimplement the - * wait as a new crmd operation that would be forwarded to the DC. - * However, that would have potential problems of its own. + * wait as a new controller operation that would be forwarded to the + * DC. However, that would have potential problems of its own. */ const char *dc_version = g_hash_table_lookup(data_set.config_hash, "dc-version"); diff --git a/tools/crm_simulate.c b/tools/crm_simulate.c index 833c323da47..218e013d3d0 100644 --- a/tools/crm_simulate.c +++ b/tools/crm_simulate.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "fake_transition.h" cib_t *global_cib = NULL; @@ -490,7 +490,7 @@ static struct crm_option long_options[] = { {"all-actions", 0, 0, 'a', "\tDisplay all possible actions in the DOT graph - even ones not part of the transition"}, {"-spacer-", 0, 0, '-', "\nData Source:"}, - {"live-check", 0, 0, 'L', "\tConnect to the CIB and use the current contents as input"}, + {"live-check", 0, 0, 'L', "\tConnect to the CIB mamager and use the current CIB contents as input"}, {"xml-file", 1, 0, 'x', "\tRetrieve XML from the named file"}, {"xml-pipe", 0, 0, 'p', "\tRetrieve XML from stdin"}, @@ -790,7 +790,7 @@ main(int argc, char **argv) global_cib = cib_new(); rc = global_cib->cmds->signon(global_cib, crm_system_name, cib_command); if (rc != pcmk_ok) { - fprintf(stderr, "Could not connect to the CIB: %s\n", + fprintf(stderr, "Could not connect to the CIB manager: %s\n", pcmk_strerror(rc)); goto done; } diff --git a/tools/crm_ticket.c b/tools/crm_ticket.c index aa8b04cf0e3..8e6c9ab3d56 100644 --- a/tools/crm_ticket.c +++ b/tools/crm_ticket.c @@ -1,20 +1,8 @@ - -/* - * Copyright (C) 2012 Gao,Yan - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2012-2018 Gao,Yan + * + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -40,7 +28,7 @@ #include #include -#include <../pengine/pengine.h> +#include gboolean do_force = FALSE; gboolean BE_QUIET = FALSE; @@ -697,13 +685,13 @@ main(int argc, char **argv) cib_conn = cib_new(); if (cib_conn == NULL) { - CMD_ERR("Could not connect to CIB"); + CMD_ERR("Could not connect to the CIB manager"); return CRM_EX_DISCONNECT; } rc = cib_conn->cmds->signon(cib_conn, crm_system_name, cib_command); if (rc != pcmk_ok) { - CMD_ERR("Could not connect to CIB: %s", pcmk_strerror(rc)); + CMD_ERR("Could not connect to the CIB manager: %s", pcmk_strerror(rc)); exit_code = crm_errno2exit(rc); goto bail; } diff --git a/tools/crmadmin.c b/tools/crmadmin.c index 4b12e83ee1d..191a1a25cf4 100644 --- a/tools/crmadmin.c +++ b/tools/crmadmin.c @@ -1,19 +1,8 @@ -/* - * Copyright (C) 2004 Andrew Beekhof - * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +/* + * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -83,7 +72,10 @@ static struct crm_option long_options[] = { {"-spacer-", 1, 0, '-', "\n\tThis is an internal detail and is rarely useful to administrators except when deciding on which node to examine the logs.\n"}, {"nodes", 0, 0, 'N', "\tDisplay the uname of all member nodes"}, {"election", 0, 0, 'E', "(Advanced) Start an election for the cluster co-ordinator"}, - {"kill", 1, 0, 'K', "(Advanced) Shut down the crmd (not the rest of the clusterstack ) on the specified node"}, + { + "kill", 1, 0, 'K', + "(Advanced) Stop the controller (not the rest of the cluster stack) on specified node" + }, {"health", 0, 0, 'H', NULL, 1}, {"-spacer-", 1, 0, '-', "\nAdditional Options:"}, @@ -106,7 +98,7 @@ main(int argc, char **argv) crm_log_cli_init("crmadmin"); crm_set_options(NULL, "command [options]", long_options, - "Development tool for performing some crmd-specific commands." + "Development tool for performing some controller-specific commands." "\n Likely to be replaced by crm_node in the future"); if (argc < 2) { crm_help('?', CRM_EX_USAGE); @@ -319,7 +311,7 @@ do_work(void) void crmadmin_ipc_connection_destroy(gpointer user_data) { - crm_err("Connection to CRMd was terminated"); + crm_err("Connection to controller was terminated"); if (mainloop) { g_main_loop_quit(mainloop); } else { diff --git a/tools/fake_transition.c b/tools/fake_transition.c index cc4274eaa69..6410a2b9a36 100644 --- a/tools/fake_transition.c +++ b/tools/fake_transition.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2009 Andrew Beekhof + * Copyright 2009-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -33,7 +22,7 @@ #include #include #include -#include +#include #include "fake_transition.h" static bool fake_quiet = FALSE; diff --git a/tools/report.collector.in b/tools/report.collector.in index 46960f791cc..2540fc7769c 100644 --- a/tools/report.collector.in +++ b/tools/report.collector.in @@ -1,22 +1,12 @@ - # Copyright (C) 2007 Dejan Muhamedagic - # Almost everything as part of hb_report - # Copyright (C) 2010 Andrew Beekhof - # Cleanups, refactoring, extensions - # - # This program 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.1 of the License, or (at your option) any later version. - # - # This software 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 this library; if not, write to the Free Software - # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - # +# +# Originally based on hb_report +# Copyright 2007 Dejan Muhamedagic +# +# Later changes copyright 2010-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# if echo $REPORT_HOME | grep -qs '^/' @@ -211,7 +201,7 @@ getconfig() { fi done - if is_running crmd; then + if is_running pacemaker-controld; then dump_status_and_config case $cluster in corosync) crm_node -p --corosync > $target/$MEMBERSHIP_F 2>&1;; @@ -219,6 +209,11 @@ getconfig() { esac echo "$host" > $target/RUNNING + elif is_running pacemaker-remoted; then + dump_status_and_config + echo "$host" > $target/RUNNING + + # Pre-2.0.0 daemon name in case we're collecting on a mixed-version cluster elif is_running pacemaker_remoted; then dump_status_and_config echo "$host" > $target/RUNNING @@ -413,7 +408,7 @@ getpeinputs() { ) if [ "$flist" ]; then (cd $(dirname "$PE_STATE_DIR") && tar cf - $flist) | (cd "$3" && tar xf -) - debug "found `echo $flist | wc -w` pengine input files in $PE_STATE_DIR" + debug "found `echo $flist | wc -w` scheduler input files in $PE_STATE_DIR" fi fi } @@ -595,14 +590,15 @@ get_logfiles() { # - initial pacemakerd logs and tracing might go to a different file pattern="Starting Pacemaker" - # - make sure we get something from the Policy Engine + # - make sure we get something from the scheduler pattern="$pattern\\|Calculated Transition" - # - cib and lrmd updates (helpful on non-DC nodes or when the cluster has been up for a long time) + # - cib and pacemaker-execd updates + # (helpful on non-DC nodes and when cluster has been up for a long time) pattern="$pattern\\|cib_perform_op\\|process_lrm_event" # - pacemaker_remote might use a different file - pattern="$pattern\\|pacemaker_remoted:" + pattern="$pattern\\|pacemaker[-_]remoted:" findmsg 3 "$pattern" } diff --git a/tools/report.common.in b/tools/report.common.in index 5c01dbe1bef..9381bc5746b 100644 --- a/tools/report.common.in +++ b/tools/report.common.in @@ -1,23 +1,12 @@ - # Copyright (C) 2007 Dejan Muhamedagic - # Almost everything as part of hb_report - # Copyright (C) 2010 Andrew Beekhof - # Cleanups, refactoring, extensions - # - # - # This program 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.1 of the License, or (at your option) any later version. - # - # This software 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 this library; if not, write to the Free Software - # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - # +# +# Originally based on hb_report +# Copyright 2007 Dejan Muhamedagic +# +# Later changes copyright 2010-2018 Andrew Beekhof +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# host=`uname -n` shorthost=`echo $host | sed s:\\\\..*::` @@ -44,10 +33,10 @@ DRBD_INFO_F=drbd_info.txt EVENT_PATTERNS=" state do_state_transition membership pcmk_peer_update.*(lost|memb): -quorum crmd.*crm_update_quorum +quorum (crmd|pacemaker-controld).*crm_update_quorum pause Process.pause.detected -resources lrmd.*rsc:(start|stop) -stonith te_fence_node|stonith-ng.*log_oper.*report|stonithd.*(requests|(Succeeded|Failed).to.STONITH|result=) +resources (lrmd|pacemaker-execd).*rsc:(start|stop) +stonith te_fence_node|fenced.*(requests|(Succeeded|Failed).to.|result=) start_stop shutdown.decision|Corosync.Cluster.Engine|corosync.*Initializing.transport|Executive.Service.RELEASE|crm_shutdown:.Requesting.shutdown|pcmk_shutdown:.Shutdown.complete " @@ -79,7 +68,7 @@ SYSLOGS=" /var/log/cluster/* " -# Whether pacemaker_remoted was found (0 = yes, 1 = no, -1 = haven't looked yet) +# Whether pacemaker-remoted was found (0 = yes, 1 = no, -1 = haven't looked yet) REMOTED_STATUS=-1 # @@ -131,7 +120,12 @@ is_running() { has_remoted() { if [ $REMOTED_STATUS -eq -1 ]; then REMOTED_STATUS=1 - if which pacemaker_remoted >/dev/null 2>&1; then + if which pacemaker-remoted >/dev/null 2>&1; then + REMOTED_STATUS=0 + # Check for pre-2.0.0 daemon name in case we have mixed-version cluster + elif which pacemaker_remoted >/dev/null 2>&1; then + REMOTED_STATUS=0 + elif [ -x "@sbindir@/pacemaker-remoted" ]; then REMOTED_STATUS=0 elif [ -x "@sbindir@/pacemaker_remoted" ]; then REMOTED_STATUS=0 @@ -139,7 +133,9 @@ has_remoted() { # @TODO: the binary might be elsewhere, # but a global search is too expensive for d in /{usr,opt}/{local/,}{s,}bin; do - if [ -x "${d}/pacemaker_remoted" ]; then + if [ -x "${d}/pacemaker-remoted" ]; then + REMOTED_STATUS=0 + elif [ -x "${d}/pacemaker_remoted" ]; then REMOTED_STATUS=0 fi done @@ -162,7 +158,7 @@ detect_daemon_dir() { do # pacemaker and pacemaker-cts packages can install to daemon directory, # so check for a file from each - if [ -e $d/pengine ] || [ -e $d/lrmd_test ]; then + if [ -e $d/pacemaker-schedulerd ] || [ -e $d/cts-exec-helper ]; then found_dir "daemons" "$d" return fi @@ -174,7 +170,7 @@ detect_daemon_dir() { return fi - for f in $(find / -maxdepth $maxdepth -type f -name pengine -o -name lrmd_test); do + for f in $(find / -maxdepth $maxdepth -type f -name pacemaker-schedulerd -o -name cts-exec-helper); do d=$(dirname "$f") found_dir "daemons" "$d" return @@ -223,22 +219,22 @@ detect_pe_dir() { d="$config_root/pengine" if [ -d "$d" ]; then - found_dir "policy engine inputs" "$d" + found_dir "scheduler inputs" "$d" return fi if has_remoted; then - info "Pacemaker policy engine inputs not found (this appears to be a Pacemaker Remote node)" + info "Pacemaker scheduler inputs not found (this appears to be a Pacemaker Remote node)" return fi - info "Searching for where Pacemaker keeps Policy Engine inputs... this may take a while" + info "Searching for where Pacemaker keeps scheduler inputs... this may take a while" for d in $(find / -maxdepth $maxdepth -type d -name pengine); do - found_dir "policy engine inputs" "$d" + found_dir "scheduler inputs" "$d" return done - fatal "Pacemaker policy engine inputs not found (nonstandard installation?)" + fatal "Pacemaker scheduler inputs not found (nonstandard installation?)" } detect_host() { diff --git a/fencing/admin.c b/tools/stonith_admin.c similarity index 96% rename from fencing/admin.c rename to tools/stonith_admin.c index a48bc4d2248..8025799f688 100644 --- a/fencing/admin.c +++ b/tools/stonith_admin.c @@ -1,19 +1,8 @@ /* - * Copyright (C) 2009 Andrew Beekhof + * Copyright 2009-2018 Andrew Beekhof * - * This program 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. - * - * This software 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 this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * This source code is licensed under the GNU General Public License version 2 + * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include @@ -207,7 +196,7 @@ try_mainloop_connect(void) sleep(1); } - crm_err("Could not connect to stonithd."); + crm_err("Could not connect to the fencer"); return -1; } diff --git a/xml/regression.sh b/xml/regression.sh index cd4f0729904..8fbfea5be7a 100755 --- a/xml/regression.sh +++ b/xml/regression.sh @@ -325,7 +325,7 @@ tests="${tests} test2to3" # -B # -D # -G ... see usage -cts_pengine() { +cts_scheduler() { _tcp_mode=0 _tcp_ret=0 _tcp_validatewith= @@ -333,7 +333,7 @@ cts_pengine() { _tcp_schema_t= _tcp_template= - find ../cts/pengine -name '*.xml' -print | env LC_ALL=C sort \ + find ../cts/scheduler -name '*.xml' -print | env LC_ALL=C sort \ | { case " $* " in *\ -C\ *) test_cleaner -r;; *\ -S\ *) emit_result "not implemented" "option -S";; @@ -421,7 +421,7 @@ EOF done; log2_or_0_return ${_tcp_ret};; esac; } } -tests="${tests} cts_pengine" +tests="${tests} cts_scheduler" # # "framework"