... | @@ -6,12 +6,12 @@ Scope of this document are just automated system tests (regression) that will be |
... | @@ -6,12 +6,12 @@ Scope of this document are just automated system tests (regression) that will be |
|
## This document cover just MySQL db backend that will be released with Kea 1.6.0
|
|
## This document cover just MySQL db backend that will be released with Kea 1.6.0
|
|
|
|
|
|
## Forge core changes
|
|
## Forge core changes
|
|
At this point forge create whole different module for different backeds (leases, reservations etc) that creates config files (set of commands) during each individual step of a test. That makes it hard to maintain - every backend has it's own storage, functions to run/upload. New approach (mostly done but not finished yet) is to create class with configuration and module for each backed would use the same class - but different steps to create config files (xml, json, commands)
|
|
At this point forge create whole different module for different backends (leases, reservations etc) that creates config files (set of commands) during each individual step of a test. That makes it hard to maintain - every backend has it's own storage, functions to run/upload. New approach (mostly done but not finished yet) is to create class with configuration and module for each backed would use the same class - but different steps to create config files (xml, json, commands)
|
|
```
|
|
```
|
|
class KeaConfiguration:
|
|
class KeaConfiguration:
|
|
def __init__(self):
|
|
def __init__(self):
|
|
self.config_type_default = "json"
|
|
self.config_type_default = "json"
|
|
self.config_type_temporary = "yang"
|
|
self.config_type_temporary = "yang"
|
|
self.final_config_script = ""
|
|
self.final_config_script = ""
|
|
self.destination_address = world.f_cfg.mgmt_address
|
|
self.destination_address = world.f_cfg.mgmt_address
|
|
# create empty lists, there can be multiple pools etc.
|
|
# create empty lists, there can be multiple pools etc.
|
... | @@ -24,7 +24,7 @@ class KeaConfiguration: |
... | @@ -24,7 +24,7 @@ class KeaConfiguration: |
|
self.loggerList = [ConfigurationLogging()]
|
|
self.loggerList = [ConfigurationLogging()]
|
|
self.classList = []
|
|
self.classList = []
|
|
self.globalparameterList = []
|
|
self.globalparameterList = []
|
|
```
|
|
```
|
|
That would be easier to maintain multiple backends and add new configuration options.
|
|
That would be easier to maintain multiple backends and add new configuration options.
|
|
|
|
|
|
For building actual configuration simple functions will be used like:
|
|
For building actual configuration simple functions will be used like:
|
... | @@ -40,7 +40,7 @@ def build_json_script(self): |
... | @@ -40,7 +40,7 @@ def build_json_script(self): |
|
## Testing approach
|
|
## Testing approach
|
|
1. Upload configuration using `cb_cmds` hook, and check Kea behaviour. Example scenario:
|
|
1. Upload configuration using `cb_cmds` hook, and check Kea behaviour. Example scenario:
|
|
* Create configuration commands
|
|
* Create configuration commands
|
|
* Execute configuration commands
|
|
* Execute configuration commands
|
|
* Restart Kea (so it perform bootstrapping with db)
|
|
* Restart Kea (so it perform bootstrapping with db)
|
|
* Generate traffic
|
|
* Generate traffic
|
|
* Parse response
|
|
* Parse response
|
... | @@ -51,11 +51,11 @@ def build_json_script(self): |
... | @@ -51,11 +51,11 @@ def build_json_script(self): |
|
* Parse results
|
|
* Parse results
|
|
|
|
|
|
|
|
|
|
## Tests
|
|
## Tests
|
|
* CB MUST be able to store specific parts of the configuration in the database and other parts in the file or other database.
|
|
* 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
|
|
- Changes in JSON file are not detected
|
|
- Kea test must assume to have 1 or more storage
|
|
- Kea test must assume to have 1 or more storage
|
|
- Monitor configuration changes in 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:
|
|
- 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 removed
|
|
- tests MUST cover cases when configuration parameter X was added
|
|
- tests MUST cover cases when configuration parameter X was added
|
... | @@ -272,7 +272,7 @@ Current list: |
... | @@ -272,7 +272,7 @@ Current list: |
|
|
|
|
|
|
|
|
|
Related merge requests:
|
|
Related merge requests:
|
|
isc-projects/forge!19
|
|
isc-projects/forge!19
|
|
isc-projects/forge!20
|
|
isc-projects/forge!20
|
|
isc-projects/forge!22
|
|
isc-projects/forge!22
|
|
isc-projects/forge!31
|
|
isc-projects/forge!31
|
... | @@ -290,4 +290,4 @@ isc-projects/forge!57 |
... | @@ -290,4 +290,4 @@ isc-projects/forge!57 |
|
isc-projects/forge!58
|
|
isc-projects/forge!58
|
|
isc-projects/forge!63
|
|
isc-projects/forge!63
|
|
isc-projects/forge!64
|
|
isc-projects/forge!64
|
|
isc-projects/forge!66 |
|
isc-projects/forge!66 |
|
\ No newline at end of file |
|
|