8.3.2.31. v4.6.1ΒΆ

commit ffdba47236b5ce1ee991cbbda690568470e2b367
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Sat May 1 10:37:04 2021 -0500

    fix(deadlock): Fix a couple of deadlock sources.

    4.6.0 was released with a couple of deadlocks in waiting, as well as
    several sources of terrible performance when running on actual hard
    drives.  Fix the deadlocks, get rid of the no-longer-required set of
    locking that was causing them, and arrange for the most egregious
    sources of slowdowns at startup to be skipped at startup.

    Further testing will be needed to make startup performance not utterly
    terrible on spinning rust.

M   backend/machines.go
M   backend/requestTracker.go
M   go.sum
M   server/args.go

commit dc8f63ea0b54219435cb1378ebd8bd8cd86b15e1
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Apr 29 23:17:53 2021 -0500

    build: update to v4.6.0

M   go.mod
M   go.sum

commit 043c5cede33b1380fdbd4e9d09f797c6c194711f
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 28 11:24:51 2021 -0500

    fix(agent): Pull in client-side agent and correctness fixes

M   clitest/test-data/output/TestAddingStageToWorkflowTaskList/machines.jobs.create.Name.bob.3/stdout.expect
M   clitest/test-data/output/TestCallbackPlugin/machines.jobs.create.Name.bob.3/stdout.expect
M   go.mod
M   go.sum

commit afac5f38d7bfbf7aee0c89cc15526ef87e4021ca
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Apr 26 13:46:12 2021 -0500

    fix(deps): pull in more cli changes and docs.

M   go.mod
M   go.sum

commit 0b6b15feb52636248f8f5bb8ae67b4bf409d7cc2
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Apr 26 13:43:29 2021 -0500

    fix(all): Clean up Goland-noted errors

    Fix several incorrect uses of defer() in loops to free resurces, fix
    several places where ordering was incorrect from a nilness checking
    perspectiuve, and other similar issues.

M   backend/catalog_items.go
M   backend/dhcpUtils.go
M   backend/endpoint_manager.go
M   backend/pluginProviders.go
M   backend/requestTracker.go
M   backend/reservation.go
M   backend/runningPlugin.go
M   cmds/dr-waltool/waltool.go
M   consensus/persistStore.go
M   datastack/index/priorityMerge.go
M   datastack/stack.go
M   datastack/streamingSync_test.go
M   frontend/endpoints.go
M   frontend/frontend.go
M   frontend/jobs.go
M   frontend/plugins.go
M   go.mod

commit 7690088a707539dc8212731562b66830dba28323
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Sun Apr 25 17:07:43 2021 -0500

    fix(passive): put wait back with consequence of cntrl-c

M   server/args.go

commit 8466cf8b2c32cb391d7d12a77bf51ae6e42f1a98
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Sun Apr 25 09:07:13 2021 -0500

    fix(selfwatcher): remove log message

M   server/args.go

commit 58a8ca2329b694295d7f14a130fc0c2556be2292
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 23 15:17:56 2021 -0500

    feat(dr-waltool): Simplify and harden dr-waltool.

    The verify and humanize operations are now guaranteed to never modify
    source data even by accident.  As a side effect, they cannot be run
    against a datastack that is in use.

    The gitify operation has been removed, it was never meant to be used
    in the field or was anything other than a research tool.

    The help for the validate and backup options has been enhanced a bit.

    The rescue operation has been removed.  Use humanize instead.

M   cmds/dr-waltool/waltool.go
M   consensus/raftStore.go
M   datastack/stack_legacy.go
M   go.mod
M   wal/wal.go

commit b5c37f35020d40ca61559502b7980c2056dc1962
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Fri Apr 23 12:46:01 2021 -0500

    fix(server): add missting https

M   server/args.go

commit 4c86cf0cc631a7d2cb00b102922f10678e720a33
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Fri Apr 23 12:27:56 2021 -0500

    fix(server): Handle issues from Victor CR

M   server/args.go
M   server/selfManage.go

commit 5fb8c0e3fc83013e1ab4caf7bf76dce8c566b94d
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Apr 22 15:12:14 2021 -0500

    fix(test): for previous commits

M   backend/renderData_test.go
M   clitest/test-data/output/TestAuth/machines.list.611601b3efac342fd10027372140fe8c/stdout.expect
M   clitest/test-data/output/TestAuth/machines.list.e8e0775e692adbcb8acdf3799178655c/stdout.expect
M   consensus/persistStore_test.go
M   datastack/stack.go

commit 98d3491c00aaf5aea49fddae32daf67fb37faa5d
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Apr 22 13:34:51 2021 -0500

    fix(server): fix restart on linux - file watcher watch dir
    fix(runner): allow self runner to run on passive nodes

M   server/args.go
M   server/selfManage.go

commit cea306a0db13a0a9d684a38754b4097fb6536082
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Apr 22 13:34:02 2021 -0500

    fix(backend): Don't rerender key all the time

M   backend/machines.go

commit ff802b25099cea0237095aaba5bc08b473e32bbf
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Apr 22 13:33:19 2021 -0500

    fix(passive): do not fail if a commit arrives from the past

M   consensus/persistStore.go

commit 5b7e350f0597e50e8fd5819e311df0373d26a078
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Apr 22 13:32:05 2021 -0500

    fix(tokens): Allow a 1 hour time drift in tokens

M   backend/jwt-utils.go

commit 6095ebca52e2de356f2a3929a3077be8b3e05e7c
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Apr 20 13:23:47 2021 -0500

    fix(consensus): classic ha reset connections

M   datastack/stack.go
M   datastack/streamingSyncPassive.go
M   server/args.go

commit 1fdb4efeba08146a1f7eb4fd81a80a352229d786
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Apr 19 21:22:58 2021 -0500

    fix(consensus): don't panic, return an error and restart
    fix(runner): allow it to work with HA on all systems

M   consensus/persistStore.go
M   consensus/persistStore_test.go
M   server/args.go

commit 7c751c9a89ee447752b06d53322c6e107f9c52a4
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 22 16:26:56 2021 -0500

    feat(client): Pull in client test updates and gofmt all the things.

M   backend/bootenv.go
M   backend/catalog_items.go
M   backend/contexts.go
M   backend/dhcpUtils.go
M   backend/endpoints.go
M   backend/jobs.go
M   backend/lease.go
M   backend/machines.go
M   backend/param.go
M   backend/pluginProviders.go
M   backend/plugins.go
M   backend/pools.go
M   backend/profiles.go
M   backend/raw_model.go
M   backend/repo.go
M   backend/requestTracker.go
M   backend/reservation.go
M   backend/roles.go
M   backend/stage.go
M   backend/subnet.go
M   backend/task.go
M   backend/template.go
M   backend/tenants.go
M   backend/user.go
M   backend/utils.go
M   backend/version_sets.go
M   backend/workflow.go
M   datastack/index/index.go
M   datastack/index/priorityMerge.go
M   go.mod
M   go.sum
M   midlayer/dhcp.go

commit b018043f3cbc742bc1ef5883cf2a34a70e28c973
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 22 13:25:36 2021 -0500

    fix(indexes): Fix crash in midlayer, refactor to prevent similar.

    The previous index changes I made caused the midlayer to crash when it
    attempted to look up the indexes for a nil machine through the
    models.Model interface.  Refactored the index lookup API the backend
    uses and presents to the outside world to keep mistakes like that from
    happening again, and reduce the amount of visual noise index lookups
    have.

M   backend/bootenv.go
M   backend/catalog_items.go
M   backend/contexts.go
M   backend/dhcpUtils.go
M   backend/endpoints.go
M   backend/jobs.go
M   backend/lease.go
M   backend/machines.go
M   backend/param.go
M   backend/pluginProviders.go
M   backend/plugins.go
M   backend/pools.go
M   backend/profiles.go
M   backend/raw_model.go
M   backend/repo.go
M   backend/requestTracker.go
M   backend/reservation.go
M   backend/roles.go
M   backend/stage.go
M   backend/subnet.go
M   backend/task.go
M   backend/template.go
M   backend/tenants.go
M   backend/user.go
M   backend/utils.go
M   backend/version_sets.go
M   backend/workflow.go
M   datastack/index/index.go
M   frontend/frontend.go
M   frontend/indexes.go
M   midlayer/dhcp.go

commit 22d7dc53414a833e88792d8b83321af94b292763
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 22 09:06:09 2021 -0500

    fix(mgr): Fix the manager tests, forgot they do an index check as well

M   manager-tests/test-data/output/TestCorePieces/client1.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/client1.reservations.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/client2.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/client2.reservations.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/manager1.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/manager1.reservations.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub2-client1.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub2-client1.reservations.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub2-client2.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub2-client2.reservations.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub3-client1.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub3-client1.reservations.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub3-client2.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub3-client2.reservations.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub4-client1.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub4-client1.reservations.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub4-client2.leases.indexes/stdout.expect
M   manager-tests/test-data/output/TestCorePieces/sub4-client2.reservations.indexes/stdout.expect

commit a1335fb5ac594a79fb1fa2e7546f8b29f3078726
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 21 15:01:35 2021 -0500

    feat(consensus): Fix license enforcement, and add some optimizations.

    Oops, using failoverSafe was a bad call for rejoining a cluster.  Swap
    it out for somehting that doesn't wait by design.

    Include a bunch of index optimizations around creating large numbers
    of bojects via the API -- we were calling rpiorityMerge way too much
    without filtering what we wanted to merge first.

M   backend/bootenv.go
M   backend/catalog_items.go
M   backend/contexts.go
M   backend/endpoints.go
M   backend/jobs.go
M   backend/lease.go
M   backend/machines.go
M   backend/param.go
M   backend/pluginProviders.go
M   backend/plugins.go
M   backend/pools.go
M   backend/profiles.go
M   backend/requestTracker.go
M   backend/reservation.go
M   backend/roles.go
M   backend/stage.go
M   backend/subnet.go
M   backend/task.go
M   backend/template.go
M   backend/tenants.go
M   backend/user.go
M   backend/utils.go
M   backend/version_sets.go
M   backend/workflow.go
M   clitest/test-data/output/TestCorePieces/leases.indexes/stdout.expect
M   clitest/test-data/output/TestCorePieces/reservations.indexes/stdout.expect
M   consensus/persistStore.go
M   consensus/raft.go
M   datastack/index/index.go
M   datastack/index/priorityMerge.go
M   frontend/consensus.go
M   server/args.go

commit 8b1d21f0555a2f0a79357004e47049c151f30986
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Apr 20 14:37:49 2021 -0500

    feat(consensus) The high-availability license now refers to consensus.

    The consensus APIs now check for high-availability entitlements when a
    new node is joining a cluster, and do not check for entitlements at
    any other time.  Doing so would make an expired license break a
    cluster in a way that would be annoying and painful to clean up.

M   backend/license.go
M   frontend/consensus.go
M   frontend/frontend.go

commit f0c0269a50c684764c122ceeb88e010901373e3e
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Apr 20 10:31:02 2021 -0500

    fix(lots): Pull in new client code, fix lots of little stuff.

    Other than the new clisnt code, this fixes a bunch of nits goland found
    along with a few context leaks.

M   backend/buildiso.go
M   backend/dhcpUtils.go
M   backend/endpoint_manager.go
M   backend/jwt-utils.go
M   backend/machines.go
M   backend/requestTracker.go
M   backend/runningPlugin.go
M   backend/subnet.go
M   clitest/common_test.go
M   clitest/test-data/output/TestFilesCli/files.upload.common_test.go.as.greg/stdout.expect
M   clitest/test-data/output/TestIsosCli/isos.upload.common_test.go.as.greg/stdout.expect
M   cmds/dangerzone/dangerzone.go
M   commit/entry_easyjson.go
M   consensus/persistStore_test.go
M   consensus/raft.go
M   consensus/raftStore.go
M   consensus/serverAPI.go
M   datastack/etags.go
M   datastack/stack.go
M   datastack/streamingSync_test.go
M   failover_test/consensus_failover_test.go
M   frontend/debug.go
M   frontend/endpoint.go
M   frontend/frontend.go
M   frontend/plugins.go
M   frontend/websocket.go
M   go.mod
M   go.sum
M   ipcache/conncache.go
M   manager-tests/common_test.go
M   midlayer/abp.go
M   midlayer/dhcp.go
M   midlayer/dhcpUtil.go
M   midlayer/tftp_test.go
M   server/args.go
M   test/randomTar_test.go
M   transact/tx.go
M   transact/tx_test.go
M   wal/wal.go

commit 8a7195c7c56d97b79c2c55b154757fdcd150a11e
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Apr 19 17:38:39 2021 -0500

    fix(consensus): Clean up HA client code usage a bit.

    This pulls in the client-side goroutine leak fixes, and tweaks
    the APIs around using that client for HA purposes to get rid
    of some accumulated cruft.

M   consensus/raft.go
M   consensus/raftFSM.go
M   consensus/raftStore.go
M   datastack/stack.go
M   failover_test/consensus_failover_test.go
M   frontend/consensus.go
M   go.mod
M   go.sum
M   server/args.go

commit e6569b4d3ac9a885561f6895819f3d8f5a0a9271
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Apr 19 13:32:20 2021 -0500

    fix(consensus): Fix some timing and refresh issues on consensus start

M   backend/dataTracker.go
M   consensus/raft.go
M   server/args.go

commit a492e04a1fe6750eb6cc8face4c20ff01954ad73
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Apr 19 10:12:33 2021 -0500

    fix(consensus): remove extra allocate to just memset around

M   consensus/persistStore.go

commit dd23d553f65e2fe3e2d74734ead9b4676e369684
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Sat Apr 17 17:23:32 2021 -0500

    fix(sync): handle replication failures

    In the init stream path, it could be possible to skip the updates of a
    commit in the middle of an index page.  Rare, but possible.

    In the replication receive code, allow for unordered messages to keep
    from requiring locking to control output flow.

M   backend/endpoint_manager.go
M   commit/buffer.go
M   consensus/persistStore.go
A   consensus/persistStore_test.go
M   consensus/serverAPI.go
M   datastack/stack.go

commit a8495a154a3638393b6b0868028581ec03042300
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 16 17:44:56 2021 -0500

    feat(consensus): Pull in latest client code (with consensus node removal)

M   go.mod
M   go.sum

commit 23a562e651407abef52db3b5d33b69ad254a7116
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 16 14:09:03 2021 -0500

    fix(consensus) Exit instead of panicing when we cannot commit a transaction.

    If we cannot commit a transaction, it means that the node we are trying
    to commit on has lost leadership of the cluster, and we should just
    abandon the transaction.

M   backend/requestTracker.go

commit 2f55b0ead640b5b56246e63f29d95a2443891085
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 16 13:57:16 2021 -0500

    fix(consensus): Refactor the run loop and artifact handling a bit.

    The run loop has been simplified a bit more, with signal handling
    cleaned up a bit and the final shutdown sequence tuned to avoid any
    unneeded delays.

    The artifact processing loop is a little more verbose (for debugging
    purposes, this will be turned off before production), and it will fail
    faster in the face of client communication failures.

M   datastack/stack.go
M   failover_test/consensus_failover_test.go
M   frontend/consensus.go
M   server/args.go

commit 1195213154cda5dc149c0d46d43f5ab2fcef0598
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 16 10:18:52 2021 -0500

    fix(shutdown): All high-level event processing is in one loop now.

    We used to have two seperate high-level event processing loops that
    determined what should happen when the executable was ready to exit.
    That is no longer the case -- it has all been collapsed into
    server.Run to make it easier to reason about what should happen for
    any given case.

M   server/args.go

commit 2344290d120b2c56e99963dced4f5f399621899e
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 16 09:18:51 2021 -0500

    fix(consensus) Fix a race when closing the datastack.

    Don't set stack.Consensus to nil, it just annoys the race detector.

M   datastack/stack.go

commit 31790609dd10734c1a6a9547c9b31943bfdfbaf6
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 15 15:01:37 2021 -0500

    fix(consensus): Placate the race detector for consensus certs.

    Race detector in Travis found one that was not exposed on my system.

M   consensus/serverAPI.go

commit 2a102074721c18f39a8279f2da2ad58d264f218f
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 15 11:52:19 2021 -0500

    perf(startup): Trust the database on initial load

    For making sure that object uniqueness is correct, at least.  Since we
    already enforce it on every create and save operation (including
    content pack and plugin loading and unloading), eliding the uniqueness
    check at startup gets rid of a source of quadratic slowdowns with
    large numbers of objects.

M   backend/bootenv.go
M   backend/catalog_items.go
M   backend/contexts.go
M   backend/endpoints.go
M   backend/lease.go
M   backend/machines.go
M   backend/pluginProviders.go
M   backend/plugins.go
M   backend/pools.go
M   backend/profiles.go
M   backend/raw_model.go
M   backend/reservation.go
M   backend/roles.go
M   backend/stage.go
M   backend/subnet.go
M   backend/task.go
M   backend/tenants.go
M   backend/user.go
M   backend/version_sets.go
M   backend/workflow.go

commit 9e4e8826a6fdd539fdec1a79f2efeab9457953e7
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 15 09:23:08 2021 -0500

    feat(consensus): Allow for cancelling in-flight requests

    While we already know how to cancel a request whenever the transaction
    manager says we should, we also need to know how to cancel a request
    that cannot proceed due to waiting on semaphore acquisition when
    the connection goes away.  To this end, thread a Context through all
    uses of RequestTracker that we can use to tell when our underlying
    connection (of any type) has gone away, and use it whenever we are
    grabbing an access control semaphore for any reason.

M   backend/bootenv_test.go
M   backend/dataTracker.go
M   backend/dhcpUtils_test.go
M   backend/endpoint_manager.go
M   backend/endpoints.go
M   backend/jwt_utils_test.go
M   backend/lease_test.go
M   backend/machines.go
M   backend/machines_test.go
M   backend/param_test.go
M   backend/pluginProvider_test.go
M   backend/pluginProviders.go
M   backend/plugins.go
M   backend/preference_test.go
M   backend/profiles_test.go
M   backend/renderData.go
M   backend/renderData_test.go
M   backend/requestTracker.go
M   backend/reservation_test.go
M   backend/runningPlugin.go
M   backend/stage_test.go
M   backend/subnet_test.go
M   backend/task_test.go
M   backend/template_test.go
M   backend/user.go
M   backend/user_test.go
M   backend/version_sets.go
M   backend/workflow_test.go
M   consensus/raft.go
M   datastack/stack.go
M   frontend/content.go
M   frontend/frontend.go
M   midlayer/dhcp.go
M   midlayer/dhcp_test.go
M   midlayer/fake_midlayer_server_test.go
M   server/args.go

commit 52e99bad21e51cbb6b97cb6b9e4507948e3ec4be
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Apr 14 21:07:16 2021 -0500

    fix(tests): make darwin friendly tests

M   clitest/common_test.go
M   clitest/test-data/output/TestFilesCli/files.upload.common_test.go.as.greg/stdout.expect
M   clitest/test-data/output/TestIsosCli/isos.upload.common_test.go.as.greg/stdout.expect
M   failover_test/consensus_failover_test.go
M   failover_test/ssa_replication_test.go
M   test/server.go

commit 9591c2066766c9d332058b560942e3e358ea1571
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 14 14:10:39 2021 -0500

    fix(consensus):  Oops, actually remove the vip in all cases when we exit

M   server/args.go

commit e6864e2b20269f35fb4f13b11de50031bf5049b9
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 14 13:26:02 2021 -0500

    fix(consensusJoin): Oops, don't busy-spawn clients on rejoin.

M   consensus/raft.go

commit 20c0b64221fdbf343f4fe197e6a6faac378eded4
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 14 12:54:07 2021 -0500

    fix(consensusJoin): zap some inadvised join timeouts

    Also, add an API to force a snapshot and update the failover unit
    tests to make an excessive number of profiles to force followers to
    pull a snapshot on initial join.

M   consensus/raft.go
M   failover_test/consensus_failover_test.go
M   frontend/consensus.go
M   server/args.go

commit 98352076496f4d18b918d2ebf1d47fff974580ff
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 14 10:00:37 2021 -0500

    fix(consensus): Make sure the snapshot size is set properly.

    Sigh, this was not being set properly the whole time.  Still need
    a unit test to make sure we are handling things properly.

M   consensus/raftStore.go

commit c51c2aa1c0976adbaf5ea03848b790f1c9423be6
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Apr 13 15:30:48 2021 -0500

    fix(dhcp): Stop checking unrelated systems when determinig PXE eligibility.

    Back in the Olden Days, we tied machines to the DHCP system via the
    addresses they were issued on the address field.  We mostly excised
    that in favor of tracjkking them by MAC address via the HardwareAddr
    field on the machine, but there was one place in the DHCP path where
    we still inappropriatly relied on the address: when we failed to look
    up a machine by MAC address.  In that case, we could look up by IP
    addressfind a machine that had that Address field set to it despite
    the address being free and the machine in question not having matching
    mac addresses.  This leads the DHCP system to deny PXE boots to new
    hardware just because some other piece of gear had that address at
    some point in the past.

    Instead of maintaining that broken behaviour, do what we do when we find
    a conflicting address in any other DHCP related situation: zero out the
    Addresses on the conflicting machines.

M   midlayer/dhcp.go

commit 73894732fb46ba647069194956c63dc02bc50171
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Apr 13 09:33:29 2021 -0500

    feat(consensus): More consensus join issues fixed and races closed

M   consensus/persistStore.go
M   consensus/raft.go
M   consensus/raftFSM.go
M   consensus/serverAPI.go
M   datastack/presistentStore.go
M   datastack/stack.go
M   wal/wal.go

commit 225ecf38cbfad9696aac35a1c98cb428281ee52d
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Apr 12 11:43:57 2021 -0500

    feat(consensus): Add a missed spot to kill write transactions.

    Sigh, missed the case where I should be terminating a transaction
    that intends to write something if it failed to commit to consensus
    and the transaction interlock manager is locked down.

    While I am at it, make the artifact synchronizer die faster when
    the client it is using to synchronize loses connection.

M   backend/requestTracker.go
M   datastack/stack.go
M   failover_test/consensus_failover_test.go

commit ea09b3894a1d1ee622977c1e686cfb3ed9606fbf
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Apr 12 10:07:25 2021 -0500

    feat(consensus): Spam the nodes while setting up consensus failover.

    This has the consensus failover test spam the to-be-leader while
    self-joining and while adding other nodes.

M   failover_test/consensus_failover_test.go

commit ce3342707ec2211b6819bebdabeee2e7b2122618
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Apr 12 09:51:31 2021 -0500

    feat(consensus): Refactor consensus management to use stack.WithStopped

    This gives us a more certian way of ensuring that everything that
    relies on the datastack is actually stopped and/or is refuxing
    requests while we are doing terrible cluster-related things.

M   datastack/stack.go
M   server/args.go

commit 4243dd63c3e471ebf34b4919a6f259387d2cd25d
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 9 14:01:07 2021 -0500

    feat(consensus): Switch to single-file consensus snapshots.

    I have seen a couple of instances where a zero-length snapshot has
    caused issue, and the sumptom is that the metadata file is fine while
    the actual snapshot is empty.  This refactors how we produce and
    consume shapshots to be a single file instead of a directory with two
    files, making it easier to debug al lthe rigamoralw that is required
    to securely write data to disk.  We will only produce snapshots in the
    new single-file format, but we will continue to read snapshots in the
    multifile format, so migration is as simple as a code update.

    This also lays the groundwork for a more robust cluster enroll protocol.

M   consensus/raftFSM.go
M   consensus/raftStore.go
M   consensus/raft_test.go

commit 0815032aba1919d57aee50b5a73f578ee700e285
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 7 15:42:29 2021 -0500

    Pull in latest client code

M   go.mod
M   go.sum

commit 1762aaae0c723e3bfeba55db6e47b761d7f6d6c1
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 7 12:05:06 2021 -0500

    feat(pxe): Update embedded ipxe.

    There have been quite a few updates to ipxe since our last release,
    including a fix for a bug that causes broadcast storms when ipxe gets
    a NAK instead of falling back to another round of DISCOVER messages.

M   clitest/bootenv_test.go
M   embedded/assets/ipxe-arm64.efi
M   embedded/assets/ipxe.efi
M   embedded/assets/ipxe.lkrn
M   embedded/assets/ipxe.pxe

commit d082dcf23f25c3c2df6fd0f025f5074df7d6b3c4
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Apr 6 16:44:00 2021 -0500

    feat(testLicense): All unit test licenses are dynamic now.

    This touched a lot of bits, byt we no longer carry around license
    files for unit tests -- instead, we generate them on the fly via go
    generate.

    Oh, there are a couple of DHCP fixes for Rob as well.

M   .gitignore
M   backend/dhcpUtils.go
M   clitest/00_aone_test.go
M   clitest/auth_test.go
M   clitest/common_test.go
M   clitest/context_test.go
M   clitest/fixInteractive.sh
M   clitest/roles_test.go
M   clitest/secure_params_test.go
A   clitest/test-data/output/TestAuth/contents.upload.test-data/boring.json/stdout.expect
A   clitest/test-data/output/TestAuth/contents.upload.test-data/rbac.json/stdout.expect
M   clitest/test-data/output/TestAuth/info.get/stdout.expect
M   clitest/test-data/output/TestAuth/profiles.list.611601b3efac342fd10027372140fe8c.2/stdout.expect
M   clitest/test-data/output/TestAuth/profiles.list.611601b3efac342fd10027372140fe8c/stdout.expect
M   clitest/test-data/output/TestAuth/profiles.list.e8e0775e692adbcb8acdf3799178655c.2/stdout.expect
M   clitest/test-data/output/TestAuth/profiles.list.e8e0775e692adbcb8acdf3799178655c/stdout.expect
M   clitest/test-data/output/TestContentsFunctionalCli/profiles.list.2/stdout.expect
M   clitest/test-data/output/TestContentsFunctionalCli/profiles.list.3/stdout.expect
M   clitest/test-data/output/TestContentsFunctionalCli/profiles.list.4/stdout.expect
M   clitest/test-data/output/TestContentsFunctionalCli/profiles.list/stdout.expect
A   clitest/test-data/output/TestContextStuff/contents.upload.test-data/boring.json/stdout.expect
A   clitest/test-data/output/TestContextStuff/contents.upload.test-data/rbac.json/stdout.expect
A   clitest/test-data/output/TestContextStuff/contexts.create.20a1c2a8dd88a6b1fcf73f4d8f829daa.2/stderr.expect
A   clitest/test-data/output/TestContextStuff/contexts.create.20a1c2a8dd88a6b1fcf73f4d8f829daa/stdout.expect
A   clitest/test-data/output/TestContextStuff/machines.create.bob/stderr.expect
A   clitest/test-data/output/TestContextStuff/machines.update.Name.bob.f13ec3e2bf7000d583f121cb0e727722/stderr.expect
M   clitest/test-data/output/TestFilesCli/files.upload.common_test.go.as.greg/stdout.expect
M   clitest/test-data/output/TestIsosCli/isos.upload.common_test.go.as.greg/stdout.expect
A   clitest/test-data/output/TestLoadIncrementer/contents.upload.3d61c3ce17118d4daf3352e43ddd3990/stdout.expect
A   clitest/test-data/output/TestLoadIncrementer/contents.upload.8b9a5820b4bd1079a9d7fd2f8d5d49f9/stdout.expect
A   clitest/test-data/output/TestLoadIncrementer/contents.upload.b4c9cb81da252e8b949725b017c88ffb/stdout.expect
A   clitest/test-data/output/TestLoadIncrementer/contents.upload.test-data/boring.json/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list.2/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list.3/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list.4/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list.5/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.10d73d74561c9e31b1b8fa5bf73dd92a/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.2/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.2d116c713d0075f8da30be5bf8a50f67/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.3/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.4/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.5/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.78d603ecdbe958a094edc5726b86fa52/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.e3f3dd04190749d1c215bddb7de3ca2c/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list.e5be561fb290b2e75818092f6ac03900/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles.list/stdout.expect
A   clitest/test-data/output/TestRoleCLI/contents.upload.test-data/boring.json/stdout.expect
A   clitest/test-data/output/TestRoleCLI/contents.upload.test-data/rbac.json/stdout.expect
M   clitest/test-data/output/TestSecureParams/23d3c925eda6b815c6993f70f373505e/stdout.expect
M   clitest/test-data/output/TestSecureParams/9821faf3e21abe65ea0ae9b6d410896f/stdout.expect
M   clitest/test-data/output/TestSecureParams/b5acd6c19932b60dd554965e8d6a93d7/stdout.expect
A   clitest/test-data/output/TestSecureParams/contents.upload.test-data/boring.json/stdout.expect
A   clitest/test-data/output/TestSecureParams/contents.upload.test-data/rbac.json/stdout.expect
M   clitest/test-data/output/TestUserCli/users.token.rocketskates.scope.all.ttl.330.action.list.specific.asdgag/stdout.expect
M   clitest/test-data/output/TestUserCli/users.token.rocketskates/stdout.expect
A   clitest/test-data/output/TestWorkflowContextSwitching/contents.upload.test-data/boring.json/stdout.expect
A   clitest/test-data/output/TestWorkflowContextSwitching/contents.upload.test-data/rbac.json/stdout.expect
A   clitest/test-data/output/TestWorkflowContextSwitching/contexts.create.20a1c2a8dd88a6b1fcf73f4d8f829daa.2/stderr.expect
M   clitest/workflow_test.go
A   cmds/license/cliTestLicense.go
A   cmds/license/highAvailability.go
M   cmds/license/license.go
A   cmds/license/managerTest.go
A   cmds/license/trialLicense.go
M   datastack/stack.go
M   datastack/streamingSyncPassive.go
M   failover_test/consensus_failover_test.go
A   failover_test/license_test.go
M   failover_test/ssa_replication_test.go
M   manager-tests/common_test.go
M   manager-tests/fixInteractive.sh
M   manager-tests/mgr_add_machines_test.go
D   manager-tests/test-data/license.yaml
A   manager-tests/test-data/output/TestAddMachines/client1.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/client1.contents.upload.test-data/license.json/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/client2.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/client2.contents.upload.test-data/license.json/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/manager1.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/manager1.contents.upload.test-data/license.json/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub2-client1.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub2-client1.contents.upload.test-data/license.json/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub2-client2.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub2-client2.contents.upload.test-data/license.json/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub3-client1.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub3-client1.contents.upload.test-data/license.json/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub3-client2.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub3-client2.contents.upload.test-data/license.json/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub4-client1.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub4-client1.contents.upload.test-data/license.json/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub4-client2.contents.upload.4755673497858b9f026f0966f6533d57/stdout.expect
A   manager-tests/test-data/output/TestAddMachines/sub4-client2.contents.upload.test-data/license.json/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.2/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.3/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.4/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.5/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.6/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.7/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client1.3/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client2.2/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client2.3/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.client1.a6226a367eab44beb37739efb7e41b80/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.client2.b98f1845f8b4f63f1034c3997f7c4e74/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.sub2-client1.a9bb494991ddce8520400f7e34807b3e/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.sub2-client2.b2f1f538f7b35e73dfef03b231f9b9e6/stdout.expect
M   midlayer/dhcp-tests/0000-basic-ipxe-discover/0000.response-expect
M   midlayer/pxe.go
M   server/args.go
M   tools/test.sh

commit d548e0b542bb17ffee9303d6790b47890873ed5b
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Apr 5 11:41:08 2021 -0500

    feat(SSR): Fix passive side not having correct auth data

    For now, brute-force things and force the datatracker to
    reload all prefs whenever we are applying a preference to the
    passive datastack.

    While we are at it, move the JWT code out from the backend
    to allow further more targeted updates to these codepaths that will not
    involve having to poke the datatracker directly.

M   backend/dataTracker.go
M   backend/jwt-utils.go
M   backend/jwt_utils_test.go
M   datastack/stack.go
M   datastack/streamingSyncPassive.go
M   failover_test/consensus_failover_test.go
A   failover_test/ssa_replication_test.go
M   server/args.go
A   tokenmanager/tokenmanager.go

commit d9d9af5835ff67529bc69237c21d53aab017affb
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Apr 5 08:32:26 2021 -0500

    test(consensus): Make the failover tests self-contained

D   failover_test/common_test.go
R091        failover_test/00_selfjoin_test.go       failover_test/consensus_failover_test.go

commit 76405618077eb69e672a50c50575821048304ef1
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 2 16:20:05 2021 -0500

    fix(consensus): Be a little more angry around cluster join failures

M   consensus/raft.go
M   consensus/serverAPI.go
M   server/args.go

commit e7598e02082c7037f77df5aae789946d685db3ce
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Apr 2 13:40:59 2021 -0500

    fix(consensus): Improve artifact buffering.

    It was still possible to overflow the artifact handling queue with a
    very bursty load occurring just after failover when the new active
    node asserted dominance and had a whole load of job logs afterwards.
    To combat this, add a buffering and consolidation layer in the
    passive-side artifact processing pipeline.

M   clitest/test-data/output/TestTheLast/system.ha.dump/stdout.expect
M   datastack/stack.go

commit c8cefe345f02ff12e63806e22fef149860cee88e
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 8 12:54:39 2021 -0500

    fix(workflowTimer): Fix workflowTimer deadlock.

    startWorkflowTimer was calling dt.Request during a running
    transaction, which is guaranteed to deadlock.  Fixed that by moving
    creation of the new requestTracker into the goroutine that will use
    it, and audited all other uses of dt.Request to make sure they are
    sane as well.

M   backend/endpoint_manager.go
M   backend/endpoints.go
M   backend/machines.go
M   backend/user.go
M   backend/version_sets.go

commit 8da1df04c7687a1f98c404534c26e098727fc361
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Apr 7 15:40:50 2021 -0500

    fix(license): Fix nil license struct at startup.

    Derp, we were not ensuring that the license was loaded before the API
    was.  Fix that and a couple of startup ordering bugs besides.

M   backend/dataTracker.go
M   server/args.go

commit c5da2ab8e057ddc424d28b8580617d9f8f91f3da
Author: Rob Hirschfeld <rob@rackn.com>
Date:   Wed Apr 7 11:45:20 2021 -0500

    fix(provision-server): posted events should not be able to set their own time (default was 0)

M   frontend/events.go

commit baa1c6e10a5f70529821819ea9d1dd217a0aae04
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 1 16:00:39 2021 -0500

    feat(consensus): Fix unit tests and pull in latest drpcli

M   clitest/test-data/output/TestTheLast/system.ha.dump/stdout.expect
M   go.mod
M   go.sum

commit 322a45a86ec95ba3c65c3213674f224564413693
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Apr 1 13:43:52 2021 -0500

    feat(consensus): Tweak how we process certian artifacts

    * Don't consider the sha sums of job logs when determining whether
      they are in sync -- there are too many things that can exist
      in between a job finishing and being certian that no other changes
      can be added to its log to include it in the mismatch calcs.
      In any case, it is not the end of the world if we have an incomplete
      job log.

    * Add a retry path if we fall too far behind on processing artifacts due
      to artifact mismatches.  Make sure it correctly handles the case where
      we are exiting due to the leaders changing.

    * Work around bug that can cause a silent exit at raft startup time.  The
      ultimate fix will be client side.

M   backend/jobs.go
M   consensus/raft.go
M   datastack/etags.go
M   datastack/stack.go

commit 2cf5f0de6136e1496060dd5214f1dfeffd02e98c
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 31 14:20:23 2021 -0500

    feat(consensus): Turn off extra artifact logging

M   consensus/persistStore.go
M   datastack/etags.go
M   datastack/stack.go

commit 21a5b0df502ae63036f593228281ebe3d6370cc5
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 31 14:16:08 2021 -0500

    feat(consensus): More DHCP nextServer cleanups.

    Tweak the logic to really always use the HA IP where
    possible while making it simpler overall.

M   midlayer/dhcp.go

commit e5f3239d42f89556ecd6ab08ba94ac80793001ab
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Mar 30 15:22:23 2021 -0500

    fix(dhcp): Fix busted nextServer picking logic.

    Turns out that the nextServer logic we tried the last time
    does not work so well when we are messing with addresses that are not
    already in the address cache.  This reverts the nextServer logic to
    the old logic, but with carveouts to prefer the static IP if it is also
    under consideration and is on the interface we recieved the DHCP packet from.

M   ipcache/conncache.go
M   midlayer/dhcp.go
M   midlayer/fake_midlayer_server_test.go
M   midlayer/pxe.go
M   server/args.go

commit 22dbb1affe35bf5db84a9c75af9f53f6d1cf03d3
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Mar 30 11:10:07 2021 -0500

    feat(consensus): Refactor artifact handling, part n of m

    Roll up all artifact changes during restart processing to avoid
    overwhelming the artifact processing queue and give the processor time
    to establish a connection to the current active server.  While we are
    at it, fix a couple of deadlocks that popped up along the way.

M   clitest/test-data/output/TestTheLast/system.ha.dump/stdout.expect
M   consensus/persistStore.go
M   consensus/raft.go
M   consensus/raftFSM.go
M   consensus/raftStore.go
M   consensus/raft_test.go
M   consensus/serverAPI.go
M   datastack/content.go
M   datastack/etags.go
M   datastack/humanize.go
M   datastack/presistentStore.go
M   datastack/stack.go
M   server/args.go
M   wal/wal.go

commit bd158a7e1549a58b69aa683289b79b4044aaed9a
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Sat Mar 27 11:36:06 2021 -0500

    fix(dhcp): Do a better job of setting DHCP next-server options.

    This should make the DHCP server return set siaddr, next-server, and
    sname options more apprpriately when HA is in play.

M   midlayer/dhcp.go
M   midlayer/pxe.go

commit 32979ed0ad5a2a0835fda52860e584dca8ce4118
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Mar 26 22:44:24 2021 -0500

    feat(consensus): Roill back some DHCP changes. fix up CLI unit tests.

M   clitest/test-data/output/TestAuth/info.get/stdout.expect
M   clitest/test-data/output/TestInfoCli/info.get/stdout.expect
M   clitest/test-data/output/TestUserCli/users.token.rocketskates.scope.all.ttl.330.action.list.specific.asdgag/stdout.expect
M   clitest/test-data/output/TestUserCli/users.token.rocketskates/stdout.expect
M   midlayer/abp.go
M   midlayer/dhcp.go
M   midlayer/pxe.go

commit 5824830ae5f9c3ed42c76beaf422baf50a1db9eb
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Mar 26 17:32:01 2021 -0500

    feat(consensus): Tweak timing around artifact handling some.

    By that, I mean create a new HTTP client as early as possible to
    minimize that chance of deadlocks with artifact handling uses.
    Also add some backpressure in the form of small sleeps to mitigate
    death by filling the artifact processing queue.  This strategy may
    be replaced by a more intelligent queue managemenet strategy in the
    future.

M   consensus/persistStore.go
M   datastack/stack.go
M   failover_test/00_selfjoin_test.go

commit 1fab84b6c4934fb88a623997251b09178027ea68
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Mar 26 15:14:58 2021 -0500

    feat(consensus): More cert and proper address usage.

    Update how we figure out the "right" address to use to be more HA aware.

M   backend/dataTracker.go
M   backend/pluginProviders.go
M   backend/runningPlugin.go
M   datastack/pluginProvider.go
M   datastack/stack.go
M   frontend/info.go
M   frontend/users.go
M   go.mod
M   go.sum
M   midlayer/abp.go
M   midlayer/dhcp.go
M   midlayer/pxe.go

commit 6a5dc5566bc649d6a38b4fdb6d4b556790d9f15d
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Mar 26 11:34:41 2021 -0500

    Add test to make sure next-server IP changes on failover

M   failover_test/00_selfjoin_test.go

commit 9d7881359b8583bca0ad257c8a9f5073f1e0f80c
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Mar 25 08:54:04 2021 -0500

    fix(consensus): Handle setting i.Address properly when bootstrapping a VIP.

    Oops, forgot to handle the transition from normal operation to using a
    VIP when moving from standalone to HA.

M   backend/dataTracker.go
M   backend/dataTracker_test.go
M   cmds/dr-waltool/waltool.go
M   consensus/serverAPI.go
M   datastack/streamingSyncActive.go
M   datastack/streamingSyncPassive.go
M   frontend/interfaces.go
M   midlayer/dhcp.go
M   midlayer/fake_midlayer_server_test.go
M   replication/stream.go
M   server/args.go

commit aee647f7e327418c120cd37057f9ef0654a6e000
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 24 14:19:19 2021 -0500

    feat(cert): Add API based API TLS cert management

M   clitest/test-data/output/TestAgent/logs.get/stdout.expect
M   clitest/test-data/output/TestAuth/info.get/stdout.expect
M   clitest/test-data/output/TestInfoCli/info.get/stdout.expect
M   clitest/test-data/output/TestSystemCli/system.get.john2/stdout.expect
M   clitest/test-data/output/TestSystemCli/system/stdout.expect
M   clitest/test-data/output/TestUserCli/users.token.rocketskates.scope.all.ttl.330.action.list.specific.asdgag/stdout.expect
M   clitest/test-data/output/TestUserCli/users.token.rocketskates/stdout.expect
M   consensus/operation_string.go
M   consensus/raftFSM.go
M   frontend/system.go
M   go.mod
M   go.sum
M   server/args.go
M   version.go

commit 1ffe9ed6caae0a0e89c484c5d054fa3dff6e5426
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Mar 24 11:19:22 2021 -0500

    fix(manager,replication): have passive stacks stall sync requests until in sync

M   datastack/stack.go
M   datastack/streamingSyncActive.go
M   datastack/streamingSyncPassive.go
M   server/args.go

commit 76addc01df434031846604ecb3e4ad8239bec122
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Mar 23 15:18:21 2021 -0500

    fix(consensus): Stream exploded ISOs.

    We were not replicating files that were the result of exploding
    an ISO.  We are now.  Also, fix a trivial bug in fpm.sh.

M   backend/bootenv.go
M   datastack/etags.go
M   tools/fpm.sh

commit d414d5e93a6d0793ccd8bab5c816edf8d38cf739
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Mar 23 13:02:11 2021 -0500

    fix(consensus) Bunch of HA correctness fixes

    * Actually handle job log and plugin provider replication properly.

    * Do a better job of acquiring and releasing the HA IP when starting
      up and shutting down.

    * Handle distributed join in the face of a complete cluster failure
      more robustly and with shorter timeouts.

    * Clean up replicating job log fragments.

    * Add a cheesy method for packaging RPMs for ease of testing.

M   backend/dhcpUtils.go
M   backend/jobs.go
M   backend/pluginProviders.go
M   backend/plugins.go
M   backend/profiles_test.go
M   backend/requestTracker.go
M   backend/subnet.go
M   clitest/test-data/output/TestTheLast/system.ha.dump/stdout.expect
M   consensus/raft.go
M   consensus/raftFSM.go
M   consensus/serverAPI.go
M   datastack/content.go
M   datastack/etags.go
M   datastack/stack.go
M   failover_test/00_selfjoin_test.go
M   frontend/consensus.go
M   frontend/job_create.go
M   frontend/jobs.go
M   go.sum
M   server/args.go
M   test/serverGroup.go
A   tools/fpm.sh

commit e4878f7de7a27282c2d30c689a11176379a5dbee
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Sun Mar 21 20:54:53 2021 -0500

    fix(pool): force from in-use should not leave blank status

M   backend/machines.go

commit 76f793d3fcb9bd1daa6511bf664dff977bc3dc29
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Mar 19 10:03:00 2021 -0500

    fix(agent): Pull in changes from dr-provision.

    THis agent will no longer push everything through syslog when running
    under systemd or upstart.  We might want to think about doing the same
    thing for mac systems, if we start running agents there.  Windows has
    no other choice.

    THe agent will also make sure HOME is set to a sane value before
    running any tasks.

M   go.mod
M   go.sum

commit f00d57ec9dc259585592e11ec57a46ecb2f2b77e
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 17 15:45:01 2021 -0500

    fix(manager): Derp, update event synthesis was backwards.

    In my refactor of how evernt streams were handled, I swapped
    which field got the original item and which field got the update
    when publishing the synthetic update event.  Whoops.

M   backend/endpoint_manager.go

commit e8424956ec84eb8957ad37074e44e27bb0e7b808
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Mar 16 10:26:27 2021 -0500

    fix(runner): update go mod for new agent

M   go.mod
M   go.sum

commit 3f57466ec51c257b3b3721ae9a226b82822efd53
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Mar 15 10:13:40 2021 -0500

    Fix race condition seen by Greg

M   backend/utils.go

commit 6d574b6335fc13bfaba311b74e589953217abb92
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Sun Mar 14 22:32:22 2021 -0500

    fix(server): put the self-runners into the pool as free.

M   clitest/test-data/output/TestAuth/machines.list.611601b3efac342fd10027372140fe8c/stdout.expect
M   clitest/test-data/output/TestAuth/machines.list.e8e0775e692adbcb8acdf3799178655c/stdout.expect
M   server/selfManage.go

commit 2973b6cf5b69554a1e72012c2194ec5bc372a03b
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Sun Mar 14 20:05:27 2021 -0500

    fix(server): if context or bootenv at end of task chain, just mark complete.

    If the last item is a bootenv change or a context change, the system
    will likely never come back.  Just mark the workflow complete.

M   frontend/job_create.go

commit 73374717a8eaa06822453a44127b04fa869ae792
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Sat Mar 13 16:17:14 2021 -0600

    feat(self-runner): Add parameter for self runner and place in self-runners pool

M   clitest/test-data/output/TestAuth/machines.list.611601b3efac342fd10027372140fe8c/stdout.expect
M   clitest/test-data/output/TestAuth/machines.list.e8e0775e692adbcb8acdf3799178655c/stdout.expect
M   clitest/test-data/output/TestAuth/params.list.611601b3efac342fd10027372140fe8c/stdout.expect
M   clitest/test-data/output/TestAuth/params.list.e8e0775e692adbcb8acdf3799178655c/stdout.expect
M   clitest/test-data/output/TestContentCli/contents.list.2/stdout.expect
M   clitest/test-data/output/TestContentCli/contents.list.3/stdout.expect
M   clitest/test-data/output/TestContentCli/contents.list.4/stdout.expect
M   clitest/test-data/output/TestContentCli/contents.list.5/stdout.expect
M   clitest/test-data/output/TestContentCli/contents.list/stdout.expect
M   clitest/test-data/output/TestContentsFunctionalCli/contents.list.2/stdout.expect
M   clitest/test-data/output/TestContentsFunctionalCli/contents.list/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list.2/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list.3/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list.4/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list.5/stdout.expect
M   clitest/test-data/output/TestParamCli/params.list/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.active.2/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.active.3/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.active.4/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.active/stdout.expect
M   datastack/content.go
M   server/selfManage.go

commit 76eeb9cfd3ace4fa8097fc880c5cb4acc637a40b
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Sat Mar 13 16:16:43 2021 -0600

    fix(server): fix race in structs

M   server/args.go

commit ef15c0ca7b838f07e37dd5dd1ab2710f471a5227
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Sat Mar 13 13:41:42 2021 -0600

    feat(consensus): Failover tests are fully armed and operational.

    Cluster failover, including bringing up a cluster that has failed
    due to a majority of nodes going offline, is now operational.  This
    has resulted in several changes:

    * All backend.Uniq methods are now race detector safe.

    * backend.Datatracker bringup now has two paths.  One us the usual
      bringup that does a full object sanity check and loads objects, the
      other just loads prefs and ensures that token checking via the API
      will function.  This has exposed a bug w.r.t pooling and
      self-runners that requires further evaluation.

    * Tons of un-exercised consensus codepaths had bugs, which were
      exorcised.  Hopefully.

    * A race in data loading on a DataStack on a passive node has been
      closed, though we should probaby do so in a more optimal fashion at
      some point.

M   backend/bootenv.go
M   backend/catalog_items.go
M   backend/contexts.go
M   backend/dataTracker.go
M   backend/dataTracker_test.go
M   backend/endpoints.go
M   backend/jobs.go
M   backend/jwt-utils.go
M   backend/lease.go
M   backend/machines.go
M   backend/param.go
M   backend/plugins.go
M   backend/pools.go
M   backend/preference.go
M   backend/profiles.go
M   backend/raw_model.go
M   backend/reservation.go
M   backend/roles.go
M   backend/stage.go
M   backend/subnet.go
M   backend/task.go
M   backend/template.go
M   backend/tenants.go
M   backend/user.go
M   backend/utils.go
M   backend/version_sets.go
M   backend/workflow.go
M   clitest/test-data/output/TestTheLast/system.ha.dump/stdout.expect
M   consensus/persistStore.go
M   consensus/raft.go
M   consensus/raftFSM.go
M   consensus/raftStore.go
M   consensus/raft_test.go
M   consensus/serverAPI.go
M   datastack/etags.go
M   datastack/stack.go
M   failover_test/00_selfjoin_test.go
M   frontend/consensus.go
M   midlayer/fake_midlayer_server_test.go
M   server/args.go
M   test/serverGroup.go

commit 929ae8ba7c0058f26de041c2f6de53f7245ec23b
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Mar 11 09:07:47 2021 -0600

    feat(consensus): Tighten up locking in the consensus FSM.

    Transition back to a straight-up mutex, and use a wrapping function
    in most places instead of direct mutex access to make detecting deadlocks
    and mismatched locks and acquires  easier.

M   consensus/persistStore.go
M   consensus/raft.go
M   consensus/raftFSM.go
M   consensus/raft_test.go
M   consensus/serverAPI.go

commit 7a8603be40f01461974af363bdc4e0403ed399b1
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 10 15:49:33 2021 -0600

    feat(consensus): Fix up client handling on active node change.

    Make sure we refresh which client we get when the active node changes,
    and decrease API traffic by caching info when the active endpoint changes.

M   consensus/raftFSM.go
M   datastack/stack.go

commit dc569961eb78a7668771dd428fead78bba79fa0b
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 10 12:40:56 2021 -0600

    feat(consensus): Make AmIInChargeOfConsensus lock-free.

    It was causing deadlocks between the producer and consumer sides
    of artifact synchronization when the consumer failed to keep up with
    the producer side.

M   consensus/persistStore.go
M   consensus/raft.go
M   consensus/raftFSM.go
M   consensus/serverAPI.go

commit 2f84cd506fbca3cbe947624783c44bd688be057f
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 10 12:36:41 2021 -0600

    feat(consensus): Make artifact update failure less deadly.

    It is now OK for artifact replication to fail to update what
    should be the currently active node.  There will be further
    changes in this area.

M   datastack/stack.go

commit e569d4e85b9008a0759c530ed9255c917f4e3b61
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 10 12:33:23 2021 -0600

    feat(consensus): Force the active server to regen HA token.

    This forces a server that has transitioned to active to regenerate
    the HA token it advertises.  This fixes artifact replication errors
    that may arise if a token went stale while a consensus leader election
    was in progress.

M   server/args.go

commit aebc966d6eb65e161c918f49cad99bc83f4e89be
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Mar 9 13:09:35 2021 -0600

    feat(consensus): Fix cert rotation race and scratch file cleanup

M   consensus/raft.go
M   consensus/raftFSM.go
M   server/args.go

commit babe7bdda603964cfb29440d83b0ea7a9ea93ff7
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Mar 9 11:04:00 2021 -0600

    feat(consensus): Have the cli tests handle consensus sert rotation.

    Make the cert rotation parameters for consensus configuratble,
    and have the cli tests seed them with really short values.
    This tests to make sure things do not get stuck when we have
    to rotate root and endpoint certificates.

M   clitest/common_test.go
M   clitest/test-data/output/TestFilesCli/files.upload.common_test.go.as.greg/stdout.expect
M   clitest/test-data/output/TestIsosCli/isos.upload.common_test.go.as.greg/stdout.expect
M   consensus/raftFSM.go
M   consensus/serverAPI.go

commit 0c89358253fc41e3fc41a1ebda539039195d2db5
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Mar 8 15:28:03 2021 -0600

    fix(manager): change RawFind to Find

M   backend/endpoint_manager.go

commit 8c9f35007d32521a13cea6bf6594ff8ede764c40
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Mar 8 13:31:52 2021 -0600

    fix(manager): only process the first layer of endpoint stacks

M   backend/endpoint_manager.go
M   datastack/stack.go

commit b6e2951063eab2dda7411e8b39840e9ec5d883cb
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Mar 8 13:57:15 2021 -0600

    Oops, delete excess debugging log statement

M   datastack/stack.go

commit cc4d13633b30878cb9e02f871846f04bdf215938
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Mar 5 12:20:33 2021 -0600

    feat(consensus) Force passive replication to update indexes.

    Previously, the passive stream apply code was not handling loading and
    reloading indexes into memory as changes were being streamed in.

    This change ensures that all the indexes are updated in memory in real
    time, and unifies the code that handles that task among the standard
    passive side replay code and among the manager-side passive replay
    code.

M   backend/endpoint_manager.go
M   commit/buffer.go
M   consensus/clientAPI.go
M   consensus/raft.go
M   consensus/serverAPI.go
M   datastack/etags.go
M   datastack/stack.go
M   datastack/streamingSyncPassive.go
M   datastack/streamingSync_test.go
M   embedded/assets.go
M   frontend/consensus.go
M   go.mod
M   go.sum
M   server/args.go

commit c41d662e847c0fa1622ffe7e3d9a60e1e640ef5e
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Mar 8 11:07:02 2021 -0600

    fix(server): switch runtime reference

M   server/selfManage.go

commit 95a1f7c92da1cb2eb66ad953c2a775ff15a3b35b
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Fri Mar 5 11:40:30 2021 -0600

    fix(self-runner): setup arch

M   server/selfManage.go

commit 8a7c4c8d7604f15db1b386e8516169fb767d6ca2
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Mar 3 20:56:18 2021 -0600

    fix(manager): add more unit tests

M   .gitignore
M   manager-tests/mgr_main_test.go
A   manager-tests/test-data/output/TestManagerFunctions/client1.machines.list.fa0007dbd9c47255270db56a865f6a77.12/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/client1.machines.list.fa0007dbd9c47255270db56a865f6a77.13/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/client2.machines.destroy.Name.sub3-cl1-mac5.cc1509e008158ef35348b34a888af52e.2/stderr.expect
A   manager-tests/test-data/output/TestManagerFunctions/client2.machines.destroy.Name.sub3-cl1-mac5.cc1509e008158ef35348b34a888af52e/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/client2.machines.destroy.Name.sub3-cl2-mac5.cc1509e008158ef35348b34a888af52e/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/client2.machines.list.fa0007dbd9c47255270db56a865f6a77.12/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/client2.machines.list.fa0007dbd9c47255270db56a865f6a77.13/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/manager1.machines.destroy.Name.sub4-cl1-mac5.cc1509e008158ef35348b34a888af52e.2/stderr.expect
A   manager-tests/test-data/output/TestManagerFunctions/manager1.machines.destroy.Name.sub4-cl1-mac5.cc1509e008158ef35348b34a888af52e/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/manager1.machines.destroy.Name.sub4-cl2-mac5.cc1509e008158ef35348b34a888af52e/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/manager1.machines.list.fa0007dbd9c47255270db56a865f6a77.12/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/manager1.machines.list.fa0007dbd9c47255270db56a865f6a77.13/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub2-client1.machines.list.fa0007dbd9c47255270db56a865f6a77.6/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub2-client1.machines.list.fa0007dbd9c47255270db56a865f6a77.7/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub2-client2.machines.list.fa0007dbd9c47255270db56a865f6a77.6/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub2-client2.machines.list.fa0007dbd9c47255270db56a865f6a77.7/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub3-client1.64354d4b9c65d6a5ca77de5a818749b7/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub3-client1.machines.list.fa0007dbd9c47255270db56a865f6a77.2/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub3-client1.machines.list.fa0007dbd9c47255270db56a865f6a77/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub3-client2.0d25c6c1ef24bffb33dc4fef42710787/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub3-client2.machines.list.fa0007dbd9c47255270db56a865f6a77.2/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub3-client2.machines.list.fa0007dbd9c47255270db56a865f6a77/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub4-client1.fb0309c4d2e0749033a976daa0e2a8e5/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub4-client1.machines.list.fa0007dbd9c47255270db56a865f6a77.2/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub4-client1.machines.list.fa0007dbd9c47255270db56a865f6a77/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub4-client2.15f98126341428544167510d06aed4cf/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub4-client2.machines.list.fa0007dbd9c47255270db56a865f6a77.2/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/sub4-client2.machines.list.fa0007dbd9c47255270db56a865f6a77/stdout.expect

commit a58beca83f34ced2dd83dcbc130733639d5c4c7e
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Mar 3 12:55:50 2021 -0600

    build: Attempt to turn on the manager unit tests

M   go.sum
M   manager-tests/mgr_main_test.go
M   tools/test.sh

commit 815c4c8c72810e563638e5ecb4d33201cf86efe1
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Mar 3 13:55:26 2021 -0600

    feat(consensus): Pull in latest client code, streamline manager code

    This pulls in the latest client code to allow all the drpcli stuff I
    promised in the docs to work, and updated commit replay in manager
    data stacks to bring it inline with what the regular passive and
    active code does.

M   backend/endpoint_manager.go
M   backend/runningPlugin.go
M   datastack/stack.go
M   frontend/consensus.go
M   go.mod
M   go.sum
M   server/args.go

commit b8668f9625ec98b323a1c48c6d82bbbd552f2f00
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Mar 3 10:12:45 2021 -0600

    fix(manager): fix error message

M   datastack/streamingSyncPassive.go

commit eb421d100817f4b5e41949f3b498c731bfb02beb
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Mar 3 10:12:25 2021 -0600

    fix(manager): fix license part of manager unit tests

M   manager-tests/mgr_main_test.go
M   manager-tests/test-data/license.yaml
M   manager-tests/test-data/output/TestAddMachines/client1.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestAddMachines/client2.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestAddMachines/manager1.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestAddMachines/sub2-client1.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestAddMachines/sub2-client2.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestAddMachines/sub3-client1.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestAddMachines/sub3-client2.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestAddMachines/sub4-client1.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestAddMachines/sub4-client2.contents.upload.test-data/license.yaml/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.2/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.3/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.4/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.5/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.6/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.7/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client1.3/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client2.2/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client2.3/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.client1.a6226a367eab44beb37739efb7e41b80/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.client2.b98f1845f8b4f63f1034c3997f7c4e74/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.sub2-client1.a9bb494991ddce8520400f7e34807b3e/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.sub2-client2.b2f1f538f7b35e73dfef03b231f9b9e6/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/manager1.version_sets.create.106f50728b39f9672054588c39b13e6b/stdout.expect
A   manager-tests/test-data/output/TestManagerFunctions/manager1.version_sets.create.73e72dc176bfe4fc82a1d3a2f37a577f/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.version_sets.create.972a80bfd173f0173336806176d38ab9/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.version_sets.create.ad4ea5ba11600f6a5a093b09a78cf8f0/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.version_sets.list.e5b1e4bcad9ef0a7b91360e3033c60b9.2/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.version_sets.list.e5b1e4bcad9ef0a7b91360e3033c60b9/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.version_sets.update.vs-tip.467872ef3e10e5fd7feb8920c15ffe41/stdout.expect
M   manager-tests/test-data/output/TestManagerFunctions/manager1.version_sets.update.vs-tip.bf238d95fe5bc625afd7f33592ba3b70/stdout.expect
A   tools/manager-test.sh

commit 48c38dd0d120cfa45cf53471affbe3ce29071fd2
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Mar 2 11:28:15 2021 -0600

    feat(consensus): Fix another race and implement root cert rotation.

M   consensus/raftFSM.go
M   consensus/serverAPI.go
M   frontend/frontend.go
M   test/serverGroup.go

commit aa2a1204d55a19ab06fab043bb01ceed53251bb8
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Mar 1 16:00:37 2021 -0600

    feat(consensus): Start adding per-server failover tests.

    While we are at it, fix some errors in cluster enroll that it exposed.

A   failover_test/00_selfjoin_test.go
A   failover_test/common_test.go
M   frontend/consensus.go
M   server/args.go
M   test/server.go
A   test/serverGroup.go

commit 1ddddfd3abd5194739bc0bfaae613f4d902ab9ba
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Mar 1 10:34:38 2021 -0600

    feat(consensus): Fix crash on startup with an existing snapshot.

    Sigh, the process of getting the number of servers in the current
    cluster to enable smarter bootstrapping inadvertently preloaded the
    FSM when we were not abel to rely on the rest of the event stream to
    fill it out properly.  Fix my loading the initial Raft config FSM info
    into a scratch FSM.

M   consensus/raft.go
M   consensus/raftFSM.go

commit 8f6922b0b9d616e9b492a6f3305c097f8960f486
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Mar 1 09:26:02 2021 -0600

    fix(clitest): adjust more unit tests

M   clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.5/stdout.expect
M   clitest/test-data/output/TestTheLast/system.ha.dump/stdout.expect

commit a0f804cb801725c30490d7bdf6a44b83bb115c3d
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Mar 1 01:36:10 2021 -0600

    fix: build issues

M   go.mod
M   go.sum
M   server/args.go

End of Note