commit 3265184510c743649f3df46b1de9f962e0543f8e
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Sat Jun 13 16:45:27 2020 -0500
build: update to v4.3.1 refs
M go.mod
M go.sum
commit ab29a14744d09f1808d64eb008be555490a383f0
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Fri Jun 12 15:42:09 2020 -0500
fix(dhcp): Fix a deadlock triggered by high DHCP traffic.
When checking to see if a read would deadlock, missed a case where we
could have crossed read/write dependencies that lead to a deadlock in
unblockRunnable. Add code to handle that case and a unit test to
verify that it works properly.
The Address and ActiveAddress subnet indexes have never worked
properly. This updates the index definitions to allow easy searching
for subnets that have cover addresses and active lease range
addresses. It has a side effect of making the Address and
ActiveAddress indexex unordered, but there aren't good ordering
semantics for picking what is basically an address match in any case.
Lease validation on a save was being stupid and checking every lease
one by one to see if there were conflicting strategy/token settings,
when there are (now) perfectly good indexes that we can query for that
and avoid having to touch every lease during the transaction.
M backend/lease.go
M backend/subnet.go
M clitest/test-data/output/TestCorePieces/subnets.indexes/stdout.expect
M go.mod
M go.sum
M transact/tx.go
M transact/tx_test.go
commit 9940803ae4b978e3023b296a43aa60c42f3782d8
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Thu Jun 11 08:47:06 2020 -0500
perf(content): Save content bundles as JSON instead of YAML.
It turns out that the overhead of serializing an uploaded and
validated content bundle of significant size can account for around a
quarter to a third of the time it takes a drpcli contents upload call
to finish -- on an internal bundle for one of our larger customers, a
perf trace showed that marshalling to YAML took around 45 seconds of
CPU times on a 1 megabyte content bundle. Switching to JSON took 6
seconds of CPU time, with room for additional optimization.
M datastack/content.go
commit ccee8b6d1a62c5c05eda38c27cf669697699b0e9
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Tue Jun 9 19:01:48 2020 -0500
fix(whoami): Pull in client-side updates to machine fingerprints.
This pulls in the client-side changes that ignore DMI info from
machines running under a hypervisor
M go.mod
M go.sum
commit 5d3fb2acad19f9d4acae474ea9a30c4c0940739a
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Tue Jun 9 18:20:01 2020 -0500
fix(packageRepos): Undo bootenvs and local install sources confusion
Yeah, so it turns out I forgot what the difference between a bootenv
and a package install source was and how to properly calculate them.
Along the way broke the test lab of our largest customer. Oops.
M backend/bootenv.go
M backend/renderData.go
commit d89d92085e6a46a55b54c0979be41cb90c117d71
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Tue Jun 9 10:16:43 2020 -0500
fix(dhcp): DHCP reservations and conflicting IP addresses could cause loop
If you have a DHCP reservation that conflicts with an invalidated
lease (due to IP address conflicts, address space exhaustion,
whatever), that can cause the DHCP server to enter a DISCOVER ->
REQUEST -> NAK or DISCOVER -> REQUEST -> OFFER -> DECLINE loop that
quickly chews through and invalidates all the addresses in the subnet.
This breaks that loop by updating the OFFER -> ACK codepath allow
requests where we have a reservation but we know that the reservation
cannot be satisfied due to an existing non-expired Lease for that
address, instead of forcing them to fail with a NAK.
Logging for the case where we cannot hand out a reserved address
during DISCOVER due to the presence of an invalidated lease (and
therefore a signalled IP address conflict) has also been improved.
M backend/dhcpUtils.go
M backend/subnet.go
M midlayer/dhcp.go
commit d3282f1ed296d5f19d7269ced28cb5b68e838a65
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Sat Jun 6 23:46:38 2020 -0500
feat(task-meta): add single-step, stop-at, skip, retry, and error-handlers for tasks
To help with debugging task workflows and handle error recovery, the
system can handle task meta flow controls. This includes:
1. Single Step - pause after every task
2. Stop-at - pause before one of the tasks in the lisst
3. Skip - skip tasks in list
4. Retry - issue a set of retries for named tasks
5. Error-handlers - allow definition of error tasks to run on a task
failure, specified per task
Remaining requested feature - workflow timmeout that will reboot
machine if workflow doesn't complete within a time frame. This
needs some of the pool plugin work.
M backend/dataTracker.go
M backend/jobs.go
M backend/machines.go
M clitest/tasks_test.go
M clitest/test-data/output/TestAuth/info.get/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/TestBootEnvLinks/machines.create.705b3b81d0728cad275b917c9d6c482f/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/TestContentsFunctionalCli/machines.addprofile.3e7031fe-3062-45f1-835c-92541bc9cbd3.p1-prof/stdout.expect
M clitest/test-data/output/TestContentsFunctionalCli/machines.create.7df3aabd2b2a9aa089f7c54b01060cb9/stdout.expect
M clitest/test-data/output/TestJobCli/machines.create.32cb4c9864de6e606c2e84397f300c18/stdout.expect
M clitest/test-data/output/TestJobCli/machines.show.3e7031fe-3062-45f1-835c-92541bc9cbd3/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.addprofile.3e7031fe-3062-45f1-835c-92541bc9cbd3.jean/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.addprofile.3e7031fe-3062-45f1-835c-92541bc9cbd3.jill/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.create.2912607b00fab33ffd503f06c4ee28b8.3/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.create.2912607b00fab33ffd503f06c4ee28b8/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.create.cfb21459eb66dff02c687e0bdfed8ab9/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.list.2/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.list.4/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.list.Address=192.168.100.110/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.list.BootEnv=local/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.list.Name=john/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.list.Runnable=true/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.list.Uuid=3e7031fe-3062-45f1-835c-92541bc9cbd3/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.removeprofile.3e7031fe-3062-45f1-835c-92541bc9cbd3.jean/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.removeprofile.3e7031fe-3062-45f1-835c-92541bc9cbd3.jill/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.removeprofile.3e7031fe-3062-45f1-835c-92541bc9cbd3.justine/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.show.3e7031fe-3062-45f1-835c-92541bc9cbd3.2/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.show.3e7031fe-3062-45f1-835c-92541bc9cbd3.3/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.show.3e7031fe-3062-45f1-835c-92541bc9cbd3.4/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.show.3e7031fe-3062-45f1-835c-92541bc9cbd3.5/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.show.3e7031fe-3062-45f1-835c-92541bc9cbd3/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.show.Key.3e7031fe-3062-45f1-835c-92541bc9cbd3/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.show.Name.john/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.show.Uuid.3e7031fe-3062-45f1-835c-92541bc9cbd3/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.stage.3e7031fe-3062-45f1-835c-92541bc9cbd3.c23ab3adaec8ca15ff3ffd0971be6152.2/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.stage.3e7031fe-3062-45f1-835c-92541bc9cbd3.c23ab3adaec8ca15ff3ffd0971be6152/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.stage.3e7031fe-3062-45f1-835c-92541bc9cbd3.stage1/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.stage.3e7031fe-3062-45f1-835c-92541bc9cbd3.stage2.c23ab3adaec8ca15ff3ffd0971be6152.2/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.stage.3e7031fe-3062-45f1-835c-92541bc9cbd3.stage2.c23ab3adaec8ca15ff3ffd0971be6152/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.15ef88524f82284ee914fdb15df5a1ef/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.21522342df50227b4f678203d499d51a/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.5372645be509d5c9bddcfa65cf87f668/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.workflow.Name.john.Workflow1Good/stdout.expect
M clitest/test-data/output/TestMachineCli/machines.workflow.Name.john/stdout.expect
M clitest/test-data/output/TestMachineFileImport/machines.create.test-data/base/machines/create.json/stdout.expect
M clitest/test-data/output/TestMachineFileImport/machines.create.test-data/base/machines/create.yaml/stdout.expect
M clitest/test-data/output/TestMachineFileImport/machines.update.a2d9b43a-b545-464b-8bc4-088daa7fa7c4.test-data/base/machines/update.yaml/stdout.expect
M clitest/test-data/output/TestMachineFileImport/machines.update.b2d9b43a-b545-464b-8bc4-088daa7fa7c4.test-data/base/machines/update.json/stdout.expect
M clitest/test-data/output/TestMachineLocked/machines.create.d9f0531fa4024e3ff7769eb17cfc54f5/stdout.expect
M clitest/test-data/output/TestMachineLocked/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.690238bdc309eb5c935bd1ef198c333a/stdout.expect
M clitest/test-data/output/TestMachineLocked/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.8262863ab5bf8686ee11f596d6750a78.2/stdout.expect
M clitest/test-data/output/TestMachineLocked/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.c40dfd7560a930cb472f04d5f0870f26.2/stdout.expect
M clitest/test-data/output/TestMachineLocked/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.c40dfd7560a930cb472f04d5f0870f26.3/stdout.expect
M clitest/test-data/output/TestMachineLocked/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.c40dfd7560a930cb472f04d5f0870f26/stdout.expect
M clitest/test-data/output/TestMachineLocked/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.cf4c104a7c6130db6cfbff841bfdf2d2.2/stdout.expect
M clitest/test-data/output/TestMachineLocked/machines.update.3e7031fe-3062-45f1-835c-92541bc9cbd3.cf4c104a7c6130db6cfbff841bfdf2d2/stdout.expect
M clitest/test-data/output/TestMachineParamFiltering/machines.create.82199705e9583857ab4b2133215d536a/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
M clitest/test-data/output/TestMachineParamFiltering/machines.update.Name.bob.add360d3da0026952990148998b3eca1/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.create.2912607b00fab33ffd503f06c4ee28b8/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.tasks.add.3e7031fe-3062-45f1-835c-92541bc9cbd3.at.0.task4.task3.task2.task1.2/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.tasks.add.3e7031fe-3062-45f1-835c-92541bc9cbd3.at.0.task4.task3.task2.task1/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.tasks.add.3e7031fe-3062-45f1-835c-92541bc9cbd3.task1.task2.task3.task4.2/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.tasks.add.3e7031fe-3062-45f1-835c-92541bc9cbd3.task1.task2.task3.task4.3/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.tasks.add.3e7031fe-3062-45f1-835c-92541bc9cbd3.task1.task2.task3.task4/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.tasks.del.3e7031fe-3062-45f1-835c-92541bc9cbd3.task1.task1/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.tasks.del.3e7031fe-3062-45f1-835c-92541bc9cbd3.task1.task3/stdout.expect
M clitest/test-data/output/TestMachineTaskCli/machines.tasks.del.3e7031fe-3062-45f1-835c-92541bc9cbd3.task2.task4/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/TestParamsDefaultGet/machines.create.2912607b00fab33ffd503f06c4ee28b8/stdout.expect
M clitest/test-data/output/TestProcessJobsCli/machines.create.2912607b00fab33ffd503f06c4ee28b8/stdout.expect
M clitest/test-data/output/TestProcessJobsCli/machines.show.3e7031fe-3062-45f1-835c-92541bc9cbd3/stdout.expect
M clitest/test-data/output/TestProfileInProfile/machines.create.58feacab1055a30ea9f8579a0e387671/stdout.expect
M clitest/test-data/output/TestProfileInProfile/machines.removeprofile.Name.machine1.profile2/stdout.expect
M clitest/test-data/output/TestProfileInProfile/machines.update.Name.machine1.4e29ca2dbfa5158cfd5b31e6aabfb19a/stdout.expect
A clitest/test-data/output/TestTaskMeta/contents.destroy.meta1/stdout.expect
A clitest/test-data/output/TestTaskMeta/contents.upload.139d7595ea08bdfb0663050c93f5d1e6/stdout.expect
A clitest/test-data/output/TestTaskMeta/contents.upload.1be6ce8af0919719451f42bc958dc7f5/stderr.expect
A clitest/test-data/output/TestTaskMeta/contents.upload.1be6ce8af0919719451f42bc958dc7f5/stdout.expect
A clitest/test-data/output/TestTaskMeta/contents.upload.3ce2d97f7f61c0bb1b90d04d79676db6/stdout.expect
A clitest/test-data/output/TestTaskMeta/contents.upload.6eb258990000bc71c0c1e95affc6ea1e/stderr.expect
A clitest/test-data/output/TestTaskMeta/contents.upload.a7b360a945a3c02f151fb1e35ad9c99a/stderr.expect
A clitest/test-data/output/TestTaskMeta/contents.upload.ba5fc91422dd8b87c37cc503ef7c9524/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.create.bob.d90828cf92ed81d8c08dc0f9239df62e/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.deletejobs.Name.bob/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.destroy.Name.bob/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.10/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.11/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.12/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.13/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.2/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.3/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.4/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.5/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.6/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.7/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.8/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55.9/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.processjobs.Name.bob.b98773fd65e6e32eee9e8a357b6a3e55/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.remove.Name.bob.param.task-skip/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.remove.Name.bob.param.task-stop-at/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-error-handlers.to.32cd18de5bafad8ac9a3201683f24d23/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-error-handlers.to.42f092445325301a630873183941d932/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-error-handlers.to.4b98aecd3f3aded2165aabb2c70d3dd4/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-error-handlers.to.7045611fdfb7220bccd992adff1ccb3e/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-error-handlers.to.f066ad4a0d1f3705f3ef9e8f00919279/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-retry.to.88d8df5ca555055ad25497904dd658a6/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-retry.to.fbdb121171b664e592cfbad5d1971985/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-single-step.to.false/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-single-step.to.true/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-skip.to.097b5eecd2fe12c68d5a056d2ccc3ec7/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-skip.to.d250c625ff366c143ae16798a9a76679/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-stop-at.to.0e10ab6e50176fc131d4e3df574c884e/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.task-stop-at.to.439cd56d4b824e987e5e35e84bb21c8f/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.test-fail.to.yes.2/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.test-fail.to.yes.3/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.test-fail.to.yes.4/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.set.Name.bob.param.test-fail.to.yes/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.10/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.11/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.12/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.13/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.2/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.3/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.4/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.5/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.6/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.7/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.8/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934.9/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.show.Name.bob.2426575a0555a2707708835b60259934/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.084200ddd82e9c237eec4b2a0e168988/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401.2/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401.3/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401.4/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401.5/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401.6/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401.7/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401.8/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401.9/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.update.Name.bob.ebf43067435a6f4672ccb87d65259401/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.updates.Name.bob.084200ddd82e9c237eec4b2a0e168988/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w-reset.2426575a0555a2707708835b60259934.2/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w-reset.2426575a0555a2707708835b60259934.3/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w-reset.2426575a0555a2707708835b60259934.4/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w-reset.2426575a0555a2707708835b60259934.5/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w-reset.2426575a0555a2707708835b60259934.6/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w-reset.2426575a0555a2707708835b60259934.7/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w-reset.2426575a0555a2707708835b60259934/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934.2/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934.3/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934.4/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934.5/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934.6/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934.7/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934.8/stdout.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934/stderr.expect
A clitest/test-data/output/TestTaskMeta/machines.workflow.Name.bob.w1.2426575a0555a2707708835b60259934/stdout.expect
A clitest/test-data/output/TestTemplateCli/templates.exists.john/stdout.expect
A clitest/test-data/output/TestTemplateCli/templates/stderr.expect
A clitest/test-data/output/TestUserCli/users.exists.john/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/TestUserCli/users/stderr.expect
A clitest/test-data/output/TestWorkflowCli/workflows/stderr.expect
M datastack/content.go
M frontend/job_create.go
M go.mod
M go.sum
commit e85ec02c4eb444b2df5c76d794911c41fee06b63
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Sat Jun 6 11:53:06 2020 -0500
build: tests before publish.
M .travis.yml
commit 7cc1a98ea1d53a2cc23989716f2974b40ae452fe
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Sat Jun 6 11:35:16 2020 -0500
docs: add BasicStore document to published pieces
A cmds/dr-docs/dr-docs.go
M tools/publish.sh
commit 8ecc710304e3d430f3dd1d8cc33e49545cc563d6
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Fri Jun 5 10:35:00 2020 -0500
feat(centos-8): Add support for centos-8 local and remote installs.
Centos-8 changed their directory layouts on the ISO and in the package
mirrors. This adds support for writing out proper local and remote
repository information, and allows the Repo struct that handles this
internally to have seperate locations for install artifacts (kernels,
initrds, OS specific bootloaders, install images, etc.) vs. the
package archive that should be used for installs.
M backend/bootenv.go
M backend/dataTracker.go
M backend/renderData.go
M clitest/repo_test.go
A clitest/test-data/fake-centos-8-install.yml
M clitest/test-data/output/TestAuth/info.get/stdout.expect
M clitest/test-data/output/TestBootEnvCli/bootenvs/stdout.expect
A clitest/test-data/output/TestRepos/bootenvs.create.test-data/fake-centos-8-install.yml/stdout.expect
A clitest/test-data/output/TestRepos/bootenvs.destroy.fake-centos-8-install/stdout.expect
A clitest/test-data/output/TestRepos/machines.update.c9196b77-deef-4c8e-8130-299b3e3d9a10.f2e3b72ccc2f5352e551f32f996344d4.2/stdout.expect
A clitest/test-data/output/TestRepos/machines.update.c9196b77-deef-4c8e-8130-299b3e3d9a10.f2e3b72ccc2f5352e551f32f996344d4/stdout.expect
A clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.10/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.5/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.6/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.7/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.8/stdout.expect
A clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.9/stdout.expect
A clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.10/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.5/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.6/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.7/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.8/stdout.expect
A clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.9/stdout.expect
A clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.10/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.5/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.6/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.7/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.8/stdout.expect
A clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.9/stdout.expect
A clitest/test-data/output/TestRepos/params.create.24d2f1eb2835c781347203019645c6fb/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
commit c9b254af742db5344e6248f3eda2d81ba1f6ffa6
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Thu Jun 4 13:04:15 2020 -0500
fix(tests): fix purgelocal cli test
M clitest/test-data/output/TestBootEnvCli/bootenvs/stdout.expect
commit b9f830a635342a29c922d0a18097e01fc6082215
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Thu Jun 4 11:52:13 2020 -0500
build: update to v4.3.0 tags
M go.mod
M go.sum
commit 7f16b681ddef23b5b1aea5b4dff6887dc6117123
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Wed Jun 3 11:54:30 2020 -0500
perf(frontend): Build and test with the jsoniter tag enabled.
It turns out that Gin has the ability to switch between using the
stdlib json for encoding and using jsoniter for encoding. We already
use and are satisfied with jsoniter in other places for encoding,
so use it in the frontend as well for speed and memory consumption
wins.
All unit tests appear to pass, so this should be a safe merge.
M clitest/fixInteractive.sh
M tools/build-one.sh
M tools/test.sh
commit ffc178f7fa9f980cadd307f4a1b4c47445895cea
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Fri May 29 06:31:58 2020 -0500
fix(localInstall): Cleanly seperate local vs. remote install files.
We were running into an issue where centos-7 installs were breaking
after updating centos-7 support to 2004. The root cause turned out be
be the blanket redirect to a remote repo causing the install process
to interleave files between local install files and remote install
files, which was causing the centos installs to fail when a remote
update blob was wanting to pull in a file that was not referenced in
the local package repository metadata. To alleviate that issue,
refactor the dynamic FS code to cleanly seperate local repo vs. remote
install repo presence and handling -- if there is a local repo, we
will not do remote redirection at all for any files that should be
present locally.
Along the way, fix several bugs around handling package-repositories,
ISO uploading, and static-lookasides that could result in getting out
of sync in determining when we should handle a file transfer request
locally vs. transparently proxying it vs. reverse-proxying it.
Also add an API endpoint (at DELETE /api/v3/bootenvs/:name/purgeLocal)
that purges all ISO and install trees associated with a specific
bootenv and arch. This can be used to clean up bootenv files that are
no longer needed, and can be used to flip between local fs remote
install for testing purposes.
M backend/bootenv.go
M backend/dataTracker.go
M backend/fs.go
M backend/machines.go
M backend/profiles.go
M backend/renderData.go
M backend/renderData_test.go
M clitest/bootenv_test.go
M clitest/repo_test.go
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/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/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.6/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.8/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.6/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.8/stdout.expect
M datastack/content.go
M frontend/bootenvs.go
M midlayer/static_test.go
M midlayer/tftp.go
commit 01c572d85080154685558e03470948ae3c6c1b6c
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Tue Jun 2 12:17:32 2020 -0500
build: ignore rel_notes directory
M .gitignore
commit 042886c203c5b1ae638ce04a69d02f96ce02f833
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Thu May 28 14:12:09 2020 -0500
fix(wal): Fix a stupid off-by-one error in new WAL code.
When creating a new WAL segment, we set the firstCommit to 0 and
lastCommit to the lastCommit of the current working WAL segment plus
one. However, the validation code expects the values to be equal in
that case, so restarting dr-provision right after creating a new WAL
segment but before writing a transaction into it will cause the
restart to fail. Fix it by fixing the validation function to look for
the correct values instead.
M datastack/wal.go
commit 4048520748efcaa1bf7716eb00f5ef79d40c6f2f
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Wed May 27 13:41:22 2020 -0500
feat(frontend): Ratelimit certian audit entries.
Successful logins with username/passowrd pairs will only generate a
log message once per hour per username/clientIP, and failed auth
attempts with an invalid token will only generate an audit log every
hour per clientIP. Along the way, arrange for token validate errors
to return something meaningful, and discriminate between token
validation failures due to a missing key and token validation failures
due to a malformed token.
In the future, we may add a preference to control how often these log
messages are shown.
M backend/jwt-utils.go
M frontend/frontend.go
M frontend/machines.go
M frontend/system.go
commit e94cd82988beb8866df0ead64161efb56bf8bcdb
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Thu Apr 30 12:25:22 2020 -0500
fix(pluginActions): Plugin output action does not have to be JSON.
THe output of a running plugin response to an action has never been
guaranteed to be JSON, or even something convertible to JSON. Fix
that broken assumption by just converting it to a string if it cannot
be unmarshalled to JSON.
M backend/requestTracker.go
M backend/runningPlugin.go
End of Note