Releases: eNMS-automation/eNMS
eNMS 3.17.1
- Bug fixes
- Minor improvements / performance optimization
eNMS 3.17
- Performance improvements
- Refactoring of the result window
- Refactoring of the search system
- Forbid single and double-quotes in names.
- Moved the validation mechanism to the base "Service" class. Validation is now
available for all services. - New "Close connection" option for a service. Closes cached connection.
- the database package for MySQL and PostgreSQL are no longer part of "requirements.txt".
They are in "requirements_db.txt" instead.
The reason is that they can make the pip installation fail depending on the environment, and
this can be hard to troubleshoot for new users. - In the "Advanced search", new "None" entry for filtering relationship.
- Removed mypy from both the codebase and CI/CD test (travis).
- Refactoring of the configuration management system.
- Refactoring of the workflow system
- Ability to specify the alignment for workflow labels
- Upon creating the admin user, check if there is a password in the Vault. If there isn't, create it ("admin").
- Remove beginning and trailing white space Names (service name ends with space breaks get_results)
- Add config mode and honor it when retrieving a cached connection.
- Netmiko Validation Service: allow several commands
Upgrade
- Migration files must be lowercase
- Move all workflows from workflow.yaml in the SERVICE file: service.yaml
- All types must be lowercase in the code and in the migration files (Service -> service, Device -> device, etc)
- Rename service type (in service.yaml)
ExampleService -> example_service
DatabaseBackupService -> database_backup_service
NapalmBackupService -> napalm_backup_service
NetmikoBackupService -> netmiko_backup_service
NapalmConfigurationService -> napalm_configuration_service
NapalmRollbackService -> napalm_rollback_service
NetmikoConfigurationService -> netmiko_configuration_service
NapalmGettersService -> napalm_getters_service
NetmikoPromptsService -> netmiko_prompts_service
NetmikoValidationService -> netmiko_validation_service
ConfigureBgpService -> configure_bgp_service
GenericFileTransferService -> generic_file_transfer_service
NetmikoFileTransferService -> netmiko_file_transfer_service
AnsiblePlaybookService -> ansible_playbook_service
RestCallService -> rest_call_service
SwissArmyKnifeService -> swiss_army_knife_service
UpdateInventoryService -> update_inventory_service
NapalmPingService -> napalm_ping_service
NapalmTracerouteService -> napalm_traceroute_service
PingService -> ping_service
MailNotificationService -> mail_notification_service
SlackNotificationService -> slack_notification_service
MattermostNotificationService -> mattermost_notification_service
UnixCommandService -> unix_command_service
UnixShellScriptService -> unix_shell_script_service
PayloadExtractionService -> payload_extraction_service
PayloadValidationService -> payload_validation_service
PythonSnippetService -> python_snippet_service
- Renaming Fields:
python_query -> iteration_devices
query_property_type -> iteration_devices_property
skip_python_query -> skip_query
current_configuration -> configuration
privileged_mode -> enable_mode
- Netmiko Validation Service:
command -> commands
eNMS 3.16.3
- Bug fixes
- If the admin password is not set (db or Vault) when creating the admin user, set it regardless of the config mode.
- Move skip / unskip button to right-click menu.
eNMS 3.16.2
-
Always delete a workflow when it is imported via import job
-
New "Maximum number of runs" property for a job in a workflow: defines how many times the same
job is allowed to run in the workflow.
Set to 1 by default (=> backward-compatible). -
New "Result postprocessing" feature: allows for postprocessing the results of a service
(per device if there are devices), including changing the success value. -
Add new version of Unix Shell Script service
-
Enable multiple selection in the workflow builder + mass skip / unskip buttons
Two ways for multiple selection:- Ctrl + Click on jobs
- Press Right-click and move the mouse to draw a rectangle: all jobs inside the rectangle will be selected.
-
Set the configuration management workflow to "Use workflow devices": false by default.
eNMS 3.16.1
- New feature to stop a workflow while it's running
- Bug fixes and minor improvements
eNMS 3.16.0
-
Re-add "Workflow Restartability" window when clicking on a job.
-
Cascade deletion of runs and results when jobs / devices are deleted.
-
change env variables name:
- ENMS_CONFIG_MODE -> CONFIG_MODE
- ENMS_LOG_LEVEL -> LOG_LEVEL
- ENMS_SERVER_ADDR -> SERVER_ADDR
- ENMS_DATABASE_URL -> DATABASE_URL
- ENMS_SECRET_KEY -> SECRET_KEY
-
Make restart system work with get_result
-
Forbid empty names and names with slash front-end
-
Fix event issue after adding jobs to the workflow builder.
-
Create and delete iteration loopback edge upon editing the service.
-
Fix change of name in workflow builder upon editing the service.
-
Make iteration variable name configurable
Iteration value accesssed withget_var
. -
Ansible add exit status:
EXIT STATUS -----------
0 -- OK or no hosts matched
1 -- Error
2 -- One or more hosts failed
3 -- One or more hosts were unreachable
4 -- Parser error
5 -- Bad or incomplete options
99 -- User interrupted execution
250 -- Unexpected error -
Workflow notes Desc: Support textboxes added to a workflow that are displayed in the workflow builder.
-
New mechanism: success as a python query kind of thingAdd success query mechanism
-
The "has device targets" property now defaults to True.
-
New Mechanism to switch back and forth in the workflow builder.
-
New "Latest runtime" optio in workflow builder (this is the default option).
When displaying a workflow, automatically jump to the latest runtime. -
In Workflow builder, add the name of the user who ran the runtime in the runtime list.
-
Display number of runs in parallel in the Service Management / Workflow Management page, next to the Status (Running / Idle)
-
Job now displayed in grey if skip job is activated.
-
Edge labels are now editable
-
Results display: in text mode, multiline strings are now displayed without any transformation.
-
User inactivity monitoring
eNMS 3.15.3
-
Bug fixes
-
Re-add "Workflow Restartability" window when clicking on a job.
-
"Use Workflow Targets" is now "Device Targets Run Mode"
- Service mode: run a workflow service by service, using the workflow targets
- Device mode: run a workflow device by device, using the workflow targets
- Use Service targets: ignore workflow targets and use service targets instead
eNMS 3.15.2
-
New "Iteration Targets" feature to replace the iteration service
-
Front-end validation of all fields accepting a python query
- check for substitution brackets ({{ }})
- check that the expression is valid with ast.parse
-
Add new regression test for the payload extraction and validation services
-
Payload extration refactoring:
- Store variables in the payload global variable namespace
- Add optional operation parameter for each variable: set / append / extend / update
-
New conversion option: "none" in case no conversion is necessary
-
No longer retrieve device configuration when querying REST API.
-
Performance improvements
-
Remove web assets
-
Refactor SQL Alchemy column declaration for MySQL compatibility
-
Hide password in Ansible service results.
-
Private properties are no longer considered for pools.
eNMS 3.15.1
-
Waiting time is now skipped when the job is skipped.
-
change result to mediumblob pickletype
-
remove configurations from ansible command
-
remove table filtering N/A
-
Update docs
-
Add more regression tests (including sip job feature)
-
Bug fixes
eNMS 3.15
-
New env variable: CUSTOM_CODE_PATH. Lets you define a path to a folder that contains custom code that
you can use in your custom services. -
Advanced search: per relationship system
-
eNMS version is now displayed in the UI. The version number is read from the package.json file.
-
Refactoring of the results window:
- the order of the Services within the Workflow are now sequential with the order in which they were run.
- collapsable sections for devices / jobs
- new "workflow" section
- "advanced" section removed
-
Refactoring of the logs: real-time logs is now working
even with multiprocessing enabled.
LOG FOLDER CHANGE: there is no more logs/app_logs and logs/job_logs. job_logs no longer exist,
and the content of app_logs in now in /logs. -
Workflow restartability improvement:
- default to the latest payload
- you can now choose exactly what jobs you want to see included in that payload
- you can select not just one but multiple start points for the workflow
- the restartability is now in the "Run Window"
-
custom credentials made blue: substitution fields
-
Bug in tables: jump to bottom after page 1 when table is refreshed: fixed.
-
Panel repaint bug when pulling it down: fixed.
-
Relationship are now displayed in the edit window: you can edit which service/workflow a device/task is a target of, etc...
-
Spinning GIF to indicate that its 'working...'
-
Add new services in a workflow: services are spread in a stairsteps in the workflow builder.
-
Workflow Builder: edit the service when it's double clicked
-
Copy to clipboard for device configuration
-
Fix bug subworkflow edit panel
-
Export Jobs needs to automatically delete devices and pools
-
Service should fail if a python query produces a device target that does not match inventory/database
-
timeout and other parameters getting updated for all services using cached Netmiko connections.
-
Ability to close a cached connection and re-originate the connection in a service.
-
Logs work with Multiprocessing enabled
-
Start time of each Service within a Workflow displayed,
-
User can now track the progress of a workflow even if the workflow was started with a REST call
-
New GET Result Endpoint for the REST API to get the result of a job run asynchronously:
if async run_job was invoked, you can use the runtime returned in the REST response
to collect the results after completion
via a GET request to /result/name/runtime -
New Run Management window:
- you can filter per run status ("Running", ...)
- The progress of a run (number of devices completed, failed) now works with multiprocessing.
-
Slashes are now forbidden from services and worklfow names (conflict with Unix path)
-
Services and workflows cannot be stuck anymore: the exceptions are caught are a higher level
and they should always terminate and return the stacktrace. -
The command sent to a device is not displayed in the results
-
Credentials are now hidden when using gotty.
-
Job Parametrization.
-
Service type now displayed in the workflow builder.
-
NEW "Custom configuration". You have a new env variable "PATH_CUSTOM_CONFIG" where you can set
the path to a valid JSON valid.
You can find an example of such a file in the tests/customization folder.
In this file, you can set any property you want (for example if you're running in LAB or PRODUCTION). -
New parameter: Skip (boolean)
If that property is ticked, the job is ticked when run in a workflow. -
New parameter: Skip query (string)
Same as skip, except that it takes a python query.
You can use a variable from the payload to decided whether or not to skip a job (via the get_result function, or the get_var function)
or a variable from the "custom configuration" available as a dictionary called "config". -
Added number of successful / failed devices on workflow edges.
-
Run status automatically switched from "Running" to "Aborted" upon reloading the app.
-
napalm getter service: default dict match mode becomes inclusion.
-
Renaming 'History' => 'Job Run Status'
-
Replaced pyyaml with ruamel
-
Both true and True are now accepted when saving a dictionary field.
-
Running an ansible playbook in the /playbooks folder doesn't work because of ansible/ansible#12862.
In order to work around that, I am now using the optional "cwd" argument of subprocess.check_output in the ansible service to tell eNMS to run the ansible-playbook command from the /playbooks folder. -
Set stdout_callback = json in ansible config to get a json output by default.
-
Change in the LDAP authentication: LDAP users that are not admin should now longer be allowed to log in (403 error).
-
The "dictionary match" mechanism should support lists now.
-
New "Logs" window to see the different logs of a service/workflow for each runtime.
-
show the user that initiated the job, along with the runtime when selecting a run