- d2[k] = v
- return d2
-
-def sliver_to_dict(sliver):
- d = model_to_dict(sliver)
- d["slice_id"] = sliver.slice.id
- d["node_id"] = sliver.node.id
- return d
-
-def slice_to_dict(slice):
- d = model_to_dict(slice)
- d["slivers"] = [sliver_to_dict(x) for x in slice.slivers]
- return d
-
-def node_to_dict(node):
- d = model_to_dict(node)
- d["slivers"] = []
-
-
-class OpenCloudData:
- def __init__(self, user):
- self.loadAll()
-
- def loadAll(self):
- self.allNodes = list(Node.objects.all())
- self.allSlices = list(Slice.objects.all())
- self.allSlivers = list(Sliver.objects.all())
- self.allSites = list(Site.objects.all())
-
- self.site_id = {}
- for site in self.allSites:
- d = model_to_dict(site)
- d["node_ids"] = []
- d["slice_ids"] = []
- self.site_id[site.id] = ensure_serializable(d)
-
- self.node_id = {}
- for node in self.allNodes:
- d = model_to_dict(node)
- d["sliver_ids"] = []
- self.node_id[node.id] = ensure_serializable(d)
- self.site_id[node.site_id]["node_ids"].append(node.id)
-
- self.slice_id = {}
- for slice in self.allSlices:
- d = model_to_dict(slice)
- d["sliver_ids"] = []
- self.slice_id[slice.id] = ensure_serializable(d)
- self.site_id[slice.site_id]["slice_ids"].append(site.id)
-
- self.sliver_id = {}
- for sliver in self.allSlivers:
- self.sliver_id[sliver.id] = model_to_dict(sliver)
-
- self.slice_id[sliver.slice_id]["sliver_ids"].append(sliver.id)
- self.node_id[sliver.node_id]["sliver_ids"].append(sliver.id)
-
- def get_opencloud_data(self):
- return {"slices": self.slice_id.values(),
- "slivers": self.sliver_id.values(),
- "nodes": self.node_id.values(),
- "sites": self.site_id.values()}
-
-class ShellDataView(View):
- url = r'^shelldata/'
-
- def get(self, request, **kwargs):
- result = OpenCloudData(request.user).get_opencloud_data()