summaryrefslogtreecommitdiffstats
path: root/docs/dovetailtool/dovetail.tool.configtemplate.rst
blob: 9c0748a919315d423883f3db3879fb5a2c360c4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
.. This work is licensed under a Creative Commons Attribution 4.0 International
.. License.
.. http://creativecommons.org/licenses/by/4.0
.. (c) OPNFV, Huawei Technologies Co.,Ltd and others.

======================
Config Template Syntax
======================

For Dovetail tool, the config files are located in ``dovetail/dovetail/conf``, which are written
in yaml format. As both functest and yardstick are utilized by Dovetail, their configuration files
should be configured as follows, within the ``functest_config.yml`` and ``yardstick_config.yml`` files,
respectively.

Functest config template syntax
-------------------------------

An example functest configuration is shown as follows:

::

  functest:
    image_name: opnfv/functest
    docker_tag: latest
    envs: '-e INSTALLER_TYPE=compass -e INSTALLER_IP=192.168.200.2
           -e NODE_NAME=dovetail-pod -e DEPLOY_SCENARIO=ha_nosdn
           -e BUILD_TAG=dovetail -e CI_DEBUG=true -e DEPLOY_TYPE=baremetal'
    opts: '-id --privileged=true'
    pre_condition:
      cmds:
        - 'echo test for precondition'
    testcase:
      cmds:
        - 'python /home/opnfv/repos/functest/ci/prepare_env.py start'
        - 'python /home/opnfv/repos/functest/ci/run_tests.py -t {{script_testcase}} -r'
    post_condition:
      cmds:
        - ''
    result:
      dir: '/home/opnfv/functest/results'
      store_type: 'file'
      file_path: 'tempest/tempest.log'
      db_url: 'http://testresults.opnfv.org/test/api/v1/results?case=%s&last=1'

- ``image_name`` and ``docker_tag`` sections define the docker image pulled from the public dockerhub.
- ``envs`` should be correctly configed according to the SUT(System Under Test).
- ``pre_condition`` represents some cleanups or preparations.
  ``testcase`` represents the testcases running cmds.
  ``post_condition`` represents some cleanups needed after all testcases finished.
- ``result`` section gives the directory of the dovetail tool test result.
  ``db_url`` gives the database URL of the dovetail results to be stored.

Yardstick config template syntax
---------------------------------

The configuration in ``yardstick_config.yml`` is similiar to ``functest_config.yml``,
and an example is shown as follows:

::

  yardstick:
    image_name: opnfv/yardstick
    docker_tag: latest
    envs: '-e INSTALLER_TYPE=compass -e INSTALLER_IP=192.168.200.2
           -e NODE_NAME=dovetail-pod -e DEPLOY_SCENARIO=ha_nosdn
           -e BUILD_TAG=dovetail -e CI_DEBUG=true -e DEPLOY_TYPE=baremetal
           -e EXTERNAL_NETWORK=ext-net'
    opts: '-id --privileged=true'
    pre_condition:
      cmds:
        - 'source /home/opnfv/repos/yardstick/tests/ci/prepare_env.sh &&
           source /home/opnfv/repos/yardstick/tests/ci/clean_images.sh && cleanup'
        - 'source /home/opnfv/repos/yardstick/tests/ci/prepare_env.sh &&
           cd /home/opnfv/repos/yardstick && source tests/ci/load_images.sh'
    testcase:
      cmds:
        - 'mkdir -p /home/opnfv/yardstick/results/'
        - 'cd /home/opnfv/repos/yardstick && source tests/ci/prepare_env.sh &&
           yardstick task start tests/opnfv/test_cases/{{script_testcase}}.yaml
           --output-file /home/opnfv/yardstick/results/{{script_testcase}}.out &>
           /home/opnfv/yardstick/results/yardstick.log'
    post_condition:
      cmds:
        - ''
    result:
      dir: '/home/opnfv/yardstick/results'
      store_type: 'file'
      file_path: 'yardstick.log'
      db_url: 'http://testresults.opnfv.org/test/api/v1/results?case=%s&last=1'

The main differences between ``yardstick_config.yml`` and ``functest_config.yml``
are the ``cmds`` subsection.

Jinja2 template syntax
----------------------

Jinja2 module can be used to config the ``{{script_testcase}}``. The
parameters are defined in ``dovetail/dovetail/conf/dovetail_config.yml``:

::

  parameters:
  - name: testcase
    path: '("name",)'
  - name: script_testcase
    path: '("scripts", "testcase")'

Here ``path`` is the path defined in the testcase configuration files.
Take ``script_testcase`` as an example. For testcase ``dovetail.ipv6.tc001``:

::

  dovetail.ipv6.tc001:
    name: dovetail.ipv6.tc001
    objective: VIM ipv6 operations, to create/delete network, port and subnet in bulk operation
    scripts:
      type: functest
      testcase: tempest_smoke_serial
      sub_testcase_list:
        - tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_network
        - tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_port
        - tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_subnet

The path ("scripts", "testcase") means 'testcase' is the subsection of 'scripts' section. From above,
by following the path ("scripts", "testcase") we can get the value of ``{{script_testcase}}`` is 'tempest_smoke_serial'.