Repository navigation
[uss_qualifier] Deconflict DSS entity test IDs - #1814
Open
BenjaminPelletier wants to merge 1 commit into
Open
BenjaminPelletier wants to merge 1 commit into
BenjaminPelletier wants to merge 1 commit into
Conversation
This branch has not been deployed
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
One reason f3548_21 can't currently parallelize invocations to the dss_probing test suite is that the special DSS entity IDs used for the tests are constant with regard to the test using them. This is important for traceability of orphaned entities, but it prevents parallelization since multiple parallel scenarios will try to use the same entity ID. This PR fixes that problem by adding an instance index to the entity test ID format, creating an IDGeneratorProviderResource to provide IDGeneratorResource with deconflicted instance_indexes, and passing those deconflicted IDGeneratorResources to dss_probing.
Backwards compatibility is maintained (and actually expanded) by allowing the user to specify the singular id_generator, the multiple id_generator_provider, or neither, with the default behavior to build a provider from an automatically-built base id_generator.
I verified this behavior by running f3548_self_contained and examining the subscription ID in event 7 of scenarios.astm.utm.dss.OIRExplicitSubHandling (the first scenario of dss_probing) for each of the primary-DSS invocations. The relevant character in the UUID indeed incremented by one in the second invocation, which deconflicts it from the first invocation.
Future work should move the IDGenerator and decode_id.py from prober to monitorlib (this is illustrating how old this portion of the codebase is).