Airship Copilot
- Added spec for an Electron application as an Airship GUI. Change-Id: I4c21021d2337e1f8c1ff7656568c1dcff78b28d5
This commit is contained in:
parent
515e36ea03
commit
296f4eb2c5
|
@ -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/
|
Loading…
Reference in New Issue