CLI - Rework deployment related commands for better UX and maintainability

Version 5

    Rework deployment related commands for better UX and maintainability

     

    Analysis

    Summary

    The deploy and undeploy commands are difficult to use and maintain. A new command should be introduced to offer explicit actions for all deployment related use cases

    Requirements

    100% compatibility for existing commands. Existing deploy,undeploy and deployment-info commands should still be usable. We plan to hide them from completion but this will be done once people are used to the new commands (in multiple WF releases). The new “deployment” command has the following actions:

    • deploy-cli-archive    - Deploys using a .cli archive file.
    • deploy-file       - Deploys the application designated by the file path.
    • deploy-url        - Deploys the application designated by the URL.
    • disable           - Undeploys the deployment with the given name and keeps its content
    • disable-all       - Undeploys all the deployment and keeps their content
    • enable            - Enables an already existing but disabled in the repository.
    • enable-all        - Enables all already existing but disabled in the repository.
    • info              - Displays information about single or multiple deployments.
    • list              - The command will print all of the existing deployments.
    • undeploy          - Undeploys the deployment with the given name.
    • undeploy-cli-archive  - Undeploys using a .cli archive file.

    Design Notes

    New command is developped with aesh 1.0 Command API.

    In order to avoid maintain 2 deployment logic (legacy commands and new command), the legacy commands are updated to call into the new command internally.

     

    General

    Product Issue(s)

    https://issues.jboss.org/browse/JBEAP-7477

    https://issues.jboss.org/browse/EAP7-740

    Upstream Issue(s)

    https://issues.jboss.org/browse/WFCORE-3223

     

    Developer Contacts

    Jean-François Denise (jdenise@redhat.com)