[PATCH spice-html5] Add spice_auto.html for automated console display

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "Daniel P. Berrange" <berrange@xxxxxxxxxx>

Add a spice_auto.html which removes the form inputs and obtains
connection details from query parameters. The optional 'token'
parameter is an opaque string passed to the websockets server
to allow it to auto-determine the correct console. Otherwise
the host/port/password/etc can be provided explicitly.

This is sufficient to integrate SPICE HTML5 with OpenStack

Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
---
 spice_auto.html | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 153 insertions(+)
 create mode 100644 spice_auto.html

diff --git a/spice_auto.html b/spice_auto.html
new file mode 100644
index 0000000..a27b52d
--- /dev/null
+++ b/spice_auto.html
@@ -0,0 +1,153 @@
+<!--
+   Copyright (C) 2012 by Jeremy P. White <jwhite@xxxxxxxxxxxxxxx>
+
+   This file is part of spice-html5.
+
+   spice-html5 is free software: you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   spice-html5 is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with spice-html5.  If not, see <http://www.gnu.org/licenses/>.
+
+   --------------------------------------------------
+    Spice Javascript client template.
+    Refer to main.js for more detailed information
+   --------------------------------------------------
+
+-->
+
+<!doctype html>
+<html>
+    <head>
+
+        <title>Spice Javascript client</title>
+        <script src="enums.js"></script> 
+        <script src="atKeynames.js"></script> 
+        <script src="utils.js"></script> 
+        <script src="png.js"></script> 
+        <script src="lz.js"></script> 
+        <script src="quic.js"></script> 
+        <script src="bitmap.js"></script> 
+        <script src="spicedataview.js"></script> 
+        <script src="spicetype.js"></script> 
+        <script src="spicemsg.js"></script> 
+        <script src="wire.js"></script> 
+        <script src="spiceconn.js"></script> 
+        <script src="display.js"></script> 
+        <script src="main.js"></script> 
+        <script src="inputs.js"></script> 
+        <script src="cursor.js"></script> 
+        <script src="thirdparty/jsbn.js"></script>
+        <script src="thirdparty/rsa.js"></script>
+        <script src="thirdparty/prng4.js"></script>
+        <script src="thirdparty/rng.js"></script>
+        <script src="thirdparty/sha1.js"></script>
+        <script src="ticket.js"></script>
+        <link rel="stylesheet" type="text/css" href="spice.css" />
+
+        <script>
+            var host = null, port = null;
+            var sc;
+
+            function spice_set_cookie(name, value, days) {
+                var date, expires;
+                date = new Date();
+                date.setTime(date.getTime() + (days*24*60*60*1000));
+                expires = "; expires=" + date.toGMTString();
+                document.cookie = name + "=" + value + expires + "; path=/";
+            };
+
+            function spice_query_var(name, defvalue) {
+                var match = RegExp('[?&]' + name + '=([^&]*)')
+                                  .exec(window.location.search);
+                return match ?
+                    decodeURIComponent(match[1].replace(/\+/g, ' '))
+                    : defvalue;
+            }
+
+            function spice_error(e)
+            {
+                disconnect();
+            }
+
+            function connect()
+            {
+                var host, port, password, scheme = "ws://", uri;
+
+                // By default, use the host and port of server that served this file
+                host = spice_query_var('host', window.location.hostname);
+                port = spice_query_var('port', window.location.port);
+
+                // If a token variable is passed in, set the parameter in a cookie.
+                // This is used by nova-spiceproxy.
+                token = spice_query_var('token', null);
+                if (token) {
+                    spice_set_cookie('token', token, 1)
+                }
+
+                password = spice_query_var('password', '');
+                path = spice_query_var('path', 'websockify');
+
+                if ((!host) || (!port)) {
+                    console.log("must specify host and port in URL");
+                    return;
+                }
+
+                if (sc) {
+                    sc.stop();
+                }
+
+                uri = scheme + host + ":" + port;
+
+                try
+                {
+                    sc = new SpiceMainConn({uri: uri, screen_id: "spice-screen", dump_id: "debug-div", 
+                                message_id: "message-div", password: password, onerror: spice_error });
+                }
+                catch (e)
+                {
+                    alert(e.toString());
+                    disconnect();
+                }
+
+            }
+
+            function disconnect()
+            {
+                console.log(">> disconnect");
+                if (sc) {
+                    sc.stop();
+                }
+                console.log("<< disconnect");
+            }
+
+            connect();
+        </script>
+
+    </head>
+
+    <body>
+
+        <div id="login">
+            <span class="logo">SPICE</span>
+        </div>
+
+        <div id="spice-area">
+            <div id="spice-screen" class="spice-screen"></div>
+        </div>
+
+        <div id="message-div" class="spice-message"></div>
+
+        <div id="debug-div">
+        <!-- If DUMPXXX is turned on, dumped images will go here -->
+        </div>
+
+    </body>
+</html>
-- 
1.7.11.7

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]