Fix more and more spellchecker warnings
[docs.git] / docs / developer-guides / distribution-test-features.rst
1 .. _dist-test-features:
2
3 Distribution features
4 =====================
5
6 Overview
7 --------
8
9 This section provides an overview of **odl-integration-compatible-with-all**
10 and **odl-integration-all** features.
11
12 Integration/Distribution project produces a Karaf 4 distribution
13 which gives users access to many Karaf features provided by upstream OpenDaylight projects.
14 Users are free to install arbitrary subset of those features,
15 but not every feature combination is expected to work properly.
16
17 Some features are pro-active, which means OpenDaylight in contact with other network elements
18 starts diving changes in the network even without prompting by users,
19 in order to satisfy initial conditions their use case expects.
20 Such activity from one feature may in turn affect behavior of another feature.
21
22 In some cases, there exists features which offer different implementation of the same service,
23 they may fail to initialize properly (e.g. failing to bind a port already bound by the other feature).
24
25 Integration/Test project is maintaining system tests (CSIT) jobs.
26 Aside of testing scenarios with only a minimal set of features installed (-only- jobs),
27 the scenarios are also tested with a large set of features installed (-all- jobs).
28
29 In order to define a proper set of features to test with, Integration/Distribution project
30 defines two "aggregate" features. Note that these features are not intended for production use,
31 so the feature repository which defines them is not enabled by default.
32
33 The content of these features is determined by upstream OpenDaylight contributions,
34 with Integration/Test providing insight on observed compatibility relations.
35 Integration/Distribution team is focused only on making sure the build process is reliable.
36
37 Feature repositories
38 --------------------
39
40 features-index
41 ~~~~~~~~~~~~~~
42
43 This feature repository is enabled by default.
44 It does not refer to any new features directly, instead it refers to upstream feature repositories,
45 enabling any feature contained therein to be available for installation.
46
47 features-test
48 ~~~~~~~~~~~~~
49
50 This feature repository defines the two aggregate features.
51 To enable this repository, change the ``featuresRepositories`` line of ``org.apache.karaf.features.cfg`` file,
52 by copy-pasting the feature-index value and editing the name.
53
54 Karaf features
55 --------------
56
57 The two aggregate features, defining sets of user-facing features defined by compatibility requirements.
58 Note that is the compatibility relation differs between single node an cluster deployments,
59 single node point of view takes precedence.
60
61 ``odl-integration-all``
62 ~~~~~~~~~~~~~~~~~~~~~~~
63
64 This feature contains the largest set of user-facing features which may affect each others operation,
65 but the set does not affect usability of Karaf infrastructure.
66
67 Note that port binding conflicts and "server is unhealthy" status of config subsystem
68 are considered to affect usability, as is a failure of RESTCONF
69 to respond to GET on ``/restconf/modules`` with HTTP status 200.
70
71 This feature is used in verification process for Integration/Distribution contributions.
72
73 ``odl-integration-compatible-with-all``
74 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75
76 This feature contains the largest set of user-facing features which are not pro-active
77 and do not affect each others operation.
78
79 Installing this set together with just one of ``odl-integration-all`` features should still result
80 in fully operational installation, as one pro-active feature should not lead to any conflicts.
81 This should also hold if the single added feature is outside ``odl-integration-all``,
82 if it is one of conflicting implementations (and no such implementations is in ``odl-integration-all``).
83
84 This feature is used in the aforementioned -all- CSIT jobs.