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