|
|
## General Testing assumptions
|
|
|
System tests of configuration backend feature in Kea will be based on requirements page and email/meeting clarifications QA team got over a time of preparations.
|
|
|
* https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-requirements
|
|
|
Scope of this document are just automated system tests (regression) that will be running daily on Kea build farm.
|
|
|
|
|
|
## Existing system tests
|
|
|
Most of testing will be dane using existing system tests. Forge system MUST be extended with ability to automatically build/ upload/ remove configuration from MySQL Postgres and Netconf (future: cassandra). When all existing tests will be executed with different DB backends should report exact same result as when used with JSON configuration file.
|
|
|
|
|
|
## Tests outline
|
|
|
* CB MUST be able to store specific parts of the configuration in the database and other parts in the file or other database.
|
|
|
- Changes in JSON file are not detected
|
|
|
- Kea test must assume to have 1 or more storage
|
|
|
- Monitor configuration changes in 1 or more storage
|
|
|
- This brings subject of reconfiguration to complicated situation when kea will use more than one DB:
|
|
|
- tests MUST cover cases when configuration parameter X was removed
|
|
|
- tests MUST cover cases when configuration parameter X was added
|
|
|
- tests MUST cover cases when configuration parameter X was moved from DB 1 to DB 2
|
|
|
- Kea is not supporting storing the same configuration parameters in multiple DB, this is considered as not supported/ configuration error. Not detected (?)
|
|
|
|
|
|
* CB MUST be able to store entire configuration for each Kea deamon
|
|
|
- existing system tests
|
|
|
|
|
|
* CB MUST be able to store configuration for all Kea daemons in the same database.
|
|
|
- existing system tests
|
|
|
|
|
|
* CB MUST be able to store configuration for respective Kea daemons in separate databases.
|
|
|
- Forge MUST be able to specify DB for DDNS and DHCP separately
|
|
|
|
|
|
* Kea servers MUST be able to learn about configuration changes applied to the database instance
|
|
|
- Forge MUST have step to upload configuration to specific database
|
|
|
- point 1 of Test outline
|
|
|
|
|
|
## Kea control commands:
|
|
|
In this section Forge does not require internal changes. Although design document does not specify if Kea will be using configured DB as default target of the command or will it be done via command argument.
|
|
|
|
|
|
* It MUST be possible to control whether config-get returns the configuration from the Kea config-file or retrieves appropriate configuration from the databases and merges it with the configuration in the config file.
|
|
|
- extend existing system tests with DB parameter
|
|
|
|
|
|
* config-set MUST not overwrite the configuration in the config file if this config refers to the databases storing any part of the configuration. It MUST be possible to overwrite the configuration when explicitly requested via new parameter or another command.
|
|
|
- extend existing system tests
|
|
|
|
|
|
* config-set MUST allow for overwriting the configuration file, without affecting the configuration in the databases.
|
|
|
- extend existing system tests
|
|
|
|
|
|
* config-set MUST allow for overwriting the configuration stored in the databases (follow references to the databases from the configuration file).
|
|
|
- extend existing system tests
|
|
|
|
|
|
* all commands that refer to reconfiguration:
|
|
|
network4-add
|
|
|
network4-del
|
|
|
network4-get
|
|
|
network4-list
|
|
|
network4-subnet-add
|
|
|
network4-subnet-del
|
|
|
network6-add
|
|
|
network6-del
|
|
|
network6-get
|
|
|
network6-list
|
|
|
network6-subnet-add
|
|
|
network6-subnet-del
|
|
|
reservation-add
|
|
|
reservation-del
|
|
|
reservation-get
|
|
|
subnet4-add
|
|
|
subnet4-del
|
|
|
subnet4-get
|
|
|
subnet4-list
|
|
|
subnet6-add
|
|
|
subnet6-del
|
|
|
subnet6-get
|
|
|
subnet6-list
|
|
|
should be working with configured database.
|
|
|
- If Kea will use database configured in JSON file then:
|
|
|
- Existing system tests should be sufficient and report the same result as JSON only configuration
|
|
|
- else:
|
|
|
- Existing system tests MUST be extended with exact copy of them but with additional argument in used command.
|
|
|
|
|
|
## Forge extensions:
|
|
|
* ability to use kea daemon to upload configuration to MySQL, Postgres and Netconf (testing plan: https://gitlab.isc.org/isc-projects/kea/wikis/Test-Plans/NETCONF)
|
|
|
* ability to set default CB and ability to choose it from test level - multiple times
|
|
|
* repeat existing tests for each CB
|
|
|
* add tests for multiple CB and changes detection in DB
|
|
|
* future: extend forge to be able to create SQL commands to avoid using kea daemon for configuration. |
|
|
\ No newline at end of file |