Browse Source

Merge "Airship Copilot"

Zuul 3 months ago
parent
commit
9bb5b9ea66
1 changed files with 97 additions and 0 deletions
  1. 97
    0
      specs/approved/airship_copilot_gui.rst

+ 97
- 0
specs/approved/airship_copilot_gui.rst View File

@@ -0,0 +1,97 @@
1
+..
2
+  This work is licensed under a Creative Commons Attribution 3.0 Unported
3
+  License.
4
+
5
+  http://creativecommons.org/licenses/by/3.0/legalcode
6
+
7
+.. index::
8
+   single: Airship
9
+   single: Shipyard
10
+   single: GUI
11
+   single: CLI
12
+   single: API
13
+
14
+===============
15
+Airship Copilot
16
+===============
17
+
18
+Copilot is an Electron application that can interface with Airship CLIs and
19
+REST interfaces.  This tool will wrap SSH sessions and HTTP/HTTPS calls to
20
+Airship components.  The responses will be enhanced with a GUI (links for more
21
+commands, color coded, formatting, etc.).
22
+
23
+Links
24
+=====
25
+
26
+None
27
+
28
+Problem description
29
+===================
30
+
31
+Airship can be difficult to approach as a user.  There are lots of commands to
32
+know with lots of data to interpret.
33
+
34
+Impacted components
35
+===================
36
+
37
+None.
38
+
39
+Proposed change
40
+===============
41
+
42
+Create an Electron application that simplifies the experience of accessing
43
+Airship.  The application will be 100% client side, thus no change to the
44
+Airship components.  The application will default to use HTTP/HTTPS APIs,
45
+but will be able to use the CLI commands when needed via an SSH connection.
46
+All of the raw commands input and output will be available for the user to
47
+see, with the goal of the user not needing to look at the raw input/output.
48
+
49
+The application will start as a GUI interface to Shipyard.
50
+  - Shipyard
51
+    - API calls (create, commit, get, logs, etc.)
52
+    - CLI commands (create, commit, get, logs, etc.)
53
+    - From a list of actions drill down into logs
54
+
55
+The GUI will create links to additional commands based off of the response.
56
+The GUI can color code different aspects of the response and format it.  An
57
+example would be when Shipyard returns a list of tasks, that list can be used
58
+to create hyperlinks to drill down on that task (details, logs, etc.).
59
+
60
+The GUI could start by looking similar to the CLI.  Where the values in the
61
+different columns would be buttons/links to call additional commands for more
62
+information.
63
+
64
+::
65
+
66
+    Name               Action                                   Lifecycle        Execution Time             Step Succ/Fail/Oth        Footnotes
67
+    deploy_site        action/01BTP9T2WCE1PAJR2DWYXG805V        Failed           2017-09-23T02:42:12        12/1/3                    (1)
68
+    update_site        action/01BZZKMW60DV2CJZ858QZ93HRS        Processing       2017-09-23T04:12:21        6/0/10                    (2)
69
+
70
+
71
+Security impact
72
+---------------
73
+
74
+None - This will continue to use HTTP/HTTPS and SSH just like today, the only
75
+difference is that it is wrapped in an application.
76
+
77
+Performance impact
78
+------------------
79
+
80
+Minimal - Wrapping the commands in an Electron application might add a little
81
+latency, but only on the client side.
82
+
83
+Future plans
84
+------------
85
+
86
+Extend to other Airship components.  Pegleg seems like the next step, but
87
+any componment with an exposed API/CLI.
88
+
89
+Dependencies
90
+============
91
+
92
+None
93
+
94
+References
95
+==========
96
+
97
+.. _Electron: https://electronjs.org/

Loading…
Cancel
Save