DUNE-DAQ / DUNE-DAQ/confmodel

[Medium/Large Impact Change]: Generalisation of command line parameters for applications

Open
#91 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
1
Forks
2
Avg merge
7h 30m
Merged PRs (30d)
3

Description

Description

The current configuration of the Connectivity service is a bit clunky as it require a double definition of the port of the connectivity service. Specifically:

  • All elements in the DAQ get their port from the connectivity_service relationship of the session (link ). Internally this objects contains a Service that specifies the port.
  • For a local configuration, an infrastructure application is defined that executes a command to spawn a ConnectionService instance via gunicorn. The catch is that the command is hardcoded and therefore, in order to make the port dynamic, an environmental variable is used to define the port in the command, see daqsystemtest.

This duplication is hard to maintain.

We should generalise the access to the command line parameter with a virtual function. The function specification of the ConnectionService should return the right command and take the port from the service that it contains already and it should not require the definition of an additional env variable.

Related issues and PRs
None
Impact radius

Medium

Impact on developers and users

This is a small change in the API of confmodel::Application. It will have impacts on drunc and maybe in appmodel.
EHN1daqconfigs should be affected. Only daqsystemtest will need to be updated to make the configuration easier

Useful coordination

No important coordination between WGs will be necessary, this is CCM internal.

Testing suggestions and/or changes needed in testing

Integration tests are already validating this process.

Anything else?

No response

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with confmodel/dunedaq.schema.xml around the connectivity_service relationship and the confmodel::Application API described in the issue. Compare the command in daqsystemtest/config/daqsystemtest/ccm.data.xml with the affected drunc and appmodel usage. Done means the command obtains the port from the contained Service without an additional environment variable and the existing integration tests still pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.