xosDeveloper view working
authorScott Baker <smbaker@gmail.com>
Mon, 14 Jul 2014 00:36:19 +0000 (17:36 -0700)
committerScott Baker <smbaker@gmail.com>
Mon, 14 Jul 2014 00:36:19 +0000 (17:36 -0700)
planetstack/core/xoslib/dashboards/xosDeveloper.html
planetstack/core/xoslib/methods/__init__.py
planetstack/core/xoslib/methods/sliceplus.py
planetstack/core/xoslib/objects/sliceplus.py
planetstack/core/xoslib/static/js/xosDeveloper.js
planetstack/core/xoslib/static/js/xoslib/xos-backbone.js

index c6002d7..33d7ee7 100644 (file)
@@ -24,6 +24,6 @@
 </script>
 
 <script type="text/template" id="developer-slicedetail-template">
-  <td><%= name %></td>\r
+  <td><%= name %></td><td><%= sliceInfo.roles[0] %></td><td><%= sliceInfo.sliverCount %></td><td><%= sliceInfo.siteCount %></td>\r
 </script>
 
index 6c75063..0b891eb 100644 (file)
@@ -37,9 +37,9 @@ try:
 
     for view_url in view_urls:
         if view_url[0] == "list":
-           urlpatterns.append(url(r'^xoslib/' + view_url[1] + '/$',  view_url[3].as_view(), name=view_url[1]+'list'))
+           urlpatterns.append(url(r'^' + view_url[1] + '/$',  view_url[3].as_view(), name=view_url[1]+'list'))
         elif view_url[0] == "detail":
-           urlpatterns.append(url(r'^xoslib/' + view_url[1] + '/(?P<pk>[a-zA-Z0-9\-]+)/$',  view_url[3].as_view(), name=view_url[1]+'list'))
+           urlpatterns.append(url(r'^' + view_url[1] + '/(?P<pk>[a-zA-Z0-9\-]+)/$',  view_url[3].as_view(), name=view_url[1]+'detail'))
 
 finally:
     sys.path = sys_path_save
index 79aae3b..f990275 100644 (file)
@@ -13,7 +13,7 @@ class SlicePlusIdSerializer(serializers.ModelSerializer):
         sliceInfo = serializers.SerializerMethodField("getSliceInfo")\r
 \r
         def getSliceInfo(self, slice):\r
-            return slice.getSliceInfo()\r
+            return slice.getSliceInfo(user=self.context['request'].user)\r
 \r
         networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')\r
         availableNetworks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')\r
@@ -26,6 +26,9 @@ class SlicePlusList(generics.ListCreateAPIView):
     queryset = SlicePlus.objects.select_related().all()
     serializer_class = SlicePlusIdSerializer
 
+    method_kind = "list"
+    method_name = "slicesplus"
+
     def get_queryset(self):
         return SlicePlus.select_by_user(self.request.user)
 
@@ -41,6 +44,9 @@ class SlicePlusDetail(generics.RetrieveUpdateDestroyAPIView):
     queryset = SlicePlus.objects.select_related().all()
     serializer_class = SlicePlusIdSerializer
 
+    method_kind = "detail"
+    method_name = "slicesplus"
+
     def get_queryset(self):
         return SlicePlus.select_by_user(self.request.user)
 
index e35f4d1..2542fd7 100644 (file)
@@ -27,12 +27,9 @@ class SlicePlus(Slice):
 
     @staticmethod
     def select_by_user(user):
-        print "XX"
         if user.is_admin:
             qs = SlicePlus.objects.all()
         else:
             slice_ids = [sp.slice.id for sp in SlicePrivilege.objects.filter(user=user)]
             qs = SlicePlus.objects.filter(id__in=slice_ids)
-        print qs
-        print qs.all()
         return qs
index 5e81d85..eb83efe 100644 (file)
@@ -10,20 +10,30 @@ DeveloperApp.SliceDetailView = Marionette.ItemView.extend({
   className: 'developer_slicedetail'\r
 });
 
+/*
 DeveloperApp.SliceListView = Marionette.CollectionView.extend({
+  tagName: "table",\r
+  className: "table table-hover",\r
+  template: "#developer-slicetable-template",\r
+  childView: DeveloperApp.SliceDetailView,\r
+});\r
+*/\r
+\r
+DeveloperApp.SliceListView = Marionette.CompositeView.extend({\r
   tagName: "table",\r
   className: "table-striped table-bordered",\r
   template: "#developer-slicetable-template",\r
   childView: DeveloperApp.SliceDetailView,\r
+  childViewContainer: "tbody",\r
 });\r
 
 DeveloperApp.on("start", function() {
   var developerSliceListView = new DeveloperApp.SliceListView({
-    collection: xos.slices\r
+    collection: xos.slicesPlus\r
   });\r
   console.log(developerSliceListView);\r
   DeveloperApp.mainRegion.show(developerSliceListView);\r
-  xos.slices.fetch();\r
+  xos.slicesPlus.fetch();\r
 });
 
 $(document).ready(function(){
index b113535..59645e7 100644 (file)
@@ -5,6 +5,8 @@ SITE_API = "/plstackapi/sites/";
 USER_API = "/plstackapi/users/";
 DEPLOYMENT_API = "/plstackapi/deployments";
 
+SLICEPLUS_API = "/xoslib/slicesplus/";
+
 XOSModel = Backbone.Model.extend({
     /* from backbone-tastypie.js */
     //idAttribute: 'resource_uri',
@@ -119,6 +121,7 @@ XOSCollection = Backbone.Collection.extend({
 });
 
 function xoslib() {
+    // basic REST
     this.sliver = XOSModel.extend({ urlRoot: SLIVER_API });
     this.sliverCollection = XOSCollection.extend({ urlRoot: SLIVER_API,
                                                    model: this.sliver});
@@ -149,6 +152,12 @@ function xoslib() {
                                                        model: this.deployment});
     this.deployments = new this.deploymentCollection();
 
+    // enhanced REST
+    this.slicePlus = XOSModel.extend({ urlRoot: SLICEPLUS_API });
+    this.slicePlusCollection = XOSCollection.extend({ urlRoot: SLICEPLUS_API,
+                                                      model: this.slicePlus});
+    this.slicesPlus = new this.slicePlusCollection();
+
     this.listObjects = function() { return ["slivers", "slices", "nodes", "sites", "users", "deployments"]; };
 };