Closed bassosimone closed 4 weeks ago
We introduced the executor, even though we didn't name it explicitly. See https://github.com/ooni/probe-cli/pull/1621 for details. Compare to what we originally thought, here's what ended up being different:
ExperimentMeasurer
that is richer input aware executes the smallest possible unit, but the framework around it is still executing on the OONI-Run-v2-like data structure because that is more convenient as it fits better with how the code is currently written.dnscheck
to show us that it is possible to have richer-input experiments. We'll gradually migrate also other experiments.The latter design choice, in particular, reduced friction for integrating with miniooni
and ooniprobe
a lot.
In https://github.com/ooni/ooni.org/issues/1295, I suggested to take the following JSON as the smallest executable unit:
This issue is about writing (well, most likely, refactoring) code to make it possible. A good (but minor) question to ask is whether the structure should be as indicated above, or whether we should instead use:
The latter would probably map more cleanly with how we actually execute experiments. However, it would probably be more tidy from the logical model point of view to have an executor that takes in input a list of the former structure rather than one that takes in input a single instance of the latter structure. As a minor, but useful improvement, using the former structure would allow us to get rid of the annoying issue (originating from Measurement Kit) that to execute an input less test you need to supply it as input
[]string{""}
, otherwise it would not run.