Run fuel-web verify tests in parallel

Bug #1282565 reported by Aleksandra Fedorova
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Fix Released
High
Dima Shulyak

Bug Description

stackforge-fuel-web-verify job in fuel-jenkins cannot be run in parallel on the same server, because it uses hardcoded database access parameters.

To run it in parallel we need to be able to specify database credentials through environment variables.

Tags: devops
Revision history for this message
Mike Scherbakov (mihgen) wrote :

Increasing this to High, as it affects response from our CI. It is important to speed up tests which run on Jenkins.

Changed in fuel:
milestone: none → 5.0
importance: Low → High
Changed in fuel:
status: New → Confirmed
Nikolay Markov (nmarkov)
Changed in fuel:
assignee: Nikolay Markov (nmarkov) → Dima Shulyak (dshulyak)
Changed in fuel:
status: Confirmed → In Progress
Revision history for this message
Dima Shulyak (dshulyak) wrote :

For some reason launchpad wasnt able to discover related patch:

https://review.openstack.org/#/c/82284/

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-web (master)

Reviewed: https://review.openstack.org/82284
Committed: https://git.openstack.org/cgit/stackforge/fuel-web/commit/?id=efb046d388fe2f572a5cb94f516bb9e5847c1290
Submitter: Jenkins
Branch: master

commit efb046d388fe2f572a5cb94f516bb9e5847c1290
Author: Dmitry Shulyak <email address hidden>
Date: Sat Mar 22 00:31:28 2014 +0200

    Add ability to run nailgun tests in parallel on ci

    TEST_NAILGUN_DB=nailgun_gw0 nosetests nailgun/test

    nosetests uses entry_points, so it requires to run command:

    python setup.py develop

    Change-Id: Ie5a24d970f73ef35b1c4e61bbc4b2a738d96b34f
    Closes-Bug: #1282565

Changed in fuel:
status: In Progress → Fix Committed
Changed in fuel:
assignee: Dima Shulyak (dshulyak) → Aleksandra Fedorova (afedorova)
Changed in fuel:
status: Fix Committed → Fix Released
Changed in fuel:
status: Fix Released → Confirmed
Revision history for this message
Aleksandra Fedorova (bookwar) wrote :

Fix for databases now merged. But we need to run all services on different ports.

Jenkins job has a parameter called $BUILD_EXECUTOR (number from 0 to 7). I suggest we add it as a modifier to the ports used for fakeui services.

Changed in fuel:
assignee: Aleksandra Fedorova (afedorova) → Fuel Python Team (fuel-python)
milestone: 5.0 → 5.1
Revision history for this message
Dima Shulyak (dshulyak) wrote :

i think something like in run_tests.sh
$BASE_PORT=800
$BUILD_EXECUTOR=${BUILD_EXECUTOR:-3}
$NAILGUN_PORT=$BASE_PORT$BUILD_EXECUTOR
will work

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-web (master)

Fix proposed to branch: master
Review: https://review.openstack.org/102193

Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Dima Shulyak (dshulyak)
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-web (master)

Reviewed: https://review.openstack.org/102193
Committed: https://git.openstack.org/cgit/stackforge/fuel-web/commit/?id=75e2e5330be7ce45c80e5b35fe32663b8f37842f
Submitter: Jenkins
Branch: master

commit 75e2e5330be7ce45c80e5b35fe32663b8f37842f
Author: Dima Shulyak <email address hidden>
Date: Tue Jun 24 14:34:49 2014 +0300

    SERVER_PORT for UI and CLI tests depends on env variables

    Nailgun web server listens on port depending on
    FUELCLIENT_SERVER_PORT and UI_SERVER_PORT variables

    Default port for UI tests - 5544
    Default port for CLI tests - 8003

    Each subproject should use its own server to guarantee
    some environment isolation

    Change-Id: I816958d31b51fcd16e5defbdf3e822eab3a085cd
    Closes-Bug: #1282565

Changed in fuel:
status: In Progress → Fix Committed
Revision history for this message
Aleksandra Fedorova (bookwar) wrote :

We've found that TEST_NAILGUN_DB is used only by nailgun tests in run_tests.sh. While webui and other uses the old 'nailgun' db.

Moreover, tests also use shared /tmp/static_compressed directory and /var/log/nailgun

We should probably create a common prefix for all kind of data used by nailgun scripts, and put logs, js data, static files, and everything locally in this prefix.

Then in Jenkins will set the prefix to the $WORKSPACE/prefix or something like this.

Changed in fuel:
status: Fix Committed → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-web (master)

Fix proposed to branch: master
Review: https://review.openstack.org/104535

Changed in fuel:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-web (master)

Reviewed: https://review.openstack.org/104535
Committed: https://git.openstack.org/cgit/stackforge/fuel-web/commit/?id=fa20798b6493c59657b9ed90eabe34e86e0e695b
Submitter: Jenkins
Branch: master

commit fa20798b6493c59657b9ed90eabe34e86e0e695b
Author: Dima Shulyak <email address hidden>
Date: Thu Jul 3 12:54:34 2014 +0300

    Separate configuration based on test environment

    Added:
    - ARTIFACTS variable to store all test artifacts
      under single directory
    - yaml config generation based on environment variables
    - NAILGUN_CONFIG variable in run_tests.sh and settings.py

    Commands used for testing:
      TEST_NAILGUN_DB=nailgun1 ARTIFACTS=/tmp/test_runs/1 \
      UI_SERVER_PORT=8011 FUELCLIENT_SERVER_PORT=8021 ./run_tests.sh

      TEST_NAILGUN_DB=nailgun2 ARTIFACTS=/tmp/test_runs/2 \
      UI_SERVER_PORT=8012 FUELCLIENT_SERVER_PORT=8022 ./run_tests.sh

    Change-Id: If03dddee9a8259a80b526a53fe61a79c544c72a4
    Closes-Bug: #1282565
    Closes-Bug: #1334180

Changed in fuel:
status: In Progress → Fix Committed
Changed in fuel:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.