the big xoslib test, WIP
diff --git a/planetstack/core/xoslib/dashboards/test.html b/planetstack/core/xoslib/dashboards/test.html
new file mode 100644
index 0000000..f176ecc
--- /dev/null
+++ b/planetstack/core/xoslib/dashboards/test.html
@@ -0,0 +1,298 @@
+<script src="{{ STATIC_URL }}/js/vendor/underscore-min.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.syphon.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.wreqr.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.babysitter.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.marionette.js"></script>
+
+<link rel="stylesheet" type="text/css" href="{% static 'css/test.css' %}" media="all" >
+
+<script src="{{ STATIC_URL }}/js/xoslib/xos-backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/test.js"></script>
+
+<p>This shows all of the things you can see using xosLib</p>
+
+<h3>Deployments</h3>
+<div id="deploymentList">
+</div>
+
+<h3>Images</h3>
+<div id="imageList">
+</div>
+
+<h3>Network Templates</h3>
+<div id="networkTemplateList">
+</div>
+
+<h3>Networks</h3>
+<div id="networkList">
+</div>
+
+<h3>Nodes</h3>
+<div id="nodeList">
+</div>
+
+<h3>Services</h3>
+<div id="serviceList">
+</div>
+
+<h3>Sites</h3>
+<div id="siteList">
+</div>
+
+<h3>Slices</h3>
+<div id="sliceList">
+</div>
+
+<h3>Slivers</h3>
+<div id="sliverList">
+</div>
+
+<!-- Deployment -->
+
+<script type="text/template" id="test-deployment-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>backend</th>
+     <th>admin_tenant</th>
+     <th># sites</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-deployment-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= backend_type %></td>
+  <td><%= admin_tenant %></td>
+  <td><%= sites.length %></td>
+</script>
+
+<!-- Image -->
+
+<script type="text/template" id="test-image-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>disk_format</th>
+     <th>container_format</th>
+     <th>path</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-image-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= disk_format %></td>
+  <td><%= container_format %></td>
+  <td><%= path %></td>
+</script>
+
+<!-- NetworkTemplate -->
+
+<script type="text/template" id="test-networkTemplate-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>description</th>
+     <th>visibility</th>
+     <th>translation</th>
+     <th>sharedNetworkName</th>
+     <th>sharedNetworkId</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-networkTemplate-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= description %></td>
+  <td><%= visibility %></td>
+  <td><%= translation %></td>
+  <td><%= sharedNetworkName %></td>
+  <td><%= sharedNetworkId %></td>
+</script>
+
+<!-- Network -->
+
+<script type="text/template" id="test-network-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>template</th>
+     <th>ports</th>
+     <th>labels</th>
+     <th>owner</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-network-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= template %></td>
+  <td><%= ports %></td>
+  <td><%= labels %></td>
+  <td><%= owner %></td>
+</script>
+
+<!-- Node -->
+
+<script type="text/template" id="test-node-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>site</th>
+     <th>deployment</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-node-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= site %></td>
+  <td><%= deployment %></td>
+</script>
+
+<!-- Service -->
+
+<script type="text/template" id="test-service-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>description</th>
+     <th>enabled</th>
+     <th>versionNumber</th>
+     <th>published</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-service-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= description %></td>
+  <td><%= enabled %></td>
+  <td><%= versionNumber %></td>
+  <td><%= published %></td>
+</script>
+
+<!-- Site -->
+
+<script type="text/template" id="test-site-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>url</th>
+     <th>enabled</th>
+     <th>login_base</th>
+     <th>is_public</th>
+     <th>abbreviated_name</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-site-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= site_url %></td>
+  <td><%= enabled %></td>
+  <td><%= login_base %></td>
+  <td><%= is_public %></td>
+  <td><%= abbreviated_name %></td>
+</script>
+
+<!-- Slice -->
+
+<script type="text/template" id="test-slice-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>enabled</th>
+     <th>omf_friendly</th>
+     <th>description</th>
+     <th>slice_url</th>
+     <th>site</th>
+     <th>max_slivers</th>
+     <th>service</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-slice-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= enabled %></td>
+  <td><%= omf_friendly %></td>
+  <td><%= description %></td>
+  <td><%= slice_url %></td>
+  <td><%= site %></td>
+  <td><%= max_slivers %></td>
+  <td><%= service %></td>
+</script>
+
+<!-- Sliver -->
+
+<script type="text/template" id="test-sliver-list-template">
+  <table class="test-table">
+  <thead><tr>
+     <th>id</th>
+     <th>name</th>
+     <th>instance_id</th>
+     <th>instance_name</th>
+     <th>image</th>
+     <th>creator</th>
+     <th>slice</th>
+     <th>node</th>
+     <th>deploymentNetwork</th>
+     <th>flavor</th>
+     <th>userData</th>
+  </tr></thead>
+  <tbody></tbody>
+  </table>
+</script>
+
+
+<script type="text/template" id="test-sliver-listitem-template">
+  <td><%= id %></td>
+  <td><%= name %></td>
+  <td><%= instance_id %></td>
+  <td><%= instance_name %></td>
+  <td><%= image %></td>
+  <td><%= creator %></td>
+  <td><%= slice %></td>
+  <td><%= node %></td>
+  <td><%= deploymentNetwork %></td>
+  <td><%= flavor %></td>
+  <td><%= userData %></td>
+</script>
+
+</script>
+
diff --git a/planetstack/core/xoslib/static/css/test.css b/planetstack/core/xoslib/static/css/test.css
new file mode 100644
index 0000000..3444fdb
--- /dev/null
+++ b/planetstack/core/xoslib/static/css/test.css
@@ -0,0 +1,4 @@
+.test-table td, th {
+    border: 1px solid black;
+}
+
diff --git a/planetstack/core/xoslib/static/js/test.js b/planetstack/core/xoslib/static/js/test.js
new file mode 100644
index 0000000..bc7f955
--- /dev/null
+++ b/planetstack/core/xoslib/static/js/test.js
@@ -0,0 +1,71 @@
+TestApp = new Marionette.Application();
+
+TestApp.addRegions({
+    deploymentList: "#deploymentList",
+    imageList: "#imageList",
+    networkTemplateList: "#networkTemplateList",
+    networkList: "#networkList",
+    nodeList: "#nodeList",
+    serviceList: "#serviceList",
+    siteList: "#siteList",
+    sliceList: "#sliceList",
+    sliverList: "#sliverList",
+    userList: "#userList"
+});
+
+// ---- Deployment ----
+
+TestApp.DeploymentListItemView = Marionette.ItemView.extend({
+    template: '#test-deployment-listitem-template',
+    tagName: 'tr',
+    className: 'test-tablerow',
+});
+
+TestApp.DeploymentListView = Marionette.CompositeView.extend({
+    childView: TestApp.DeploymentListItemView,
+    childViewContainer: 'tbody',
+    template: '#test-deployment-list-template',
+
+    initialize: function() {
+        this.listenTo(this.collection, 'change', this._renderChildren)
+    },
+});
+
+TestApp.on("start", function() {
+     var objs = ['deployment', 'image', 'networkTemplate', 'network', 'node', 'service', 'site', 'slice', 'sliver'];
+
+     for (var index in objs) {
+         name = objs[index];
+         tr_template = '#test-' + name + '-listitem-template';
+         table_template = '#test-' + name + '-list-template';
+         collection_name = name + "s";
+         region_name = name + "List";
+
+         itemViewClass = Marionette.ItemView.extend({
+             template: tr_template,
+             tagName: 'tr',
+             className: 'test-tablerow',
+         });
+
+         listViewClass = Marionette.CompositeView.extend({
+             childView: itemViewClass,
+             childViewContainer: 'tbody',
+             template: table_template,
+             collection: xos[collection_name],
+
+             initialize: function() {
+                 this.listenTo(this.collection, 'change', this._renderChildren)
+             },
+         });
+
+         var listView = new listViewClass();
+
+         TestApp[region_name].show(listView);
+         xos[collection_name].startPolling();
+     }
+});
+
+$(document).ready(function(){
+  TestApp.start();

+});
+