diff --git a/xos/tools/ansible_hosts.py b/xos/tools/ansible_hosts.py
index e17edf6..0cdb809 100644
--- a/xos/tools/ansible_hosts.py
+++ b/xos/tools/ansible_hosts.py
@@ -13,6 +13,8 @@
 
 NODES_API = REST_API + "nodes/"
 SITES_API = REST_API + "sites/"
+SLICES_API = REST_API + "slices/"
+SLIVERS_API = REST_API + "sliver/"
 
 def get_nodes_by_site():
     r = requests.get(SITES_API + "?no_hyperlinks=1", auth=opencloud_auth)
@@ -31,6 +33,38 @@
 
     return sites
 
+"""
+   WIP
+
+def get_nodes_by_slice():
+    r = requests.get(SLICES_API + "?no_hyperlinks=1", auth=opencloud_auth)
+    sites_list = r.json()
+    slices = {}
+    for slice in slices_list:
+        slice["hostnames"] = []
+        slices[str(slices["id"])] = slice
+
+    r = requests.get(NODES_API + "?no_hyperlinks=1", auth=opencloud_auth)
+    nodes_list = r.json()
+    nodes = {}
+    for node in nodes_list:
+        nodes[str(nodes["id"])] = node
+
+    r = requests.get(SLIVERS_API + "?no_hyperlinks=1", auth=opencloud_auth)
+    slivers = r.json()
+    for slivers in nodes:
+        if sliver["node"] not in nodes:
+            continue
+        if sliver["slice"] not in slices:
+            continue
+
+        hostname = nodes[sliver["node"]].name
+
+        slices[sliver["slice"]]["hostnames"].append(hostname)
+
+    return slices
+"""
+
 def main():
     global opencloud_auth
 
