blob: 19d984f98a00987fdbcf8041dd3f4f82e77d7e82 [file] [log] [blame]
############################################################################
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
package TestDeployer;
###########################################################################
# Class: TestDeployer
# A base class for TestDeployer. This interface defines a set of functions
# that can be called to deploy and undeploy resources for testing. By default
# these methods are not called. If the user adds -deploy to the command line
# then the following methods will be called on this interface, in the following
# order:
# checkPrerequisites()
# deploy()
# start()
# generateData()
# confirmDeployment()
# If the user adds -undeploy to the command line then the following methods
# will be called on this inteface, in the following order:
# deleteData()
# stop()
# undeploy()
# confirmUndeployment()
#
# If either -deploy or -undeploy are invoked then -deploycfg <deply cfg file> must
# be supplied too.
##############################################################################
# Sub: new
# Constructor
#
# Paramaters:
# None
#
# Returns:
# None.
sub new
{
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = {};
bless($self, $class);
return $self;
}
##############################################################################
# Sub: checkPrerequisites
# Check any prerequisites before a deployment is begun. For example if a
# particular deployment required the use of a database system it could
# check here that the db was installed and accessible.
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# None
#
sub checkPrerequisites
{
}
##############################################################################
# Sub: deploy
# Deploy any required packages
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# None
#
sub deploy
{
}
##############################################################################
# Sub: start
# Start any software modules that are needed.
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# None
#
sub start
{
}
##############################################################################
# Sub: generateData
# Generate any data needed for this test run.
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# None
#
sub generateData
{
}
##############################################################################
# Sub: confirmDeployment
# Run checks to confirm that the deployment was successful. When this is
# done the testing environment should be ready to run.
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# Nothing
# This method should die with an appropriate error message if there is
# an issue.
#
sub confirmDeployment
{
die "$0 INFO : confirmDeployment is a virtual function!";
}
##############################################################################
# Sub: deleteData
# Remove any data created that will not be removed by undeploying.
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# None
#
sub deleteData
{
}
##############################################################################
# Sub: stop
# Stop any servers or systems that are no longer needed once testing is
# completed.
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# None
#
sub stop
{
}
##############################################################################
# Sub: undeploy
# Remove any packages that were installed as part of the deployment.
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# None
#
sub undeploy
{
}
##############################################################################
# Sub: confirmUndeployment
# Run checks to confirm that the undeployment was successful. When this is
# done anything that must be turned off or removed should be turned off or
# removed.
#
# Paramaters:
# globalHash - hash from config file, including deployment config
# log - log file handle
#
# Returns:
# Nothing
# This method should die with an appropriate error message if there is
# an issue.
#
sub confirmUndeployment
{
die "$0 INFO : confirmUndeployment is a virtual function!";
}
1;