when one switch function requires another, invoke them in a topological order. if there's a cycle, invoke them in the order they are given on the command line
for the time being, it's enough to invoke the switch functions in the order they are given. topological sorting will be done later
If u get bored, https://github.com/yahoo/Openstack-Anvil/blob/16f9fe7e7bddce3b482d336731dc632488afd242/devstack/utils.py#L172, feel free to take that code :-P
thanks. it will take me some time to get to that though
i reached the conclusion that it's quite complicated. the fact that we allow cycles makes things hard. at the moment, the arguments are processed in the order they are given, which should suffice. anyhow, switch functions shouldn't be so complicated to have to depend on the order in which they are run. if we'll ever run into a situation where it makes sense, i'll reconsider.