Fixes for landscape bundle.
[osm/N2VC.git] / juju / placement.py
index 6f91aed..561bc40 100644 (file)
@@ -25,18 +25,28 @@ def parse(directive):
     if type(directive) in [dict, client.Placement]:
         # We've been handed something that we can simply hand back to
         # the api. (Forwards compatibility)
-        return directive
+        return [directive]
+
+    # Juju 2.0 can't handle lxc containers.
+    directive = directive.replace('lxc', 'lxd')
 
     if ":" in directive:
         # Planner has given us a scope and directive in string form
         scope, directive = directive.split(":")
-        return client.Placement(scope=scope, directive=directive)
+        return [client.Placement(scope=scope, directive=directive)]
 
     if directive.isdigit():
         # Planner has given us a machine id (we rely on juju core to
         # verify its validity.)
-        return client.Placement(scope=MACHINE_SCOPE, directive=directive)
+        return [client.Placement(scope=MACHINE_SCOPE, directive=directive)]
+
+    if "/" in directive:
+        machine, container, container_num = directive.split("/")
+        return [
+            client.Placement(scope=MACHINE_SCOPE, directive=machine),
+            client.Placement(scope=container, directive=container_num)
+        ]
 
     # Planner has probably given us a container type. Leave it up to
     # juju core to verify that it is valid.
-    return client.Placement(scope=directive)
+    return [client.Placement(scope=directive)]