NAME
WebService::TestSystem - Web service for implementing a distributed testing system.
SYNOPSIS
my $testsys = new WebService::TestSystem;
# TODO: Add API
DESCRIPTION
WebService::TestSystem implements the 'business logic' for a distributed testing system. This is designed to provide a uniform API layer, receive RPC commands from a SOAP server and either process them or pass them along to backend processes.
For example, it provides search commands for querying a database about available tests, host machines, software, linux distros, etc.
FUNCTIONS
new(%args)
Establishes a new WebService::TestSystem instance. This sets up a database connection.
get_error()
Returns the most recent error message. If any of this module's routines return undef, this routine can be called to retrieve a message about what happened. If several errors have occurred, this will only return the most recently encountered one.
get_tests()
Returns a list of tests in the system. Each test object will include several fields, including its name, id number, etc.
get_hosts()
Returns a list of host machines registered in the system. Each host record will include its name, id, and other info.
get_images()
This routine returns a list of distro images that are available in the system. Each image record includes its name, id, and other info.
get_packages()
Returns a list of software packages available in the system for doing testing against.
get_requests(%args)
This routine permits searching against the test requests in the system. Arguments can be provided via the %args hash. Accepted arguments include:
limit - the number of records to return
order_by - the fieldname to order the records by
distro - search condition (supports % wildcards)
test - search condition (supports % wildcards)
host - search condition (supports % wildcards)
host_type - search condition (supports % wildcards)
project - search condition (supports % wildcards)
priority - search condition (must match exactly)
status - search condition (must match exactly)
patch_id - search condition (must be a valid patch id number)
patch - search condition (must match a valid patch name)
created_by - user id number for requestor
username - username of requestor
Each test request record returned includes the following info:
id - the test request's id
created_by - user id# of the requestor
username - username of the requestor
project - project associated with the request
status - the state the test request is currently in
priority - priority
created_date - date it was created
started_date - datetime the test run began
completion_date - date it was completed
distro - distro image name
test - test name
host - host name
host_type - host class
patch - patch name
distro_tag_id - id# of distro image
test_id - id# of test
host_id - id# of host
host_type_id - id# of host type
project_id - id# of project
patch_tag_uid - id# of patch