Airship Copilot

- Added spec for an Electron application as an Airship GUI.

Change-Id: I4c21021d2337e1f8c1ff7656568c1dcff78b28d5
This commit is contained in:
Aaron Sheffield 2018-11-29 15:38:02 -06:00
parent 515e36ea03
commit 296f4eb2c5
1 changed files with 97 additions and 0 deletions

View File

@ -0,0 +1,97 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
.. index::
single: Airship
single: Shipyard
single: GUI
single: CLI
single: API
===============
Airship Copilot
===============
Copilot is an Electron application that can interface with Airship CLIs and
REST interfaces. This tool will wrap SSH sessions and HTTP/HTTPS calls to
Airship components. The responses will be enhanced with a GUI (links for more
commands, color coded, formatting, etc.).
Links
=====
None
Problem description
===================
Airship can be difficult to approach as a user. There are lots of commands to
know with lots of data to interpret.
Impacted components
===================
None.
Proposed change
===============
Create an Electron application that simplifies the experience of accessing
Airship. The application will be 100% client side, thus no change to the
Airship components. The application will default to use HTTP/HTTPS APIs,
but will be able to use the CLI commands when needed via an SSH connection.
All of the raw commands input and output will be available for the user to
see, with the goal of the user not needing to look at the raw input/output.
The application will start as a GUI interface to Shipyard.
- Shipyard
- API calls (create, commit, get, logs, etc.)
- CLI commands (create, commit, get, logs, etc.)
- From a list of actions drill down into logs
The GUI will create links to additional commands based off of the response.
The GUI can color code different aspects of the response and format it. An
example would be when Shipyard returns a list of tasks, that list can be used
to create hyperlinks to drill down on that task (details, logs, etc.).
The GUI could start by looking similar to the CLI. Where the values in the
different columns would be buttons/links to call additional commands for more
information.
::
Name Action Lifecycle Execution Time Step Succ/Fail/Oth Footnotes
deploy_site action/01BTP9T2WCE1PAJR2DWYXG805V Failed 2017-09-23T02:42:12 12/1/3 (1)
update_site action/01BZZKMW60DV2CJZ858QZ93HRS Processing 2017-09-23T04:12:21 6/0/10 (2)
Security impact
---------------
None - This will continue to use HTTP/HTTPS and SSH just like today, the only
difference is that it is wrapped in an application.
Performance impact
------------------
Minimal - Wrapping the commands in an Electron application might add a little
latency, but only on the client side.
Future plans
------------
Extend to other Airship components. Pegleg seems like the next step, but
any componment with an exposed API/CLI.
Dependencies
============
None
References
==========
.. _Electron: https://electronjs.org/