Skip to content

Releases: eNMS-automation/eNMS

eNMS 3.17.1

24 Oct 11:35
Compare
Choose a tag to compare
  • Bug fixes
  • Minor improvements / performance optimization

eNMS 3.17

10 Oct 22:15
Compare
Choose a tag to compare
  • 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

27 Sep 19:04
Compare
Choose a tag to compare
  • 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

21 Sep 15:35
Compare
Choose a tag to compare
  • 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

17 Sep 21:31
Compare
Choose a tag to compare
  • New feature to stop a workflow while it's running
  • Bug fixes and minor improvements

eNMS 3.16.0

02 Sep 15:56
Compare
Choose a tag to compare
  • 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 with get_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

22 Aug 10:26
Compare
Choose a tag to compare
  • 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

18 Aug 16:01
Compare
Choose a tag to compare
  • 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

14 Aug 14:38
Compare
Choose a tag to compare
  • 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

11 Aug 14:11
Compare
Choose a tag to compare
  • 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