• David Johnson's avatar
    Many interrelated changes: exceptions, caching, managers. · 84a24fbf
    David Johnson authored
      * 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().