Wakoma / nimble

The nimble. An open source, rapidly deployable, wireless mesh network.
CERN Open Hardware Licence Version 2 - Strongly Reciprocal
66 stars 10 forks source link

Split out orchestration #79

Closed julianstirling closed 5 months ago

julianstirling commented 5 months ago

In this PR we are splitting out the generic parts of the orchestration and server into a new generic repository called CadOrchestrator

Closes #63, closes #72

julianstirling commented 5 months ago

Hi @jmwright

This is the first pass at splitting out most of the orchestration. There is more generalisation to do. And there are especially improvements for how we specify assemblies and sub-assemblies.

As much ass possible has been moved into a new settings file CadOrchestration.yml. There is also an "OrchestratorConfigOptions.json" that sets what the server asks. This has to be generated. Currently this is a bit ad hoc, but to improve it I think we really need to move to a framework for the server.

Anyway we are back to feature parity with where we were at the start of the merge. I think having the CadOrchestrator will sharpen the mind to trying to make things less specific to the nimble.

Now we have a first version, I will start to do Merge requests on the Cad Orchestrator repository too.


Testing this branch.

The CI tests the static generation generate.md has been updated with new methods.

For the server you should be able to:

jmwright commented 5 months ago

@julianstirling Where is gen_nimble_conf_options mentioned in your description above? I don't see it on this branch anywhere.

julianstirling commented 5 months ago

Hi @jmwright , its in nimble_orchestration. It is added to the path as an entrypoint when you run setup.py. You probably need to re-run setup even if you had run it before with -e.

I think that the actual module and folder structure after this split still needs work. But I thought that the work should happen after this PR or it will start becoming unreviewable

jmwright commented 5 months ago

Ok, I got that to work and the server to run. The original server filtered out any hardware that did not have the HeightUnits field set as this will break the code because the device needs to have this data. The current server seems to have removed that filter and so it is very easy to get a non-working config. Adding the HeightUnits filter back would be a quick way to fix this until #82 is implemented to fix it properly.

julianstirling commented 5 months ago

Yeah non-working cnfigs are a big problem in this branch. I can add that filter in in this PR or start working on #82 straight after merge. Up to you

jmwright commented 5 months ago

@julianstirling If #82 is going to happen fairly quickly after this merge, I would not divert time into putting my suggested bandaid on this PR.