Refactor GoogleBatchTaskHandler.newSubmitRequest for reduced complexity #6687
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.
Summary
Refactors the
newSubmitRequestmethod inGoogleBatchTaskHandlerfrom a monolithic ~250-line method into smaller, focused helper methods.Before
taskSpecin nested calls)After
buildComputeResource()buildSpotRetryPolicy()buildNetworkPolicy()buildTaskGroup()buildContainerRunnable()buildInstancePolicyOrTemplate()buildAllocationPolicy()buildScratchVolume()Key Design Decisions
Static result classes (
AllocationPolicyResult,InstancePolicyResult) instead of output parameters or tuples - provides named properties and clear data flowExplicit volume handling - scratch volume requirement is returned via result class rather than modifying
taskSpecas a side effectProtected visibility - all helpers are
protectedto allow subclassing/extensionBenefits
Test Plan
GoogleBatchTaskHandlerTesttests passwhereblocks:buildComputeResource- 5 test cases for CPU/memory/disk combinationsbuildSpotRetryPolicy- verifies retry action and exit codesbuildNetworkPolicy- 5 test cases for network/subnet/private combinationsbuildTaskGroup- verifies task spec inclusionbuildScratchVolume- verifies device name and mount pathbuildContainerRunnable- verifies container options, mounts, environmentbuildContainerRunnablewith fusion - verifies--privilegedflag