This repository was archived by the owner on Nov 24, 2025. It is now read-only.
Add ORT/atstccfg Deterministic Config Generation#4557
Merged
dneuman64 merged 5 commits intoapache:masterfrom May 26, 2020
Merged
Add ORT/atstccfg Deterministic Config Generation#4557dneuman64 merged 5 commits intoapache:masterfrom
dneuman64 merged 5 commits intoapache:masterfrom
Conversation
Adds a header to the multipart file, with the line comment syntax of the file (if it has one). This lets ORT safely strip line comments with times for diffing.
Removes TCCfg from GetAllConfigs, making the function Pure, which makes it possible/easier to unit test.
b5323b6 to
ddd2223
Compare
alficles
approved these changes
May 5, 2020
Contributor
alficles
left a comment
There was a problem hiding this comment.
There's a lot of changes here, but it's really just a lot of the same change. There are some oddities, like the hard-coded boundary, but I don't see a great way around it. If we document the atstccfg interface, this has implications for that, but it's not currently documented, so there's nothing to update.
Looks good to me.
| // Note! if this file is ever changed to have multi-line comments, LineCommentLogsDotXML will have to be changed to the empty string. | ||
| hdrComment := GenericHeaderComment(profileName, toToolName, toURL) | ||
| hdrComment = strings.Replace(hdrComment, `# `, ``, -1) | ||
| hdrComment = strings.Replace(hdrComment, "\n", ``, -1) |
Contributor
There was a problem hiding this comment.
This should probably just replace # with <!-- and \n with -->\n? That would make it at least work in the future if someone returns a multiline comment. This works, though, doesn't change current behaviour, and won't break in the future. This is fine, though.
Contributor
|
Good enough for Chris, good enough for me 👍 |
rob05c
added a commit
to rob05c/trafficcontrol
that referenced
this pull request
Sep 17, 2020
* Make ORT gen deterministic * Add ORT/atstccfg Line-Comment header Adds a header to the multipart file, with the line comment syntax of the file (if it has one). This lets ORT safely strip line comments with times for diffing. * Remove ORT/atstccfg unnecessary io param Removes TCCfg from GetAllConfigs, making the function Pure, which makes it possible/easier to unit test. * Change ORT/atstccfg magic string to const * Add ORT/atstccfg unit test for determinism (cherry picked from commit d74de45)
rawlinp
pushed a commit
that referenced
this pull request
Sep 18, 2020
* Make ORT gen deterministic * Add ORT/atstccfg Line-Comment header Adds a header to the multipart file, with the line comment syntax of the file (if it has one). This lets ORT safely strip line comments with times for diffing. * Remove ORT/atstccfg unnecessary io param Removes TCCfg from GetAllConfigs, making the function Pure, which makes it possible/easier to unit test. * Change ORT/atstccfg magic string to const * Add ORT/atstccfg unit test for determinism (cherry picked from commit d74de45)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This changes ORT config gen to be deterministic. Configs should always be identical, except for the timestamp in the comment header.
This should make future changes much safer and easier to identify, easier to identify bugs, and just easier and safer to diff configs to see changes in general. With deterministic gen, diffing should be as simple as a line diff, e.g. the POSIX
diffcommand.Includes tests. No docs, no changelog, no documented interface change (we don't document config order).
Which Traffic Control components are affected by this PR?
What is the best way to verify this PR?
Run ORT and/or it's helper atstccfg multiple times, and verify the output files are identical except for the comment header timestamp.
If this is a bug fix, what versions of Traffic Control are affected?
Not a bug fix.
The following criteria are ALL met by this PR
Additional Information