Update changelog for 0.4.0
[osm/N2VC.git] / juju / placement.py
index 561bc40..d0d42f7 100644 (file)
@@ -22,7 +22,13 @@ def parse(directive):
         # Handle null case
         return None
 
-    if type(directive) in [dict, client.Placement]:
+    if isinstance(directive, (list, tuple)):
+        results = []
+        for d in directive:
+            results.extend(parse(d))
+        return results
+
+    if isinstance(directive, (dict, client.Placement)):
         # We've been handed something that we can simply hand back to
         # the api. (Forwards compatibility)
         return [directive]
@@ -41,10 +47,10 @@ def parse(directive):
         return [client.Placement(scope=MACHINE_SCOPE, directive=directive)]
 
     if "/" in directive:
-        machine, container, container_num = directive.split("/")
+        # e.g. "0/lxd/0"
+        # https://github.com/juju/juju/blob/master/instance/placement_test.go#L29
         return [
-            client.Placement(scope=MACHINE_SCOPE, directive=machine),
-            client.Placement(scope=container, directive=container_num)
+            client.Placement(scope=MACHINE_SCOPE, directive=directive),
         ]
 
     # Planner has probably given us a container type. Leave it up to