Otherwise, two different compute remotes that happen to take the same
input would use the same compute state url. Which seems wrong.
| otherwise = ingestwith $
ingestAdd' nullMeterUpdate (Just ld) (Just stateurlk)
where
- stateurl = Remote.Compute.computeStateUrl state outputfile
+ stateurl = Remote.Compute.computeStateUrl r state outputfile
stateurlk = fromUrl stateurl Nothing True
outputfile' = tmpdir </> outputfile
ld = LockedDown ldc $ KeySource
in go c' rest
{- A compute: url for a given output file of a computation. -}
-computeStateUrl :: ComputeState -> OsPath -> URLString
-computeStateUrl st p =
- "annex-compute:" ++ fromOsPath p ++ "?"
+computeStateUrl :: Remote -> ComputeState -> OsPath -> URLString
+computeStateUrl r st p =
+ "annex-compute:" ++ fromUUID (uuid r) ++ "/" ++ fromOsPath p ++ "?"
++ decodeBS (formatComputeState' Nothing st')
where
-- Omit computeOutputs, so this gives the same result whether