X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fplacement.py;h=d0d42f7520e1c663cbfe76c53ecf8a5fc2ae0a2b;hb=eac6d53d640fec2d1adab425c0ce891136b5784b;hp=561bc40a9df0c0189aa694740590212653bba78a;hpb=2f274d7544ca51b8a958fa8d9beb48a471a17d39;p=osm%2FN2VC.git diff --git a/juju/placement.py b/juju/placement.py index 561bc40..d0d42f7 100644 --- a/juju/placement.py +++ b/juju/placement.py @@ -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