Adding topology overlay support for the server-side topo layout app.

Also:
- parametrized access network layout in preparation for multiple variants
- removed WS authentication code temporarily until proper forced-logout is implemented
- updated STC warden environment (test only)

Change-Id: I0adbe60737828db79350e7eb2fc72cf313b78a28
diff --git a/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.css b/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.css
new file mode 100644
index 0000000..8aa18f6
--- /dev/null
+++ b/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.css
@@ -0,0 +1,2 @@
+/* css for layout topology overlay  */
+
diff --git a/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.html b/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.html
new file mode 100644
index 0000000..1f76225
--- /dev/null
+++ b/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.html
@@ -0,0 +1,4 @@
+<!-- partial HTML -->
+<div id="ov-tl-topov">
+    <p>This is a hidden view .. just a placeholder to house the javascript</p>
+</div>
diff --git a/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.js b/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.js
new file mode 100644
index 0000000..729d117
--- /dev/null
+++ b/apps/layout/src/main/resources/app/view/tlTopov/tlTopov.js
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2015-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ Module containing the "business logic" for the layout topology overlay.
+ */
+
+(function () {
+    'use strict';
+
+    // injected refs
+    var $log, flash, wss;
+
+    function doLayout(type, description) {
+        flash.flash(description);
+        wss.sendEvent('doLayout', {
+            type: type
+        });
+    }
+
+    angular.module('ovTlTopov', [])
+        .factory('LayoutTopovService',
+        ['$log', 'FlashService', 'WebSocketService',
+
+        function (_$log_, _flash_, _wss_) {
+            $log = _$log_;
+            flash = _flash_;
+            wss = _wss_;
+
+            return {
+                doLayout: doLayout
+            };
+        }]);
+}());
diff --git a/apps/layout/src/main/resources/app/view/tlTopov/tlTopovOverlay.js b/apps/layout/src/main/resources/app/view/tlTopov/tlTopovOverlay.js
new file mode 100644
index 0000000..aba7d14
--- /dev/null
+++ b/apps/layout/src/main/resources/app/view/tlTopov/tlTopovOverlay.js
@@ -0,0 +1,58 @@
+// path painter topology overlay - client side
+//
+// This is the glue that binds our business logic (in ppTopov.js)
+// to the overlay framework.
+
+(function () {
+    'use strict';
+
+    // injected refs
+    var $log, tov, lts;
+
+    // our overlay definition
+    var overlay = {
+        overlayId: 'tl-overlay',
+        glyphId: 'm_disjointPaths',
+        tooltip: 'Algorithmic Layout Overlay',
+
+        activate: function () {
+            $log.debug("Layout topology overlay ACTIVATED");
+        },
+        deactivate: function () {
+            lts.clear();
+            $log.debug("Layout topology overlay DEACTIVATED");
+        },
+
+        keyBindings: {
+            0: {
+                cb: function () {
+                    lts.doLayout('default', 'Default (force-based) Layout');
+                },
+                tt: 'Default (force-based) layout',
+                gid: 'm_fiberSwitch'
+            },
+            1: {
+                cb: function () {
+                    lts.doLayout('access', 'Access Network Layout - separate service leafs');
+                },
+                tt: 'Access layout - separate service leafs',
+                gid: 'm_disjointPaths'
+            },
+
+            _keyOrder: [
+                '0', '1'
+            ]
+        }
+    };
+
+    // invoke code to register with the overlay service
+    angular.module('ovTlTopov')
+        .run(['$log', 'TopoOverlayService', 'LayoutTopovService',
+
+            function (_$log_, _tov_, _lts_) {
+                $log = _$log_;
+                tov = _tov_;
+                lts = _lts_;
+                tov.register(overlay);
+            }]);
+}());