8.3.2.27. v4.5.0ΒΆ

commit 42495f8cd90baa6ce034eccbfe4579eb2e01f0d3
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 24 23:28:59 2020 -0500

    build: update to v4.5.0

M   go.mod
M   go.sum

commit a971bfbb9a32cfe5d80ae6d79fa29b6a3b3a01ef
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 24 13:30:45 2020 -0500

    fix(static,api): clean paths for general files

M   backend/fs.go
A   clitest/static_test.go
M   frontend/frontend.go

commit 4132b526a415c9e21f84c8e74fea3e5f8354c918
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Sep 22 23:33:27 2020 -0500

    build: update to v4.5.0-beta02

M   go.mod
M   go.sum

commit ca2932ed2830c4fd34ade8849bb54a439632fe89
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Sep 22 22:24:52 2020 -0500

    build: Update to v4.5.0-beta01

M   go.mod
M   go.sum

commit cb068869fadd723f1237be956b9e905e0bbf34bd
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Sep 21 16:33:55 2020 -0500

    feat(cli): Update for cli RackN URL signing

M   clitest/fixInteractive.sh
M   clitest/test-data/output/TestEndpointCli/8e370dd79b74669671136f037e0adb61/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines/stdout.expect
M   clitest/test-data/output/TestPluginCli/plugins/stdout.expect
M   clitest/test-data/output/TestPluginProviderCli/extended/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles/stdout.expect
M   clitest/test-data/output/TestStageCli/stages/stdout.expect
M   clitest/test-data/output/TestSystemCli/system.get.john2/stdout.expect
M   clitest/test-data/output/TestSystemCli/system/stdout.expect
M   go.mod
M   go.sum

commit d7b41af379da053b662700a2734bc654c92a6bb0
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Sep 17 09:26:33 2020 -0500

    fix(plugin): Add config timeout back to plugin config.

    Oops, the timeout on the config POST call did not get un-commented out
    after writing the config post unit tests.  Add it back to keep a
    plugin that deadlocks from hanging everything else.

M   backend/plugins.go

commit 8647a3852b0d72c599f8ce18175f78e3d8ef218f
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Sep 16 17:18:46 2020 -0500

    fix(test): new runner tests alter profile tests

M   clitest/test-data/output/TestMachineProfilesAndParams/machines.count/stdout.expect

commit 1dfeb85069072236b7343ce1a2659e0ffcd8da53
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Sep 16 17:06:06 2020 -0500

    fix(build): revert leaked provision tree ref

M   go.mod
M   go.sum

commit 9d9b1b9b730e85ec1b174448c04b9dcfbebad800
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Sep 16 09:32:58 2020 -0500

    fix(pluginConfigure): Get rid of deadlock while starting plugins.

    This gets rid of deadlocks that can happen when the plugin Configure
    call needs to make API calls back to dr-provision as part of its
    configuration process.  can happen whenever loading content that
    creates of modifies and existing plugin.  To fix it, we make two
    changes:

    1. Run the start and configure parts of the plugin afterSave method as
       deferred goroutines.  THis defers any API calls the plugin mayh
       make until after the global lock taken to introduce new content has
       been removed.

    2. Remove the split backend strategy we had been using to validate
       content changes.  This led to us holding rt.allLocked in two
       different places, which defeated the fix in point 1.

M   backend/dataTracker_test.go
M   backend/pluginProvider_test.go
M   backend/pluginProviders.go
M   backend/plugins.go
M   backend/profiles_test.go
M   backend/runningPlugin.go
M   backend/utils.go
M   clitest/plugins_test.go
A   clitest/test-data/dangerPluginChangeOne.yaml
A   clitest/test-data/dangerPluginCreate.yaml
A   clitest/test-data/dangerPluginRemove.yaml
A   clitest/test-data/output/TestPluginsFromDangerContent/contents.destroy.dangerContent/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/contents.upload.test-data/dangerPluginChangeOne.yaml/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/contents.upload.test-data/dangerPluginCreate.yaml/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/contents.upload.test-data/dangerPluginRemove.yaml/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugin_providers.upload.dangerzone.from/tools/build/dangerzone/stderr.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugin_providers.upload.dangerzone.from/tools/build/dangerzone/stderr.expect~
A   clitest/test-data/output/TestPluginsFromDangerContent/plugin_providers.upload.dangerzone.from/tools/build/dangerzone/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugin_providers.upload.incrementer.from/tools/build/dangerzone/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugins.actions.danger1.5390b768d8d29fb7a7e173e9e11110cf/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugins.runaction.danger1.restartProvider.fb937d1d56ed1ec43145a4ad884b35e2/stderr.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugins.runaction.danger1.restartProvider.fb937d1d56ed1ec43145a4ad884b35e2/stderr.expect~
A   clitest/test-data/output/TestPluginsFromDangerContent/plugins.runaction.danger1.restartProvider.fb937d1d56ed1ec43145a4ad884b35e2/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugins.runaction.danger1.startProvider.fb937d1d56ed1ec43145a4ad884b35e2/stderr.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugins.runaction.danger1.startProvider.fb937d1d56ed1ec43145a4ad884b35e2/stderr.expect~
A   clitest/test-data/output/TestPluginsFromDangerContent/plugins.runaction.danger1.startProvider.fb937d1d56ed1ec43145a4ad884b35e2/stdout.expect
A   clitest/test-data/output/TestPluginsFromDangerContent/plugins.runaction.danger1.stopProvider.fb937d1d56ed1ec43145a4ad884b35e2/stdout.expect
M   cmds/dangerzone/dangerzone.go
M   cmds/dr-waltool/waltool.go
M   datastack/stack.go
M   datastack/stack_test.go
M   datastack/streamingSync_test.go
M   frontend/content.go
M   midlayer/fake_midlayer_server_test.go
M   server/server.go

commit 186b3ce6bd8bf140e4088ae3277b3f5c5ec8aaea
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Sep 15 09:40:56 2020 -0500

    Close plugin start/config race test

M   backend/conncache.go
M   backend/conncache_test.go
M   backend/plugins.go

commit a4b0133c114bdeba2622fa81e85dae3dbe17fd7d
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Sep 14 19:07:34 2020 -0500

    fix(plugins): Have rplugin provider stop use contexts.

    This should be less racy and prone to deallock than our current
    situation.

M   backend/plugins.go
M   backend/runningPlugin.go

commit 855a0bc9d1ed89043f8ce0bdafa45bbc8c9690f9
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Sep 14 15:32:19 2020 -0500

    Fix TFTP race errors

M   go.mod
M   go.sum
M   midlayer/static_test.go
M   midlayer/tftp.go
M   midlayer/tftp_test.go

commit ec76b43c7c44b73fc6be69306cddb9a441190b56
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Sep 14 14:47:43 2020 -0500

    feat(filter): Add ability to search list parameters

M   backend/machines.go
M   clitest/machines_test.go
A   clitest/test-data/output/TestMachineProfilesAndParams/machines.count.array.In.foo/stdout.expect
A   clitest/test-data/output/TestMachineProfilesAndParams/machines.count/stdout.expect
A   clitest/test-data/output/TestMachineProfilesAndParams/machines.list.array.In.89ee53bbd48ddc638860e97ff599cb76/stdout.expect
A   clitest/test-data/output/TestMachineProfilesAndParams/machines.list.array.In.foo.sort.Name.31f81301b37ac8a6230abeb9c6bb5514/stdout.expect
A   clitest/test-data/output/TestMachineProfilesAndParams/machines.set.Name.bob.param.array.to.7ccac9cb7ab41e82608fb323cb49dff7/stdout.expect
A   clitest/test-data/output/TestMachineProfilesAndParams/machines.set.Name.fred.param.array.to.3468457c6c69383c04c818bb993115a0/stdout.expect
A   clitest/test-data/output/TestMachineProfilesAndParams/params.create.02868fc512d61f16316da1df9ced3e18/stdout.expect
A   clitest/test-data/output/TestMachineProfilesAndParams/params.destroy.array/stdout.expect
M   clitest/test-data/output/TestPluginProviderCli/plugin_providers/stdout.expect
M   go.mod
M   go.sum

commit 9cda5bef98c69bedb13a0318b9623b7c5dca654d
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Sep 10 15:27:37 2020 -0500

    test(selfRunner): Update unit tests to account for the selfRunner machine.

    Since we now run the clitests with a self runner going (to make sure that
    setup and teardown of the selfRunner do The Right Thing), adjust all
    the unit tests to account for the extra data returned.

M   clitest/pools_test.go
M   clitest/test-data/output/TestAuth/info.get/stdout.expect
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/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/TestFilesCli/files.upload.common_test.go.as.greg/stdout.expect
M   clitest/test-data/output/TestInfoCli/info.get/stdout.expect
M   clitest/test-data/output/TestIsosCli/isos.upload.common_test.go.as.greg/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines.list.2/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines.list.3/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines.list.4/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines.list.5/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines.list.6/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines.list.BootEnv=local/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines.list.Runnable=true/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines.list/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.058d21c0e6cb3c5289eff59b3e780a8c/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.17f7c9ff57515bedf56514ceb45706c6.2/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.17f7c9ff57515bedf56514ceb45706c6/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.3b65b8bf83bb0df91e244e42ea277903/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.4ea62458ff1801b8063a65624f7bab27/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.600afa17281a93239aef10d9ebae62bf/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.78a052c944648e1e91fbd61ee97bd6d4/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.9bbab6f5d538a729971bcb5032ad341b/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.b8e73264cb6ef962cfaf17b04fac6d71/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.b9e60201987d64e4aa36caf65d997a5c/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.bc0b07788588a908ce638d2a92692494/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.ccabbbc19b05719ba189fc8a1b3673fd/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.cf145f5a6380cce06c9dd39303105707/stdout.expect
M   clitest/test-data/output/TestMachineParamFiltering/machines.list.ed03be6aa5645fe42f7f7a2df21d89ee/stdout.expect
A   clitest/test-data/output/TestPoolCli/machines.361d9187023d11f3b966d823b2ccea0e/stderr.expect
A   clitest/test-data/output/TestPoolCli/machines.destroy.Name.pt-9/stderr.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.59ab771ce8d93254d638f2f2e828a34d/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.15/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.16/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.17/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.18/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.19/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.2/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.20/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.21/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.22/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.23/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.25/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.3/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae.8/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=default.f416df4e47ccbd4730144dbbe25020ae/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.10/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.11/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.12/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.13/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.14/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.15/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.16/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.20/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.21/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.22/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.23/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.24/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.26/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.27/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.28/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.29/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.30/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.31/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.32/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.33/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.34/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.36/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.37/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.38/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.4/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.44/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.45/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.46/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.48/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.49/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.5/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.50/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.51/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.52/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.6/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.7/stdout.expect
M   clitest/test-data/output/TestPoolCli/machines.list.Pool=fred.f416df4e47ccbd4730144dbbe25020ae.9/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.add.fred.0f86f614bb1fcf631e0eae0b38d663a7.2/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.add.fred.0f86f614bb1fcf631e0eae0b38d663a7.3/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.add.fred.0f86f614bb1fcf631e0eae0b38d663a7.4/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.add.fred.0f86f614bb1fcf631e0eae0b38d663a7.5/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.add.fred.0f86f614bb1fcf631e0eae0b38d663a7.6/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.add.fred.0f86f614bb1fcf631e0eae0b38d663a7.7/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.add.fred.0f86f614bb1fcf631e0eae0b38d663a7/stdout.expect
A   clitest/test-data/output/TestPoolCli/pools.manage.allocate.fred.17a36955f29940aeee09edc24af6054d/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.allocate.fred.ed091a9217beb3cbe48a7ee4a1afa799/stdout.expect
A   clitest/test-data/output/TestPoolCli/pools.manage.allocate.fred.f559fcccb5c4682baf82f3699b23f1d3/stderr.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.release.fred.0f86f614bb1fcf631e0eae0b38d663a7/stdout.expect
A   clitest/test-data/output/TestPoolCli/pools.manage.release.fred.17a36955f29940aeee09edc24af6054d/stdout.expect
A   clitest/test-data/output/TestPoolCli/pools.manage.release.fred.f559fcccb5c4682baf82f3699b23f1d3/stderr.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.remove.fred.0f86f614bb1fcf631e0eae0b38d663a7.11/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.remove.fred.0f86f614bb1fcf631e0eae0b38d663a7.12/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.remove.fred.0f86f614bb1fcf631e0eae0b38d663a7.2/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.remove.fred.0f86f614bb1fcf631e0eae0b38d663a7.4/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.remove.fred.0f86f614bb1fcf631e0eae0b38d663a7.6/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.remove.fred.0f86f614bb1fcf631e0eae0b38d663a7.7/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.manage.remove.fred.0f86f614bb1fcf631e0eae0b38d663a7/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.2/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.20/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.21/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.22/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.23/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.29/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.30/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.31/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.32/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.34/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.35/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.39/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.40/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.41/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.42/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.43/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.44/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.48/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.49/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.55/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.56/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.57/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.58/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.59/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.60/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.61/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.62/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.63/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.64/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.65/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.66/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.67/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.68/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.69/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.7/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.70/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.71/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.default.8/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.11/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.12/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.13/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.14/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.15/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.16/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.17/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.18/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.19/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.20/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.21/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.22/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.27/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.28/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.29/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.30/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.31/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.36/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.37/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.38/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.39/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.40/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.41/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.42/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.43/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.44/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.47/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.48/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.49/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.5/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.56/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.57/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.58/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.6/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.61/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.62/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.63/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.64/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.65/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.7/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools.status.fred.8/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   datastack/stack.go
M   server/selfManage.go
M   server/server.go

commit 197f4ca171e44258bcf52e95b1b9d621c14e1d27
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Sep 10 13:00:00 2020 -0500

    test(selfRunner): Allow for clean server shutdowns.

    This refactors the midlayer.Service abstraction to use Close() instead
    of Shutdown(), as when we are shutting down we don't really care about
    letting all the connections gracefully exit.

    server.Server is also refactored to accept a Context that can be used to
    shut everything down from the outside.

    selfRunner has been refactored to run as a midlayer.Service.

    functions that run a server as a goroutine for test coverage purposes
    now pass in a Context to server.Server that is used to kill the Server
    when tests finish.

    Still need to fix up unit tests and the like.

M   clitest/common_test.go
M   cmds/dr-provision/dr-provision.go
M   cmds/dr-test/dr-test.go
M   midlayer/dhcp.go
M   midlayer/service_impl.go
M   midlayer/tftp.go
M   server/selfManage.go
M   server/server.go
M   server/server_test.go
M   server/watcher.go
M   test/server.go
M   utils/prom_gateway.go

commit 4c83b44b240d792652a3275cc81116c3d9f2f896
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Sep 10 11:12:14 2020 -0500

    test(selfRunner): Start covering the selfRunner code during unit tests.

    Since we are changing up how the selfRunner works, we may as well start unit
    testing it as well.

M   clitest/common_test.go
M   server/selfManage.go
M   test/server.go

commit 0cc34688671deec261e5bb25d428c2ab74a64af4
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Sep 9 15:10:05 2020 -0500

    fix(selfRunner): Have the selfRunner run as a subprecess.

    It is now a bog-standard drpcli machines processjobs instead of a goroutine.
    This will keep a fault in the agent from taking dr-provision down if something
    goes wrong.

M   clitest/test-data/output/TestPluginProviderCli/plugin_providers/stdout.expect
M   go.mod
M   go.sum
M   server/selfManage.go
M   server/server.go

commit e7e557a392007ad5da781f78def917e041446cca
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 10 10:53:30 2020 -0500

    fix(dhcp): Make customer bootloader message less scary.

M   midlayer/pxe.go

commit a6f2edd833f9d15d3c9eba83257d97324d75a635
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Sep 8 12:33:41 2020 -0500

    fix(manager): rebuild catalog should init the environment.

M   frontend/plugins.go

commit beb4a25f6a70283eaae5623286a9c5dacc5c7c72
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Fri Sep 4 13:55:11 2020 -0500

    fix: udpate to latest client

M   go.mod
M   go.sum

commit b3e592f836ed2b1eb5e84a4a4b9f1bb519ff3c0b
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Fri Sep 4 01:03:16 2020 -0500

    fix(ha,manager): remove deadlock potiential

M   midlayer/dhcp.go
M   server/server.go

commit 6e9be3ce6df8a970fa5f201845255b4af4113bb8
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 3 22:34:02 2020 -0500

    fix(test): update a unit tests.

M   clitest/test-data/output/TestSystemCli/system.get.john2/stdout.expect
M   clitest/test-data/output/TestSystemCli/system/stdout.expect

commit 940a8ed8d4fd0c462e35c02dcb33d52944350262
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 3 21:28:39 2020 -0500

    fix(ha,manager): add electable to the status of ha systems

M   datastack/streamingSync.go
M   datastack/streamingSyncActive.go
M   datastack/streamingSyncPassive.go
M   frontend/system.go
M   go.mod
M   go.sum

commit e55fdad88b45160e7e8b6af20c1fb08355a98741
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 3 11:36:32 2020 -0500

    fix(server): put IsUp back

M   server/server.go

commit a51bcdd81b4ebee34396a4c8571212eec9093088
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 3 11:26:30 2020 -0500

    fix: go mod refs

M   go.mod
M   go.sum

commit 6bd8d11d8d6373d740c55044542a062355b3357b
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 3 11:16:51 2020 -0500

    fix(manager,ha): more tweaks with HA code review

M   datastack/stack.go
M   datastack/streamingSyncPassive.go
M   datastack/wal.go
M   frontend/system.go
M   server/server.go

commit e1d4f92bb17605d2a7a9657e1c76252d68fe8765
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Sep 3 08:45:46 2020 -0500

    refactor(datastack): Fix LINT issues in file

M   datastack/streamingSyncPassive.go

commit dec88dfcb5f8e18f28f95400f8c6a6929cccb08d
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Sep 2 21:25:11 2020 -0500

    fix(ha,mamager): add shorter timeouts and short circuit failures

M   datastack/streamingSyncPassive.go
M   frontend/frontend.go
M   frontend/system.go
M   go.mod
M   go.sum
M   server/server.go

commit a3ab45915cf960c3abfe6e219928064e658425ef
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Sep 2 13:37:54 2020 -0500

    fix(manager,ha): Reindex objects on restart

M   datastack/endpoint_stack.go
M   datastack/stack.go
M   frontend/frontend.go
M   frontend/system.go
M   go.mod
M   go.sum
M   server/server.go

commit ec8814e691749997ddc8157fa596b2d15d4c185c
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Sep 1 17:52:42 2020 -0500

    fix(manager,ha): more tweaks to be more active.

    This has signal issues and needs rebase.

M   frontend/frontend.go
M   midlayer/dhcp.go
M   server/server.go

commit 906f84fbe235093b3c7db6d5bddc93cfee0f1d97
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Sep 1 12:07:05 2020 -0500

    feat(manager,ha): allow passive to be more active.

M   frontend/frontend.go
M   frontend/info.go
M   frontend/system.go
M   server/server.go

commit 63ba987aea884bfd1401dd2d6ab67c34c97c89aa
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Sep 3 14:12:04 2020 -0500

    feat(ha-ip-helper): COntrol the HA VIP using a script.

    This adds the ability to have dr-provision call an external script
    whenever it needs to add or remove an IP address to a network interface.

    The script takes 3 arguments in the following order:

        add|remove interface addr/netmask

    The script needs to add or remove the passed adcdress from the passed
    interface.  dr-provision will take care of sending any gratuitous ARP
    packets that are required.

M   midlayer/ha.go
M   server/server.go

commit 28f4d2b9a50aa9223c64ac12c77ca1317cb1dc16
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Sep 3 11:58:50 2020 -0500

    fix(tests) Fix unit tests and pull in latest client code.

    This brings the v4 branch up to date with all the bugfixes in the
    4.4.0 branch.

M   clitest/test-data/output/TestInfoCli/info.get/stdout.expect
M   cmds/dr-waltool/waltool.go
M   go.mod
M   go.sum

commit f6125970a0d3873791c7eee1c50bb116250b6039
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Sep 2 15:05:23 2020 -0500

    fix(aggParams): Test API aggregation and decoding bug.

    The API had a longstanding bug that did not allow for multiple sets of
    params to be added to a Request as documnted.  Pull in that fix and add unit
    tests to make sure everything functions as documented.

M   clitest/secure_params_test.go
A   clitest/test-data/output/TestSecureParamUpgrade/machines.addprofile.Name.bob.bob/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.create.bob/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.destroy.Name.bob/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.get.Name.bob.param.test.0526e14e902277370e0dccbf146ef3e4.2/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.get.Name.bob.param.test.0526e14e902277370e0dccbf146ef3e4.3/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.get.Name.bob.param.test.0526e14e902277370e0dccbf146ef3e4/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.get.Name.bob.param.test.2/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.get.Name.bob.param.test.3/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.get.Name.bob.param.test.4511eb3c21e6a5af9838d6483226101c/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.get.Name.bob.param.test.f82e3e46e25100eddbb25d4c814e4866/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.get.Name.bob.param.test/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.remove.Name.bob.param.test/stdout.expect
A   clitest/test-data/output/TestSecureParamUpgrade/machines.set.Name.bob.param.test.to.bar/stdout.expect

commit 2dba7989e8408131ef37143865e5a2ffbee645fd
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Sep 2 13:04:57 2020 -0500

    fix(roles): Re-add claim processing on raw models.

    Oops, the glue code that enabled this vanished in a fit of overzealous
    refactoring November of 2019.  Add it back, updated for current code.

M   backend/jwt-utils.go
M   backend/roles.go
M   clitest/info_test.go
A   clitest/test-data/output/TestInfoCli/info.get/stdout.expect
M   datastack/stack.go

commit ebdc456b12c4cd8d719161177519d12870a03e8e
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Aug 31 08:51:57 2020 -0500

    fix(dhcp-and-profile): Fix a couple of bugs found by Jan.

    First, we should not be saving Paramers that come from installed content
    when we have to rewrite them to handle transparently securing secure
    params.

    Second, fix the DHCP server to ignore more repeated packets, and loosen the
    logic used to detect whether an incoming renewal request should be checked
    to see if it has migrated from one subnet to another.

M   backend/dataTracker.go
M   datastack/stack.go
M   midlayer/dhcp.go
M   midlayer/dhcp_test.go
M   midlayer/fake_midlayer_server_test.go

commit ca0d113ef877e5107cf3c28af2315014b0f6e146
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Aug 14 09:40:32 2020 -0500

    feat(walTool): Add more debugging to dr-waltool.

M   cmds/dr-waltool/waltool.go

commit 084118f844b2dc47c5663192de6abc21f56b96f8
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Sep 2 11:03:52 2020 -0500

    perf(newModels): Pull in models.New perf enhancement from client code

M   go.mod
M   go.sum

commit a0f4910786977de8a00723cf32a26b23476c4356
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Aug 26 14:47:33 2020 -0500

    fix(manager): Send create events on endpoint creates

M   backend/endpoint_manager.go

commit 3cff2111fe3ca043fbc9299ffdd4b9819f0e6a1e
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Aug 25 15:18:23 2020 -0500

    doc(dr-waltool): Clean up help for the dr-waltool command.

    The help output for dr-waltool and its subcommands was all over the place.
    This rationalizes it and cleans it up.

M   cmds/dr-waltool/waltool.go

commit 22823ee4594bfd5ffffbc5ec68703f9c35c87831
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Aug 25 13:03:40 2020 -0500

    fix(plugins): clear plugin errors on plugin_provider load

    In order to make sure the plugin valid state is accurate,
    clear it to get a good value when a plugin_provider starts

M   backend/pluginProviders.go

commit bc792e8126e020dadf186dd261ad5ebdf40070c9
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Aug 21 14:49:42 2020 -0500

    perf(startup): More startup performance enhancements.

    * Use easyjson for handling JSON encoding and decoding of WalEntry objects.
      While it requires code generation, it is more efficient at skipping
      the data we are going to defer unmarshalling anyways.  The only thing
      faster would be simdjson, but it would limit where we could run to CPUs
      to either ARM64 or AMD64 with AVX instructions, and I am not quite ready
      to go there yet.
    * Make WalEntry a models.Model.
    * Teach index.BulkModify how to parallelize bulk operations on index data.
      With these two changes, we get rid of a bunch of logic that we used to
      use to cache in-flight replay data for later decoding, along with a bunch
      of overhead relating to progressively sorting items that have to do extra
      work to calculate their Key.
    * Use pgzip to unzip individual commit records above a certain size.
      pgzip allows the gzip decompression to run ahead of the rest of the
      walEntry processing.  It is a net win when processing basefiles and larger
      commits.

M   backend/utils.go
M   cmds/dr-waltool/waltool.go
M   datastack/index/index.go
M   datastack/perTxWalReplay.go
M   datastack/stack.go
M   datastack/stack_legacy.go
M   datastack/wal.go
A   datastack/walEntry.go
A   datastack/walEntry_easyjson.go
M   go.mod
M   go.sum

commit 5d87a958eb240150c117d5731846512eedc282a1
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Aug 25 11:11:14 2020 -0500

    fix(contexts): add validation for plugin to context and vice versa

M   backend/contexts.go
M   backend/plugins.go

commit 3f7679258878d5250e641586b2d44311a32fbd23
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Aug 25 09:48:26 2020 -0500

    fix(manager): don't loop forever doing the last action.

M   backend/endpoint_manager.go

commit 1633ae98b768a1b486994920e5d0affb5d401383
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Aug 24 22:47:24 2020 -0500

    fix(manager): fix plugin ref and return success on buildCatalog

M   frontend/plugins.go

commit aed309c7bfb596b4913bcc188b9ee7a34efdbb83
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Aug 24 15:42:01 2020 -0500

    feat(cli): count action unit test updates (just help)

M   clitest/test-data/output/TestBootEnvCli/bootenvs/stdout.expect
M   clitest/test-data/output/TestEndpointCli/8e370dd79b74669671136f037e0adb61/stdout.expect
M   clitest/test-data/output/TestInterfaceCli/interfaces/stdout.expect
M   clitest/test-data/output/TestJobCli/jobs/stdout.expect
M   clitest/test-data/output/TestLeaseCli/leases/stdout.expect
M   clitest/test-data/output/TestMachineCli/machines/stdout.expect
M   clitest/test-data/output/TestParamCli/params/stdout.expect
M   clitest/test-data/output/TestPluginCli/plugins/stdout.expect
M   clitest/test-data/output/TestPluginProviderCli/extended/stdout.expect
M   clitest/test-data/output/TestPluginProviderCli/plugin_providers/stdout.expect
M   clitest/test-data/output/TestPoolCli/pools/stdout.expect
M   clitest/test-data/output/TestProfileCli/profiles/stdout.expect
M   clitest/test-data/output/TestReservationCli/reservations/stdout.expect
M   clitest/test-data/output/TestRoleCLI/roles/stdout.expect
M   clitest/test-data/output/TestStageCli/stages/stdout.expect
M   clitest/test-data/output/TestSubnetCli/subnets/stdout.expect
M   clitest/test-data/output/TestTaskCli/tasks/stdout.expect
M   clitest/test-data/output/TestTemplateCli/templates/stdout.expect
M   clitest/test-data/output/TestUserCli/users/stdout.expect
M   clitest/test-data/output/TestWorkflowCli/workflows/stdout.expect
M   go.mod
M   go.sum

commit 5002796ff9abd4e787deaadb37401f47cd5bfbf8
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Aug 20 13:22:37 2020 -0500

    feat(plugin): Allow for manual plugin starting/stopping/restarting.

    Unitl now, you never had a choice about when a plugin would start its
    provider -- if hte provider was present, it was started, and the only way to
    stop or restart it was to change or remove the plugin.  This adds
    three new actions to plugins that allow you to stop, start, and restart
    a provider.

M   backend/plugins.go
M   backend/requestTracker.go
M   clitest/plugins_test.go
A   clitest/test-data/output/TestPluginsFromContent/plugins.actions.incr1.5390b768d8d29fb7a7e173e9e11110cf/stdout.expect
A   clitest/test-data/output/TestPluginsFromContent/plugins.runaction.incr1.restartProvider.5390b768d8d29fb7a7e173e9e11110cf/stderr.expect
A   clitest/test-data/output/TestPluginsFromContent/plugins.runaction.incr1.restartProvider.5390b768d8d29fb7a7e173e9e11110cf/stdout.expect
A   clitest/test-data/output/TestPluginsFromContent/plugins.runaction.incr1.startProvider.5390b768d8d29fb7a7e173e9e11110cf/stderr.expect
A   clitest/test-data/output/TestPluginsFromContent/plugins.runaction.incr1.startProvider.5390b768d8d29fb7a7e173e9e11110cf/stdout.expect
A   clitest/test-data/output/TestPluginsFromContent/plugins.runaction.incr1.stopProvider.5390b768d8d29fb7a7e173e9e11110cf/stdout.expect

commit b704193c5374bd65b129b020ae2bbfaf615d5220
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Aug 19 12:22:39 2020 -0500

    fix(template): Fix colliding per-object template namespaces.

    The recent template validation refactor could allow templates defined
    in tasjs, stages, and bootenvs to ovewrite each other in the case that
    they the embedded template Names are identical.

M   backend/template.go
M   clitest/tasks_test.go
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/contents.destroy.brothers/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/contents.destroy.cousins/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/contents.upload.23e5f8def92a47ed55dace976053ab63/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/contents.upload.f744a44bd44def8386601187c1ab7f68/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.actions.00000000-0000-0000-0000-000000000001/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.actions.00000000-0000-0000-0000-000000000002/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.actions.00000000-0000-0000-0000-000000000003/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.actions.00000000-0000-0000-0000-000000000004/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.actions.00000000-0000-0000-0000-000000000005/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.create.0a82fade04be1e460f621e53f83a6662/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.create.37e881403871eb3f52e143a9ddc9d9fe/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.create.82061cc2fdcfe579da3360080e78b067/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.create.b00b350fa781398949be55351182d5f0/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.create.d239ca5f88a5957585f6004156f8f162/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.update.00000000-0000-0000-0000-000000000001.6e0fd891340aa6bf13467800af9650e6/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.update.00000000-0000-0000-0000-000000000002.6e0fd891340aa6bf13467800af9650e6/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.update.00000000-0000-0000-0000-000000000003.6e0fd891340aa6bf13467800af9650e6/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.update.00000000-0000-0000-0000-000000000004.6e0fd891340aa6bf13467800af9650e6/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/jobs.update.00000000-0000-0000-0000-000000000005.6e0fd891340aa6bf13467800af9650e6/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/machines.create.2da0827218e42314e6d85df2047165f4/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/machines.deletejobs.Name.darryl/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/machines.destroy.Name.darryl/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/templates.create.99dd53801b37d33e2b78b1df8c0e1d6b/stdout.expect
A   clitest/test-data/output/TestTasksWithIdenticalTemplateNames/templates.destroy.darryl/stdout.expect

commit 6351d57323ec04a7b311d1f83b307085ef7d78f0
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Aug 3 12:28:10 2020 -0500

    feat(replaceWritable): Content install can now replace writable objects.

    The content and plugin provider upload API calls now accept a
    replaceWritable param, which (if true) will have the upload process
    remove any objects in the local writable store that has the same
    unique identifier.

M   backend/dataTracker.go
M   backend/pluginProvider_test.go
M   backend/pluginProviders.go
M   clitest/contents_test.go
M   clitest/test-data/output/TestAuth/info.get/stdout.expect
M   clitest/test-data/output/TestContentCli/contents.create.john.john2/stderr.expect
M   clitest/test-data/output/TestContentCli/contents.create.test-data/content.yaml/stderr.expect
M   clitest/test-data/output/TestContentCli/contents.create/stderr.expect
M   clitest/test-data/output/TestContentCli/contents.update.john.john2.john3/stderr.expect
M   clitest/test-data/output/TestContentCli/contents.update/stderr.expect
A   clitest/test-data/output/TestContentReplaceWritable/contents.destroy.bob/stdout.expect
A   clitest/test-data/output/TestContentReplaceWritable/contents.upload.test-data/bob1.yaml.4deeee6b7fd499130841cdda831b21d3/stdout.expect
A   clitest/test-data/output/TestContentReplaceWritable/contents.upload.test-data/bob1.yaml/stderr.expect
A   clitest/test-data/output/TestContentReplaceWritable/stages.create.bob/stdout.expect
A   clitest/test-data/output/TestContentReplaceWritable/stages.show.bob.2/stdout.expect
A   clitest/test-data/output/TestContentReplaceWritable/stages.show.bob.3/stdout.expect
A   clitest/test-data/output/TestContentReplaceWritable/stages.show.bob.4/stderr.expect
A   clitest/test-data/output/TestContentReplaceWritable/stages.show.bob/stdout.expect
M   clitest/test-data/output/TestContentRequiredFeatures/contents.create.ac4d20bab548d64d6607863b30220999/stderr.expect
M   clitest/test-data/output/TestContentsFunctionalCli/contents.create.15403cc39b7ae9e66716216634f1cd9a/stderr.expect
M   clitest/test-data/output/TestContentsFunctionalCli/contents.create.740c331718d653ae77e7875d61c12c77/stderr.expect
M   clitest/test-data/output/TestPluginProviderCli/plugin_providers.upload.john.as.john2.asdga/stderr.expect
M   clitest/test-data/output/TestPluginProviderCli/plugin_providers.upload/stderr.expect
M   clitest/test-data/output/TestTasksInContentBundles/contents.upload.08029c88c6feb80bd58ff4ee5706a970/stderr.expect
M   clitest/test-data/output/TestTasksInContentBundles/contents.upload.67d0d4d863f66bdc6d92728b359211bc/stderr.expect
M   clitest/test-data/output/TestTasksInContentBundles/contents.upload.d6378f265d68e2d7d070802786c140ec/stderr.expect
M   clitest/test-data/output/TestTasksInContentBundles/contents.upload.f1830d56d1454a58c88a24b232dd348d/stderr.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   datastack/stack.go
M   datastack/stack_test.go
M   frontend/content.go
M   frontend/plugin_providers.go
M   frontend/plugins.go
M   go.mod
M   go.sum

commit 051f7d53e31564220d06e379a40fbd2a8dfe1560
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Aug 18 10:07:32 2020 -0500

    fix(revalidate): Fix data race when validating content bundles.

    So, it turns out we were still falling through to the old revalidate
    everything code after processing a content bundle change list.  Not
    only was this hiding a few bugs with the new code, it caused spurious
    data races in the parallel revalidate everything code.

    Rework changes to make content bundle changes validate as intended and
    thereby avoid the spurious data race.

M   backend/dataTracker.go
M   backend/profiles_test.go
M   backend/utils.go

commit f4f1b3338ee8b26c1760a585d90f5fb4a07d403f
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Aug 17 11:57:18 2020 -0500

    perf(startup): Parallelize object processing on startup

    This adds parallelism in two places at system startup.

    The first is when bulk unmarshalling data from the WAL.  The
    max batch size has been increased from 4 megs to 32, and actual
    unmarshalling load is equally divided among the CPUs present on the
    system if the total amount of data being unmarshalled passes a certain
    threshold.

    The second is when validating data when building the datatracker.  The
    data load for parallelization is divided across all CPUs in the same fashion
    as when being bulk unmarshalled, unless the objects in question are
    backed by a RawModel -- trying to parallelize operations on them resulted
    in concurrent map access panics.

M   backend/dataTracker.go
M   datastack/index/index.go
M   datastack/stack.go

commit 8c399a9cbe95312c6e2233db7e6baf724b9f6602
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Aug 17 11:00:52 2020 -0500

    perf(startup): Cache sorted indexes.

    This adds functionality to the Index layer to recognize when we are
    asking for a sorted version of a base index, and caches the result
    for later use if we are.  The cache will be invalidated if anything
    is added, removed, or modified in the base layer of the index.

    To enable this to work properly, Names have been added to all Makers
    where applicable, to give each index a set of unique keys to work with.

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/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/version_sets.go
M   backend/workflow.go
M   datastack/index/index.go
M   datastack/index/index_test.go

commit 19b3d4baad7c7d044785ad22a30cd506a3221567
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Aug 14 13:32:55 2020 -0500

    Perf enchancements to machine processing during startup

M   backend/bootenv.go
M   backend/dataTracker.go
M   backend/machines.go

commit e5c8dd5e3b928830a24617429d8bb4129e5f90c9
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Aug 14 09:40:32 2020 -0500

    feat(walTool): Add more debugging to dr-waltool.

M   backend/dataTracker.go
M   cmds/dr-waltool/waltool.go
M   datastack/stack.go

commit 1be10310c811cb69dd3f07eca56c4c8159aff35c
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Aug 14 12:14:54 2020 -0500

    test(parProfiles): Add staged transaction blocking tests.

    Add a test to testParallelProfiles that tests transaction
    unblocking at scale.

M   backend/profiles_test.go

commit 9a5ae53ddf5a5b29fdd3fb45bd4fdc7a0f4849ee
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Fri Aug 14 12:00:30 2020 -0500

    fix(transact): fix possible channel miss on wake up and tighten read acquire

    The channel semantics are annoying that you can miss wakeups because
    of timing.  So, close the channel instead of message passing to
    ensure that we are unblocking the waiter.  This is a better
    semantic for this use.

    Also, make the read acquire code a little tighter and clearer.

    Add some debugging helper functions.

M   transact/tx.go

commit e94416d99a771fcf31e015196cbcc170c291c89e
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Fri Aug 14 00:24:18 2020 -0500

    fix(replication): fix some holes in sync and order of stream commits

    The synchronizers variable on stack was not protected in all cases by
    the spaceLock.  Also, some races occur around the syncStream buf because
    the atomic check for open could immediately close and generate a panic.

    This moves the sychronizer notifications for commits into the flusher
    to maintain order.  This means that the flusher could be blocked if
    a passive receiver runs slow, but it would slow down the system while
    the system waited for the commit to complete.  Not sure there is much
    difference between the two places.  We could up the queue depth on the
    commit streaming queue.

M   datastack/content.go
M   datastack/streamingSyncActive.go
M   datastack/wal.go

commit ad2e97cc8f236e8a4c90edf55b01b8e5b1008353
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Aug 12 12:49:36 2020 -0500

    fix(transact): Rework deadlock avoidance and unblocking.

    This reworks the transact system to track deadlocks and runnability
    in terms of other transactions instead of objects, which simplifies
    that code and makes it easier to reason about.

M   transact/tx.go
M   transact/tx_test.go

commit 8eca55e53a6e892ef72457c92414e742ab0b9ea6
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Aug 11 09:48:17 2020 -0500

    fix(dhcp): Fix probable sources of DHCP corruption

    First, coalesce all DHCP packet handling into a single transaction per packet.
    This will make the retgry logic properly attempt to start handling the DHCP
    request from the start when we need to.

    Second, stop using a buffer pool for DHCP handling.

    Based on the weird lease patterns, I suspect that there has been some
    unchecked memory reuse caused by trying to pool the per-request byte
    buffers under high request pressure.  Switch back to relying on garbage
    collection to keep everything sane.

    Third, check for changed interfaces every 5 seconds.

    We were checking the interface map on the machine with every DHCP request,
    which on systems handling a heavy DHCO load would eat a lot of CPU and memory.
    This refactors things to only check for available interface changes every
    5 seconds.

    Stress tested with

    $ perfdhcp -4 -R300 -l virt -L 5432 -r 1000 -t 5 -a 100

    on a subnet that only has space for 200 addresses, no apparent address
    corruption or wandering leases.

M   backend/dhcpUtils.go
M   backend/dhcpUtils_test.go
A   cmds/h2ip/h2ip.go
M   midlayer/abp.go
M   midlayer/dhcp.go
M   midlayer/fake_midlayer_server_test.go
M   midlayer/pxe.go

commit 1e494ce3a61880e04f9f26224c927d87803a61ae
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Jul 30 12:47:07 2020 -0500

    fix(dhcp): Simplify lease address allocation codepaths.

    This gets rid of a significant amount of duplicated code in the lease
    address allocation codepath that has snuck in, and pulls most of the
    lease validity checking that happens as part of DISCOVER handling
    into a single transaction.

M   backend/dhcpUtils.go
M   backend/dhcpUtils_test.go
M   backend/lease.go
M   backend/requestTracker.go
M   backend/subnet.go
M   midlayer/00_aone_test.go
M   midlayer/common_test.go
M   midlayer/dhcp-tests/0000-basic-ipxe-discover/0000.logs-expect
M   midlayer/dhcp-tests/0000-basic-pxe-discover/0000.logs-expect
M   midlayer/dhcp-tests/0000-basic-uefi-discover/0000.logs-expect
M   midlayer/dhcp-tests/0001-test-lease-wraparound/0000.logs-expect
M   midlayer/dhcp-tests/0001-test-lease-wraparound/0001.logs-expect
M   midlayer/dhcp-tests/0001-test-lease-wraparound/0002.logs-expect
M   midlayer/dhcp-tests/0001-test-lease-wraparound/0003.logs-expect
M   midlayer/dhcp-tests/0001-test-lease-wraparound/0004.logs-expect
M   midlayer/dhcp-tests/0001-test-lease-wraparound/0005.logs-expect
M   midlayer/dhcp-tests/0001-test-lease-wraparound/0006.logs-expect
M   midlayer/dhcp-tests/0001-test-lease-wraparound/0015.logs-expect
M   midlayer/dhcp-tests/0003-ipxe-uefi-discover/0000.logs-expect
M   midlayer/dhcp-tests/0004-option82-reflection/0000.logs-expect
M   midlayer/dhcp-tests/0004-option82-reflection/0001.logs-expect
M   midlayer/dhcp-tests/0004-option82-reflection/0002.logs-expect
M   midlayer/dhcp-tests/0004-option82-reflection/0003.logs-expect
M   midlayer/dhcp-tests/0004-option82-reflection/0004.logs-expect
M   midlayer/dhcp-tests/0004-option82-reflection/0005.logs-expect
M   midlayer/dhcp.go
A   midlayer/dhcp_scale_test.go
M   transact/tx.go

commit 152e282e4509f8b10f56c5136ab8faebd8e60b4f
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Aug 7 11:11:13 2020 -0500

    fix(walTool): Profiles not writing data.

    the cpuProfile and memProfile flags were not operating correctly.
    Fix them and ensure that loaded data is still in memory when
    we go to save the alloc and inUse memory profiles.

    Signed-off-by: Victor Lowther <victor.lowther@gmail.com>

M   cmds/dr-waltool/waltool.go

commit 0f9706efb199d7361a8c566bc6a655b3ed8a7190
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Aug 4 08:26:38 2020 -0500

    fix(secureBoot): Grub does not work in UEFI with proxy DHCP.

    There is a known issue with Grub not reading DHCP options from
    the cirrent packet.  Until that is resolved upstream, detect the
    situation and fall back to not using secure boot mode.

M   backend/dhcpUtils.go
M   midlayer/pxe.go

commit 6d7568a4ee0074c8290ef339fd813e275e92f8cf
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Aug 7 09:53:42 2020 -0500

    fix(unittest): Sigh, don't check the size of incrementer

M   clitest/test-data/output/TestPluginsFromContent/plugin_providers.upload.incrementer.from/tools/build/incrementer/stdout.expect

commit 732e9632556a1288cef3685fc0889befc607eefc
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Aug 6 14:14:21 2020 -0500

    fix(contentLoad): Fix plugin-related content load bugs.

    The backend Validate function has no idea where the sockets for talking
    to running plugins were located, so it could wander off into lala land
    when it needed to communicate with a plugin. Fix this by making
    datastack responsible for keeping track of it instead.

    Identical content detection did not consider any content to be identical,
    due to content validation fields and the ReadOnly field being guaranteed
    to be different.  Before checking to see whether items are identical,
    set ReadOnly to be true (since at that point it is guaranteed to be
     anyways), and clear out validation.

    Add a unit test to test that plugin add/change/remove triggers the
    start/change/stop events to plugin providers as appropriate.

    Signed-off-by: Victor Lowther <victor.lowther@gmail.com>

M   backend/dataTracker.go
M   backend/dataTracker_test.go
M   backend/plugin_controller.go
M   backend/runningPlugin.go
M   backend/utils.go
M   clitest/plugins_test.go
A   clitest/test-data/incrPluginChangeOne.yaml
A   clitest/test-data/incrPluginCreate.yaml
A   clitest/test-data/incrPluginRemove.yaml
A   clitest/test-data/output/TestPluginsFromContent/contents.destroy.incrContent/stdout.expect
A   clitest/test-data/output/TestPluginsFromContent/contents.upload.test-data/incrPluginChangeOne.yaml/stdout.expect
A   clitest/test-data/output/TestPluginsFromContent/contents.upload.test-data/incrPluginCreate.yaml/stderr.expect
A   clitest/test-data/output/TestPluginsFromContent/contents.upload.test-data/incrPluginCreate.yaml/stdout.expect
A   clitest/test-data/output/TestPluginsFromContent/contents.upload.test-data/incrPluginRemove.yaml/stdout.expect
A   clitest/test-data/output/TestPluginsFromContent/plugin_providers.upload.incrementer.from/tools/build/incrementer/stdout.expect
M   datastack/stack.go
M   server/server.go

commit 085d72dce07363c2929ce5209be579512e67895f
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Aug 5 12:31:23 2020 -0500

    fix(indexCorruption): Indexes were being corrupted by duplicate adds/removes

    The index.Add and index.Remove code was not properly accounting for having duplicate items passed to Add and Remove,
    respectively.  That caused Remove to remove extra unrelated items in the case of being called with duplicates,
    potentially leading to a panic dues to slices being out of bounds.  Add was potentially allowing multiple items in the
    Index to have the same Key(), which violates our deeply held beliefs that all keys must be unique for sanity's sake.

    This fixes both of those issues by refactoring the Add and Remove codepaths to be aware of duplicates and handle them --
     in the case of the Remove codepath, duplicates are ignored, and in the case of the Add codepath, the last of the
     objects with identical Key() values will be the one that winds up in the index.

    Signed-off-by: Victor Lowther <victor.lowther@gmail.com>

M   datastack/index/index.go
M   datastack/index/index_test.go

commit 7128c8c8550706bdf27ee8afd8975820319d86db
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Aug 4 17:12:42 2020 -0500

    doc: update swagger for new pieces

M   server/swagger.base.yml

commit 472f01aecb7459d5f21e6e067170bceb59afaa37
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Jul 30 12:24:54 2020 -0500

    doc: minor tweak

M   CONTRIBUTING.rst

commit f0a28e8ff500a752b6cbf007fec732db4640e8ab
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Thu Jul 30 12:22:27 2020 -0500

    build: update v4.4.0 provision and provision-plugins

M   go.mod
M   go.sum

commit e0e511b4add3ae9c1c1804048a276e80e7ca31bf
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Jul 29 16:34:08 2020 -0500

    build: update to latest drpcli

M   go.mod
M   go.sum

commit f07844ef7ff8c1573c0dd2c8caaa99ba9161de9c
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Jul 29 12:31:47 2020 -0500

    fix(template): Allow template IDs to start with nuimbers

A   clitest/catalog_test.go
M   go.mod
M   go.sum

commit 03c1bf97ecd14c6a422a3da6f91b899c547514ec
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Wed Jul 29 11:05:07 2020 -0500

    fix(embedded): add version to embedded drpcli

M   tools/build_cli.sh

commit 24708dbe1954377f3b844fbc5072d141020de27b
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Jul 28 13:50:39 2020 -0500

    perf(contentPalLoad): Validate that botched updates get rolled back

M   backend/bootenv.go
M   backend/stage.go
M   backend/task.go
M   backend/template.go
M   clitest/contents_test.go
A   clitest/test-data/bob1.yaml
A   clitest/test-data/bob2.yaml
A   clitest/test-data/bob3.yaml
A   clitest/test-data/bob4.yaml
M   clitest/test-data/output/TestBootenvStageHandling/stages.create.30f84558be9d7caefb08a7672ef6a725/stdout.expect
M   clitest/test-data/output/TestContentCli/contents.create.test-data/content.yaml/stderr.expect
A   clitest/test-data/output/TestContentLoadValidation/bootenvs.create.0fd684c07aaf1096509e7449b0e1c140/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/bootenvs.create.7284e44c2281470dc7a0ae35e0922b05/stderr.expect
A   clitest/test-data/output/TestContentLoadValidation/bootenvs.create.8fef9e18ebddc6023f741c0e379308da/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/bootenvs.create.be5b231134c9ddc72eb2b6c679fb0dd0/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/bootenvs.destroy.unknownBob/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/contents.destroy.bob/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/contents.upload.test-data/bob1.yaml.2/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/contents.upload.test-data/bob1.yaml/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/contents.upload.test-data/bob2.yaml/stderr.expect
A   clitest/test-data/output/TestContentLoadValidation/contents.upload.test-data/bob3.yaml/stderr.expect
A   clitest/test-data/output/TestContentLoadValidation/contents.upload.test-data/bob4.yaml/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.bootenvs/bob.2/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.bootenvs/bob.3/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.bootenvs/bob.4/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.bootenvs/bob.5/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.bootenvs/bob/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.stages/fred.2/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.stages/fred.3/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.stages/fred.4/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.stages/fred.5/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.stages/fred/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.uk/fred.2/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.uk/fred.3/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.uk/fred.4/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.uk/fred.5/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/files.static.uk/fred/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/machines.create.bob/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/machines.destroy.Name.bob/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/machines.update.Name.bob.050d0da24857c13849b0458615134e40/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/prefs.set.unknownBootEnv.ignore/stdout.expect
A   clitest/test-data/output/TestContentLoadValidation/prefs.set.unknownBootEnv.unknownBob/stderr.expect
A   clitest/test-data/output/TestContentLoadValidation/prefs.set.unknownBootEnv.unknownBob/stdout.expect
M   clitest/test-data/output/TestTaskCli/tasks.create.8d20432a4e21ef071b283910d9596673/stderr.expect
M   clitest/test-data/output/TestTaskCli/tasks.create.c63da551ae6c6bf9e78f37d69408c66c/stderr.expect
M   clitest/test-data/output/TestTaskCli/tasks.create.dedd6ced565015e77ca12954ca5e76b9/stderr.expect
M   clitest/test-data/output/TestTasksWithElevatedTokens/tasks.create.416f18fb9dc46b108e9d06571a7d1709/stderr.expect
M   clitest/test-data/output/TestTasksWithElevatedTokens/tasks.create.de8d8a847507a34220f8ff818a1aa85a/stderr.expect
M   go.mod
M   go.sum
M   pacman/PKGBUILD

commit eab5a14b56a921902b3c0636877e9fa5e0fd6c6a
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Jul 28 11:12:31 2020 -0500

    Factor out common template munging code

M   backend/dataTracker.go
M   backend/stage.go
M   backend/template.go
M   backend/utils.go

commit f83312864d9f3f19a3d59a976820681a13b6bdce
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Jul 28 13:06:43 2020 -0500

    feat(license): All HaId To match endpoint info as well

M   backend/license.go

commit bd7e346898df7975981fe8d7bd2bd6d86d2094dc
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Jul 28 00:13:48 2020 -0500

    fix(backend): minor change with lease fill

M   backend/dataTracker.go

commit 3d8dc32d75ec487ac9bb7b85905dece2c8ca88d2
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Fri Jul 24 14:09:26 2020 -0500

    fix(template): Fix up template validation handling.

    It turns out that cramming all the tempaltes together to validate them
    can have some negative side effects, and did not give is the leyer of
    consistency checking I thought it had been giving us.

    Instead, rework template validation in the following ways:

    1. Disallow templates that have embedded {{define}} or {{begin}}
       blocks.  These let you create extra named and anonymous go
       templates, which can conflict with ones defined directly by Template
       objects.  Support for these may be readded at a later date once
       we work out exactly how to validate and ensure that all templates in
       a given sacope are uniquely named.

    2. Allow for incremental redefinition of the root template pool when
       templates are added and remove, and move the location of the root
       pool from the datatracker to the datastack.  This makes keeping track
       of the root pool simpler.

    Moving it to the datastack makes keeping validated root templates in
    sync with the datatrackers simpler.

M   backend/bootenv.go
M   backend/dataTracker.go
M   backend/stage.go
M   backend/task.go
M   backend/template.go
M   backend/utils.go
M   datastack/stack.go

commit 5d28529490a144b63c52ef2a7047a384700e03d5
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Fri Jul 24 14:13:43 2020 -0500

    fix(manager): close response body on proxy
    fix(manager): scope for endpoint joining should include all objects
    fix(manager): machine test should not set Endpoint unless it means it

M   backend/endpoint_manager.go
M   frontend/endpoint.go
M   go.mod
M   go.sum

commit 0d9d1488f0b8f8bcfe7d8bfd6581ae44ac0767dd
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Jul 22 15:47:10 2020 -0500

    fix(pools): Clarify a few codepaths in the pool code per Greg.

    Still doesn't look quite right, but it is as right as we can
    get it without some sort of distributed transaction mechanism.

M   frontend/pools.go

commit 751d1f3df4feb1f2623eb6f159be3ccf6421316e
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Thu Jul 16 11:19:55 2020 -0500

    fix(contents): Improve how we validate content packs.

    This commit changes how we validate objects that are added, changed,
    or removed by adding, removing, or updating a content pack.  Instead
    of rewriting the indexes with the changes and then revalidating all of
    the data, we keep track of what has been added, removed, or changed by
    the index rewrites and then run the changes through the appropriate
    create/update/remove routines in the backend for their side effects.

    This allows us to precisely report on any errors that making the
    requested change would cause and return them, instead of getting
    unrelated errors mixed up in the output.

    It also refactors a bit of the split-manager-datastack to only expose
    objects from other endpoints to the frontend code where is is needed.
    The idea is that backend operations on local data should never
    accidentally pull in data from other endpoints.  There are a few
    places where that layering is intentionally violated -- mostly around
    pooling and endpoint object management -- and those areas need to be
    addressed before this commit can be accepted.

M   backend/bootenv.go
M   backend/contexts.go
M   backend/dataTracker.go
M   backend/endpoint_manager.go
M   backend/hooks.go
M   backend/license.go
M   backend/profiles.go
M   backend/requestTracker.go
M   backend/roles.go
M   backend/stage.go
M   backend/subnet.go
M   backend/task.go
M   backend/template.go
M   backend/utils.go
M   clitest/bootenv_test.go
M   clitest/contents_functional_test.go
M   clitest/test-data/output/TestAuth/roles.destroy.stage/stderr.expect
M   clitest/test-data/output/TestAuth/roles.destroy.task/stderr.expect
A   clitest/test-data/output/TestContentsFunctionalCli/contents.create.15403cc39b7ae9e66716216634f1cd9a/stderr.expect
A   clitest/test-data/output/TestContentsFunctionalCli/contents.create.740c331718d653ae77e7875d61c12c77/stderr.expect
A   clitest/test-data/output/TestContentsFunctionalCli/contents.create.d100b6546aa478bed0df87b28de5b4b6/stdout.expect
A   clitest/test-data/output/TestContentsFunctionalCli/contents.update.Pack1.2b39d1a2d37a7b6a6a516b308f64943e/stderr.expect
A   clitest/test-data/output/TestContentsFunctionalCli/contents.update.Pack1.9bd529bd15b272b95e51535ff4261dc8/stdout.expect
A   clitest/test-data/output/TestContentsFunctionalCli/contents.update.Pack1.fef6a27ccd18e22e0f1f99a6560ae342/stderr.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/TestContextStuff/contexts.destroy.dangerzone/stderr.expect
M   clitest/test-data/output/TestJobCli/jobs.actions.john/stderr.expect
M   clitest/test-data/output/TestJobCli/jobs.log.john/stderr.expect
M   clitest/test-data/output/TestProfileInProfile/profiles.destroy.profile1/stderr.expect
M   clitest/test-data/output/TestProfileInProfile/profiles.destroy.profile2.2/stderr.expect
M   clitest/test-data/output/TestProfileInProfile/profiles.destroy.profile2/stderr.expect
M   clitest/test-data/output/TestSubnetCli/subnets.destroy.john.3/stderr.expect
M   clitest/test-data/output/TestUnknownBootEnvRerender/contents.destroy.fred.2/stderr.expect
M   clitest/test-data/output/TestUnknownBootEnvRerender/contents.destroy.fred.2/stdout.expect
M   clitest/test-data/output/TestUnknownBootEnvRerender/contents.destroy.fred/stderr.expect
M   clitest/test-data/output/TestUnknownBootEnvRerender/contents.destroy.fred/stdout.expect
M   clitest/test-data/output/TestUnknownBootEnvRerender/files.static.pxelinux.cfg/default.5/stdout.expect
M   datastack/index/index.go
M   datastack/stack.go
M   frontend/actions.go
M   frontend/bootenvs.go
M   frontend/endpoint.go
M   frontend/endpoints.go
M   frontend/frontend.go
M   frontend/info.go
M   frontend/jobs.go
M   frontend/machines.go
M   frontend/meta.go
M   frontend/params.go
M   frontend/pools.go
M   frontend/tasks.go
M   frontend/users.go
M   frontend/version_sets.go

commit ac592cf6af794f20a85855907d2f44dc9e3b4c04
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Jul 20 09:54:46 2020 -0500

    refactor(manager): rework datastore to not mingle datastack objects

    This reworks the datastack objects from the main datastack.  This
    uses a merge of data on read.

M   backend/endpoint_manager.go
M   backend/requestTracker.go
M   datastack/endpoint_stack.go
M   datastack/stack.go
M   datastack/streamingSyncActive.go
M   datastack/streamingSync_test.go
M   datastack/wal.go
M   frontend/debug.go
M   frontend/system.go

commit 04e2e4fe5fb0c38cfed392c1fef86a603d220b17
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Jul 27 12:37:01 2020 -0500

    feat(waltool): Merge dr-backup into walfsck, making it dr-waltool.

    Along the way, rewrite walfsck to use a nice CLI interface with
    the ability to make it moduilar and add extra help as needed.

D   cmds/dr-backup/main.go
D   cmds/dr-humanize/main.go
A   cmds/dr-waltool/waltool.go
D   cmds/walfsck/walfsck.go
M   go.mod
M   go.sum
M   pacman/PKGBUILD
M   tools/build.sh

commit 84c85d1f9f346263d9da520baf6c15a0077f8305
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Jul 27 10:31:33 2020 -0500

    fix(dhcp): Lower log priority of packets from unconfigured interfaces.

    They don't need to be debug, as at that point they tend to overwhelm
    other, more desired logging if they are present at all.  Lower their
    logging to trace.

M   midlayer/dhcp.go

commit c27c2d12168dbb90018bbb76732225d089bb41be
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Wed Jul 22 12:52:32 2020 -0500

    perf(jobPurge): Speed up certain Machine and Job index operations.

    A performance trace from David Neal shows that the purgeJobs function
    was taking an excessive amount of time to determine what jobs to
    remove, accounting for around 20% of the total CPU time eaten by a
    perf trace that also included a content pack reload.  Closer analysis
    determined that half of that time was taken up by repeatedly
    converting UUIDs from theior native byte array format to a printable
    string for index comparison purposes.  Since they are byte arrays
    natively, we can just use the native byte array comparison and
    equality testing instead.

    Go ahead and make this change for every index operation that deals
    with UUIDs, since they were all doing string-based comparisons.

    Overall, the job purge work was unneeded in any case, since David has
    both of the purge parameters set to "never".  We now detect that case
    and avoid querying the Job index at all if true.

M   backend/jobs.go
M   backend/machines.go

commit 72a7e3456d0ba7219ecb73e12aebaa14949b8f32
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Tue Jul 21 17:10:36 2020 -0500

    fix(manager): AddEndpoint should return endpoint object on success

M   frontend/plugins.go

commit c8f14462f1b0abd878b5d014cd993b90b231e47c
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Tue Jul 21 12:48:41 2020 -0500

    fix(dhcp): Properly handle lease requested addresses in DISCOVER

    We were not properly ignoring the lease requested address in the
    DISCOVER codepath when there was conflicting non-expired lease with
    the address being requested, leading to a DISCOVER -> OFFER -> REQUEST
    -> NAK loop.  Fix it by noticing the situation and zeroing out the
    requested address, which will cause us to allocate a new address.

M   backend/dhcpUtils.go
M   backend/dhcpUtils_test.go

End of Note