public Snapshot create(String hostname, Instant instant) {
        VersionedKeyPair keyPair = sealingKeyPair();
        try (var lock = lock(hostname)) {
            SnapshotId id = Snapshot.generateId();
            SecretSharedKey encryptionKey = generateEncryptionKey(keyPair.keyPair(), id);
            return write(id, hostname, (node) -> {
                if (busy(node)) {
                    throw new IllegalArgumentException("Cannot trigger new snapshot: Node " + hostname +
                                                       " is busy with snapshot " + node.status().snapshot().get().id());
                }
                ClusterId cluster = new ClusterId(node.allocation().get().owner(), node.allocation().get().membership().cluster().id());
                return Snapshot.create(id, com.yahoo.config.provision.HostName.of(hostname), node.cloudAccount(),
                                       instant, cluster, node.allocation().get().membership().index(),
                                       new SnapshotKey(encryptionKey.sealedSharedKey(), keyPair.version()));
            }, lock);
        }
    }
Trigger a new snapshot for node of given hostname
node-repository/src/main/java/com/yahoo/vespa/hosted/provision/backup/Snapshots.java