(→OTS Worker) |
(→OTS Server) |
||
| Line 85: | Line 85: | ||
* '''No''' extension points used in 0.8 | * '''No''' extension points used in 0.8 | ||
| + | |||
| + | ==== Input Plugins ==== | ||
| + | |||
| + | OTS 0.1 supports feeding information back to ots client(for example the build machine) with input plugins. The key features of of OTS 0.1 input plugins are: | ||
| + | |||
| + | * Publish testrun log url to the client in the beginning of the testrun | ||
| + | * Publish result urls to the client | ||
| + | * Publish result files to the client | ||
| + | * Runtime selection of input plugin with testrun options | ||
| + | |||
| + | OTS 0.8 does not support input plugins but is able to do the same things with Publisher plugins. The needed steps are described below. The publisher plugin replacing an input plugin is referred as ClientPublisher. | ||
| + | |||
| + | * Publish URLs to clients: | ||
| + | # All publishers can share their report urls by implementing the get_this_publisher_uris() method. For example ots.plugins.logger shares the the testrun log url by doing this. All reporting tool plugins should do the same. | ||
| + | # ClientPublisher needs to implement set_all_publisher_uris(self, uris_dict) method. The uris_dict contains all URLs from all publishers so it's easy to send them to the client in this method. The plugin can also filter the URLs if it does not want to send all of them to the client. | ||
| + | # The URL processing is done right after all publishers are loaded so log url gets sent in the beginning of the testrun as expected. | ||
| + | |||
| + | * Result file Storage | ||
| + | # ClientPublisher gets all result files by implementing set_results(self, results). It's easy to send them to client in that method.. | ||
| + | |||
| + | * Dynamic runtime selection of input plugins | ||
| + | # All plugin constructors get the additional testrun options as keyword arguments. Disabling and enabling a specific ClientPublisher can be done in the constructor by checking the input parameters. | ||
| + | |||
| + | * get_changed_packages(self, build_id) | ||
| + | # This should be implemented in the particular reporting tool that requires this information. OTS does not use this information in test execution so there's no need to handle this in OTS. | ||
== OTS Worker == | == OTS Worker == | ||
Contents |
/etc/ots-server.ini /opt/ots.sqlite /etc/ots_qareports_plugin.conf Your extension configurations
sudo apt-get purge python-ots-common python-ots-server python-server python-ots-qareports-plugin python-ots-tools
or
sudo rm -fr /usr/local/lib/python2.6/dist-packages/ots*
or
sudo rm -fr /usr/lib/python2.6/site-packages/ots*
/etc/ots_server.ini
/etc/ots_server.ini
[swproducts]
[[meego_n900]]
timeout = 60
distribution_model = default
email = on
email-attachments = off
emmc = ""
input_plugin = "default"
[[[device]]]
devicegroup = n900
[[meego_aava]]
timeout = 120
distribution_model = default
email = on
email-attachments = on
emmc = ""
input_plugin = "default"
[[[device]]]
devicegroup = aava
/etc/ots_qareports_plugin.conf
OTS 0.1 supports feeding information back to ots client(for example the build machine) with input plugins. The key features of of OTS 0.1 input plugins are:
OTS 0.8 does not support input plugins but is able to do the same things with Publisher plugins. The needed steps are described below. The publisher plugin replacing an input plugin is referred as ClientPublisher.
/etc/conductor.conf /etc/conductor/ /etc/ots.ini
sudo apt-get purge python-ots-common python-ots-worker
or
sudo rm -fr /usr/local/lib/python2.6/dist-packages/ots*
or
sudo rm -fr /usr/lib/python2.6/site-packages/ots*