NAME

Testopia::Webservice::Environment

EXTENDS

Bugzilla::Webservice

DESCRIPTION

Provides methods for automated scripts to manipulate Testopia Environments

METHODS

check_environment
 Description: Looks up and returns an environment by name.

 Params:      $name - String: name of the environment.
              $product - Integer/String
                         Integer: product_id of the product in the Database
                         String: Product name

 Returns:     Hash: Matching Environment object hash or error if not found.
create
 Description: Creates a new environment object and stores it in the database

 Params:      $values - Hash: A reference to a hash with keys and values  
              matching the fields of the environment to be created. 
  +-------------+----------------+-----------+------------------------------------+
  | Field       | Type           | Null      | Description                        |
  +-------------+----------------+-----------+------------------------------------+
  | product_id  | Integer/String | Required  | ID or Name of product              |
  | name        | String         | Required  |                                    |
  | isactive    | Boolean        | Optional  | Defaults to True (1)               |
  +-------------+----------------+-----------+------------------------------------+

 Returns:     The newly created object hash.
create_full
 Description: When an environment starting with $basename does not exist yet 
 exactly matching $envhash, creates a new environment object, and any new
 elements, properties, values, and the mapping between them and stores it in
 the database. The full environment name that is created will be a conjunction
 of the $basename and a date and time stamp. Else returns id of existing env. 

 Params: $basename -  String:   starting name of the environment (remainder
                        will be a date time conjunction added by this function)
           $product -  Integer/String:  product name or id of the product in the Database
           $envhash -  Hash ref: Multilevel hash following a format: Top level hash 
                         keys are assumed to be categories. Bottom level
                         values (leaves) and their immediate keys are assumed
                         to be the values and properties in the database, 
                         respectively. Between the top level and bottom level
                         keys are the elements. Everything will be created
                         if it does not yet exist in the database except for
                         the categories which must exist beforehand.

Here is an example of an $envhash (quotes removed):

{

Hardware => {

          System Board => {
                              Type => i386,
                              Manufacturer => Ssystem manufacturer,
                              Model => System product name
                          },

          Memory => {
                        Total Physical => 2,015.33 MB
                    }

            },

Software => {

          BIOS => {
                      Version/Date => American Megatrends Inc. 1.00, 11/25/2003
                  },

          Operating System => {

                                  Version => 5.2.3790 Service Pack 2 Build 3790,
                                  Manufacturer => Microsoft Corporation,
                                  Name => Microsoft(R) Windows(R) Server 2003, Standard Edition
                              }

            },

Harddrives => {

          1 => {
                   Card => 0,
                   Firmware Revision => 34.06J34,
                   Channel => 6,
                   Model => WDC WD360GD-00FNA0
               },

          0 => {
                   Card => 0,
                   Firmware Revision => 35.06K35,
                   Channel => 7,
                   Model => WDC WD360GD-00FNA0
               },

          2 => {
                   Card => 0,
                   Firmware Revision => 27.08D27,
                   Channel => 5,
                   Model => WDC WD740GD-00FLA1
               },

              },

};

 Returns:     The environment id of the newly created or matching environment.
get
 Description: Used to load an existing Environment from the database.

 Params:      $id - An integer representing the ID in the database

 Returns:     A blessed Bugzilla::Extension::Testopia::Environment object hash
get_caseruns
 Description: Returns the list of case-runs that this Environment is used in.

 Params:      $id -  Integer: Environment ID.

 Returns:     Array: List of case-run object hashes.
get_runs
 Description: Returns the list of runs that this Environment is used in.

 Params:      $id -  Integer: Environment ID.

 Returns:     Array: List of run object hashes.
list
 Description: Performs a search and returns the resulting list of Environments

 Params:      $query - Hash: keys must match valid search fields.

                        +--------------------------+
                        | classification           |
                        | env_products             |
                        | env_categories           |
                        | env_elements             |
                        | env_properties           |
                        | env_expressions          |
                        | name                     |
                        | env_value_selected_type  |
                        +--------------------------+

 Returns:     Array: Matching Environments are retuned in a list of hashes.
update
 Description: Updates the fields of the selected environment or environments.

 Params:      $values - Hash of keys matching Environment fields and the new values 
              to set each field to.
              
              The id field is used to lookup the environment and is read only.
                      +--------------+----------------+
                      | Field        | Type           |
                      +--------------+----------------+
                      | id (readonly)| String         |
                      | name         | String         |
                      | isactive     | Boolean        |
                      +--------------+----------------+

 Returns:     Hash: The updated environment object hash.

SEE ALSO

Bugzilla::Webservice

AUTHOR

Greg Hendricks <ghendricks@novell.com>