Result Manager module
Result Manager definition¶
ResultManager ¶
ResultManager()
Helper to manage Test Results and generate reports.
Examples
Create Inventory:
inventory_anta = AntaInventory.parse(
filename='examples/inventory.yml',
username='ansible',
password='ansible',
)
Create Result Manager:
manager = ResultManager()
Run tests for all connected devices:
for device in inventory_anta.get_inventory().devices:
manager.add(
VerifyNTP(device=device).test()
)
manager.add(
VerifyEOSVersion(device=device).test(version='4.28.3M')
)
Print result in native format:
manager.results
[
TestResult(
name="pf1",
test="VerifyZeroTouch",
categories=["configuration"],
description="Verifies ZeroTouch is disabled",
result="success",
messages=[],
custom_field=None,
),
TestResult(
name="pf1",
test='VerifyNTP',
categories=["software"],
categories=['system'],
description='Verifies if NTP is synchronised.',
result='failure',
messages=["The device is not synchronized with the configured NTP server(s): 'NTP is disabled.'"],
custom_field=None,
),
]
The status of the class is initialized to “unset”
Then when adding a test with a status that is NOT ‘error’ the following table shows the updated status:
Current Status | Added test Status | Updated Status |
---|---|---|
unset | Any | Any |
skipped | unset, skipped | skipped |
skipped | success | success |
skipped | failure | failure |
success | unset, skipped, success | success |
success | failure | failure |
failure | unset, skipped success, failure | failure |
If the status of the added test is error, the status is untouched and the error_status is set to True.
category_stats
property
¶
category_stats: defaultdict[str, CategoryStats]
Get the category statistics.
results_by_status
cached
property
¶
results_by_status: dict[AntaTestStatus, list[TestResult]]
A cached property that returns the results grouped by status.
sorted_category_stats
property
¶
sorted_category_stats: dict[str, CategoryStats]
A property that returns the category_stats dictionary sorted by key name.
__len__ ¶
__len__() -> int
Implement len method to count number of results.
Source code in anta/result_manager/__init__.py
117 118 119 |
|
add ¶
add(result: TestResult) -> None
Add a result to the ResultManager instance.
The result is added to the internal list of results and the overall status of the ResultManager instance is updated based on the added test status.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
result
|
TestResult
|
TestResult to add to the ResultManager instance. |
required |
Source code in anta/result_manager/__init__.py
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 |
|
filter ¶
filter(hide: set[AntaTestStatus]) -> ResultManager
Get a filtered ResultManager based on test status.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
hide
|
set[AntaTestStatus]
|
Set of AntaTestStatus enum members to select tests to hide based on their status. |
required |
Returns:
Type | Description |
---|---|
ResultManager
|
A filtered |
Source code in anta/result_manager/__init__.py
319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 |
|
filter_by_devices ¶
filter_by_devices(devices: set[str]) -> ResultManager
Get a filtered ResultManager that only contains specific devices.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
devices
|
set[str]
|
Set of device names to filter the results. |
required |
Returns:
Type | Description |
---|---|
ResultManager
|
A filtered |
Source code in anta/result_manager/__init__.py
354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 |
|
filter_by_tests ¶
filter_by_tests(tests: set[str]) -> ResultManager
Get a filtered ResultManager that only contains specific tests.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tests
|
set[str]
|
Set of test names to filter the results. |
required |
Returns:
Type | Description |
---|---|
ResultManager
|
A filtered |
Source code in anta/result_manager/__init__.py
337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 |
|
get_devices ¶
get_devices() -> set[str]
Get the set of all the device names.
Returns:
Type | Description |
---|---|
set[str]
|
Set of device names. |
Source code in anta/result_manager/__init__.py
381 382 383 384 385 386 387 388 389 |
|
get_results ¶
get_results(
status: set[AntaTestStatus] | None = None,
sort_by: list[str] | None = None,
) -> list[TestResult]
Get the results, optionally filtered by status and sorted by TestResult fields.
If no status is provided, all results are returned.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
status
|
set[AntaTestStatus] | None
|
Optional set of AntaTestStatus enum members to filter the results. |
None
|
sort_by
|
list[str] | None
|
Optional list of TestResult fields to sort the results. |
None
|
Returns:
Type | Description |
---|---|
list[TestResult]
|
List of results. |
Source code in anta/result_manager/__init__.py
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 |
|
get_status ¶
get_status(*, ignore_error: bool = False) -> str
Return the current status including error_status if ignore_error is False.
Source code in anta/result_manager/__init__.py
315 316 317 |
|
get_tests ¶
get_tests() -> set[str]
Get the set of all the test names.
Returns:
Type | Description |
---|---|
set[str]
|
Set of test names. |
Source code in anta/result_manager/__init__.py
371 372 373 374 375 376 377 378 379 |
|
get_total_results ¶
get_total_results(
status: set[AntaTestStatus] | None = None,
) -> int
Get the total number of results, optionally filtered by status.
If no status is provided, the total number of results is returned.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
status
|
set[AntaTestStatus] | None
|
Optional set of AntaTestStatus enum members to filter the results. |
None
|
Returns:
Type | Description |
---|---|
int
|
Total number of results. |
Source code in anta/result_manager/__init__.py
293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 |
|
reset ¶
reset() -> None
Create or reset the attributes of the ResultManager instance.
Source code in anta/result_manager/__init__.py
108 109 110 111 112 113 114 115 |
|
options:
filters: ["!^_[^_]", "!^__len__"]