Empty test
[TEST] don't test deprecated module Tapper::MCP::Startup
delete deprecated module

Starting the MCP is no longer done with Tapper::MCP::Startup. Therefore,
the module is deprecated and can be removed.
Transform daemon to use MooseX::Daemonize
[FIX] remove deprecated workaround for not starting children simultaniously

In the old days the framework for starting machines (by resetting) was
not able to handle two hosts being resetted at the same time. To prevent
this issue we put a sleep in to make sure the MCP children start with
some delay and thus reach the reset stage at different times which in
turn means they do not reset their machines in a broken way.

Nowadays we have different ways of starting a machine (among them
different resetters) and none of them needs the above mentioned
workaround. Therefore, I removed it.
[RFK] use hostname from testrun_scheduling object where possible

MCP::Child needs a hostname information in many places. Previously, this
information was given as parameter to start_testrun() and subsequent
functions. This does not make sense because the attribute "testrun"
already has this information. Furthermore, the testrun_scheduling
associated with the testrun attribute is given to producers. This means
using the host from the testrun attribute instead of the one given to
the function as argument allows producers to update the hostname without
need to change the producer API.
[FIX] handling attributes in Tapper::MCP object creation

Tapper::MCP classes that have a testrun associated (e.g. MCP::Child)
need the testrun id be set in the new() call. Since the testrun id is
the only required value it makes sense to allow new($id) instead of
new({testrun => $id}). The build function that makes this possible was
broken for the standard way of providing values for attributes (hash
references). It did in fact allow a hash instead of a hash
reference. Since this is nonstandard behaviour I changed it. Now as hash
ref or a single scalar are allowed as parameters for new. The single
scalar is still treated as the testrun id.

The patch also changes a unit test file that used the nonstandard way to
provide multiple attribute values.
[FEAT] put domain specific functions into plugin

Some tasks like console handling or restarting hosts are very different
for different groups using Tapper. Therefore, these tasks should not be
implemented inside the MCP itself but rather by plugins that offer the
needed functionality.

This patch implements the plugin system for this. Plugins need to be
implemented as Moose roles and be named
Tapper::MCP::Plugin::$Task::$Group. A $Task could be "Console" for
example and $Group could be OSRC.

With the patch comes a lot of cleanup. Since console and reboot
functionality is now handled by plugins all console and reboot handling
was removed from the MCP and its tests.

reviewer: schwigon@
make Master poolhost clean

Tapper::MCP::Master keeps track of running Child processes in a hash
that has the test machine name as key. For pool hosts, this breaks
because we now have two processes fighting for the same hash entry and
only the last one wins. This patch changes the hash key to be the
process id of the child process.
[FIX] adapt call of runtest_handling() to new API

I recently changed the parameter list of
Tapper::MCP::Child->runtest_handling(). This patch fixes the call of
this function.
Merge branch 'master' into plugin

Conflicts:
	lib/Tapper/MCP/Master.pm
[FIX] cleanup after child exit

The function to cleanup after the MCP::Child exits had two minor
issues. It still tried to close a non-existing console connection
and tried to access the hostname of a test from the DBIC testrun
object instead of the testrun_scheduling object. Both issues are
fixed with this patch.
honour scenarios "no_sync" option
respect scenarios "no_sync" option

Scenarios can now have a "no_sync" option. This prevents the PRCs to
skip the syncing part. The scheduler will still schedule all scenario
elements together.
This paths makes sure that the config generator in MCP will respect this
option by not creating sync configs.
[FIX] create sync config only for interdep scenarios
Merge branch 'plugin'

Conflicts:
	lib/Tapper/MCP/Config.pm