• Martin Atkins's avatar
    states/statemgr: Migrate, Import, and Export functions · 94510bc1
    Martin Atkins authored
    In our recent refactoring of the state manager interfaces we made serial
    and lineage management the responsibility of the state managers
    themselves, not exposing them at all to most callers, and allowing for
    simple state managers that don't implement them at all.
    
    However, we do have some specific cases where we need to preserve these
    properly when available, such as migration between backends, and the
    "terraform state push" and "terraform state pull" commands.
    
    These new functions and their associated optional interface allow the
    logic here to be captured in one place and access via some simple
    calls. Separating this from the main interface leaves things simple for
    the normal uses of state managers.
    
    Since these functions are mostly just thin wrappers around other
    functionality, they are not yet well-tested directly, but will be
    indirectly tested through the tests of their callers. A subsequent commit
    will add more unit tests here.
    94510bc1