<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.meego.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.meego.com/index.php?title=Special:Contributions/Eluttine&amp;feed=atom&amp;limit=50&amp;target=Eluttine&amp;year=&amp;month=</id>
		<title>MeeGo wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.meego.com/index.php?title=Special:Contributions/Eluttine&amp;feed=atom&amp;limit=50&amp;target=Eluttine&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Eluttine"/>
		<updated>2013-05-23T23:47:46Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-08-30T13:32:14Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* 0.8.8 - 0.8.9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.8 - 0.8.9 ==&lt;br /&gt;
Upgrade to meego-ai-flasher 0.1.8, older versions doesn't work with OTS 0.8.9.&lt;br /&gt;
&lt;br /&gt;
== 0.8.7 - 0.8.8 ==&lt;br /&gt;
New conductor configuration parameter 'target_username'. Add it to existing conductor configuration files (/etc/ots/conductor.conf and /etc/ots/conductor_*.conf) or replace old file(s) with new one.&lt;br /&gt;
&lt;br /&gt;
== 0.8.6 - 0.8.7 ==&lt;br /&gt;
Locations and names of configuration files have been changed. All configuration files are now located in /etc/ots and the plugin configuration files are in /etc/ots/plugins.&lt;br /&gt;
&lt;br /&gt;
If you wish to keep your old settings you have to replace the new files.&lt;br /&gt;
On the server side:&lt;br /&gt;
 sudo mv /etc/ots_server.ini /etc/ots/server.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_qareports.conf /etc/ots/plugins/qareports.conf&lt;br /&gt;
And email plugin has it's own configuration file so you should move the [ots.email_plugin] section from the old /etc/ots_server.ini file to /etc/ots/plugins/email.conf.&lt;br /&gt;
&lt;br /&gt;
On the worker side:&lt;br /&gt;
 sudo mv /etc/ots.ini /etc/ots/worker.conf&lt;br /&gt;
 sudo mv /etc/conductor.conf /etc/ots/conductor.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_conductor_richcore.conf /etc/ots/plugins/conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.5 - 0.8.6 ==&lt;br /&gt;
Backup all configuration files and database before upgrading.&lt;br /&gt;
&lt;br /&gt;
If you have logger plugin installed update the templates by giving following commands after upgrade:&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
&lt;br /&gt;
Upgrade also the latest meego-ai-flasher.&lt;br /&gt;
&lt;br /&gt;
=== Updating the database ===&lt;br /&gt;
&lt;br /&gt;
If you want to keep your old log database, add new (user_defined_id) column to the log_messages table. Run database command line interface for OTS database. By default OTS uses sqlite database at /opt/ots/ots.sqlite.&lt;br /&gt;
 sudo sqlite3 /opt/ots/ots.sqlite&lt;br /&gt;
Add new column to the log_messages table by executing following command:&lt;br /&gt;
 ALTER TABLE log_messages ADD COLUMN user_defined_id varchar(255) NOT NULL DEFAULT &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
If there's no need to keep the old database you can remove the database file (/opt/ots/ots.sqlite) and generate a new one using [[Quality/QA-tools/OTS/Plugins/Django#Create.2Fupdate_databases|the instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Rich-core conductor plug-in available&lt;br /&gt;
** Changes to /etc/conductor.conf &lt;br /&gt;
** New configuration file for plug-in: /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-08-30T13:31:38Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Upgrading OTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.8 - 0.8.9 ==&lt;br /&gt;
Remember to install meego-ai-flasher 0.1.8. Older versions doesn't work with OTS 0.8.9.&lt;br /&gt;
&lt;br /&gt;
== 0.8.7 - 0.8.8 ==&lt;br /&gt;
New conductor configuration parameter 'target_username'. Add it to existing conductor configuration files (/etc/ots/conductor.conf and /etc/ots/conductor_*.conf) or replace old file(s) with new one.&lt;br /&gt;
&lt;br /&gt;
== 0.8.6 - 0.8.7 ==&lt;br /&gt;
Locations and names of configuration files have been changed. All configuration files are now located in /etc/ots and the plugin configuration files are in /etc/ots/plugins.&lt;br /&gt;
&lt;br /&gt;
If you wish to keep your old settings you have to replace the new files.&lt;br /&gt;
On the server side:&lt;br /&gt;
 sudo mv /etc/ots_server.ini /etc/ots/server.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_qareports.conf /etc/ots/plugins/qareports.conf&lt;br /&gt;
And email plugin has it's own configuration file so you should move the [ots.email_plugin] section from the old /etc/ots_server.ini file to /etc/ots/plugins/email.conf.&lt;br /&gt;
&lt;br /&gt;
On the worker side:&lt;br /&gt;
 sudo mv /etc/ots.ini /etc/ots/worker.conf&lt;br /&gt;
 sudo mv /etc/conductor.conf /etc/ots/conductor.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_conductor_richcore.conf /etc/ots/plugins/conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.5 - 0.8.6 ==&lt;br /&gt;
Backup all configuration files and database before upgrading.&lt;br /&gt;
&lt;br /&gt;
If you have logger plugin installed update the templates by giving following commands after upgrade:&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
&lt;br /&gt;
Upgrade also the latest meego-ai-flasher.&lt;br /&gt;
&lt;br /&gt;
=== Updating the database ===&lt;br /&gt;
&lt;br /&gt;
If you want to keep your old log database, add new (user_defined_id) column to the log_messages table. Run database command line interface for OTS database. By default OTS uses sqlite database at /opt/ots/ots.sqlite.&lt;br /&gt;
 sudo sqlite3 /opt/ots/ots.sqlite&lt;br /&gt;
Add new column to the log_messages table by executing following command:&lt;br /&gt;
 ALTER TABLE log_messages ADD COLUMN user_defined_id varchar(255) NOT NULL DEFAULT &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
If there's no need to keep the old database you can remove the database file (/opt/ots/ots.sqlite) and generate a new one using [[Quality/QA-tools/OTS/Plugins/Django#Create.2Fupdate_databases|the instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Rich-core conductor plug-in available&lt;br /&gt;
** Changes to /etc/conductor.conf &lt;br /&gt;
** New configuration file for plug-in: /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs</id>
		<title>Quality/QA-tools/OTS/DeveloperDocs</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs"/>
				<updated>2011-08-24T12:09:37Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* OTS - Open Testing Service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS - Open Test System =&lt;br /&gt;
&lt;br /&gt;
== Related Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/DevelopmentGuidelines | Development Guidelines]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/Packages | Packages]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/ErrorCodes | Error Codes]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/Glossary]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs/Transition0.1-0.8|Making transition from 0.1 to 0.8]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
OTS is a Distributed Test System that takes a Data Driven Approach using XML Files to allow parallel testing of Applications on evolving Hardware platforms.  &lt;br /&gt;
&lt;br /&gt;
Design has been driven by the need for a language neutral test platform that allows testing under different device architectures in parallel.&lt;br /&gt;
&lt;br /&gt;
== High Level Overview ==  &lt;br /&gt;
&lt;br /&gt;
OTS allows a Test Sequence to be fanned out from a hub known as a '''Distributor''' to a remote machine known as a '''Worker'''. &lt;br /&gt;
Each '''Worker''' has a '''Device Group''' associated with it, this is defined in the configuration. The Tests are routed to the '''Worker''' &lt;br /&gt;
on the basis of the '''Device Group'''.&lt;br /&gt;
&lt;br /&gt;
An XML '''Test Definition File''' describes the Tests that are run. The results are returned to the '''Distributor''' in an XML '''Results File'''.&lt;br /&gt;
 &lt;br /&gt;
The '''Distributor''' takes a '''Device Group''' and '''Timeout''' as inputs, as well as the '''Command''' for running '''Tasks'''. Tests are run within a '''Task''' which  &lt;br /&gt;
is currently run as a process. The '''Command''' will typically take a path to the '''Test Definition File''' as an input. &lt;br /&gt;
If the process exceeds the '''Timeout''' the '''Task''' is stopped (the process is killed). &lt;br /&gt;
&lt;br /&gt;
A number of '''Tasks''' can be added to a '''Testrun'''. The '''Testrun''' will normally wait for all '''Tasks''' to finish before completion. &lt;br /&gt;
&lt;br /&gt;
Data (status, error and results) are communicated back from the '''Task''' to the '''Worker'''.  The '''Results Object''' is a container for the files outputted: '''Test Definition File''',  '''Results File''' &lt;br /&gt;
and any other files produced by the test as well as metadata relating to the run. &lt;br /&gt;
&lt;br /&gt;
== Technology ==&lt;br /&gt;
&lt;br /&gt;
OTS is written in [http://www.python.org/ Python 2.6].&lt;br /&gt;
&lt;br /&gt;
[http://www.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol AMQP] protocol is used for communication.&lt;br /&gt;
&lt;br /&gt;
=== XmlFileFormats ===&lt;br /&gt;
&lt;br /&gt;
The XML file formats provide the datum for the system.&lt;br /&gt;
&lt;br /&gt;
Download [http://meego.gitorious.org/meego-quality-assurance/test-definition/trees/master them] and add the path to the '''results_xsd''' parameter in your [http://meego.gitorious.org/meego-quality-assurance/ots/blobs/master/ots.server/ots/server/server.conf server.conf] file&lt;br /&gt;
&lt;br /&gt;
=== Third Party Dependencies ===&lt;br /&gt;
&lt;br /&gt;
==== RabbitMQ ====&lt;br /&gt;
&lt;br /&gt;
You need to install [http://www.rabbitmq.com/server.html RabbitMQ], this is AMQP message server.&lt;br /&gt;
&lt;br /&gt;
===== Managing the Queues =====&lt;br /&gt;
&lt;br /&gt;
If you need to delete or empty the queues there are [http://meego.gitorious.org/meego-quality-assurance/ots/trees/master/ots.server/ots/server/distributor/dev_utils utilities] to help with this.&lt;br /&gt;
&lt;br /&gt;
==== Python Packages ====&lt;br /&gt;
&lt;br /&gt;
The following python packages are needed&lt;br /&gt;
&lt;br /&gt;
* [http://pypi.python.org/pypi/setuptools setuptools]&lt;br /&gt;
&lt;br /&gt;
* [http://www.voidspace.org.uk/python/configobj.html configobj]&lt;br /&gt;
 &lt;br /&gt;
* [http://pypi.python.org/pypi/multiprocessing multiprocessing]&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/py-amqplib/ pyamqplib] (version 0.6.1 or newer)&lt;br /&gt;
&lt;br /&gt;
* [http://www.familieleuthe.de/DownloadMiniXsv.html minixsv]&lt;br /&gt;
&lt;br /&gt;
* [http://www.djangoproject.com/download/1.1.2/tarball/ django]&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/python-nose/ nose]&lt;br /&gt;
&lt;br /&gt;
== Diving In ==&lt;br /&gt;
&lt;br /&gt;
The following steps show how to get a Development Environment up and running&lt;br /&gt;
&lt;br /&gt;
=== 1. Install Dependencies ===&lt;br /&gt;
&lt;br /&gt;
* Install the Third Party Dependencies&lt;br /&gt;
&lt;br /&gt;
* Get the XML File Formats and set the OTS_TESTDEFINITION environment variable&lt;br /&gt;
&lt;br /&gt;
=== 2. Build the Eggs === &lt;br /&gt;
&lt;br /&gt;
From the root directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./setup.sh&lt;br /&gt;
 source ./paths.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Unittests ===&lt;br /&gt;
&lt;br /&gt;
Run the unittests from the root directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./nose.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Component Tests ===&lt;br /&gt;
&lt;br /&gt;
Component Tests run high level tests on an OTS Component using Mocks of the dependencies.&lt;br /&gt;
&lt;br /&gt;
You can run these with the component_tests shell script in the root directory. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./component_tests.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Hello OTS World ===&lt;br /&gt;
&lt;br /&gt;
The source contains a simple demonstration of the way the key elements work. &lt;br /&gt;
&lt;br /&gt;
==== 1. Open two terminal windows. ====&lt;br /&gt;
&lt;br /&gt;
==== 2. In the first window run the server ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd $SERVER&lt;br /&gt;
 cd hub/demos&lt;br /&gt;
 python demo_hub.py&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. You should see this: ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 &amp;lt;snip&amp;gt;&lt;br /&gt;
 20XX-XX-XX XX:XX:XX,XXX - ots.server.distributor.taskrunner - DEBUG - Sending command '['echo', 'hello world']' with key 'foo'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. In the second window run the worker ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd $WORKER&lt;br /&gt;
 python worker.py -c config.ini&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 5. Now in the Server terminal the command should run to completion. You should see the following line in the logs: ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  20XX-XX-XX XX:XX:XX,XXX - ots.worker.command - DEBUG - process.communicate() returned echo hello world&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will raise a PackageException. This is normal as no Tasks that are run return Packages to the Server&lt;br /&gt;
&lt;br /&gt;
==== 6. And on the logs on the Worker side should contain: ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 XXXX-XX-XX XX:XX:XX,XXX - ots.worker.command - DEBUG - process.communicate() returned echo hello world&lt;br /&gt;
 XXXX-XX-XX XX:XX:XX,XXX - ots.worker.task_broker - DEBUG - Task in state: 'finish'&lt;br /&gt;
 XXXX-XX-XX XX:XX:XX,XXX - ots.worker.task_broker - INFO - Recommence consume on queue: foo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
It is intended that the '''Distributor''' and each '''Worker''' should be installed to separate machines.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Distributor ===&lt;br /&gt;
&lt;br /&gt;
The format of the configuration file is as follows. &lt;br /&gt;
&lt;br /&gt;
The `host` is the name of the RabbitMQ server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [Client]&lt;br /&gt;
 host =  localhost&lt;br /&gt;
 vhost = / &lt;br /&gt;
 port = 5672&lt;br /&gt;
 username = guest&lt;br /&gt;
 password = guest&lt;br /&gt;
 queue = FIXME&lt;br /&gt;
 consumer_tag = worker&lt;br /&gt;
 services_exchange = services&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Worker ===&lt;br /&gt;
&lt;br /&gt;
Edit your config.ini so that the &lt;br /&gt;
&lt;br /&gt;
 * `queue`&lt;br /&gt;
 * `routing_key`&lt;br /&gt;
 * `services_exchange` &lt;br /&gt;
&lt;br /&gt;
Are set for your '''Device Group'''. &lt;br /&gt;
&lt;br /&gt;
And the `host` is the name of your RabbitMQ server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [Worker]&lt;br /&gt;
 host =  localhost&lt;br /&gt;
 vhost = / &lt;br /&gt;
 port = 5672&lt;br /&gt;
 username = guest&lt;br /&gt;
 password = guest&lt;br /&gt;
 queue = foo&lt;br /&gt;
 routing_key = foo&lt;br /&gt;
 services_exchange = foo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Starting the Worker ====&lt;br /&gt;
&lt;br /&gt;
To start your Worker:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 python worker.py -c config.ini&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Automated System Tests ==&lt;br /&gt;
&lt;br /&gt;
Automated system tests are available in ots.system_tests. They trigger various testruns with xmlrpc and check return value and log messages.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Fully functional OTS system with one worker.&lt;br /&gt;
* A SW Product &amp;quot;ots-system-tests&amp;quot; configured so that it defaults to the worker.&lt;br /&gt;
* A meego image with test-definition-tests and testrunner-lite-regression-tests.&lt;br /&gt;
* Django based advanced OTS setup.&lt;br /&gt;
* BeautifulSoup python library.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
* make the system test image available for the workers. (for example copy it to your apache static content directory /var/www/static/)&lt;br /&gt;
* Modify system_tests.conf in ots.system_tests directory to match your system.&lt;br /&gt;
* Make sure all the urls in system_tests.conf work.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* System tests execute multiple full testruns. Running all tests can easily take more than 1.5 hours with N900 worker.&lt;br /&gt;
* Make sure there's no other activities ongoing in the system while running the tests.&lt;br /&gt;
* Some error handling tests expect certain devicegroups and sw products _not_ to be available. If these test cases fail you can remove those queues with ots tools.&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
OTS is distributed under an LGPL license.&lt;br /&gt;
&lt;br /&gt;
== Contributions ==&lt;br /&gt;
&lt;br /&gt;
OTS welcomes contributions.&lt;br /&gt;
&lt;br /&gt;
The following areas would benefit greatly from your help:&lt;br /&gt;
&lt;br /&gt;
* Adding to the list of freely available Publisher Plugins&lt;br /&gt;
* Examples of OTS in use with different hardware architectures&lt;br /&gt;
* Improving the ease of deployment &lt;br /&gt;
&lt;br /&gt;
Please check out the [[Quality/QA-tools/OTS/DevelopmentGuidelines | Guidelines]] and [[Quality/QA-tools/OTS/DevelopmentGuidelines/Review | Review process]].&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS | OTS Wiki Home]]&lt;br /&gt;
&lt;br /&gt;
== Source Code Documentation ==&lt;br /&gt;
&lt;br /&gt;
OTS docstrings are in [http://epydoc.sourceforge.net/manual-epytext.html epytext] format which enables the use of [http://epydoc.sourceforge.net/index.html epydoc] in API documentation generation.&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
[http://lists.meego.com/listinfo/meego-qa MeeGo QA] mailing list&lt;br /&gt;
&lt;br /&gt;
== IRC Channel ==&lt;br /&gt;
&lt;br /&gt;
The #meego-qa irc channel in freenode&lt;br /&gt;
&lt;br /&gt;
== Bugs == &lt;br /&gt;
&lt;br /&gt;
The [http://bugs.meego.com/ Meego bugs page]&lt;br /&gt;
&lt;br /&gt;
== Platform Dependencies ==&lt;br /&gt;
&lt;br /&gt;
OTS is tested to run on Linux only.&lt;br /&gt;
&lt;br /&gt;
Tested on Ubuntu (8.04, 10.04, 10.10), Fedora 13, MeeGo and Redhat.&lt;br /&gt;
&lt;br /&gt;
Binary support for Ubuntu, Fedora and MeeGo.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs/Components | Components]]&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs/Server | Server]]&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs/Plugins | Plugins]]&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs/DataFlow | DataFlow]]&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs/Behaviour | Behaviour]]&lt;br /&gt;
&lt;br /&gt;
== APIs ==&lt;br /&gt;
&lt;br /&gt;
==== Server ====&lt;br /&gt;
&lt;br /&gt;
The top level [http://meego.gitorious.org/meego-quality-assurance/ots/blobs/dev_branch_0.8/ots.server/ots/server/hub/api.py api] for external clients utilises parameters in a dictionary.&lt;br /&gt;
&lt;br /&gt;
The parameters are explicitly defined in [http://meego.gitorious.org/meego-quality-assurance/ots/blobs/dev_branch_0.8/ots.server/ots/server/hub/options.py options.py]. The conversion from the loosely defined dictionary to a clear API is undertaken by the [http://meego.gitorious.org/meego-quality-assurance/ots/blobs/dev_branch_0.8/ots.server/ots/server/hub/options_factory.py options_factory.py]&lt;br /&gt;
&lt;br /&gt;
==== [http://meego.gitorious.org/meego-quality-assurance/ots/blobs/dev_branch_0.8/ots.server/ots/server/distributor/api.py Distributor] ====&lt;br /&gt;
&lt;br /&gt;
==== [http://meego.gitorious.org/meego-quality-assurance/ots/blobs/dev_branch_0.8/ots.results/ots/results/api.py Results] ====&lt;br /&gt;
&lt;br /&gt;
==== [http://meego.gitorious.org/meego-quality-assurance/ots/blobs/dev_branch_0.8/ots.worker/ots/worker/api.py Worker] ====&lt;br /&gt;
&lt;br /&gt;
== Extending OTS ==&lt;br /&gt;
&lt;br /&gt;
You can extend OTS with your own [[Quality/QA-tools/OTS/CreatingAPublisher|Publisher]]&lt;br /&gt;
and with [[Quality/QA-tools/OTS/DeveloperDocs/CreatingACustomDistributionModel|custom package distribution models.]]&lt;br /&gt;
&lt;br /&gt;
== Experimental ==&lt;br /&gt;
&lt;br /&gt;
Documentation for experimental branches, spikes, WIPs etc. can be found in [[Quality/QA-tools/OTS/DeveloperDocs/Experimental]].&lt;br /&gt;
&lt;br /&gt;
== Analysis ==&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/DeveloperDocs/ErrorSituations| OTS 0.1 Error Situations]]&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/DeveloperDocs/TypicalUsage| Typical OTS users and usage scenarios]]&lt;br /&gt;
&lt;br /&gt;
== Project Planning ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/Roadmap | Roadmap]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/Meetings | Meetings]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/ReleaseChecklist | ReleaseChecklist]]&lt;br /&gt;
&lt;br /&gt;
==== Release Practices ====&lt;br /&gt;
&lt;br /&gt;
OTS releases are done when a new release makes sense from OTS point of view. There are no scheduled releases.&lt;br /&gt;
&lt;br /&gt;
The [[Quality/QA tools development#Release_Practices | QA Tools Release Practices]] gives more details.&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-08-16T15:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* 0.8.7 - 0.8.8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.7 - 0.8.8 ==&lt;br /&gt;
New conductor configuration parameter 'target_username'. Add it to existing conductor configuration files (/etc/ots/conductor.conf and /etc/ots/conductor_*.conf) or replace old file(s) with new one.&lt;br /&gt;
&lt;br /&gt;
== 0.8.6 - 0.8.7 ==&lt;br /&gt;
Locations and names of configuration files have been changed. All configuration files are now located in /etc/ots and the plugin configuration files are in /etc/ots/plugins.&lt;br /&gt;
&lt;br /&gt;
If you wish to keep your old settings you have to replace the new files.&lt;br /&gt;
On the server side:&lt;br /&gt;
 sudo mv /etc/ots_server.ini /etc/ots/server.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_qareports.conf /etc/ots/plugins/qareports.conf&lt;br /&gt;
And email plugin has it's own configuration file so you should move the [ots.email_plugin] section from the old /etc/ots_server.ini file to /etc/ots/plugins/email.conf.&lt;br /&gt;
&lt;br /&gt;
On the worker side:&lt;br /&gt;
 sudo mv /etc/ots.ini /etc/ots/worker.conf&lt;br /&gt;
 sudo mv /etc/conductor.conf /etc/ots/conductor.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_conductor_richcore.conf /etc/ots/plugins/conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.5 - 0.8.6 ==&lt;br /&gt;
Backup all configuration files and database before upgrading.&lt;br /&gt;
&lt;br /&gt;
If you have logger plugin installed update the templates by giving following commands after upgrade:&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
&lt;br /&gt;
Upgrade also the latest meego-ai-flasher.&lt;br /&gt;
&lt;br /&gt;
=== Updating the database ===&lt;br /&gt;
&lt;br /&gt;
If you want to keep your old log database, add new (user_defined_id) column to the log_messages table. Run database command line interface for OTS database. By default OTS uses sqlite database at /opt/ots/ots.sqlite.&lt;br /&gt;
 sudo sqlite3 /opt/ots/ots.sqlite&lt;br /&gt;
Add new column to the log_messages table by executing following command:&lt;br /&gt;
 ALTER TABLE log_messages ADD COLUMN user_defined_id varchar(255) NOT NULL DEFAULT &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
If there's no need to keep the old database you can remove the database file (/opt/ots/ots.sqlite) and generate a new one using [[Quality/QA-tools/OTS/Plugins/Django#Create.2Fupdate_databases|the instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Rich-core conductor plug-in available&lt;br /&gt;
** Changes to /etc/conductor.conf &lt;br /&gt;
** New configuration file for plug-in: /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-08-16T15:13:40Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Upgrading OTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.7 - 0.8.8 ==&lt;br /&gt;
* New conductor configuration parameter 'target_username'. Add it to existing conductor configuration files (/etc/ots/conductor.conf and /etc/ots/conductor_*.conf) or replace old file(s) with new one.&lt;br /&gt;
&lt;br /&gt;
== 0.8.6 - 0.8.7 ==&lt;br /&gt;
Locations and names of configuration files have been changed. All configuration files are now located in /etc/ots and the plugin configuration files are in /etc/ots/plugins.&lt;br /&gt;
&lt;br /&gt;
If you wish to keep your old settings you have to replace the new files.&lt;br /&gt;
On the server side:&lt;br /&gt;
 sudo mv /etc/ots_server.ini /etc/ots/server.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_qareports.conf /etc/ots/plugins/qareports.conf&lt;br /&gt;
And email plugin has it's own configuration file so you should move the [ots.email_plugin] section from the old /etc/ots_server.ini file to /etc/ots/plugins/email.conf.&lt;br /&gt;
&lt;br /&gt;
On the worker side:&lt;br /&gt;
 sudo mv /etc/ots.ini /etc/ots/worker.conf&lt;br /&gt;
 sudo mv /etc/conductor.conf /etc/ots/conductor.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_conductor_richcore.conf /etc/ots/plugins/conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.5 - 0.8.6 ==&lt;br /&gt;
Backup all configuration files and database before upgrading.&lt;br /&gt;
&lt;br /&gt;
If you have logger plugin installed update the templates by giving following commands after upgrade:&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
&lt;br /&gt;
Upgrade also the latest meego-ai-flasher.&lt;br /&gt;
&lt;br /&gt;
=== Updating the database ===&lt;br /&gt;
&lt;br /&gt;
If you want to keep your old log database, add new (user_defined_id) column to the log_messages table. Run database command line interface for OTS database. By default OTS uses sqlite database at /opt/ots/ots.sqlite.&lt;br /&gt;
 sudo sqlite3 /opt/ots/ots.sqlite&lt;br /&gt;
Add new column to the log_messages table by executing following command:&lt;br /&gt;
 ALTER TABLE log_messages ADD COLUMN user_defined_id varchar(255) NOT NULL DEFAULT &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
If there's no need to keep the old database you can remove the database file (/opt/ots/ots.sqlite) and generate a new one using [[Quality/QA-tools/OTS/Plugins/Django#Create.2Fupdate_databases|the instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Rich-core conductor plug-in available&lt;br /&gt;
** Changes to /etc/conductor.conf &lt;br /&gt;
** New configuration file for plug-in: /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS</id>
		<title>Quality/QA-tools/OTS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS"/>
				<updated>2011-08-16T15:04:52Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Releases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Index =&lt;br /&gt;
&lt;br /&gt;
Welcome to the Open Test System (OTS) Wiki Index.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
OTS is the '''Open Test System''' for testing software systems on evolving hardware architectures.&lt;br /&gt;
  &lt;br /&gt;
It was born out of the test framework incrementally developed for use on [http://maemo.org/ Maemo] project and is in use for 24/7 testing service by [http://www.nokia.com/ Nokia].&lt;br /&gt;
&lt;br /&gt;
More detailed info can be found from [[Quality/QA-tools/OTS/About|about]] page.&lt;br /&gt;
&lt;br /&gt;
== Releases ==&lt;br /&gt;
&lt;br /&gt;
Current release [http://meego.gitorious.org/meego-quality-assurance/ots tag 0.8.8]. See [[Quality/QA-tools/OTS/UserDocumentation/Upgrading|upgrading]] instructions!&lt;br /&gt;
&lt;br /&gt;
Next release [http://bugs.meego.com/show_bug.cgi?id=22496 0.8.9]&lt;br /&gt;
&lt;br /&gt;
See OTS [[Quality/QA-tools/OTS/Roadmap| roadmap.]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/UserDocumentation | User Documentation]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation | Installation Ubuntu]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation_rpm | Installation RPM]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Upgrading | Upgrading]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs | Developer Documentation]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/AdminDocs | System Administration]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/Glossary | Glossary]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/ExampleSetup | Example OTS Service Setup]]&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Eluttine</id>
		<title>User:Eluttine</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Eluttine"/>
				<updated>2011-08-09T09:40:46Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using virtualenv with OTS ==&lt;br /&gt;
=== Setting up virtual environment ===&lt;br /&gt;
&lt;br /&gt;
Install virtualenv using package manager&lt;br /&gt;
 sudo [aptitude/yum] install python-virtualenv&lt;br /&gt;
&lt;br /&gt;
Create virtual environment to your OTS root directory with following command. It creates .env directory which will include bin, include and lib directories. When using '--no-site-packages' parameter virtualenv will not inherit any packages from your global site-packages directory.&lt;br /&gt;
 virtualenv --no-site-packages ENV&lt;br /&gt;
&lt;br /&gt;
Set environment by sourcing activate file from ENV/bin folder.&lt;br /&gt;
 source ENV/bin/activate&lt;br /&gt;
Now 'which python' command should point to your ENV/bin/python file.&lt;br /&gt;
&lt;br /&gt;
=== Installing packages to virtual environment ===&lt;br /&gt;
&lt;br /&gt;
Now let's install python packages needed by OTS to virtual environment. Run command&lt;br /&gt;
 pip install --upgrade minixsv amqplib django configobj&lt;br /&gt;
&lt;br /&gt;
Packages will be installed under ENV/lib/python2.6/site-packages directory.&lt;br /&gt;
&lt;br /&gt;
=== Installing OTS ===&lt;br /&gt;
Install OTS normal way using 'python setup.py install' command under component directory (no need to do it as root).&lt;br /&gt;
&lt;br /&gt;
Now 'which ots_server' should point to ENV/bin/ots_server file, and you can start is as normal user.&lt;br /&gt;
&lt;br /&gt;
To leave virtual environment give command&lt;br /&gt;
 deactivate&lt;br /&gt;
&lt;br /&gt;
=== Starting OTS ===&lt;br /&gt;
OTS will read configuration files under /etc directory, so configuration files must be copied to there. When starting OTS you need to do it as root, or give write permission for a user write log files and [[Quality/QA-tools/OTS/UserDocumentation/Conductor#Setting_your_USB_permissions_for_Flashing|do the flashing]]. Then you can activate virtualenv in two different terminals and start ots_server and ots_worker.&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django</id>
		<title>Quality/QA-tools/OTS/Plugins/Django</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django"/>
				<updated>2011-08-02T12:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Apache configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Django environment setup =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Django is used for handling database communication and displaying WebUI.&lt;br /&gt;
&lt;br /&gt;
== Basic installation ==&lt;br /&gt;
&lt;br /&gt;
These instructions are made for Ubuntu, but should work in the same principals with other distributions. &amp;lt;br /&amp;gt;&lt;br /&gt;
Installation is made to OTS server.&lt;br /&gt;
&lt;br /&gt;
1. Install django&lt;br /&gt;
 sudo apt-get install python-django&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo yum install Django&lt;br /&gt;
2. Download the latest django xml-rpc plugin&lt;br /&gt;
 https://launchpad.net/django-xmlrpc&lt;br /&gt;
3. Install django plug-in&lt;br /&gt;
 tar xzf django_xmlrpc-0.1.tar.gz&lt;br /&gt;
 sudo mv django_xmlrpc /usr/local/lib/python2.6/dist-packages/&lt;br /&gt;
In Fedora (as root):&lt;br /&gt;
 mv django_xmlrpc /usr/lib/python2.6/site-packages/&lt;br /&gt;
 chcon -R -t httpd_user_content_t /usr/lib/python2.6/site-packages/django_xmlrpc&lt;br /&gt;
 chcon -R -t httpd_user_content_t /opt/ots&lt;br /&gt;
 setsebool -P httpd_unified 1&lt;br /&gt;
 setsebool -P httpd_tmp_exec 1&lt;br /&gt;
&lt;br /&gt;
== Enable/disable Django applications ==&lt;br /&gt;
&lt;br /&gt;
From '''0.8.3''' release, this is not necessary anymore. Plug-ins are loaded automatically.&lt;br /&gt;
&lt;br /&gt;
1. Edit Django settings&lt;br /&gt;
 sudo nano /usr/local/lib/python2.6/dist-packages/ots/django/settings.py&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo nano /usr/lib/python2.6/site-packages/ots/django/settings.py&lt;br /&gt;
2. Comment/uncomment OTS components in 'INSTALLED_APPS' section&lt;br /&gt;
 # OTS components:&lt;br /&gt;
 'ots.plugin.logger',&lt;br /&gt;
 'ots.plugin.monitor',&lt;br /&gt;
 'ots.plugin.history'&lt;br /&gt;
&lt;br /&gt;
== Create/update databases ==&lt;br /&gt;
&lt;br /&gt;
1. Create database&lt;br /&gt;
 sudo python /usr/local/lib/python2.6/dist-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
In Fedora:&lt;br /&gt;
  sudo python /usr/lib/python2.6/site-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
&lt;br /&gt;
2. Set permissions to database file&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots/ots.sqlite&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo chown apache:apache /opt/ots&lt;br /&gt;
 sudo chown apache:apache /opt/ots/ots.sqlite&lt;br /&gt;
&lt;br /&gt;
== Apache configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Install Apache2 and Apache2 modules&lt;br /&gt;
 sudo apt-get install libapache2-mod-wsgi apache2-mpm-prefork libapache2-mod-python&lt;br /&gt;
Fedora:&lt;br /&gt;
 yum install httpd mod_wsgi&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
&lt;br /&gt;
2. Apache2 configuration&lt;br /&gt;
&lt;br /&gt;
'''On Ubuntu'''&lt;br /&gt;
&lt;br /&gt;
Edit the 000-default file. See examples for Ubuntu 10.04 and 10.10 below.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/apache2/sites-enabled/000-default&lt;br /&gt;
&lt;br /&gt;
000-default on Ubuntu 10.04&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler python-program&lt;br /&gt;
    PythonHandler django.core.handlers.modpython&lt;br /&gt;
    SetEnv DJANGO_SETTINGS_MODULE ots.django.settings&lt;br /&gt;
    PythonDebug On&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/media&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LocationMatch &amp;quot;/styles&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/LocationMatch&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
000-default on Ubuntu 10.10&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fedora'''&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
 sudo nano /etc/httpd/conf.d/ots.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Add symbolic links to static files&lt;br /&gt;
 sudo ln -s -t /var/www /usr/share/ots/django/ots.wsgi&lt;br /&gt;
 sudo ln -s -t /var/www /usr/share/ots/django/media&lt;br /&gt;
 sudo ln -s -t /var/www /usr/share/ots/django/styles&lt;br /&gt;
 sudo ln -s -t /var/www /usr/share/ots/plugin/logger&lt;br /&gt;
 sudo ln -s -t /var/www /usr/share/ots/plugin/monitor&lt;br /&gt;
4. Add WSGI settings '''&amp;quot;WSGIRestrictSignal Off&amp;quot;'''&lt;br /&gt;
 sudo nano /etc/apache2/apache2.conf&lt;br /&gt;
Fedora:&lt;br /&gt;
 sudo nano /etc/httpd/conf/httpd.conf&lt;br /&gt;
5. Restart apache&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
Fedora:&lt;br /&gt;
 chkconfig --add httpd&lt;br /&gt;
 chkconfig httpd on&lt;br /&gt;
 /etc/init.d/httpd start&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-08-02T10:26:47Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* OTS server installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version. If you wish to install OTS from source follow instructions howto [[Quality/QA-tools/OTS/UserDocumentation/Installation#Building_packages_from_source|build packages from the source]].&lt;br /&gt;
&lt;br /&gt;
=== Set up Tools:Testing repository ===&lt;br /&gt;
&lt;br /&gt;
By setting up the repository it allows you to install OTS and other MeeGo QA tools via apt-get command. Follow the [[Quality/QA-tools/How_to_set_up_repositories|instructions]].&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots/server.conf&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots/worker.conf&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
&lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== Building packages from source ==&lt;br /&gt;
&lt;br /&gt;
If you which to build your own packages and install OTS from them here are the instructions. But it is recommended to install OTS using the repository.&lt;br /&gt;
&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Now you can install the packages&lt;br /&gt;
 sudo dpkg -i &amp;lt;package&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-08-02T10:25:55Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: Undo revision 45727 by Eluttine (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version. If you wish to install OTS from source follow instructions howto [[Quality/QA-tools/OTS/UserDocumentation/Installation#Building_packages_from_source|build packages from the source]].&lt;br /&gt;
&lt;br /&gt;
=== Set up Tools:Testing repository ===&lt;br /&gt;
&lt;br /&gt;
By setting up the repository it allows you to install OTS and other MeeGo QA tools via apt-get command. Follow the [[Quality/QA-tools/How_to_set_up_repositories|instructions]].&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
Or if you are using own built packages&lt;br /&gt;
 sudo dpkg -i ...&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots/server.conf&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots/worker.conf&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
&lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== Building packages from source ==&lt;br /&gt;
&lt;br /&gt;
If you which to build your own packages and install OTS from them here are the instructions. But it is recommended to install OTS using the repository.&lt;br /&gt;
&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Now you can install the packages&lt;br /&gt;
 sudo dpkg -i &amp;lt;package&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-08-02T10:23:12Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version. If you wish to install OTS from source follow instructions howto [[QA-tools/OTS/UserDocumentation/Installation#Building_packages_from_source|build packages from the source]].&lt;br /&gt;
&lt;br /&gt;
=== Set up Tools:Testing repository ===&lt;br /&gt;
&lt;br /&gt;
By setting up the repository it allows you to install OTS and other MeeGo QA tools via apt-get command. Follow the [[QA-tools/OTS/UserDocumentation/Installation#Building_packages_from_source|instructions]].&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
Or if you are using own built packages&lt;br /&gt;
 sudo dpkg -i ...&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots/server.conf&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots/worker.conf&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
&lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== Building packages from source ==&lt;br /&gt;
&lt;br /&gt;
If you which to build your own packages and install OTS from them here are the instructions. But it is recommended to install OTS using the repository.&lt;br /&gt;
&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Now you can install the packages&lt;br /&gt;
 sudo dpkg -i &amp;lt;package&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-08-02T10:22:13Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version. If you wish to install OTS from source follow instructions howto [[Quality/QA-tools/OTS/UserDocumentation/Installation#Build_packages_from_source|build packages from the source]].&lt;br /&gt;
&lt;br /&gt;
=== Set up Tools:Testing repository ===&lt;br /&gt;
&lt;br /&gt;
By setting up the repository it allows you to install OTS and other MeeGo QA tools via apt-get command. Follow the [[QA-tools/OTS/UserDocumentation/Installation#Building_packages_from_source|instructions]].&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
Or if you are using own built packages&lt;br /&gt;
 sudo dpkg -i ...&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots/server.conf&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots/worker.conf&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
&lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== Building packages from source ==&lt;br /&gt;
&lt;br /&gt;
If you which to build your own packages and install OTS from them here are the instructions. But it is recommended to install OTS using the repository.&lt;br /&gt;
&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Now you can install the packages&lt;br /&gt;
 sudo dpkg -i &amp;lt;package&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-08-02T10:21:27Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version. If you wish to install OTS from source follow instructions howto [[Quality/QA-tools/OTS/UserDocumentation/Installation#Build_packages_from_source|build packages from the source]].&lt;br /&gt;
&lt;br /&gt;
=== Set up Tools:Testing repository ===&lt;br /&gt;
&lt;br /&gt;
By setting up the repository it allows you to install OTS and other MeeGo QA tools via apt-get command. Follow the [[Quality/QA-tools/How_to_set_up_repositories|instructions]].&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
Or if you are using own built packages&lt;br /&gt;
 sudo dpkg -i ...&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots/server.conf&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots/worker.conf&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
&lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== Building packages from source ==&lt;br /&gt;
&lt;br /&gt;
If you which to build your own packages and install OTS from them here are the instructions. But it is recommended to install OTS using the repository.&lt;br /&gt;
&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Now you can install the packages&lt;br /&gt;
 sudo dpkg -i &amp;lt;package&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-07-12T08:36:45Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* 0.8.6 - 0.8.7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.6 - 0.8.7 ==&lt;br /&gt;
Locations and names of configuration files have been changed. All configuration files are now located in /etc/ots and the plugin configuration files are in /etc/ots/plugins.&lt;br /&gt;
&lt;br /&gt;
If you wish to keep your old settings you have to replace the new files.&lt;br /&gt;
On the server side:&lt;br /&gt;
 sudo mv /etc/ots_server.ini /etc/ots/server.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_qareports.conf /etc/ots/plugins/qareports.conf&lt;br /&gt;
And email plugin has it's own configuration file so you should move the [ots.email_plugin] section from the old /etc/ots_server.ini file to /etc/ots/plugins/email.conf.&lt;br /&gt;
&lt;br /&gt;
On the worker side:&lt;br /&gt;
 sudo mv /etc/ots.ini /etc/ots/worker.conf&lt;br /&gt;
 sudo mv /etc/conductor.conf /etc/ots/conductor.conf&lt;br /&gt;
 sudo mv /etc/ots_plugin_conductor_richcore.conf /etc/ots/plugins/conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.5 - 0.8.6 ==&lt;br /&gt;
Backup all configuration files and database before upgrading.&lt;br /&gt;
&lt;br /&gt;
If you have logger plugin installed update the templates by giving following commands after upgrade:&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
&lt;br /&gt;
Upgrade also the latest meego-ai-flasher.&lt;br /&gt;
&lt;br /&gt;
=== Updating the database ===&lt;br /&gt;
&lt;br /&gt;
If you want to keep your old log database, add new (user_defined_id) column to the log_messages table. Run database command line interface for OTS database. By default OTS uses sqlite database at /opt/ots/ots.sqlite.&lt;br /&gt;
 sudo sqlite3 /opt/ots/ots.sqlite&lt;br /&gt;
Add new column to the log_messages table by executing following command:&lt;br /&gt;
 ALTER TABLE log_messages ADD COLUMN user_defined_id varchar(255) NOT NULL DEFAULT &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
If there's no need to keep the old database you can remove the database file (/opt/ots/ots.sqlite) and generate a new one using [[Quality/QA-tools/OTS/Plugins/Django#Create.2Fupdate_databases|the instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Rich-core conductor plug-in available&lt;br /&gt;
** Changes to /etc/conductor.conf &lt;br /&gt;
** New configuration file for plug-in: /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/HTTP_logger</id>
		<title>Quality/QA-tools/OTS/Plugins/HTTP logger</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/HTTP_logger"/>
				<updated>2011-07-01T07:02:55Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HTTP logger plugin =&lt;br /&gt;
&lt;br /&gt;
Released in OTS 0.8.2.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Installation is made to OTS server.&lt;br /&gt;
&lt;br /&gt;
1. Install plug-in&lt;br /&gt;
 sudo apt-get install python-ots-plugin-logger&lt;br /&gt;
Fedora:&lt;br /&gt;
 sudo yum install python-ots-plugin-logger&lt;br /&gt;
&lt;br /&gt;
2. Install [[Quality/QA-tools/OTS/Plugins/Django#Django_environment_setup|Django environment]]&lt;br /&gt;
&lt;br /&gt;
3. Setup [[Quality/QA-tools/OTS/Plugins/Django#Apache_configuration|Apache2 environment]]&lt;br /&gt;
&lt;br /&gt;
4. Enable [[Quality/QA-tools/OTS/Plugins/Django#Enable.2Fdisable_Django_applications|Django application]]&lt;br /&gt;
 'ots.plugin.logger'&lt;br /&gt;
5. [[Quality/QA-tools/OTS/Plugins/Django#Create.2Fupdate_databases|Create/update database]]&lt;br /&gt;
&lt;br /&gt;
6. Restart Apache2&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
Fedora:&lt;br /&gt;
 sudo /etc/init.d/httpd restart&lt;br /&gt;
&lt;br /&gt;
7. Browse http://localhost/logger/view/&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-07-01T06:39:11Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version.&lt;br /&gt;
&lt;br /&gt;
=== Set up Tools:Testing repository ===&lt;br /&gt;
&lt;br /&gt;
By setting up the repository it allows you to install OTS and other MeeGo QA tools via apt-get command. Follow the [[Quality/QA-tools/How_to_set_up_repositories|instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Build packages from source (optional) ===&lt;br /&gt;
&lt;br /&gt;
If you which to build your own packages and install OTS from them here are the instructions. But it is recommended to install OTS using the repository.&lt;br /&gt;
&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
Or if you are using own built packages&lt;br /&gt;
 sudo dpkg -i ...&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots_server.ini&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots.ini&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
&lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django</id>
		<title>Quality/QA-tools/OTS/Plugins/Django</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django"/>
				<updated>2011-06-30T12:09:11Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Apache configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Django environment setup =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Django is used for handling database communication and displaying WebUI.&lt;br /&gt;
&lt;br /&gt;
== Basic installation ==&lt;br /&gt;
&lt;br /&gt;
These instructions are made for Ubuntu, but should work in the same principals with other distributions. &amp;lt;br /&amp;gt;&lt;br /&gt;
Installation is made to OTS server.&lt;br /&gt;
&lt;br /&gt;
1. Install django&lt;br /&gt;
 sudo apt-get install python-django&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo yum install Django&lt;br /&gt;
2. Download the latest django xml-rpc plugin&lt;br /&gt;
 https://launchpad.net/django-xmlrpc&lt;br /&gt;
3. Install django plug-in&lt;br /&gt;
 tar xzf django_xmlrpc-0.1.tar.gz&lt;br /&gt;
 sudo mv django_xmlrpc /usr/local/lib/python2.6/dist-packages/&lt;br /&gt;
In Fedora (as root):&lt;br /&gt;
 mv django_xmlrpc /usr/lib/python2.6/site-packages/&lt;br /&gt;
 chcon -R -t httpd_user_content_t /usr/lib/python2.6/site-packages/django_xmlrpc&lt;br /&gt;
 chcon -R -t httpd_user_content_t /opt/ots&lt;br /&gt;
 setsebool -P httpd_unified 1&lt;br /&gt;
 setsebool -P httpd_tmp_exec 1&lt;br /&gt;
&lt;br /&gt;
== Enable/disable Django applications ==&lt;br /&gt;
&lt;br /&gt;
From '''0.8.3''' release, this is not necessary anymore. Plug-ins are loaded automatically.&lt;br /&gt;
&lt;br /&gt;
1. Edit Django settings&lt;br /&gt;
 sudo nano /usr/local/lib/python2.6/dist-packages/ots/django/settings.py&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo nano /usr/lib/python2.6/site-packages/ots/django/settings.py&lt;br /&gt;
2. Comment/uncomment OTS components in 'INSTALLED_APPS' section&lt;br /&gt;
 # OTS components:&lt;br /&gt;
 'ots.plugin.logger',&lt;br /&gt;
 'ots.plugin.monitor',&lt;br /&gt;
 'ots.plugin.history'&lt;br /&gt;
&lt;br /&gt;
== Create/update databases ==&lt;br /&gt;
&lt;br /&gt;
1. Create database&lt;br /&gt;
 sudo python /usr/local/lib/python2.6/dist-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
In Fedora:&lt;br /&gt;
  sudo python /usr/lib/python2.6/site-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
&lt;br /&gt;
2. Set permissions to database file&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots/ots.sqlite&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo chown apache:apache /opt/ots&lt;br /&gt;
 sudo chown apache:apache /opt/ots/ots.sqlite&lt;br /&gt;
&lt;br /&gt;
== Apache configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Install Apache2 and Apache2 modules&lt;br /&gt;
 sudo apt-get install libapache2-mod-wsgi apache2-mpm-prefork libapache2-mod-python&lt;br /&gt;
Fedora:&lt;br /&gt;
 yum install httpd mod_wsgi&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
&lt;br /&gt;
2. Apache2 configuration&lt;br /&gt;
&lt;br /&gt;
'''On Ubuntu'''&lt;br /&gt;
&lt;br /&gt;
Edit the 000-default file. See examples for Ubuntu 10.04 and 10.10 below.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/apache2/sites-enabled/000-default&lt;br /&gt;
&lt;br /&gt;
000-default on Ubuntu 10.04&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler python-program&lt;br /&gt;
    PythonHandler django.core.handlers.modpython&lt;br /&gt;
    SetEnv DJANGO_SETTINGS_MODULE ots.django.settings&lt;br /&gt;
    PythonDebug On&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/media&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LocationMatch &amp;quot;/styles&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/LocationMatch&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
000-default on Ubuntu 10.10&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fedora'''&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
 sudo nano /etc/httpd/conf.d/ots.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Copy www files to /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
4. Add WSGI settings '''&amp;quot;WSGIRestrictSignal Off&amp;quot;'''&lt;br /&gt;
 sudo nano /etc/apache2/apache2.conf&lt;br /&gt;
Fedora:&lt;br /&gt;
 sudo nano /etc/httpd/conf/httpd.conf&lt;br /&gt;
5. Restart apache&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
Fedora:&lt;br /&gt;
 chkconfig --add httpd&lt;br /&gt;
 chkconfig httpd on&lt;br /&gt;
 /etc/init.d/httpd start&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django</id>
		<title>Quality/QA-tools/OTS/Plugins/Django</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django"/>
				<updated>2011-06-30T12:00:39Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Apache configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Django environment setup =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Django is used for handling database communication and displaying WebUI.&lt;br /&gt;
&lt;br /&gt;
== Basic installation ==&lt;br /&gt;
&lt;br /&gt;
These instructions are made for Ubuntu, but should work in the same principals with other distributions. &amp;lt;br /&amp;gt;&lt;br /&gt;
Installation is made to OTS server.&lt;br /&gt;
&lt;br /&gt;
1. Install django&lt;br /&gt;
 sudo apt-get install python-django&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo yum install Django&lt;br /&gt;
2. Download the latest django xml-rpc plugin&lt;br /&gt;
 https://launchpad.net/django-xmlrpc&lt;br /&gt;
3. Install django plug-in&lt;br /&gt;
 tar xzf django_xmlrpc-0.1.tar.gz&lt;br /&gt;
 sudo mv django_xmlrpc /usr/local/lib/python2.6/dist-packages/&lt;br /&gt;
In Fedora (as root):&lt;br /&gt;
 mv django_xmlrpc /usr/lib/python2.6/site-packages/&lt;br /&gt;
 chcon -R -t httpd_user_content_t /usr/lib/python2.6/site-packages/django_xmlrpc&lt;br /&gt;
 chcon -R -t httpd_user_content_t /opt/ots&lt;br /&gt;
 setsebool -P httpd_unified 1&lt;br /&gt;
 setsebool -P httpd_tmp_exec 1&lt;br /&gt;
&lt;br /&gt;
== Enable/disable Django applications ==&lt;br /&gt;
&lt;br /&gt;
From '''0.8.3''' release, this is not necessary anymore. Plug-ins are loaded automatically.&lt;br /&gt;
&lt;br /&gt;
1. Edit Django settings&lt;br /&gt;
 sudo nano /usr/local/lib/python2.6/dist-packages/ots/django/settings.py&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo nano /usr/lib/python2.6/site-packages/ots/django/settings.py&lt;br /&gt;
2. Comment/uncomment OTS components in 'INSTALLED_APPS' section&lt;br /&gt;
 # OTS components:&lt;br /&gt;
 'ots.plugin.logger',&lt;br /&gt;
 'ots.plugin.monitor',&lt;br /&gt;
 'ots.plugin.history'&lt;br /&gt;
&lt;br /&gt;
== Create/update databases ==&lt;br /&gt;
&lt;br /&gt;
1. Create database&lt;br /&gt;
 sudo python /usr/local/lib/python2.6/dist-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
In Fedora:&lt;br /&gt;
  sudo python /usr/lib/python2.6/site-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
&lt;br /&gt;
2. Set permissions to database file&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots/ots.sqlite&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo chown apache:apache /opt/ots&lt;br /&gt;
 sudo chown apache:apache /opt/ots/ots.sqlite&lt;br /&gt;
&lt;br /&gt;
== Apache configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Install Apache2 and Apache2 modules&lt;br /&gt;
 sudo apt-get install libapache2-mod-wsgi apache2-mpm-prefork libapache2-mod-python&lt;br /&gt;
Fedora:&lt;br /&gt;
 yum install httpd mod_wsgi&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
&lt;br /&gt;
2. Apache2 configuration&lt;br /&gt;
&lt;br /&gt;
'''On Ubuntu'''&lt;br /&gt;
&lt;br /&gt;
Edit the 000-default file. See examples for Ubuntu 10.04 and 10.10 below.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/apache2/sites-enabled/000-default&lt;br /&gt;
&lt;br /&gt;
000-default on Ubuntu 10.04&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler python-program&lt;br /&gt;
    PythonHandler django.core.handlers.modpython&lt;br /&gt;
    SetEnv DJANGO_SETTINGS_MODULE ots.plugin.logger.django_ots.settings&lt;br /&gt;
    PythonDebug On&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/media&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LocationMatch &amp;quot;/styles&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/LocationMatch&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
000-default on Ubuntu 10.10&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fedora'''&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
 sudo nano /etc/httpd/conf.d/ots.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Copy www files to /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
4. Add WSGI settings '''&amp;quot;WSGIRestrictSignal Off&amp;quot;'''&lt;br /&gt;
 sudo nano /etc/apache2/apache2.conf&lt;br /&gt;
Fedora:&lt;br /&gt;
 sudo nano /etc/httpd/conf/httpd.conf&lt;br /&gt;
5. Restart apache&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
Fedora:&lt;br /&gt;
 chkconfig --add httpd&lt;br /&gt;
 chkconfig httpd on&lt;br /&gt;
 /etc/init.d/httpd start&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django</id>
		<title>Quality/QA-tools/OTS/Plugins/Django</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django"/>
				<updated>2011-06-30T11:59:13Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Apache configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Django environment setup =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Django is used for handling database communication and displaying WebUI.&lt;br /&gt;
&lt;br /&gt;
== Basic installation ==&lt;br /&gt;
&lt;br /&gt;
These instructions are made for Ubuntu, but should work in the same principals with other distributions. &amp;lt;br /&amp;gt;&lt;br /&gt;
Installation is made to OTS server.&lt;br /&gt;
&lt;br /&gt;
1. Install django&lt;br /&gt;
 sudo apt-get install python-django&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo yum install Django&lt;br /&gt;
2. Download the latest django xml-rpc plugin&lt;br /&gt;
 https://launchpad.net/django-xmlrpc&lt;br /&gt;
3. Install django plug-in&lt;br /&gt;
 tar xzf django_xmlrpc-0.1.tar.gz&lt;br /&gt;
 sudo mv django_xmlrpc /usr/local/lib/python2.6/dist-packages/&lt;br /&gt;
In Fedora (as root):&lt;br /&gt;
 mv django_xmlrpc /usr/lib/python2.6/site-packages/&lt;br /&gt;
 chcon -R -t httpd_user_content_t /usr/lib/python2.6/site-packages/django_xmlrpc&lt;br /&gt;
 chcon -R -t httpd_user_content_t /opt/ots&lt;br /&gt;
 setsebool -P httpd_unified 1&lt;br /&gt;
 setsebool -P httpd_tmp_exec 1&lt;br /&gt;
&lt;br /&gt;
== Enable/disable Django applications ==&lt;br /&gt;
&lt;br /&gt;
From '''0.8.3''' release, this is not necessary anymore. Plug-ins are loaded automatically.&lt;br /&gt;
&lt;br /&gt;
1. Edit Django settings&lt;br /&gt;
 sudo nano /usr/local/lib/python2.6/dist-packages/ots/django/settings.py&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo nano /usr/lib/python2.6/site-packages/ots/django/settings.py&lt;br /&gt;
2. Comment/uncomment OTS components in 'INSTALLED_APPS' section&lt;br /&gt;
 # OTS components:&lt;br /&gt;
 'ots.plugin.logger',&lt;br /&gt;
 'ots.plugin.monitor',&lt;br /&gt;
 'ots.plugin.history'&lt;br /&gt;
&lt;br /&gt;
== Create/update databases ==&lt;br /&gt;
&lt;br /&gt;
1. Create database&lt;br /&gt;
 sudo python /usr/local/lib/python2.6/dist-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
In Fedora:&lt;br /&gt;
  sudo python /usr/lib/python2.6/site-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
&lt;br /&gt;
2. Set permissions to database file&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots/ots.sqlite&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo chown apache:apache /opt/ots&lt;br /&gt;
 sudo chown apache:apache /opt/ots/ots.sqlite&lt;br /&gt;
&lt;br /&gt;
== Apache configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Install Apache2 and Apache2 modules&lt;br /&gt;
 sudo apt-get install libapache2-mod-wsgi apache2-mpm-prefork libapache2-mod-python&lt;br /&gt;
Fedora:&lt;br /&gt;
 yum install httpd mod_wsgi&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
&lt;br /&gt;
2. Apache2 configuration&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu'''&lt;br /&gt;
&lt;br /&gt;
Edit the 000-default file. See examples for Ubuntu 10.04 and 10.10 below.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/apache2/sites-enabled/000-default&lt;br /&gt;
&lt;br /&gt;
'''000-default on Ubuntu 10.04'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler python-program&lt;br /&gt;
    PythonHandler django.core.handlers.modpython&lt;br /&gt;
    SetEnv DJANGO_SETTINGS_MODULE ots.plugin.logger.django_ots.settings&lt;br /&gt;
    PythonDebug On&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/media&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LocationMatch &amp;quot;/styles&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/LocationMatch&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''000-default on Ubuntu 10.10'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fedora'''&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
 sudo nano /etc/httpd/conf.d/ots.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Copy www files to /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
4. Add WSGI settings '''&amp;quot;WSGIRestrictSignal Off&amp;quot;'''&lt;br /&gt;
 sudo nano /etc/apache2/apache2.conf&lt;br /&gt;
Fedora:&lt;br /&gt;
 sudo nano /etc/httpd/conf/httpd.conf&lt;br /&gt;
5. Restart apache&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
Fedora:&lt;br /&gt;
 chkconfig --add httpd&lt;br /&gt;
 chkconfig httpd on&lt;br /&gt;
 /etc/init.d/httpd start&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-06-30T11:45:05Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* How to install N900 automation tools to OTS worker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version.&lt;br /&gt;
&lt;br /&gt;
* Add Tools:Testing apt source to /etc/apt/sources.list&lt;br /&gt;
 sudo nano /etc/apt/sources.list&lt;br /&gt;
 deb http://download.meego.com/live/Tools:/Testing/xUbuntu_10.10/ /&lt;br /&gt;
Notice that if you are using Ubuntu 10.04, change the path.&lt;br /&gt;
&lt;br /&gt;
* Add repository keys&lt;br /&gt;
 gpg --keyserver subkeys.pgp.net --recv-keys 0BC7BEC479FC1F8A&lt;br /&gt;
 gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
* Update the repositories&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
'''Build packages from source (optional)'''&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
Or if you are using own built packages&lt;br /&gt;
 sudo dpkg -i ...&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots_server.ini&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots.ini&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
&lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-06-30T11:39:30Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* OTS server installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version.&lt;br /&gt;
&lt;br /&gt;
* Add Tools:Testing apt source to /etc/apt/sources.list&lt;br /&gt;
 sudo nano /etc/apt/sources.list&lt;br /&gt;
 deb http://download.meego.com/live/Tools:/Testing/xUbuntu_10.10/ /&lt;br /&gt;
Notice that if you are using Ubuntu 10.04, change the path.&lt;br /&gt;
&lt;br /&gt;
* Add repository keys&lt;br /&gt;
 gpg --keyserver subkeys.pgp.net --recv-keys 0BC7BEC479FC1F8A&lt;br /&gt;
 gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
* Update the repositories&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
'''Build packages from source (optional)'''&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
Or if you are using own built packages&lt;br /&gt;
 sudo dpkg -i ...&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots_server.ini&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots.ini&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
 &lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation"/>
				<updated>2011-06-30T11:35:01Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* OTS server installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation Ubuntu =&lt;br /&gt;
&lt;br /&gt;
If using 0.1.x version, see [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration from 0.1.x to 0.8.x]] document.&lt;br /&gt;
&lt;br /&gt;
== Used hardware ==&lt;br /&gt;
&lt;br /&gt;
:1 x Server (Ubuntu 10.10)&lt;br /&gt;
:1 x Client (Ubuntu 10.10)&lt;br /&gt;
::1 x HAT controller&lt;br /&gt;
:: 1 x Power cable&lt;br /&gt;
:: 1 x Power supply&lt;br /&gt;
:: 2 x USB A-B cable&lt;br /&gt;
:: 1 x USB A-microB cable&lt;br /&gt;
:: 1 x N900&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version.&lt;br /&gt;
&lt;br /&gt;
* Add Tools:Testing apt source to /etc/apt/sources.list&lt;br /&gt;
 sudo nano /etc/apt/sources.list&lt;br /&gt;
 deb http://download.meego.com/live/Tools:/Testing/xUbuntu_10.10/ /&lt;br /&gt;
Notice that if you are using Ubuntu 10.04, change the path.&lt;br /&gt;
&lt;br /&gt;
* Add repository keys&lt;br /&gt;
 gpg --keyserver subkeys.pgp.net --recv-keys 0BC7BEC479FC1F8A&lt;br /&gt;
 gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
* Update the repositories&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
'''Build packages from source (optional)'''&lt;br /&gt;
* Install git core&lt;br /&gt;
 sudo apt-get install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 sudo apt-get install dpkg-dev debhelper python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 cd ots&lt;br /&gt;
 dpkg-buildpackage -rfakeroot&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
Or if you are using own built packages&lt;br /&gt;
 sudo dpkg -i ...&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots_server.ini&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger plug-in]] (recommended)&lt;br /&gt;
 [[Quality/QA-tools/OTS/Plugins/Email|Email plug-in]] (recommended)&lt;br /&gt;
&lt;br /&gt;
See more plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is installed&lt;br /&gt;
 Change permissions to logging directory&lt;br /&gt;
 sudo chown www-data:www-data /var/log/ots&lt;br /&gt;
&lt;br /&gt;
Now the OTS server can be used via apache (django_xmlrpc).&lt;br /&gt;
&lt;br /&gt;
* If logger plug-in is not installed&lt;br /&gt;
 Change user permissions to logging directory&lt;br /&gt;
 sudo chown &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; /var/log/ots&lt;br /&gt;
&lt;br /&gt;
* Start rabbitmq-server&lt;br /&gt;
  /etc/init.d/rabbitmq-server start&lt;br /&gt;
&lt;br /&gt;
* Now you can start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 sudo apt-get install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots.ini&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 sudo apt-get install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost/xmlrpc -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Remove network-manager, because it breaks the USB connection. See more information from autotest-guide.&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 sudo apt-get install meego-ai-flasher eat-host-ubuntu&lt;br /&gt;
 &lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
 sudo dpkg -i maemo_flasher-3.5_2.5.2.2_i386.deb&lt;br /&gt;
&lt;br /&gt;
* Start HAT driver&lt;br /&gt;
 sudo hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS</id>
		<title>Quality/QA-tools/OTS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS"/>
				<updated>2011-06-13T07:29:15Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Releases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Index =&lt;br /&gt;
&lt;br /&gt;
Welcome to the Open Test System (OTS) Wiki Index.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
OTS is the '''Open Test System''' for testing software systems on evolving hardware architectures.&lt;br /&gt;
  &lt;br /&gt;
It was born out of the test framework incrementally developed for use on [http://maemo.org/ Maemo] project and is in use for 24/7 testing service by [http://www.nokia.com/ Nokia].&lt;br /&gt;
&lt;br /&gt;
More detailed info can be found from [[Quality/QA-tools/OTS/About|about]] page.&lt;br /&gt;
&lt;br /&gt;
== Releases ==&lt;br /&gt;
&lt;br /&gt;
Current release [http://meego.gitorious.org/meego-quality-assurance/ots tag 0.8.6]. See [[Quality/QA-tools/OTS/UserDocumentation/Upgrading|upgrading]] instructions!&lt;br /&gt;
&lt;br /&gt;
Next release [https://bugs.meego.com/show_bug.cgi?id=18875 0.8.7]&lt;br /&gt;
&lt;br /&gt;
See OTS [[Quality/QA-tools/OTS/Roadmap| roadmap.]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/UserDocumentation | User Documentation]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation | Installation Ubuntu]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation_rpm | Installation RPM]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Upgrading | Upgrading]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs | Developer Documentation]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/AdminDocs | System Administration]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/Glossary | Glossary]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/ExampleSetup | Example OTS Service Setup]]&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-06-13T06:48:05Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* 0.8.5 - 0.8.6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.5 - 0.8.6 ==&lt;br /&gt;
Backup all configuration files and database before upgrading.&lt;br /&gt;
&lt;br /&gt;
If you have logger plugin installed update the templates by giving following commands after upgrade:&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
&lt;br /&gt;
Upgrade also the latest meego-ai-flasher.&lt;br /&gt;
&lt;br /&gt;
=== Updating the database ===&lt;br /&gt;
&lt;br /&gt;
If you want to keep your old log database, add new (user_defined_id) column to the log_messages table. Run database command line interface for OTS database. By default OTS uses sqlite database at /opt/ots/ots.sqlite.&lt;br /&gt;
 sudo sqlite3 /opt/ots/ots.sqlite&lt;br /&gt;
Add new column to the log_messages table by executing following command:&lt;br /&gt;
 ALTER TABLE log_messages ADD COLUMN user_defined_id varchar(255) NOT NULL DEFAULT &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
If there's no need to keep the old database you can remove the database file (/opt/ots/ots.sqlite) and generate a new one using [[Quality/QA-tools/OTS/Plugins/Django#Create.2Fupdate_databases|the instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Rich-core conductor plug-in available&lt;br /&gt;
** Changes to /etc/conductor.conf &lt;br /&gt;
** New configuration file for plug-in: /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-06-13T06:12:00Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* 0.8.5 - 0.8.6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.5 - 0.8.6 ==&lt;br /&gt;
Backup all configuration files and database before updating.&lt;br /&gt;
&lt;br /&gt;
If you have logger plugin installed update the templates by giving following commands after upgrade:&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
&lt;br /&gt;
Upgrade also the latest meego-ai-flasher.&lt;br /&gt;
&lt;br /&gt;
=== Update the database ===&lt;br /&gt;
&lt;br /&gt;
If you want to keep your old log database, add new (user_defined_id) column to the log_messages table. Run database command line interface for OTS database. By default OTS uses sqlite database at /opt/ots/ots.sqlite.&lt;br /&gt;
 sudo sqlite3 /opt/ots/ots.sqlite&lt;br /&gt;
Add new column to the log_messages table by executing following command:&lt;br /&gt;
 ALTER TABLE log_messages ADD COLUMN user_defined_id varchar(255) NOT NULL DEFAULT &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Rich-core conductor plug-in available&lt;br /&gt;
** Changes to /etc/conductor.conf &lt;br /&gt;
** New configuration file for plug-in: /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Rich-core</id>
		<title>Quality/QA-tools/OTS/Plugins/Rich-core</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Rich-core"/>
				<updated>2011-05-23T06:14:19Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: Created page with &amp;quot;= Rich-core plug-in =  Released in OTS 0.8.5.  == Installation ==  Installation is made to OTS worker.  1. Install plug-in package  sudo apt-get install python-ots-plugin-conduct...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rich-core plug-in =&lt;br /&gt;
&lt;br /&gt;
Released in OTS 0.8.5.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Installation is made to OTS worker.&lt;br /&gt;
&lt;br /&gt;
1. Install plug-in package&lt;br /&gt;
 sudo apt-get install python-ots-plugin-conductor-richcore&lt;br /&gt;
On Fedora&lt;br /&gt;
 sudo yum install python-ots-plugin-conductor-richcore&lt;br /&gt;
&lt;br /&gt;
2. Make sure that testrunner-lite 1.6.1 or newer is installed&lt;br /&gt;
&lt;br /&gt;
3. Set rich_core_dumps_folder parameter for conductor&lt;br /&gt;
 sudo nano /etc/conductor.conf&lt;br /&gt;
&lt;br /&gt;
4. Configure rich-core plug-in settings&lt;br /&gt;
 sudo nano /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
5. Restart OTS worker&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs/Plugins</id>
		<title>Quality/QA-tools/OTS/DeveloperDocs/Plugins</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs/Plugins"/>
				<updated>2011-05-23T05:54:28Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Publisher Plugins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Plugins =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
OTS currently consists of two distributed '''Applications''':&lt;br /&gt;
&lt;br /&gt;
* Worker&lt;br /&gt;
&lt;br /&gt;
* Server &lt;br /&gt;
&lt;br /&gt;
These Applications are made up of '''Components'''. The '''Components''' perform a specific task in the system (and are distributable in their own right).&lt;br /&gt;
&lt;br /&gt;
Some of the '''Components''' are essential for the '''Applications''' to operate. The '''Plugins''' are the non-essential (pluggable!) '''Components'''.&lt;br /&gt;
&lt;br /&gt;
== Technology ==&lt;br /&gt;
&lt;br /&gt;
OTS allows for a configurable distribution by using a plug-in mechanism using [http://peak.telecommunity.com/DevCenter/PkgResources Package Resources]&lt;br /&gt;
&lt;br /&gt;
== Supported Plugins ==&lt;br /&gt;
&lt;br /&gt;
Some of the plug-ins are requiring [[Quality/QA-tools/OTS/Plugins/Django|Django environment]]. This is mentioned in the plug-ins instructions.&lt;br /&gt;
&lt;br /&gt;
=== Distribution Model Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/History|History]]|| ots.plugin.history.distribution_model:get_model || Test package distribution model based on last execution time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Publisher Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/HTTP_logger|HTTP Logger]]|| ots.plugin.logger.logger_plugin:LoggerPlugin || Plug-in for enabling HTTP based logging and monitoring&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Email|Email]]|| ots.plugin.email.email_plugin:EmailPlugin || Plug-in for enabling email sending&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/QAReports|QA-Reports]]|| ots.plugin.qareports.qareports_plugin:QAReportsPlugin || Plug-in for sending results to QA Reports&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/History|History]]|| ots.plugin.history.history_plugin:HistoryPlugin || Plug-in for storing execution times to database&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Monitor|Monitor]]|| ots.plugin.monitor.monitor_plugin:MonitorPlugin || Plug-in for collecting statistical information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Conductor Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Rich-core|Rich-core]]|| ots.plugin.conductor.richcore.richcore_plugin:RichCorePlugin || Plug-in for uploading rich-core dumps to post-processing. Rich-core plug-in is part of [[ARM/N900/QA#Crash_analysis_support_for_ARM_core_dumps|crash reporting functionality]].&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs/Plugins</id>
		<title>Quality/QA-tools/OTS/DeveloperDocs/Plugins</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs/Plugins"/>
				<updated>2011-05-20T14:35:40Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Plugins =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
OTS currently consists of two distributed '''Applications''':&lt;br /&gt;
&lt;br /&gt;
* Worker&lt;br /&gt;
&lt;br /&gt;
* Server &lt;br /&gt;
&lt;br /&gt;
These Applications are made up of '''Components'''. The '''Components''' perform a specific task in the system (and are distributable in their own right).&lt;br /&gt;
&lt;br /&gt;
Some of the '''Components''' are essential for the '''Applications''' to operate. The '''Plugins''' are the non-essential (pluggable!) '''Components'''.&lt;br /&gt;
&lt;br /&gt;
== Technology ==&lt;br /&gt;
&lt;br /&gt;
OTS allows for a configurable distribution by using a plug-in mechanism using [http://peak.telecommunity.com/DevCenter/PkgResources Package Resources]&lt;br /&gt;
&lt;br /&gt;
== Supported Plugins ==&lt;br /&gt;
&lt;br /&gt;
Some of the plug-ins are requiring [[Quality/QA-tools/OTS/Plugins/Django|Django environment]]. This is mentioned in the plug-ins instructions.&lt;br /&gt;
&lt;br /&gt;
=== Distribution Model Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/History|History]]|| ots.plugin.history.distribution_model:get_model || Test package distribution model based on last execution time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Publisher Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/HTTP_logger|HTTP Logger]]|| ots.logger_plugin.logger_plugin || Plug-in for enabling HTTP based logging and monitoring&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Email|Email]]|| ots.logger_plugin.email_plugin || Plug-in for enabling email sending&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/QAReports|QA-Reports]]|| ots.logger_plugin.qareports_plugin || Plug-in for sending results to QA-Reports&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/History|History]]|| ots.plugin.history.history_plugin:HistoryPlugin || Plug-in for storing execution times to database&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Monitor|Monitor]]|| ots.plugin.monitor.monitor_plugin:MonitorPlugin || Plug-in for collecting statistical information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Conductor Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Rich-core|Rich-core]]|| ots.plugin.conductor.richcore.richcore_plugin:RichCorePlugin || Plug-in for uploading rich-core dumps to post-processing. Rich-core plug-in is part of [[ARM/N900/QA#Crash_analysis_support_for_ARM_core_dumps|crash reporting functionality]].&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs/Plugins</id>
		<title>Quality/QA-tools/OTS/DeveloperDocs/Plugins</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs/Plugins"/>
				<updated>2011-05-20T14:34:46Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Conductor Plugins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Plugins =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
OTS currently consists of two distributed '''Applications''':&lt;br /&gt;
&lt;br /&gt;
* Worker&lt;br /&gt;
&lt;br /&gt;
* Server &lt;br /&gt;
&lt;br /&gt;
These Applications are made up of '''Components'''. The '''Components''' perform a specific task in the system (and are distributable in their own right).&lt;br /&gt;
&lt;br /&gt;
Some of the '''Components''' are essential for the '''Applications''' to operate. The '''Plugins''' are the non-essential (pluggable!) '''Components'''.&lt;br /&gt;
&lt;br /&gt;
== Technology ==&lt;br /&gt;
&lt;br /&gt;
OTS allows for a configurable distribution by using a PlugIn mechanism using [http://peak.telecommunity.com/DevCenter/PkgResources Package Resources]&lt;br /&gt;
&lt;br /&gt;
== Supported Plugins ==&lt;br /&gt;
&lt;br /&gt;
Some of the plug-ins are requiring [[Quality/QA-tools/OTS/Plugins/Django|Django environment]]. This is mentioned in the plug-ins instructions.&lt;br /&gt;
&lt;br /&gt;
=== Distribution Model Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/History|History]]|| ots.plugin.history.distribution_model:get_model || Test package distribution model based on last execution time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Publisher Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/HTTP_logger|HTTP Logger]]|| ots.logger_plugin.logger_plugin || Plug-in for enabling HTTP based logging and monitoring&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Email|Email]]|| ots.logger_plugin.email_plugin || Plug-in for enabling email sending&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/QAReports|QA-Reports]]|| ots.logger_plugin.qareports_plugin || Plug-in for sending results to QA-Reports&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/History|History]]|| ots.plugin.history.history_plugin:HistoryPlugin || Plug-in for storing execution times to database&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Monitor|Monitor]]|| ots.plugin.monitor.monitor_plugin:MonitorPlugin || Plug-in for collecting statistical information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Conductor Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Rich-core|Rich-core]]|| ots.plugin.conductor.richcore.richcore_plugin:RichCorePlugin || Plug-in for uploading rich-core dumps to post-processing. Rich-core plug-in is part of [[ARM/N900/QA#Crash_analysis_support_for_ARM_core_dumps|crash reporting functionality]].&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs/Plugins</id>
		<title>Quality/QA-tools/OTS/DeveloperDocs/Plugins</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/DeveloperDocs/Plugins"/>
				<updated>2011-05-20T14:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Plugins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Plugins =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
OTS currently consists of two distributed '''Applications''':&lt;br /&gt;
&lt;br /&gt;
* Worker&lt;br /&gt;
&lt;br /&gt;
* Server &lt;br /&gt;
&lt;br /&gt;
These Applications are made up of '''Components'''. The '''Components''' perform a specific task in the system (and are distributable in their own right).&lt;br /&gt;
&lt;br /&gt;
Some of the '''Components''' are essential for the '''Applications''' to operate. The '''Plugins''' are the non-essential (pluggable!) '''Components'''.&lt;br /&gt;
&lt;br /&gt;
== Technology ==&lt;br /&gt;
&lt;br /&gt;
OTS allows for a configurable distribution by using a PlugIn mechanism using [http://peak.telecommunity.com/DevCenter/PkgResources Package Resources]&lt;br /&gt;
&lt;br /&gt;
== Supported Plugins ==&lt;br /&gt;
&lt;br /&gt;
Some of the plug-ins are requiring [[Quality/QA-tools/OTS/Plugins/Django|Django environment]]. This is mentioned in the plug-ins instructions.&lt;br /&gt;
&lt;br /&gt;
=== Distribution Model Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/History|History]]|| ots.plugin.history.distribution_model:get_model || Test package distribution model based on last execution time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Publisher Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/HTTP_logger|HTTP Logger]]|| ots.logger_plugin.logger_plugin || Plug-in for enabling HTTP based logging and monitoring&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Email|Email]]|| ots.logger_plugin.email_plugin || Plug-in for enabling email sending&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/QAReports|QA-Reports]]|| ots.logger_plugin.qareports_plugin || Plug-in for sending results to QA-Reports&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/History|History]]|| ots.plugin.history.history_plugin:HistoryPlugin || Plug-in for storing execution times to database&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Monitor|Monitor]]|| ots.plugin.monitor.monitor_plugin:MonitorPlugin || Plug-in for collecting statistical information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Conductor Plugins ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||'''Entry point'''||'''Purpose'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Quality/QA-tools/OTS/Plugins/Rich-core|Rich-core]]|| ots.plugin.conductor.richcore.richcore_plugin:RichCorePlugin || Plug-in for uploading rich-core dumps to post-processing&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-05-20T13:17:43Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* 0.8.4 - 0.8.5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Rich-core conductor plug-in available&lt;br /&gt;
** Changes to /etc/conductor.conf &lt;br /&gt;
** New configuration file for plug-in: /etc/ots_plugin_conductor_richcore.conf&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Upgrading</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Upgrading"/>
				<updated>2011-05-20T10:57:53Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Upgrading OTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Upgrading OTS =&lt;br /&gt;
&lt;br /&gt;
== 0.8.4 - 0.8.5 ==&lt;br /&gt;
* Remember to install python-ots-plugin-conductor-richcore to all workers if you are planning to use it.&lt;br /&gt;
&lt;br /&gt;
== 0.8.3 - 0.8.4 ==&lt;br /&gt;
* Backup all configuration files before updating&lt;br /&gt;
* Multiple device support added, even if you use '''only one device''' check following:&lt;br /&gt;
** Changes to /etc/conductor.conf&lt;br /&gt;
** Update meego-ai-flasher (&amp;gt;= 0.1.4) and [http://meego-qa-tools.digia.com/meego-ai/meego-ai-optimized.tar.gz meego-ai] packages!&lt;br /&gt;
** Even if you use only one device, remove usb0 configurations from /etc/network/interfaces&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Multiple_device| See this instructions!]]&lt;br /&gt;
* Changes to QAReports configuration file /etc/ots_plugins_qareports.conf&lt;br /&gt;
** Added proxy and attachment upload settings&lt;br /&gt;
&lt;br /&gt;
== 0.8.2 - 0.8.3 ==&lt;br /&gt;
* Changes in ots_plugin_qareports.conf&lt;br /&gt;
** Add new parameters&lt;br /&gt;
* Only new features&lt;br /&gt;
** Test plan based execution&lt;br /&gt;
** Chroot support&lt;br /&gt;
** See [[Quality/QA-tools/OTS/UserDocumentation/Usage|how to]] use these features&lt;br /&gt;
&lt;br /&gt;
== 0.8.1 - 0.8.2 ==&lt;br /&gt;
* New django package added, effects to all plug-ins&lt;br /&gt;
** See [[Quality/QA-tools/OTS/Plugins/Django|Django instructions]].&lt;br /&gt;
** See [[Quality/QA-tools/OTS/DeveloperDocs/Plugins|plug-ins instructions]].&lt;br /&gt;
&lt;br /&gt;
== 0.8.0 - 0.8.1 ==&lt;br /&gt;
* Plug-in namespace changed, effects to Logger and QA-Reports plug-ins&lt;br /&gt;
** For logger update web page content, see step 8 from [[Quality/QA-tools/OTS/Plugins/HTTP_logger|Logger documentation]].&lt;br /&gt;
** For QA-Reports, configuration file name has changed. Move /etc/ots_qareports_plugin.conf to /etc/ots_plugin_qareports.conf&lt;br /&gt;
&lt;br /&gt;
== 0.1.x - 0.8.0 ==&lt;br /&gt;
&lt;br /&gt;
See [[Quality/QA-tools/OTS/UserDocumentation/Migration_0.1_0.8| migration document]].&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS</id>
		<title>Quality/QA-tools/OTS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS"/>
				<updated>2011-05-20T10:47:51Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Releases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Index =&lt;br /&gt;
&lt;br /&gt;
Welcome to the Open Test System (OTS) Wiki Index.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
OTS is the '''Open Test System''' for testing software systems on evolving hardware architectures.&lt;br /&gt;
  &lt;br /&gt;
It was born out of the test framework incrementally developed for use on [http://maemo.org/ Maemo] project and is in use for 24/7 testing service by [http://www.nokia.com/ Nokia].&lt;br /&gt;
&lt;br /&gt;
More detailed info can be found from [[Quality/QA-tools/OTS/About|about]] page.&lt;br /&gt;
&lt;br /&gt;
== Releases ==&lt;br /&gt;
&lt;br /&gt;
Current release [http://meego.gitorious.org/meego-quality-assurance/ots tag 0.8.5]. See [[Quality/QA-tools/OTS/UserDocumentation/Upgrading|upgrading]] instructions!&lt;br /&gt;
&lt;br /&gt;
Next release [https://bugs.meego.com/show_bug.cgi?id=17933 0.8.6]&lt;br /&gt;
&lt;br /&gt;
See OTS [[Quality/QA-tools/OTS/Roadmap| roadmap.]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/UserDocumentation | User Documentation]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation | Installation Ubuntu]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation_rpm | Installation RPM]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Upgrading | Upgrading]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs | Developer Documentation]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/AdminDocs | System Administration]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/Glossary | Glossary]]&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django</id>
		<title>Quality/QA-tools/OTS/Plugins/Django</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/Plugins/Django"/>
				<updated>2011-05-13T11:45:55Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Enable/disable Django applications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Django environment setup =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Django is used for handling database communication and displaying WebUI.&lt;br /&gt;
&lt;br /&gt;
== Basic installation ==&lt;br /&gt;
&lt;br /&gt;
These instructions are made for Ubuntu, but should work in the same principals with other distributions. &amp;lt;br /&amp;gt;&lt;br /&gt;
Installation is made to OTS server.&lt;br /&gt;
&lt;br /&gt;
1. Install django&lt;br /&gt;
 sudo apt-get install python-django&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo yum install Django&lt;br /&gt;
2. Download the latest django xml-rpc plugin&lt;br /&gt;
 https://launchpad.net/django-xmlrpc&lt;br /&gt;
3. Install django plug-in&lt;br /&gt;
 tar xzf django_xmlrpc-0.1.tar.gz&lt;br /&gt;
 sudo mv django_xmlrpc /usr/local/lib/python2.6/dist-packages/&lt;br /&gt;
In Fedora (as root):&lt;br /&gt;
 mv django_xmlrpc /usr/lib/python2.6/site-packages/&lt;br /&gt;
 chcon -R -t httpd_user_content_t /usr/lib/python2.6/site-packages/django_xmlrpc&lt;br /&gt;
 chcon -R -t httpd_user_content_t /opt/ots&lt;br /&gt;
 setsebool -P httpd_unified 1&lt;br /&gt;
 setsebool -P httpd_tmp_exec 1&lt;br /&gt;
&lt;br /&gt;
== Enable/disable Django applications ==&lt;br /&gt;
&lt;br /&gt;
From '''0.8.3''' release, this is not necessary anymore. Plug-ins are loaded automatically.&lt;br /&gt;
&lt;br /&gt;
1. Edit Django settings&lt;br /&gt;
 sudo nano /usr/local/lib/python2.6/dist-packages/ots/django/settings.py&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo nano /usr/lib/python2.6/site-packages/ots/django/settings.py&lt;br /&gt;
2. Comment/uncomment OTS components in 'INSTALLED_APPS' section&lt;br /&gt;
 # OTS components:&lt;br /&gt;
 'ots.plugin.logger',&lt;br /&gt;
 'ots.plugin.monitor',&lt;br /&gt;
 'ots.plugin.history'&lt;br /&gt;
&lt;br /&gt;
== Create/update databases ==&lt;br /&gt;
&lt;br /&gt;
1. Create database&lt;br /&gt;
 sudo python /usr/local/lib/python2.6/dist-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
In Fedora:&lt;br /&gt;
  sudo python /usr/lib/python2.6/site-packages/ots/django/manage.py syncdb --settings=settings&lt;br /&gt;
&lt;br /&gt;
2. Set permissions to database file&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots&lt;br /&gt;
 sudo chown www-data:www-data /opt/ots/ots.sqlite&lt;br /&gt;
In Fedora:&lt;br /&gt;
 sudo chown apache:apache /opt/ots&lt;br /&gt;
 sudo chown apache:apache /opt/ots/ots.sqlite&lt;br /&gt;
&lt;br /&gt;
== Apache configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Install Apache2 and Apache2 modules&lt;br /&gt;
 sudo apt-get install libapache2-mod-wsgi apache2-mpm-prefork&lt;br /&gt;
Fedora:&lt;br /&gt;
 yum install httpd mod_wsgi&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
&lt;br /&gt;
2. Apache2 configuration&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 10.04'''&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libapache2-mod-python&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler python-program&lt;br /&gt;
    PythonHandler django.core.handlers.modpython&lt;br /&gt;
    SetEnv DJANGO_SETTINGS_MODULE ots.plugin.logger.django_ots.settings&lt;br /&gt;
    PythonDebug On&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location &amp;quot;/media&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LocationMatch &amp;quot;/styles&amp;quot;&amp;gt;&lt;br /&gt;
    SetHandler None&lt;br /&gt;
&amp;lt;/LocationMatch&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 10.10'''&lt;br /&gt;
 sudo nano /etc/apache2/sites-enabled/000-default&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fedora'''&lt;br /&gt;
 rm /etc/httpd/conf.d/welcome.conf&lt;br /&gt;
 sudo nano /etc/httpd/conf.d/ots.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AliasMatch /([^/]*\.css) /var/www/styles/$1&lt;br /&gt;
&lt;br /&gt;
        Alias /media/ /var/www/media/&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/static&amp;gt;&lt;br /&gt;
                Order deny,allow&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        WSGIScriptAlias / /var/www/ots.wsgi&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /usr/local/wsgi/scripts&amp;gt;&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Copy www files to /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/django/* /var/www/&lt;br /&gt;
 sudo cp -r /usr/share/ots/plugin/* /var/www/&lt;br /&gt;
4. Add WSGI settings '''&amp;quot;WSGIRestrictSignal Off&amp;quot;'''&lt;br /&gt;
 sudo nano /etc/apache2/apache2.conf&lt;br /&gt;
Fedora:&lt;br /&gt;
 sudo nano /etc/httpd/conf/httpd.conf&lt;br /&gt;
5. Restart apache&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
Fedora:&lt;br /&gt;
 chkconfig --add httpd&lt;br /&gt;
 chkconfig httpd on&lt;br /&gt;
 /etc/init.d/httpd start&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation_rpm</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Installation rpm</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Installation_rpm"/>
				<updated>2011-05-13T11:39:58Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS 0.8.x installation RPM =&lt;br /&gt;
&lt;br /&gt;
These instructions have been tested with Fedora 13. Execute commands as root.&lt;br /&gt;
&lt;br /&gt;
In MeeGo netbook, at least following packages needs to be installed manually:&lt;br /&gt;
 python-amqp, python-django, minixsv, rabbitmq-server&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Using static IP addresses on all OTS machines is strongly recommended. It is possible to setup the system also with dynamic IP addresses but it might cause problems every now and then because IP's and hostnames change.&lt;br /&gt;
&lt;br /&gt;
'''Note''' All OTS machines need to be able to access other OTS machines based on their hostname.&lt;br /&gt;
&lt;br /&gt;
How to check that DNS names are correct:&lt;br /&gt;
&lt;br /&gt;
1. Check OTS server's hostname&lt;br /&gt;
 hostname&lt;br /&gt;
2. Ping the OTS server's hostname from the OTS worker&lt;br /&gt;
 ping &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ping fails, add manually OTS server's hostname to OTS workers '''/etc/hosts''' file&lt;br /&gt;
 &amp;lt;IP&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
There are two ways of getting OTS binary packages: from '''the source code'''&lt;br /&gt;
or from the '''MeeGo Tools:Testing repository'''. From the repository you can get&lt;br /&gt;
the stable version and from the source code the development version.&lt;br /&gt;
&lt;br /&gt;
* Add Tools:Testing source to /etc/yum.repos.d/&lt;br /&gt;
 cd /etc/yum.repos.d/&lt;br /&gt;
 yum install wget nano&lt;br /&gt;
 wget http://download.meego.com/live/Tools:/Testing/Fedora13/Tools:Testing.repo&lt;br /&gt;
&lt;br /&gt;
* Update the repositories&lt;br /&gt;
 yum check-update&lt;br /&gt;
&lt;br /&gt;
'''Build packages from source (optional)'''&lt;br /&gt;
* Install git core&lt;br /&gt;
 yum install git-core&lt;br /&gt;
&lt;br /&gt;
* Get sources&lt;br /&gt;
 git clone git://gitorious.org/meego-quality-assurance/ots.git&lt;br /&gt;
&lt;br /&gt;
* List tags&lt;br /&gt;
 git tag -l&lt;br /&gt;
&lt;br /&gt;
* Checkout the latest tag&lt;br /&gt;
 git checkout &amp;lt;tag_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Get building tools&lt;br /&gt;
 yum rpm-build python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Build packages&lt;br /&gt;
 mv ots python-ots-0.8.x&lt;br /&gt;
 tar czf python-ots-0.8.x.tar.gz python-ots-0.8.x&lt;br /&gt;
 rpmbuild -tb python-ots-0.8.x.tar.gz&lt;br /&gt;
&lt;br /&gt;
== OTS server installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 yum install Django python-amqplib python-configobj rabbitmq-server test-definition&lt;br /&gt;
 easy_install minixsv&lt;br /&gt;
 yum install python-setuptools&lt;br /&gt;
&lt;br /&gt;
* Install OTS server components&lt;br /&gt;
 yum install python-ots-common python-ots-results python-ots-server&lt;br /&gt;
or if you are using own built packages&lt;br /&gt;
 rpm -i ...&lt;br /&gt;
&lt;br /&gt;
* Add rabbitmq to start on boot&lt;br /&gt;
 chkconfig --add rabbitmq-server&lt;br /&gt;
 chkconfig rabbitmq-server on&lt;br /&gt;
&lt;br /&gt;
* Start rabbitmq server&lt;br /&gt;
 /etc/init.d/rabbitmq-server start&lt;br /&gt;
&lt;br /&gt;
* Configure OTS server settings&lt;br /&gt;
 sudo nano /etc/ots_server.ini&lt;br /&gt;
&lt;br /&gt;
Recommended to change following:&lt;br /&gt;
 'example_sw_product', example to 'meego_product'&lt;br /&gt;
 'devicegroup', example to 'meego_n900'&lt;br /&gt;
&lt;br /&gt;
* Install OTS server plug-ins&lt;br /&gt;
&lt;br /&gt;
See plug-ins from [[Quality/QA-tools/OTS/Plugins|OTS Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
* Start OTS server&lt;br /&gt;
 ots_server&lt;br /&gt;
&lt;br /&gt;
== OTS worker installation ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 yum install python-amqplib testrunner-lite&lt;br /&gt;
&lt;br /&gt;
* Install OTS worker packages&lt;br /&gt;
 yum install python-ots-common python-ots-worker&lt;br /&gt;
&lt;br /&gt;
* Configure OTS worker settings&lt;br /&gt;
 sudo nano /etc/ots.ini&lt;br /&gt;
&lt;br /&gt;
Change 'devicegroup', example meego_n900&lt;br /&gt;
&lt;br /&gt;
Change 'host' to server's address&lt;br /&gt;
&lt;br /&gt;
* Start OTS worker (as root)&lt;br /&gt;
 ots_worker&lt;br /&gt;
&lt;br /&gt;
NOTE: if worker failed to start up with error like &amp;quot;socket.error: [Errno 113] No route to host&amp;quot;, check that ots-worker is able to connect to ots-server&lt;br /&gt;
&lt;br /&gt;
== OTS tools ==&lt;br /&gt;
&lt;br /&gt;
Tools are used for triggering test runs from the command line.&lt;br /&gt;
&lt;br /&gt;
* Install OTS tools&lt;br /&gt;
 yum install python-ots-tools&lt;br /&gt;
&lt;br /&gt;
* Trigger a test run&lt;br /&gt;
 ots_trigger -s localhost:8080 -b test_build -i http://url_to_image -p example_sw_product -e test@man.com&lt;br /&gt;
&lt;br /&gt;
* Kickstart file for automation can be found from&lt;br /&gt;
 http://meego.gitorious.org/meego-quality-assurance/enables-automated-testing/blobs/ks/meego-n900-autotest.ks&lt;br /&gt;
&lt;br /&gt;
* You need to build the image with mic-image-creator with parameters:&lt;br /&gt;
 --save-kernel --package=tar.gz&lt;br /&gt;
&lt;br /&gt;
== How to install N900 automation tools to OTS worker ==&lt;br /&gt;
&lt;br /&gt;
* Install dependencies&lt;br /&gt;
 yum install meego-ai-flaster eat-host&lt;br /&gt;
 &lt;br /&gt;
* Get N900 flasher from the Nokia's tablets-dev portal&lt;br /&gt;
 http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2.tar.gz&lt;br /&gt;
 Compile the flasher&lt;br /&gt;
&lt;br /&gt;
* Configure conductor to use rpm and fetch /var/log/messages&lt;br /&gt;
 sudo nano /etc/conductor.conf&lt;br /&gt;
&lt;br /&gt;
* Test manually that everything is OK, this is executed in the worker&lt;br /&gt;
 sudo conductor -u &amp;lt;image url&amp;gt;&lt;br /&gt;
* Start OTS worker&lt;br /&gt;
 sudo ots_worker&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA_tools_development</id>
		<title>Quality/QA tools development</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA_tools_development"/>
				<updated>2011-05-02T06:33:29Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= QA tools development =&lt;br /&gt;
&lt;br /&gt;
This page provides information on the development activities and practices of QA tools. The focus is on presenting things that are relevant for people interested in developing the tools. The main page for the end users is [[Quality/QA-tools|here]].&lt;br /&gt;
&lt;br /&gt;
Anyone is welcome to contribute and non-member contributions will be treated with same process and review as member contributions. We follow [http://meego.com/about/contribution-guidelines MeeGo contribution guidelines]. In addition, you may take personal clone from our [http://meego.gitorious.org/meego-quality-assurance/ git repositories] and create merge request. Tool maintainers in our projects will review your contributions and decide on merge.&lt;br /&gt;
&lt;br /&gt;
'''Targets:'''&lt;br /&gt;
&lt;br /&gt;
* Improve MeeGo test reporting tools - target from MeeGo Quality Assurance&lt;br /&gt;
* Improve MeeGo test automation (execution and software installation) - target from MeeGo release engineering&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As Core OS release release manager I want to verify trunk:testing packages frequently so that I know the quality of nightly/weekly releases.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Tools and Maintainers ==&lt;br /&gt;
&lt;br /&gt;
Tool maintainers are selected based on developer experience with particular tool/package or seniority. Tool maintainers have been agreed [[Quality/QA-tools/Meetings|in the QA-tools meeting]] Tuesday September 7th 2010. Changes, if needed, are discussed also there.&lt;br /&gt;
&lt;br /&gt;
In practice only tool maintainers will have commit and review right to particular repository - later several people may have rights to repository based on merit (as proposed by tool maintainer). Others must follow [http://meego.com/about/contribution-guidelines MeeGo contribution guidelines] to submit patches or personal clone + merge request approach. &lt;br /&gt;
 &lt;br /&gt;
The maintainer of the tree shall update the changelog.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|'''Tool (link to wiki page)''' ||'''Gitorious'''||'''Maintainer''' ||'''Substitute'''&lt;br /&gt;
|- &lt;br /&gt;
| [[Quality/QA-tools/Test-definition|test-definition]]||[http://meego.gitorious.org/meego-quality-assurance/test-definition Gitorious] || Sampo Saaristo || Timo Härkönen&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Testrunner-lite|testrunner-lite]] ||[http://meego.gitorious.org/meego-quality-assurance/testrunner-lite Gitorious] || Sampo Saaristo || Kyösti Ranto&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Testrunner|Testrunner]] || [http://meego.gitorious.org/meego-quality-assurance/testrunner Gitorious] || Kyösti Ranto || Timo Härkönen &lt;br /&gt;
|- &lt;br /&gt;
| [[Quality/QA-tools/Testplanner|Testplanner]] ||[http://meego.gitorious.org/meego-quality-assurance/testplanner Gitorious] ||  Kyösti Ranto || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Eat|eat - enables automated testing]] ||[http://meego.gitorious.org/meego-quality-assurance/enables-automated-testing Gitorious] ||  Timo Härkönen || Timo Mäkimattila&lt;br /&gt;
|- &lt;br /&gt;
| [[Quality/QA-tools/OTS|OTS - Open Test System]] ||[http://meego.gitorious.org/meego-quality-assurance/ots Gitorious] ||  Elias Luttinen || Ville Niutanen&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Autotest-guide#Automatic_image_installations|MeeGo Automated installer]] ||[http://gitorious.org/qa-tools/meego-ai Gitorious] ||  Timo Härkönen || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/TestSuite/MCTS|MeeGo Core Test Suite]] || [http://meego.gitorious.org/meego-quality-assurance/mcts/ Gitorious] ||Matti Salmi || Jeff Zheng&lt;br /&gt;
|- &lt;br /&gt;
| [[Quality/Netbook Test Suite and Utilities|MeeGo Netbook Test Suite]] || [http://gitorious.org/qa-tools/mnts/ Gitorious] ||Jeff Zheng || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/qtuitest-mbt-adapter|Model-Based Testing adapter for qtuitest]]  || [http://gitorious.org/qa-tools/qtuitest-mbt-adapter Gitorious] || Riku Halonen || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [http://min.sourceforge.net/ MIN test framework] || [http://meego.gitorious.org/meego-quality-assurance/min Gitorious] ||  Sampo Saaristo || Timo Mäkimattila&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/TDriver|Testability Driver]] || [http://gitorious.org/TDriver Gitorious] ||  Petri Kiiskinen || Tatu Lahtela&lt;br /&gt;
|-&lt;br /&gt;
| Rich Core dumper || [http://meego.gitorious.org/meego-quality-assurance/rich-core Gitorious] || Carol Rus || Raimo Gratseff&lt;br /&gt;
|-&lt;br /&gt;
| Crash Reporter || [http://meego.gitorious.org/meego-quality-assurance/crash-reporter Gitorious] || Carol Rus || Raimo Gratseff&lt;br /&gt;
|-&lt;br /&gt;
| Crash Reporter settings || [http://meego.gitorious.org/meego-quality-assurance/crash-reporter-settings-public Gitorious] || Carol Rus || Raimo Gratseff&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/hat-control|Hardware Accessory for Testing (HAT)]] || [http://meego.gitorious.org/meego-quality-assurance/hat-control Gitorious] || Marko Junttila || Riku Halonen&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/QAReports|QA Reports]] || [http://meego.gitorious.org/meego-quality-assurance/qa-reports Gitorious] || Sami Hangaslammi || Jarno Keskikangas&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Scripts_and_utils|Scripts and utils]] || [http://meego.gitorious.com/meego-quality-assurance/scripts-and-utils Gitorious] || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/TestSuite/handset-test-suite/handset-ux-test_Releases | handset_ux_tests]] || [http://meego.gitorious.com/meego-quality-assurance/handset-ux-tests Gitorious] || JessicaJi || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/MeeGo_Fast_Feedback_Testing|MeeGo Fast Feedback Testing (MeeGo-FFT)]] || [http://meego.gitorious.org/meego-quality-assurance/meego-testing-hudson-plugin Gitorious] || Alexey Kuznetsov || Timo Härkönen&lt;br /&gt;
|-&lt;br /&gt;
| Service OS based Flasher || [http://meego.gitorious.org/meego-quality-assurance/meego-ai-serviceos Gitorious] || Jing Wang || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Qpid C wrapper|Qpid C wrapper library - libcqpid]] || [http://meego.gitorious.org/meego-quality-assurance/libcqpid Gitorious] || Sami Lahtinen || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you are interested in the user experience work regarding these tools, you can find more information [[Quality/QA-tools/User experience|here]].&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
The figure below tries to summarize the relations and tasks of the tools when used in test automation context.&lt;br /&gt;
&lt;br /&gt;
[[File:testautomationtools.png]]&lt;br /&gt;
&lt;br /&gt;
xfig file:[[File:qatools.fig]]&lt;br /&gt;
&lt;br /&gt;
== Release Practices ==&lt;br /&gt;
&lt;br /&gt;
Here is the workflow for QA tools release practices.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|'''Role'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| Developer || Anyone who wants to participate in qa-tools development &lt;br /&gt;
|-&lt;br /&gt;
| VCS Maintainer || Component owner who has commit rights in version control system (VCS)&lt;br /&gt;
|-&lt;br /&gt;
| Package Maintainer || Integrator whose responsibility is the OBS packaging&lt;br /&gt;
|-&lt;br /&gt;
| Release Management || Third party who is responsible of trunk:testing releases(?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Release.png]]&lt;br /&gt;
&lt;br /&gt;
Kivio file: [[File:Release.flw]]&lt;br /&gt;
&lt;br /&gt;
# Developer creates merge request(s) in gitorious.&lt;br /&gt;
# VCS Maintainer tests and accepts merge requests.&lt;br /&gt;
# VCS Maintainer checks/updates change logs.&lt;br /&gt;
# VCS Maintainer tags a version.&lt;br /&gt;
# VCS maintainer sends email to [http://lists.meego.com/pipermail/meego-qa/ meego-qa mailing list] based on the following template&lt;br /&gt;
Topic: Integration request: package-name version&lt;br /&gt;
 PACKAGE: package-name&lt;br /&gt;
 TAG: tag name&lt;br /&gt;
 URL: link to sources&lt;br /&gt;
 CHANGES: short description of changes containing bugs.meego.com bug numbers of fixed bugs&lt;br /&gt;
# Package maintainer updates the OBS package.&lt;br /&gt;
# Package maintainer tests the OBS package.&lt;br /&gt;
# If the package belongs to tools:testing and passes testing, Package Maintainer may accept it. If the package belongs to trunk:testing, Package Maintainer creates a promotional request to Release Management. (If the package belongs to both repositories, we let the Release Management set bugs fixed by the package to RELEASED state).&lt;br /&gt;
# Host side tools are updated to tools:testing after verifying functionality&lt;br /&gt;
# Package maintainer replies to meego-qa list about the actions done with the updated package. e.g. 'Updated in devel:quality and sent promotion request to testing'&lt;br /&gt;
# Release Management accepts the package. Or not. (Follow meego-packaging and meego-commits.)&lt;br /&gt;
&lt;br /&gt;
''' YouTube videos '''&lt;br /&gt;
&lt;br /&gt;
YouTube is a good way to communicate new features. You can find existing demo videos on [http://www.youtube.com/user/meegoqatools meegoqatools channel on Youtube].&lt;br /&gt;
&lt;br /&gt;
If you shoot a video to YouTube, promote it on meego-qa mailing list!&lt;br /&gt;
&lt;br /&gt;
You can find some hints how to shoot, edit, and upload a video here: [[YouTube_Hints]]&lt;br /&gt;
&lt;br /&gt;
=== Release checklist ===&lt;br /&gt;
To make sure fixes are released without delay, check that the following conditions are met&lt;br /&gt;
&lt;br /&gt;
# Change logs are updated and contain relevant references to MeeGo bugzilla&lt;br /&gt;
# Created obs request include fixes bug numbers from MeeGo bugzilla&lt;br /&gt;
# Bugzilla items listed in changes are set as resolved&lt;br /&gt;
# Spec file matches [[Packaging/Guidelines|MeeGo packaging guidelines]]&lt;br /&gt;
# Rpmlint warnings are either fixed or explained by comments in the spec file. e.g. eat packages install files into root's home and the reasoning for it needs to be explained&lt;br /&gt;
# Host side tool packages use the same source tar ball to produce debian and rpm packages&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
The focus is currently on [[ARM/N900/QA|N900 Developer Edition QA]]. Hence the N900 related list below doesn't have a comprehensive information about target builds or priorities.&lt;br /&gt;
&lt;br /&gt;
When you add a new bug, add correct dependencies to the corresponding roadmap meta bug.&lt;br /&gt;
&lt;br /&gt;
The features in the roadmap are followed with META FEA bugs. The features are split to small tool specific FEA:s that block the feature META bug. The META bug is then the last bug to be closed when the feature is finished. You can also follow the tool bug progression from the dependency trees of the META bugs.&lt;br /&gt;
&lt;br /&gt;
Adding a new feature to the roadmap:&lt;br /&gt;
# Add a feature bug describing the main purpose of the feature with META and FEA tags.&lt;br /&gt;
# Add separate bugs for each tool specific change&lt;br /&gt;
# Add correct dependencies between tool specific bugs (e.g. testrunner bug depends on testrunner-lite bug that depends on test-definition bug...)&lt;br /&gt;
# Make all of the bugs block the META bug&lt;br /&gt;
&lt;br /&gt;
A list of defined features:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|'''Feature'''&lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/showdependencytree.cgi?id=12980&amp;amp;hide_resolved=0 Measurement support] &lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/show_bug.cgi?id=12810 Easy install] &lt;br /&gt;
|-&lt;br /&gt;
| [http://bugs.meego.com/showdependencytree.cgi?id=12454&amp;amp;hide_resolved=0 Parallel testing] &lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/showdependencytree.cgi?id=12981&amp;amp;hide_resolved=0 Events feature in automatic testing]&lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/showdependencytree.cgi?id=12937&amp;amp;hide_resolved=0 MCTS coverage support]&lt;br /&gt;
|-&lt;br /&gt;
| [http://bugs.meego.com/showdependencytree.cgi?id=12833&amp;amp;hide_resolved=0 Test environment validation]&lt;br /&gt;
|-&lt;br /&gt;
| [http://bugs.meego.com/showdependencytree.cgi?id=13092&amp;amp;hide_resolved=0 Test equipment control]&lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/showdependencytree.cgi?id=12971&amp;amp;hide_resolved=0 Qt Creator integration] &lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/show_bug.cgi?id=13190 A tool that combines Testrunner and Testplanner]&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/OTS/Roadmap|OTS releases]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design/ Planning ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/MCTS test automation design|MCTS Test Automation]] (QA Tools support for MCTS)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
Please make sure that all the relevant documentation regarding the tools is kept up-to-date whenever you update any of the tools. Please consider the end users of the tool as the primary readers of the documentation and make the documentation task-oriented for end user needs. Separate developer documentation can exist as well.&lt;br /&gt;
&lt;br /&gt;
'''Wiki guidelines'''&lt;br /&gt;
&lt;br /&gt;
Every tool should have a wiki page that contains at least 1) Overview of the tool and its benefits 2) Installation instructions 3) Basic use tutorial 4) Contact information. &lt;br /&gt;
&lt;br /&gt;
Make sure that you are familiar with [[Wiki contribution guidelines|MeeGo wiki contribution guidelines]] before creating new content. Currently, there are quite a lot problems relating to e.g. page names, wiki links, deep hierarchies and obsolete pages in our wiki section.&lt;br /&gt;
&lt;br /&gt;
'''Documentation checklist'''&lt;br /&gt;
&lt;br /&gt;
The following table lists the tool-specific documentation that should exist (marked with 'x'). These should be checked frequently and more in depth in the future. Bugs will be filed for the missing or inaccurate documentation (marked as 'NOK' i.e. &amp;quot;Not OK&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|'''Tool''' ||'''Doxygen'''||'''Help''' ||'''Man pages''' || '''Wiki''' &lt;br /&gt;
|- &lt;br /&gt;
| test-definition || || || || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-03 &lt;br /&gt;
|-&lt;br /&gt;
| testrunner-lite || x || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07 || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07, NOK&amp;lt;br /&amp;gt;[http://bugs.meego.com/show_bug.cgi?id=14074 Bug 14074] || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07, NOK&amp;lt;br /&amp;gt;[http://bugs.meego.com/show_bug.cgi?id=14073 Bug 14073]&lt;br /&gt;
|-&lt;br /&gt;
| Testrunner || x || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07 ||  || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07 &lt;br /&gt;
|- &lt;br /&gt;
| Testplanner || x || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-10 ||  || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07 &lt;br /&gt;
|-&lt;br /&gt;
| eat - enables automated testing || || || || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-08 &lt;br /&gt;
|- &lt;br /&gt;
| OTS - Open Test System || x || x || x || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-25&lt;br /&gt;
|-&lt;br /&gt;
| MIN test framework || x || x || x ||  &lt;br /&gt;
|-&lt;br /&gt;
| Scripts and utils || || || || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-11 &lt;br /&gt;
|-&lt;br /&gt;
| MeeGo Fast Feedback Testing || x || x ||  || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-11&lt;br /&gt;
|-&lt;br /&gt;
| Qpid C wrapper library - libcqpid || x || || || x&amp;lt;br /&amp;gt;Page created, content to be added. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Other documentation'''&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/Autotest-guide|Autotest-Guide]]&lt;br /&gt;
* [[Quality/QA-tools/How_to_set_up_repositories|How to set up the repositories that are needed to install QA tools]]&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
All meetings will be held in &amp;lt;code&amp;gt;#meego-meeting&amp;lt;/code&amp;gt; on &amp;lt;code&amp;gt;irc.freenode.net&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Team meetings&lt;br /&gt;
** QA-tools weekly meetings are held on every Tuesday 08:00 UTC in #meego-meeting2 on irc.freenode.net (please note the &amp;quot;2&amp;quot;) from May 3rd 2011 onwards.&lt;br /&gt;
** [[Quality/QA-tools/Meetings|Meeting agendas and minutes]]&lt;br /&gt;
&lt;br /&gt;
* Architecture meetings&lt;br /&gt;
** Architecture meetings will be held on-demand basis.&lt;br /&gt;
** [[Quality/QA-tools/Arch-Meetings|Meeting agendas and minutes]]&lt;br /&gt;
&lt;br /&gt;
* Workshops&lt;br /&gt;
** Face-2-face meetings within the team.&lt;br /&gt;
** [[Quality/QA-tools/Workshops|Meeting agendas and minutes]]&lt;br /&gt;
&lt;br /&gt;
== Collaboration spaces ==&lt;br /&gt;
&lt;br /&gt;
Team communication is in English. Our collaboration spaces are:&lt;br /&gt;
* [http://lists.meego.com/listinfo/meego-qa meego-qa@lists.meego.com mailing list]&lt;br /&gt;
* [http://lists.meego.com/listinfo/meego-dev meego-dev@meego.com mailing list], please prefix with 'QA-tools' for team related topics.&lt;br /&gt;
** Please also poke team members or Ville Ilvonen either by email or on IRC because of high traffic @ meego-dev&lt;br /&gt;
* [http://webchat.freenode.net/?channels=meego-qa #meego-qa IRC channel on irc.freenode.net]&lt;br /&gt;
** [http://timoph.fi/qa-tools-stats/ Old #meego-qa-tools statistics]&lt;br /&gt;
** [http://timoph.fi/qa-tools-logs-archive/ Archived #meego-qa-tools logs]&lt;br /&gt;
* Gitorious team, http://meego.gitorious.org/meego-quality-assurance/&lt;br /&gt;
* [http://www.youtube.com/user/meegoqatools Youtube channel for demo videos]&lt;br /&gt;
* [http://meegoqatools.wordpress.com/ QA-tools team blog]&lt;br /&gt;
* MeeGo OBS - devel:quality&lt;br /&gt;
* This wiki area&lt;br /&gt;
* [[Quality/QA-tools/ServiceOS|ServiceOS]]&lt;br /&gt;
* [[Quality/QA-tools/PXEInstall|PXEInstallation]]&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
&lt;br /&gt;
The current team members are (in no particular order):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Role'''&lt;br /&gt;
| '''Affiliation'''&lt;br /&gt;
| '''IRC nickname'''&lt;br /&gt;
|- &lt;br /&gt;
| Riku Halonen || Team member || Nokia || rikhalon&lt;br /&gt;
|-&lt;br /&gt;
| Kari Sievi || Team member || Digia || sievi&lt;br /&gt;
|-&lt;br /&gt;
| Timo Härkönen || Team member || Digia || timoph  &lt;br /&gt;
|-&lt;br /&gt;
| Carol Rus || Team member || Digia || carrus  &lt;br /&gt;
|-&lt;br /&gt;
| Sami Lahtinen || Team member || Digia || slahtinen  &lt;br /&gt;
|-&lt;br /&gt;
| Raimo Gratseff || Team member || Digia || rrraimo  &lt;br /&gt;
|-&lt;br /&gt;
| Kyösti Ranto || Team member || Digia || kyranto&lt;br /&gt;
|-&lt;br /&gt;
| Joonas Kylänpää || Team member || Digia || Kaadlajk&lt;br /&gt;
|-&lt;br /&gt;
| Timo Mäkimattila || Team member || Digia || timakima&lt;br /&gt;
|-&lt;br /&gt;
| Elias Luttinen || Team member || Digia || eluttine&lt;br /&gt;
|-&lt;br /&gt;
| Ville Niutanen || Team member || Digia || Villen&lt;br /&gt;
|-&lt;br /&gt;
| Vesa Poikajärvi || Team member || Digia || vesse&lt;br /&gt;
|-  &lt;br /&gt;
| Alexey Kuznetsov || Team member || Digia || alkuznet&lt;br /&gt;
|-  &lt;br /&gt;
| Daniil Chuiko || Team member || Digia || dachuiko&lt;br /&gt;
|-&lt;br /&gt;
| Jarmo Savinen || Team member || Digia || jasavi&lt;br /&gt;
|-&lt;br /&gt;
| Sampo Saaristo || Team member || Sofica || sampos&lt;br /&gt;
|-  &lt;br /&gt;
| Ling Yu || Team member || Intel || -&lt;br /&gt;
|-&lt;br /&gt;
| Jing Wang || Team member || Intel || -&lt;br /&gt;
|-  &lt;br /&gt;
| Tuomo Mäkinen || Team member || Ixonos || -&lt;br /&gt;
|-  &lt;br /&gt;
| Jouni Leppäkases || Team member || Ixonos || jouni&lt;br /&gt;
|-&lt;br /&gt;
| Jarno Keskikangas || Team member || Leonidas || jakeskik&lt;br /&gt;
|- &lt;br /&gt;
| Janne Hietamäki || Team member || Leonidas || _janne&lt;br /&gt;
|- &lt;br /&gt;
| Sami Hangaslammi || Team member || Leonidas || sahangas&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:QA]]&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS</id>
		<title>Quality/QA-tools/OTS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS"/>
				<updated>2011-05-02T06:29:56Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Index =&lt;br /&gt;
&lt;br /&gt;
Welcome to the Open Test System (OTS) Wiki Index.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
OTS is the '''Open Test System''' for testing software systems on evolving hardware architectures.&lt;br /&gt;
  &lt;br /&gt;
It was born out of the test framework incrementally developed for use on [http://maemo.org/ Maemo] project and is in use for 24/7 testing service by [http://www.nokia.com/ Nokia].&lt;br /&gt;
&lt;br /&gt;
More detailed info can be found from [[Quality/QA-tools/OTS/About|about]] page.&lt;br /&gt;
&lt;br /&gt;
== Releases ==&lt;br /&gt;
&lt;br /&gt;
Current release [http://meego.gitorious.org/meego-quality-assurance/ots tag 0.8.4]. See [[Quality/QA-tools/OTS/UserDocumentation/Upgrading|upgrading]] instructions!&lt;br /&gt;
&lt;br /&gt;
Next release [https://bugs.meego.com/show_bug.cgi?id=16861 0.8.5]&lt;br /&gt;
&lt;br /&gt;
See OTS [[Quality/QA-tools/OTS/Roadmap| roadmap.]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/UserDocumentation | User Documentation]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation | Installation Ubuntu]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation_rpm | Installation RPM]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Upgrading | Upgrading]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs | Developer Documentation]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/AdminDocs | System Administration]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/Glossary | Glossary]]&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA_tools_development</id>
		<title>Quality/QA tools development</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA_tools_development"/>
				<updated>2011-05-02T06:27:13Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Tools and Maintainers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= QA tools development =&lt;br /&gt;
&lt;br /&gt;
This page provides information on the development activities and practices of QA tools. The focus is on presenting things that are relevant for people interested in developing the tools. The main page for the end users is [[Quality/QA-tools|here]].&lt;br /&gt;
&lt;br /&gt;
Anyone is welcome to contribute and non-member contributions will be treated with same process and review as member contributions. We follow [http://meego.com/about/contribution-guidelines MeeGo contribution guidelines]. In addition, you may take personal clone from our [http://meego.gitorious.org/meego-quality-assurance/ git repositories] and create merge request. Tool maintainers in our projects will review your contributions and decide on merge.&lt;br /&gt;
&lt;br /&gt;
'''Targets:'''&lt;br /&gt;
&lt;br /&gt;
* Improve MeeGo test reporting tools - target from MeeGo Quality Assurance&lt;br /&gt;
* Improve MeeGo test automation (execution and software installation) - target from MeeGo release engineering&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As Core OS release release manager I want to verify trunk:testing packages frequently so that I know the quality of nightly/weekly releases.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Tools and Maintainers ==&lt;br /&gt;
&lt;br /&gt;
Tool maintainers are selected based on developer experience with particular tool/package or seniority. Tool maintainers have been agreed [[Quality/QA-tools/Meetings|in the QA-tools meeting]] Tuesday September 7th 2010. Changes, if needed, are discussed also there.&lt;br /&gt;
&lt;br /&gt;
In practice only tool maintainers will have commit and review right to particular repository - later several people may have rights to repository based on merit (as proposed by tool maintainer). Others must follow [http://meego.com/about/contribution-guidelines MeeGo contribution guidelines] to submit patches or personal clone + merge request approach. &lt;br /&gt;
 &lt;br /&gt;
The maintainer of the tree shall update the changelog.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|'''Tool (link to wiki page)''' ||'''Gitorious'''||'''Maintainer''' ||'''Substitute'''&lt;br /&gt;
|- &lt;br /&gt;
| [[Quality/QA-tools/Test-definition|test-definition]]||[http://meego.gitorious.org/meego-quality-assurance/test-definition Gitorious] || Sampo Saaristo || Timo Härkönen&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Testrunner-lite|testrunner-lite]] ||[http://meego.gitorious.org/meego-quality-assurance/testrunner-lite Gitorious] || Sampo Saaristo || Kyösti Ranto&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Testrunner|Testrunner]] || [http://meego.gitorious.org/meego-quality-assurance/testrunner Gitorious] || Kyösti Ranto || Timo Härkönen &lt;br /&gt;
|- &lt;br /&gt;
| [[Quality/QA-tools/Testplanner|Testplanner]] ||[http://meego.gitorious.org/meego-quality-assurance/testplanner Gitorious] ||  Kyösti Ranto || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Eat|eat - enables automated testing]] ||[http://meego.gitorious.org/meego-quality-assurance/enables-automated-testing Gitorious] ||  Timo Härkönen || Timo Mäkimattila&lt;br /&gt;
|- &lt;br /&gt;
| [[Quality/QA-tools/OTS|OTS - Open Test System]] ||[http://meego.gitorious.org/meego-quality-assurance/ots Gitorious] ||  Elias Luttinen || Ville Niutanen&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Autotest-guide#Automatic_image_installations|MeeGo Automated installer]] ||[http://gitorious.org/qa-tools/meego-ai Gitorious] ||  Timo Härkönen || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/TestSuite/MCTS|MeeGo Core Test Suite]] || [http://meego.gitorious.org/meego-quality-assurance/mcts/ Gitorious] ||Matti Salmi || Jeff Zheng&lt;br /&gt;
|- &lt;br /&gt;
| [[Quality/Netbook Test Suite and Utilities|MeeGo Netbook Test Suite]] || [http://gitorious.org/qa-tools/mnts/ Gitorious] ||Jeff Zheng || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/qtuitest-mbt-adapter|Model-Based Testing adapter for qtuitest]]  || [http://gitorious.org/qa-tools/qtuitest-mbt-adapter Gitorious] || Riku Halonen || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [http://min.sourceforge.net/ MIN test framework] || [http://meego.gitorious.org/meego-quality-assurance/min Gitorious] ||  Sampo Saaristo || Timo Mäkimattila&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/TDriver|Testability Driver]] || [http://gitorious.org/TDriver Gitorious] ||  Petri Kiiskinen || Tatu Lahtela&lt;br /&gt;
|-&lt;br /&gt;
| Rich Core dumper || [http://meego.gitorious.org/meego-quality-assurance/rich-core Gitorious] || Carol Rus || Raimo Gratseff&lt;br /&gt;
|-&lt;br /&gt;
| Crash Reporter || [http://meego.gitorious.org/meego-quality-assurance/crash-reporter Gitorious] || Carol Rus || Raimo Gratseff&lt;br /&gt;
|-&lt;br /&gt;
| Crash Reporter settings || [http://meego.gitorious.org/meego-quality-assurance/crash-reporter-settings-public Gitorious] || Carol Rus || Raimo Gratseff&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/hat-control|Hardware Accessory for Testing (HAT)]] || [http://meego.gitorious.org/meego-quality-assurance/hat-control Gitorious] || Marko Junttila || Riku Halonen&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/QAReports|QA Reports]] || [http://meego.gitorious.org/meego-quality-assurance/qa-reports Gitorious] || Sami Hangaslammi || Jarno Keskikangas&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Scripts_and_utils|Scripts and utils]] || [http://meego.gitorious.com/meego-quality-assurance/scripts-and-utils Gitorious] || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/TestSuite/handset-test-suite/handset-ux-test_Releases | handset_ux_tests]] || [http://meego.gitorious.com/meego-quality-assurance/handset-ux-tests Gitorious] || JessicaJi || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/MeeGo_Fast_Feedback_Testing|MeeGo Fast Feedback Testing (MeeGo-FFT)]] || [http://meego.gitorious.org/meego-quality-assurance/meego-testing-hudson-plugin Gitorious] || Alexey Kuznetsov || Timo Härkönen&lt;br /&gt;
|-&lt;br /&gt;
| Service OS based Flasher || [http://meego.gitorious.org/meego-quality-assurance/meego-ai-serviceos Gitorious] || Jing Wang || N/A&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/Qpid C wrapper|Qpid C wrapper library - libcqpid]] || [http://meego.gitorious.org/meego-quality-assurance/libcqpid Gitorious] || Sami Lahtinen || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you are interested in the user experience work regarding these tools, you can find more information [[Quality/QA-tools/User experience|here]].&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
The figure below tries to summarize the relations and tasks of the tools when used in test automation context.&lt;br /&gt;
&lt;br /&gt;
[[File:testautomationtools.png]]&lt;br /&gt;
&lt;br /&gt;
xfig file:[[File:qatools.fig]]&lt;br /&gt;
&lt;br /&gt;
== Release Practices ==&lt;br /&gt;
&lt;br /&gt;
Here is the workflow for QA tools release practices.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|'''Role'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| Developer || Anyone who wants to participate in qa-tools development &lt;br /&gt;
|-&lt;br /&gt;
| VCS Maintainer || Component owner who has commit rights in version control system (VCS)&lt;br /&gt;
|-&lt;br /&gt;
| Package Maintainer || Integrator whose responsibility is the OBS packaging&lt;br /&gt;
|-&lt;br /&gt;
| Release Management || Third party who is responsible of trunk:testing releases(?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Release.png]]&lt;br /&gt;
&lt;br /&gt;
Kivio file: [[File:Release.flw]]&lt;br /&gt;
&lt;br /&gt;
# Developer creates merge request(s) in gitorious.&lt;br /&gt;
# VCS Maintainer tests and accepts merge requests.&lt;br /&gt;
# VCS Maintainer checks/updates change logs.&lt;br /&gt;
# VCS Maintainer tags a version.&lt;br /&gt;
# VCS maintainer sends email to [http://lists.meego.com/pipermail/meego-qa/ meego-qa mailing list] based on the following template&lt;br /&gt;
Topic: Integration request: package-name version&lt;br /&gt;
 PACKAGE: package-name&lt;br /&gt;
 TAG: tag name&lt;br /&gt;
 URL: link to sources&lt;br /&gt;
 CHANGES: short description of changes containing bugs.meego.com bug numbers of fixed bugs&lt;br /&gt;
# Package maintainer updates the OBS package.&lt;br /&gt;
# Package maintainer tests the OBS package.&lt;br /&gt;
# If the package belongs to tools:testing and passes testing, Package Maintainer may accept it. If the package belongs to trunk:testing, Package Maintainer creates a promotional request to Release Management. (If the package belongs to both repositories, we let the Release Management set bugs fixed by the package to RELEASED state).&lt;br /&gt;
# Host side tools are updated to tools:testing after verifying functionality&lt;br /&gt;
# Package maintainer replies to meego-qa list about the actions done with the updated package. e.g. 'Updated in devel:quality and sent promotion request to testing'&lt;br /&gt;
# Release Management accepts the package. Or not. (Follow meego-packaging and meego-commits.)&lt;br /&gt;
&lt;br /&gt;
''' YouTube videos '''&lt;br /&gt;
&lt;br /&gt;
YouTube is a good way to communicate new features. You can find existing demo videos on [http://www.youtube.com/user/meegoqatools meegoqatools channel on Youtube].&lt;br /&gt;
&lt;br /&gt;
If you shoot a video to YouTube, promote it on meego-qa mailing list!&lt;br /&gt;
&lt;br /&gt;
You can find some hints how to shoot, edit, and upload a video here: [[YouTube_Hints]]&lt;br /&gt;
&lt;br /&gt;
=== Release checklist ===&lt;br /&gt;
To make sure fixes are released without delay, check that the following conditions are met&lt;br /&gt;
&lt;br /&gt;
# Change logs are updated and contain relevant references to MeeGo bugzilla&lt;br /&gt;
# Created obs request include fixes bug numbers from MeeGo bugzilla&lt;br /&gt;
# Bugzilla items listed in changes are set as resolved&lt;br /&gt;
# Spec file matches [[Packaging/Guidelines|MeeGo packaging guidelines]]&lt;br /&gt;
# Rpmlint warnings are either fixed or explained by comments in the spec file. e.g. eat packages install files into root's home and the reasoning for it needs to be explained&lt;br /&gt;
# Host side tool packages use the same source tar ball to produce debian and rpm packages&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
The focus is currently on [[ARM/N900/QA|N900 Developer Edition QA]]. Hence the N900 related list below doesn't have a comprehensive information about target builds or priorities.&lt;br /&gt;
&lt;br /&gt;
When you add a new bug, add correct dependencies to the corresponding roadmap meta bug.&lt;br /&gt;
&lt;br /&gt;
The features in the roadmap are followed with META FEA bugs. The features are split to small tool specific FEA:s that block the feature META bug. The META bug is then the last bug to be closed when the feature is finished. You can also follow the tool bug progression from the dependency trees of the META bugs.&lt;br /&gt;
&lt;br /&gt;
Adding a new feature to the roadmap:&lt;br /&gt;
# Add a feature bug describing the main purpose of the feature with META and FEA tags.&lt;br /&gt;
# Add separate bugs for each tool specific change&lt;br /&gt;
# Add correct dependencies between tool specific bugs (e.g. testrunner bug depends on testrunner-lite bug that depends on test-definition bug...)&lt;br /&gt;
# Make all of the bugs block the META bug&lt;br /&gt;
&lt;br /&gt;
A list of defined features:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|'''Feature'''&lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/showdependencytree.cgi?id=12980&amp;amp;hide_resolved=0 Measurement support] &lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/show_bug.cgi?id=12810 Easy install] &lt;br /&gt;
|-&lt;br /&gt;
| [http://bugs.meego.com/showdependencytree.cgi?id=12454&amp;amp;hide_resolved=0 Parallel testing] &lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/showdependencytree.cgi?id=12981&amp;amp;hide_resolved=0 Events feature in automatic testing]&lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/showdependencytree.cgi?id=12937&amp;amp;hide_resolved=0 MCTS coverage support]&lt;br /&gt;
|-&lt;br /&gt;
| [http://bugs.meego.com/showdependencytree.cgi?id=12833&amp;amp;hide_resolved=0 Test environment validation]&lt;br /&gt;
|-&lt;br /&gt;
| [http://bugs.meego.com/showdependencytree.cgi?id=13092&amp;amp;hide_resolved=0 Test equipment control]&lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/showdependencytree.cgi?id=12971&amp;amp;hide_resolved=0 Qt Creator integration] &lt;br /&gt;
|-&lt;br /&gt;
| [https://bugs.meego.com/show_bug.cgi?id=13190 A tool that combines Testrunner and Testplanner]&lt;br /&gt;
|-&lt;br /&gt;
| [[Quality/QA-tools/OTS/Roadmap|OTS releases]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design/ Planning ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/MCTS test automation design|MCTS Test Automation]] (QA Tools support for MCTS)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
Please make sure that all the relevant documentation regarding the tools is kept up-to-date whenever you update any of the tools. Please consider the end users of the tool as the primary readers of the documentation and make the documentation task-oriented for end user needs. Separate developer documentation can exist as well.&lt;br /&gt;
&lt;br /&gt;
'''Wiki guidelines'''&lt;br /&gt;
&lt;br /&gt;
Every tool should have a wiki page that contains at least 1) Overview of the tool and its benefits 2) Installation instructions 3) Basic use tutorial 4) Contact information. &lt;br /&gt;
&lt;br /&gt;
Make sure that you are familiar with [[Wiki contribution guidelines|MeeGo wiki contribution guidelines]] before creating new content. Currently, there are quite a lot problems relating to e.g. page names, wiki links, deep hierarchies and obsolete pages in our wiki section.&lt;br /&gt;
&lt;br /&gt;
'''Documentation checklist'''&lt;br /&gt;
&lt;br /&gt;
The following table lists the tool-specific documentation that should exist (marked with 'x'). These should be checked frequently and more in depth in the future. Bugs will be filed for the missing or inaccurate documentation (marked as 'NOK' i.e. &amp;quot;Not OK&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|'''Tool''' ||'''Doxygen'''||'''Help''' ||'''Man pages''' || '''Wiki''' &lt;br /&gt;
|- &lt;br /&gt;
| test-definition || || || || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-03 &lt;br /&gt;
|-&lt;br /&gt;
| testrunner-lite || x || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07 || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07, NOK&amp;lt;br /&amp;gt;[http://bugs.meego.com/show_bug.cgi?id=14074 Bug 14074] || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07, NOK&amp;lt;br /&amp;gt;[http://bugs.meego.com/show_bug.cgi?id=14073 Bug 14073]&lt;br /&gt;
|-&lt;br /&gt;
| Testrunner || x || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07 ||  || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07 &lt;br /&gt;
|- &lt;br /&gt;
| Testplanner || x || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-10 ||  || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-07 &lt;br /&gt;
|-&lt;br /&gt;
| eat - enables automated testing || || || || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-08 &lt;br /&gt;
|- &lt;br /&gt;
| ots - open testing system || x || x || x || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-25&lt;br /&gt;
|-&lt;br /&gt;
| MIN test framework || x || x || x ||  &lt;br /&gt;
|-&lt;br /&gt;
| Scripts and utils || || || || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-11 &lt;br /&gt;
|-&lt;br /&gt;
| MeeGo Fast Feedback Testing || x || x ||  || x&amp;lt;br /&amp;gt;Checked: asinnela 2011-03-11&lt;br /&gt;
|-&lt;br /&gt;
| Qpid C wrapper library - libcqpid || x || || || x&amp;lt;br /&amp;gt;Page created, content to be added. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Other documentation'''&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/Autotest-guide|Autotest-Guide]]&lt;br /&gt;
* [[Quality/QA-tools/How_to_set_up_repositories|How to set up the repositories that are needed to install QA tools]]&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
All meetings will be held in &amp;lt;code&amp;gt;#meego-meeting&amp;lt;/code&amp;gt; on &amp;lt;code&amp;gt;irc.freenode.net&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Team meetings&lt;br /&gt;
** QA-tools weekly meetings are held on every Tuesday 08:00 UTC in #meego-meeting2 on irc.freenode.net (please note the &amp;quot;2&amp;quot;) from May 3rd 2011 onwards.&lt;br /&gt;
** [[Quality/QA-tools/Meetings|Meeting agendas and minutes]]&lt;br /&gt;
&lt;br /&gt;
* Architecture meetings&lt;br /&gt;
** Architecture meetings will be held on-demand basis.&lt;br /&gt;
** [[Quality/QA-tools/Arch-Meetings|Meeting agendas and minutes]]&lt;br /&gt;
&lt;br /&gt;
* Workshops&lt;br /&gt;
** Face-2-face meetings within the team.&lt;br /&gt;
** [[Quality/QA-tools/Workshops|Meeting agendas and minutes]]&lt;br /&gt;
&lt;br /&gt;
== Collaboration spaces ==&lt;br /&gt;
&lt;br /&gt;
Team communication is in English. Our collaboration spaces are:&lt;br /&gt;
* [http://lists.meego.com/listinfo/meego-qa meego-qa@lists.meego.com mailing list]&lt;br /&gt;
* [http://lists.meego.com/listinfo/meego-dev meego-dev@meego.com mailing list], please prefix with 'QA-tools' for team related topics.&lt;br /&gt;
** Please also poke team members or Ville Ilvonen either by email or on IRC because of high traffic @ meego-dev&lt;br /&gt;
* [http://webchat.freenode.net/?channels=meego-qa #meego-qa IRC channel on irc.freenode.net]&lt;br /&gt;
** [http://timoph.fi/qa-tools-stats/ Old #meego-qa-tools statistics]&lt;br /&gt;
** [http://timoph.fi/qa-tools-logs-archive/ Archived #meego-qa-tools logs]&lt;br /&gt;
* Gitorious team, http://meego.gitorious.org/meego-quality-assurance/&lt;br /&gt;
* [http://www.youtube.com/user/meegoqatools Youtube channel for demo videos]&lt;br /&gt;
* [http://meegoqatools.wordpress.com/ QA-tools team blog]&lt;br /&gt;
* MeeGo OBS - devel:quality&lt;br /&gt;
* This wiki area&lt;br /&gt;
* [[Quality/QA-tools/ServiceOS|ServiceOS]]&lt;br /&gt;
* [[Quality/QA-tools/PXEInstall|PXEInstallation]]&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
&lt;br /&gt;
The current team members are (in no particular order):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Role'''&lt;br /&gt;
| '''Affiliation'''&lt;br /&gt;
| '''IRC nickname'''&lt;br /&gt;
|- &lt;br /&gt;
| Riku Halonen || Team member || Nokia || rikhalon&lt;br /&gt;
|-&lt;br /&gt;
| Kari Sievi || Team member || Digia || sievi&lt;br /&gt;
|-&lt;br /&gt;
| Timo Härkönen || Team member || Digia || timoph  &lt;br /&gt;
|-&lt;br /&gt;
| Carol Rus || Team member || Digia || carrus  &lt;br /&gt;
|-&lt;br /&gt;
| Sami Lahtinen || Team member || Digia || slahtinen  &lt;br /&gt;
|-&lt;br /&gt;
| Raimo Gratseff || Team member || Digia || rrraimo  &lt;br /&gt;
|-&lt;br /&gt;
| Kyösti Ranto || Team member || Digia || kyranto&lt;br /&gt;
|-&lt;br /&gt;
| Joonas Kylänpää || Team member || Digia || Kaadlajk&lt;br /&gt;
|-&lt;br /&gt;
| Timo Mäkimattila || Team member || Digia || timakima&lt;br /&gt;
|-&lt;br /&gt;
| Elias Luttinen || Team member || Digia || eluttine&lt;br /&gt;
|-&lt;br /&gt;
| Ville Niutanen || Team member || Digia || Villen&lt;br /&gt;
|-&lt;br /&gt;
| Vesa Poikajärvi || Team member || Digia || vesse&lt;br /&gt;
|-  &lt;br /&gt;
| Alexey Kuznetsov || Team member || Digia || alkuznet&lt;br /&gt;
|-  &lt;br /&gt;
| Daniil Chuiko || Team member || Digia || dachuiko&lt;br /&gt;
|-&lt;br /&gt;
| Jarmo Savinen || Team member || Digia || jasavi&lt;br /&gt;
|-&lt;br /&gt;
| Sampo Saaristo || Team member || Sofica || sampos&lt;br /&gt;
|-  &lt;br /&gt;
| Ling Yu || Team member || Intel || -&lt;br /&gt;
|-&lt;br /&gt;
| Jing Wang || Team member || Intel || -&lt;br /&gt;
|-  &lt;br /&gt;
| Tuomo Mäkinen || Team member || Ixonos || -&lt;br /&gt;
|-  &lt;br /&gt;
| Jouni Leppäkases || Team member || Ixonos || jouni&lt;br /&gt;
|-&lt;br /&gt;
| Jarno Keskikangas || Team member || Leonidas || jakeskik&lt;br /&gt;
|- &lt;br /&gt;
| Janne Hietamäki || Team member || Leonidas || _janne&lt;br /&gt;
|- &lt;br /&gt;
| Sami Hangaslammi || Team member || Leonidas || sahangas&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:QA]]&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS</id>
		<title>Quality/QA-tools/OTS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS"/>
				<updated>2011-04-29T13:08:25Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Releases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Index =&lt;br /&gt;
&lt;br /&gt;
Welcome to the Open Test System (OTS) Wiki Index.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
OTS is the '''Open Test Service''' for testing software systems on evolving hardware architectures.&lt;br /&gt;
  &lt;br /&gt;
It was born out of the test framework incrementally developed for use on [http://maemo.org/ Maemo] project and is in use for 24/7 testing service by [http://www.nokia.com/ Nokia].&lt;br /&gt;
&lt;br /&gt;
More detailed info can be found from [[Quality/QA-tools/OTS/About|about]] page.&lt;br /&gt;
&lt;br /&gt;
== Releases ==&lt;br /&gt;
&lt;br /&gt;
Current release [http://meego.gitorious.org/meego-quality-assurance/ots tag 0.8.4]. See [[Quality/QA-tools/OTS/UserDocumentation/Upgrading|upgrading]] instructions!&lt;br /&gt;
&lt;br /&gt;
Next release [https://bugs.meego.com/show_bug.cgi?id=16861 0.8.5]&lt;br /&gt;
&lt;br /&gt;
See OTS [[Quality/QA-tools/OTS/Roadmap| roadmap.]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QA-tools/OTS/UserDocumentation | User Documentation]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation | Installation Ubuntu]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Installation_rpm | Installation RPM]]&lt;br /&gt;
** [[Quality/QA-tools/OTS/UserDocumentation/Upgrading | Upgrading]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/DeveloperDocs | Developer Documentation]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/AdminDocs | System Administration]]&lt;br /&gt;
* [[Quality/QA-tools/OTS/Glossary | Glossary]]&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/Roadmap</id>
		<title>Quality/QA-tools/OTS/Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/Roadmap"/>
				<updated>2011-04-29T09:36:51Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* OTS 0.8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Roadmap =&lt;br /&gt;
&lt;br /&gt;
All features and bugs are listed in [https://bugs.meego.com/buglist.cgi?classification=MeeGo%20Projects&amp;amp;query_format=advanced&amp;amp;component=ots&amp;amp;product=MeeGo%20Quality%20Assurance bugs.meego.com]&lt;br /&gt;
&lt;br /&gt;
Releases are available in bugzilla: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#bugzilla:&lt;br /&gt;
  |columns=id,summary&lt;br /&gt;
  |component=ots&lt;br /&gt;
  |search=META&lt;br /&gt;
  |depends=*&lt;br /&gt;
  |sort=summary&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== OTS 0.9 ==&lt;br /&gt;
&lt;br /&gt;
[https://bugs.meego.com/showdependencytree.cgi?id=10866&amp;amp;hide_resolved=0 Status]&lt;br /&gt;
&lt;br /&gt;
This release aims to collate the features of 6Pack and OTS. &lt;br /&gt;
&lt;br /&gt;
The Conductor will be the main focus with particular attention paid to the variation points in the architecture and configurability.&lt;br /&gt;
&lt;br /&gt;
Aim to have Python APIs  in the Conductor (rather than the CL) &lt;br /&gt;
&lt;br /&gt;
Study the viability of lower level extension points on the test results.&lt;br /&gt;
&lt;br /&gt;
'''In progress'''&lt;br /&gt;
&lt;br /&gt;
=== Goals ===&lt;br /&gt;
&lt;br /&gt;
* Bring reliability of ots.server up to 0.1 standards&lt;br /&gt;
* A more coherent system  &lt;br /&gt;
* 6Pack integration&lt;br /&gt;
* APIs are  enough for 3rd party plugin development in ots.server&lt;br /&gt;
* Create small releases 0.8.1, 0.8.2 and so on&lt;br /&gt;
&lt;br /&gt;
== OTS 0.8 ==&lt;br /&gt;
&lt;br /&gt;
This release aims to address the issues that will naturally arise in moving from a closed source system maintained in-house to a widely distributed Open Source system. i.e. documentability support, a code base that supports distributed development.&lt;br /&gt;
&lt;br /&gt;
'''Released on 28th of January 2011.'''&lt;br /&gt;
&lt;br /&gt;
=== Goals ===&lt;br /&gt;
&lt;br /&gt;
* Good developer documentation&lt;br /&gt;
* No functional changes from 0.1 release&lt;br /&gt;
* APIs are stable enough for 3rd party plugin development in ots.server&lt;br /&gt;
&lt;br /&gt;
== OTS 0.1 ==&lt;br /&gt;
&lt;br /&gt;
This release is based on legacy code. Only minor refactoring is done. API:s are subject to change and development documentation will be very limited.&lt;br /&gt;
&lt;br /&gt;
'''Released on 28th of september 2010.'''&lt;br /&gt;
&lt;br /&gt;
=== Goals ===&lt;br /&gt;
&lt;br /&gt;
* Fully functioning test system with installation documentation.&lt;br /&gt;
* Anybody can setup an OTS instance and execute testruns.&lt;br /&gt;
* Development moved to open source mode.&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/hat-control</id>
		<title>Quality/QA-tools/hat-control</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/hat-control"/>
				<updated>2011-04-07T11:11:25Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Using HAT SW to control usb and power switches. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HAT Device ==&lt;br /&gt;
&lt;br /&gt;
[[File:HAT_purkki1.jpg]]&lt;br /&gt;
&lt;br /&gt;
HAT device is test hardware to PC USB interface, which allows accurate measurements from DUT. Device has two switchable power outputs and two switchable USB paths. The power and data lines of the USB can switched on or off separately. HAT device has also four sensor inputs for different sensors. Currently only current measurement sensor is available, but other sensors will be available soon. Sensor inputs without sensor HW can be directly used to measure voltage levels if needed.&lt;br /&gt;
&lt;br /&gt;
[[File:Hw_concept.jpg]]&lt;br /&gt;
&lt;br /&gt;
== HAT device specs ==&lt;br /&gt;
&lt;br /&gt;
'''Sensors inputs:'''&lt;br /&gt;
*Analog input resolution is 12bit at 10kHz (for one channel. For two channels 10kHz/2 = 5kHz)&lt;br /&gt;
*Analog input voltage range 0 - 2.44V&lt;br /&gt;
*Input impedance ~1Mohm &lt;br /&gt;
*Sensor inputs have one digital output line (TTL) for controlling sensor (e.g sensor gain)&lt;br /&gt;
'''USB:'''&lt;br /&gt;
*Data+ and data- lines can swithced off or on.&lt;br /&gt;
*Power line can be swithced off or on.&lt;br /&gt;
*Maximum current 500mA&lt;br /&gt;
*LED indicates data lines switch state.&lt;br /&gt;
'''Power'''&lt;br /&gt;
*Absolute maximum input voltage 20V&lt;br /&gt;
*Absolute maximum input current 1.5A&lt;br /&gt;
*Two power outputs.&lt;br /&gt;
*LED indicates power line switch state.&lt;br /&gt;
&lt;br /&gt;
== HAT-control ==&lt;br /&gt;
&lt;br /&gt;
HAT-control is software that is used to control HAT (Hardware Accessory for Testing) device. SW contains two applications. Driver (hat_drv) application controls HAT device via USB. The control SW (hat_ctrl) controls HAT device using driver. Communication between driver and control processes is done using shared memory.  &lt;br /&gt;
&lt;br /&gt;
== SW Installation ==&lt;br /&gt;
&lt;br /&gt;
HAT-control sw can be installed to Ubuntu 10.04. It should work also other distributions, but it is not tested yet.&lt;br /&gt;
&lt;br /&gt;
HAT SW dependences:&lt;br /&gt;
&lt;br /&gt;
* libusb-1.0.8&lt;br /&gt;
* liblabjackusb&lt;br /&gt;
* glib-2.0&lt;br /&gt;
&lt;br /&gt;
'''Libusb installation:'''&lt;br /&gt;
&lt;br /&gt;
1. Install libusb-1.0.x package:&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install libusb-1.0&lt;br /&gt;
&lt;br /&gt;
'''glib-2.0 installation:'''&lt;br /&gt;
&lt;br /&gt;
1. Install glib-2.0 package:&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install libglib2.0-dev&lt;br /&gt;
&lt;br /&gt;
'''Liblabjackusb installation:'''&lt;br /&gt;
&lt;br /&gt;
1. Get exodriver sources:&lt;br /&gt;
&lt;br /&gt;
   git clone https://github.com/labjack/exodriver.git&lt;br /&gt;
&lt;br /&gt;
2. Go liblabjackusb folder &lt;br /&gt;
&lt;br /&gt;
   $ cd exodriver/liblabjackusb&lt;br /&gt;
&lt;br /&gt;
3. Build library &lt;br /&gt;
&lt;br /&gt;
   $ make&lt;br /&gt;
&lt;br /&gt;
4. Install library&lt;br /&gt;
&lt;br /&gt;
   $ sudo make install&lt;br /&gt;
&lt;br /&gt;
5. Liblabjackusb needs access to the /dev/bus/usb. Run following commands in labjack-exodriver root folder.&lt;br /&gt;
&lt;br /&gt;
   $ cd ..&lt;br /&gt;
   $ sudo cp 10-labjack.rules /etc/udev/rules.d&lt;br /&gt;
   $ sudo udevadm control --reload-rules&lt;br /&gt;
 &lt;br /&gt;
'''Building HAT SW'''&lt;br /&gt;
&lt;br /&gt;
1. Build HAT SW:&lt;br /&gt;
&lt;br /&gt;
Get sources using git (or some otherway):&lt;br /&gt;
&lt;br /&gt;
   $ git clone git://gitorious.org/meego-quality-assurance/hat-control.git&lt;br /&gt;
&lt;br /&gt;
Go to hat-control folder and compile sources (autoconf, automake, libtool and pkg-config are required)&lt;br /&gt;
&lt;br /&gt;
   $ autoreconf -i&lt;br /&gt;
   $ ./configure --prefix=/usr&lt;br /&gt;
   $ make&lt;br /&gt;
   $ sudo make install&lt;br /&gt;
&lt;br /&gt;
== Using HAT SW to control usb and power switches. ==&lt;br /&gt;
&lt;br /&gt;
1. Connect HAT device to USB port and start HAT driver.&lt;br /&gt;
&lt;br /&gt;
   $ hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Driver should print 'hat_drv: HAT driver started succesfully', if it has started succesfully.&lt;br /&gt;
It also shows serial numeber of the controller device.&lt;br /&gt;
   &lt;br /&gt;
2. Use hat_ctrl SW to control HAT device. For example switch power output 1 on&lt;br /&gt;
&lt;br /&gt;
   $ hat_ctrl -pwr1=on&lt;br /&gt;
&lt;br /&gt;
Get all parameters just type&lt;br /&gt;
&lt;br /&gt;
   $ hat_ctrl --help&lt;br /&gt;
&lt;br /&gt;
== New features ==&lt;br /&gt;
&lt;br /&gt;
'''Multiple HAT support'''&lt;br /&gt;
&lt;br /&gt;
Multiple HAT support will be added in couple of weeks. HAT driver and control software will have new parameter &amp;quot;-SN [SerialNumber]&amp;quot; which will specify the HAT device. When you have only one HAT device, you don't need to add &amp;quot;-SN&amp;quot; parameter. So, no modifications to excistence setup is needed if used only one HAT device.&lt;br /&gt;
&lt;br /&gt;
'''New current sensor'''&lt;br /&gt;
&lt;br /&gt;
The HAT Current Sensor can be used with HAT device by connecting it to one of the sensor inputs of HAT device. The sensor can be used for measuring the current from the device under test (DUT). The sensor has two measurement ranges, 0-100mA and 0-1.5A. The range is software selectable.&lt;br /&gt;
&lt;br /&gt;
== Further development ==&lt;br /&gt;
&lt;br /&gt;
HAT SW is now very early state. There might be major changes in the near future. Command line parameters might change in near future.&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/hat-control</id>
		<title>Quality/QA-tools/hat-control</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/hat-control"/>
				<updated>2011-04-07T11:08:45Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* SW Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HAT Device ==&lt;br /&gt;
&lt;br /&gt;
[[File:HAT_purkki1.jpg]]&lt;br /&gt;
&lt;br /&gt;
HAT device is test hardware to PC USB interface, which allows accurate measurements from DUT. Device has two switchable power outputs and two switchable USB paths. The power and data lines of the USB can switched on or off separately. HAT device has also four sensor inputs for different sensors. Currently only current measurement sensor is available, but other sensors will be available soon. Sensor inputs without sensor HW can be directly used to measure voltage levels if needed.&lt;br /&gt;
&lt;br /&gt;
[[File:Hw_concept.jpg]]&lt;br /&gt;
&lt;br /&gt;
== HAT device specs ==&lt;br /&gt;
&lt;br /&gt;
'''Sensors inputs:'''&lt;br /&gt;
*Analog input resolution is 12bit at 10kHz (for one channel. For two channels 10kHz/2 = 5kHz)&lt;br /&gt;
*Analog input voltage range 0 - 2.44V&lt;br /&gt;
*Input impedance ~1Mohm &lt;br /&gt;
*Sensor inputs have one digital output line (TTL) for controlling sensor (e.g sensor gain)&lt;br /&gt;
'''USB:'''&lt;br /&gt;
*Data+ and data- lines can swithced off or on.&lt;br /&gt;
*Power line can be swithced off or on.&lt;br /&gt;
*Maximum current 500mA&lt;br /&gt;
*LED indicates data lines switch state.&lt;br /&gt;
'''Power'''&lt;br /&gt;
*Absolute maximum input voltage 20V&lt;br /&gt;
*Absolute maximum input current 1.5A&lt;br /&gt;
*Two power outputs.&lt;br /&gt;
*LED indicates power line switch state.&lt;br /&gt;
&lt;br /&gt;
== HAT-control ==&lt;br /&gt;
&lt;br /&gt;
HAT-control is software that is used to control HAT (Hardware Accessory for Testing) device. SW contains two applications. Driver (hat_drv) application controls HAT device via USB. The control SW (hat_ctrl) controls HAT device using driver. Communication between driver and control processes is done using shared memory.  &lt;br /&gt;
&lt;br /&gt;
== SW Installation ==&lt;br /&gt;
&lt;br /&gt;
HAT-control sw can be installed to Ubuntu 10.04. It should work also other distributions, but it is not tested yet.&lt;br /&gt;
&lt;br /&gt;
HAT SW dependences:&lt;br /&gt;
&lt;br /&gt;
* libusb-1.0.8&lt;br /&gt;
* liblabjackusb&lt;br /&gt;
* glib-2.0&lt;br /&gt;
&lt;br /&gt;
'''Libusb installation:'''&lt;br /&gt;
&lt;br /&gt;
1. Install libusb-1.0.x package:&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install libusb-1.0&lt;br /&gt;
&lt;br /&gt;
'''glib-2.0 installation:'''&lt;br /&gt;
&lt;br /&gt;
1. Install glib-2.0 package:&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install libglib2.0-dev&lt;br /&gt;
&lt;br /&gt;
'''Liblabjackusb installation:'''&lt;br /&gt;
&lt;br /&gt;
1. Get exodriver sources:&lt;br /&gt;
&lt;br /&gt;
   git clone https://github.com/labjack/exodriver.git&lt;br /&gt;
&lt;br /&gt;
2. Go liblabjackusb folder &lt;br /&gt;
&lt;br /&gt;
   $ cd exodriver/liblabjackusb&lt;br /&gt;
&lt;br /&gt;
3. Build library &lt;br /&gt;
&lt;br /&gt;
   $ make&lt;br /&gt;
&lt;br /&gt;
4. Install library&lt;br /&gt;
&lt;br /&gt;
   $ sudo make install&lt;br /&gt;
&lt;br /&gt;
5. Liblabjackusb needs access to the /dev/bus/usb. Run following commands in labjack-exodriver root folder.&lt;br /&gt;
&lt;br /&gt;
   $ cd ..&lt;br /&gt;
   $ sudo cp 10-labjack.rules /etc/udev/rules.d&lt;br /&gt;
   $ sudo udevadm control --reload-rules&lt;br /&gt;
 &lt;br /&gt;
'''Building HAT SW'''&lt;br /&gt;
&lt;br /&gt;
1. Build HAT SW:&lt;br /&gt;
&lt;br /&gt;
Get sources using git (or some otherway):&lt;br /&gt;
&lt;br /&gt;
   $ git clone git://gitorious.org/meego-quality-assurance/hat-control.git&lt;br /&gt;
&lt;br /&gt;
Go to hat-control folder and compile sources (autoconf, automake, libtool and pkg-config are required)&lt;br /&gt;
&lt;br /&gt;
   $ autoreconf -i&lt;br /&gt;
   $ ./configure --prefix=/usr&lt;br /&gt;
   $ make&lt;br /&gt;
   $ sudo make install&lt;br /&gt;
&lt;br /&gt;
== Using HAT SW to control usb and power switches. ==&lt;br /&gt;
&lt;br /&gt;
1. Connect HAT device to USB port and start HAT driver.&lt;br /&gt;
&lt;br /&gt;
   $ cd src   &lt;br /&gt;
   $ hat_drv &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Driver should print 'hat_drv: HAT driver started succesfully', if it has started succesfully.&lt;br /&gt;
It also shows serial numeber of the controller device.&lt;br /&gt;
   &lt;br /&gt;
2. Use hat_ctrl SW to control HAT device. For example switch power output 1 on&lt;br /&gt;
&lt;br /&gt;
   $ hat_ctrl -pwr1=on&lt;br /&gt;
&lt;br /&gt;
Get all parameters just type&lt;br /&gt;
&lt;br /&gt;
   $ hat_ctrl --help&lt;br /&gt;
&lt;br /&gt;
== New features ==&lt;br /&gt;
&lt;br /&gt;
'''Multiple HAT support'''&lt;br /&gt;
&lt;br /&gt;
Multiple HAT support will be added in couple of weeks. HAT driver and control software will have new parameter &amp;quot;-SN [SerialNumber]&amp;quot; which will specify the HAT device. When you have only one HAT device, you don't need to add &amp;quot;-SN&amp;quot; parameter. So, no modifications to excistence setup is needed if used only one HAT device.&lt;br /&gt;
&lt;br /&gt;
'''New current sensor'''&lt;br /&gt;
&lt;br /&gt;
The HAT Current Sensor can be used with HAT device by connecting it to one of the sensor inputs of HAT device. The sensor can be used for measuring the current from the device under test (DUT). The sensor has two measurement ranges, 0-100mA and 0-1.5A. The range is software selectable.&lt;br /&gt;
&lt;br /&gt;
== Further development ==&lt;br /&gt;
&lt;br /&gt;
HAT SW is now very early state. There might be major changes in the near future. Command line parameters might change in near future.&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:42:05Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Triggering a chroot test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
=== Using OTS trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
OTS trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install OTS trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to OTS trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software. Chroot based testing is primarily targeted at executing tests with the [[Quality/QA-tools/TDriver|Testability Driver framework]].&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap URL&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:39:34Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Using conductor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
=== Using OTS trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
OTS trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install OTS trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to OTS trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software. Chroot based testing is primarily targeted at executing tests with the [[Quality/QA-tools/TDriver|Testability Driver framework]].&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap file&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:39:14Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Using ots_trigger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using OTS trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
OTS trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install OTS trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to OTS trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software. Chroot based testing is primarily targeted at executing tests with the [[Quality/QA-tools/TDriver|Testability Driver framework]].&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap file&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Using ots_trigger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ots_trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
ots_trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install ots_trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to ots_trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software. Chroot based testing is primarily targeted at executing tests with the [[Quality/QA-tools/TDriver|Testability Driver framework]].&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap file&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:36:25Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Running tests in chroot environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ots_trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
ots_trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install ots_trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to ots_trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software. Chroot based testing is primarily targeted at executing tests with the [[Quality/QA-tools/TDriver|Testability Driver framework]].&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap file&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:35:17Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Running tests in chroot environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ots_trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
ots_trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install ots_trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to ots_trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software. Chrooted based testing is primarily targeted at executing tests with the [[Quality/QA-tools/TDriver|Testability Driver framework]].&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap file&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:02:05Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Test plan based executions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ots_trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
ots_trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install ots_trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to ots_trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software.&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap file&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:01:48Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* Test plan based executions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ots_trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
ots_trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install ots_trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to ots_trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
--email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software.&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap file&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage</id>
		<title>Quality/QA-tools/OTS/UserDocumentation/Usage</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation/Usage"/>
				<updated>2011-04-04T08:00:50Z</updated>
		
		<summary type="html">&lt;p&gt;Eluttine: /* How to create rootstrap? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OTS Usage =&lt;br /&gt;
&lt;br /&gt;
== Test execution ==&lt;br /&gt;
&lt;br /&gt;
=== Using conductor ===&lt;br /&gt;
&lt;br /&gt;
Conductor is the executer in the ots-worker. You can use conductor to test device flashing and for semi-automatic test executions.&lt;br /&gt;
&lt;br /&gt;
To test flashing and basic test execution:&lt;br /&gt;
 conductor --imageurl=http://192.168.1.1/image.tar.gz &lt;br /&gt;
&lt;br /&gt;
The conductor flasher the image to the device and executes all available test packages.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 conductor --help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ots_trigger ===&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Before starting to execute tests with ots_trigger, verify that your ots-worker is configured correctly. That can be done with conductor, see the topic above.&lt;br /&gt;
&lt;br /&gt;
ots_trigger is tool for triggering a testrun to OTS server.&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS/UserDocumentation/Installation#OTS_tools| How to install ots_trigger]].&lt;br /&gt;
&lt;br /&gt;
Before you can trigger a testrun, you need to have all following:&lt;br /&gt;
* OTS server up-and-running [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* OTS worker with hardware configured [http://wiki.meego.com/Quality/QA-tools/OTS/UserDocumentation#Installation]&lt;br /&gt;
* Image with eat-device package (enabled test automation environment to hardware) [http://wiki.meego.com/Quality/QA-tools/Autotest-guide]&lt;br /&gt;
&lt;br /&gt;
And one of the following options:&lt;br /&gt;
* Test package installed to the device&lt;br /&gt;
* Test package installed to the ots-worker or&lt;br /&gt;
* Test plan [TODO LINK]&lt;br /&gt;
&lt;br /&gt;
Okey, now we are ready to get dirty. &lt;br /&gt;
&lt;br /&gt;
If we have test package(s) installed into the device and we want to execute all of them:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com&lt;br /&gt;
&lt;br /&gt;
Let me explain the parameters.&lt;br /&gt;
* '''server''': Defines the address of the OTS server. If you are not using logger plug-in, the address is then 192.168.1.1:8080.&lt;br /&gt;
* '''build_id''': Free string to define the image build id.&lt;br /&gt;
* '''image''': Url path where the image is located. Yes, it must be on the http server.&lt;br /&gt;
* '''sw_product''': The default SW test execution options, you have defined the sw_product in /etc/ots_server.conf.&lt;br /&gt;
* '''email''': Who has requested the testrun and to whom to send notifications.&lt;br /&gt;
&lt;br /&gt;
That was simple. Next you want to execute only one package, no problem, just define test package name to ots_trigger:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --testpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
In to the '''testpackages''' option, you can define multiple packages like this:&lt;br /&gt;
 --testpackages=my-test-package1-tests,my-test-package2-tests&lt;br /&gt;
&lt;br /&gt;
If you want to add more people to receive email after the execution is done, just add more email addresses to --email option:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com,second.name@company.com&lt;br /&gt;
&lt;br /&gt;
If you have test package installed to your ots-worker machine, that can be executed with --hostpackages:&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --hostpackages=my-test-package1-tests&lt;br /&gt;
&lt;br /&gt;
For optimizing the execution time, see distribution models section below.&lt;br /&gt;
&lt;br /&gt;
To list all supported options:&lt;br /&gt;
 ots_trigger --help&lt;br /&gt;
&lt;br /&gt;
== Test plan based executions ==&lt;br /&gt;
&lt;br /&gt;
Test plan based execution means that the user can create a test plan and give it directly to ots_trigger without making any test package. This brings benefits when executing different test against the same test image or release.&lt;br /&gt;
&lt;br /&gt;
The user can create the test plan with [http://wiki.meego.com/Quality/QA-tools/Testplanner Testplanner].&lt;br /&gt;
&lt;br /&gt;
And then give the test plan to ots_trigger with --deviceplan or --hostplan. Difference between these options are that 'deviceplan' is executed in the device and 'hostplan' in the ots-worker.&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 --email=my.name@company.com --deviceplan=/path/to/my/test_plan.xml&lt;br /&gt;
&lt;br /&gt;
== Distribution models ==&lt;br /&gt;
&lt;br /&gt;
These are models how the OTS is distributing test executions to ots-workers. There are 2 build-in models and other ones are distribution model plug-ins.&lt;br /&gt;
&lt;br /&gt;
Distribution model can be specified to ots_trigger with --distribution option.&lt;br /&gt;
&lt;br /&gt;
=== Default ===&lt;br /&gt;
&lt;br /&gt;
This is the default model, if nothing else has been specified.&lt;br /&gt;
&lt;br /&gt;
Default model executes all test packages in a single task, so only one ots-worker will handle the test execution. Only exception to this model is test plan based executions, they are always executed as an own task and therefor distributed to multiple workers.&lt;br /&gt;
&lt;br /&gt;
=== Perpackage ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=perpackage'''&lt;br /&gt;
&lt;br /&gt;
Perpackage is the second build-in distribution model.&lt;br /&gt;
&lt;br /&gt;
This models creates always an own task for each test package and test plan, so multiple ots-worker can handle the testrun at the same time.&lt;br /&gt;
&lt;br /&gt;
=== Optimized ===&lt;br /&gt;
&lt;br /&gt;
'''---distribution=optimized'''&lt;br /&gt;
&lt;br /&gt;
Optimized is a distribution plug-in and it is part of history plug-in.&lt;br /&gt;
&lt;br /&gt;
History plug-in collects test package execution times to a database. When the user triggers a testrun, he/she can specify how long the execution should take and how many device can be used. The optimized model then tries to optimize the execution time to fit the user's requirements.&lt;br /&gt;
&lt;br /&gt;
See how to use the optimized plug-in from the [[Quality/QA-tools/OTS/Plugins/History|plug-in subpage]].&lt;br /&gt;
&lt;br /&gt;
== Running tests in chroot environment ==&lt;br /&gt;
&lt;br /&gt;
﻿Chroot functionality makes possible to use chroot environment with specific software to run the tests. This way a test case which needs specific software can be started at any OTS worker and a worker will stay clean of additional software.&lt;br /&gt;
&lt;br /&gt;
=== How to create rootstrap? ===&lt;br /&gt;
&lt;br /&gt;
Basically you can use any i386 chroot environment you like, but MeeGo Netbook edition is good starting point. First [[Image_Creation|create an image]] with all packages you need for testing and then unpack and compress it to a tar.gz package:&lt;br /&gt;
&lt;br /&gt;
 mic-chroot --unpack-only –save-to=&amp;lt;chroot_directory&amp;gt; &amp;lt;image&amp;gt;&lt;br /&gt;
 cd &amp;lt;chroot_directory&amp;gt;&lt;br /&gt;
 tar -Pczf ../rootstrap.tar.gz .&lt;br /&gt;
&lt;br /&gt;
Now you have a rootstrap ready in rootstrap.tar.gz file.&lt;br /&gt;
&lt;br /&gt;
=== Triggering a chroot test ===&lt;br /&gt;
&lt;br /&gt;
To trigger a chroot test you need to give two arguments for OTS trigger:&lt;br /&gt;
* --chrootpackages=&amp;lt;test_packages&amp;gt;&lt;br /&gt;
** Test packages to be executed on chroot environment&lt;br /&gt;
* --rootstrap=&amp;lt;rootstrap_file&amp;gt;&lt;br /&gt;
** The rootstrap file&lt;br /&gt;
&lt;br /&gt;
Example like this:&lt;br /&gt;
&lt;br /&gt;
 ots_trigger --server=192.168.1.1/xmlrpc --build_id=nightly_testing --image=http://url.to.image/image.tar.gz --sw_product=meego_n900 \&lt;br /&gt;
 --chrootpackages=mwts-filesystem --rootstrap=http://url.to.rootstrap/rootstrap.tar.gz --email=my.name@company.com&lt;/div&gt;</summary>
		<author><name>Eluttine</name></author>	</entry>

	</feed>