Skip to content
Snippets Groups Projects
test_tahoe.py 2.18 KiB
Newer Older
def test():
    start_all()

    # After the service starts, destroy the "created" marker to force it to
    # re-create its internal state.
    storage.wait_for_open_port(4001)
    storage.succeed("systemctl stop tahoe.storage")
    storage.succeed("rm /var/db/tahoe-lafs/storage.created")
    storage.succeed("systemctl start tahoe.storage")

    # After it starts up again, verify it has consistent internal state and a
    # backup of the prior state.
    storage.wait_for_open_port(4001)
    storage.succeed("[ -e /var/db/tahoe-lafs/storage ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.created ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.1 ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.1/private/node.privkey ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.1/private/node.pem ]")
    storage.succeed("[ ! -e /var/db/tahoe-lafs/storage.2 ]")

    # Stop it again, once again destroy the "created" marker, and this time also
    # jam some partial state in the way that will need cleanup.
    storage.succeed("systemctl stop tahoe.storage")
    storage.succeed("rm /var/db/tahoe-lafs/storage.created")
    storage.succeed("mkdir -p /var/db/tahoe-lafs/storage.atomic/partial")
    try:
        storage.succeed("systemctl start tahoe.storage")
    except:
        x, y = storage.execute("journalctl -u tahoe.storage")
        storage.log(y)
        raise

    # After it starts up again, verify it has consistent internal state and
    # backups of the prior two states.  It also has no copy of the inconsistent
    # state because it could never have been used.
    storage.wait_for_open_port(4001)
    storage.succeed("[ -e /var/db/tahoe-lafs/storage ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.created ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.1 ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.2 ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.2/private/node.privkey ]")
    storage.succeed("[ -e /var/db/tahoe-lafs/storage.2/private/node.pem ]")
    storage.succeed("[ ! -e /var/db/tahoe-lafs/storage.atomic ]")
    storage.succeed("[ ! -e /var/db/tahoe-lafs/storage/partial ]")
    storage.succeed("[ ! -e /var/db/tahoe-lafs/storage.3 ]")