Many interrelated changes: exceptions, caching, managers.
* Move exceptions into common file. Ok, this isn't interrelated, but it became so, sorry. * Move ensure_slice, ensure_sliver into core ElasticSliceManager "abstract" interface, from SimpleElasticSliceManager; refactor them to split out create_slice and create_sliver as separate methods; and expose all these things via ApplicableMethod. * Add a new interpretation of the cache-relevant force=(True|False) parameter: now if that value is an integer, take that as a max_age when querying the cache. So now the caller can prevent the cache from returning non-expired values if the value is older than a caller-specified max age. * Improve _cache_add to use synchronous ctime/xtime if relevant. * Add ctime to CacheNotifier (.added). * Add get_sliver_credential(). * Expose the manager should_add_nodes/add_nodes/delete_nodes methods via ApplicableMethod. * Change the manager.*add_nodes* methods to accept an additional count=N parameter. If 0, should_add_nodes will make an estimate of how many nodes to add them, and add them. If nonzero, it will see if it should add that number of nodes, and do so if allowed. This allows, for instance, a CLI invocation to force multiple nodes to be added if possible, even if by default the manager would only add one at a time. * Add a force= param to ProtoGeniServer.get_wrapped_manifest().
Showing with 319 additions and 150 deletions