As for scaling down, I think it's fine to not pass the launch config. The times we do need it, though, I think it should always be passed in. Since the caller is responsible for acquiring the locks it seems like this shouldn't be a problem, but I may be missing them. The caller in rest/configs.py wouldn't be able to use partial any more, and it'd have to explicitly define a function (possibly a lambda) that calls .view_launch_config() and passes it to obey_config_change.