-- IllyaShapoval - 11-June-2010

Commit new metadata to the Ariadne system

This applies only to the following projects: Gauss, Boole, Moore, Brunel, DaVinci. All the rest are not (yet) tracked by Ariadne. Essentially, what has to be done in this step is an insertion into Ariadne of a new project version and of its all relationships to other Ariadne metadata entities that it has to have. The compatibility information has to be provided by the project release requestor!

Below the most frequent use cases are listed:

  1. Adding an application version, entirely INCOMPATIBLE with everything:
    The simplest case is adding a new application version, which is incompatible with everything known by that time (all Data/Reco-types and CondDB tags). See below the command line on an example of Brunel vXrY:
          AriadneAdmin.py --add-node "{'type': 'application', 'name': 'Brunel', 'version': 'vXrY'}"
    The latter command line will add a standalone 'application' node to the knowledge graph of the Ariadne system which, in essence, will not be related to any existent Ariadne nodes.
  2. Adding an application version, entirely COMPATIBLE with another application version:
    If, instead, a new application version has to inherit all relationships from an existent application version (which is what is wanted in most of the cases) the following command line will do the job:
          AriadneAdmin.py --add-node "{'type': 'application', 'name': 'Brunel', 'version': 'vXrY'}" --base "{'type': 'application', 'name': 'Brunel', 'version': 'vXrZ'}"
    The vXrZ version must be declared by the project release requester in the corresponding Savannah task.
  3. Adding an application version, partially COMPATIBLE with another application version:
    The most tricky use case is when one of the following takes place:
  • A new application version has to inherit all relationships from a different node but some of them. In this case one has to inherit all of the relationships and then remove explicitly unneeded ones:
             # inherit all relationships
          AriadneAdmin.py --add-node "{'type': 'application', 'name': 'Brunel', 'version': 'vXrY'}" --base "{'type': 'application', 'name': 'Brunel', 'version': 'vXrZ'}"
             # remove the relationship between the nodes specified (repeat the procedure for each relationship that is not needed)
          AriadneAdmin.py --cut-thread  "{'type': 'application', 'name': 'Brunel', 'version': 'vXrY'}--{whatever_node_specification}"
  • A new application version has to get only few relationships:
            # create new application version node together with a relationship with a different node (repeat the procedure for each relationship that is needed)
         AriadneAdmin.py --add-thread "{'type': 'application', 'name': 'Brunel', 'version': 'vXrY'}--{whatever_node_specification}"   
    In all the above mentioned examples {whatever_node_specification} can be any of the following:
          {'type': 'application', 'name': 'ApplicationName', 'version': 'ApplicationVersion'}
          {'type': 'tag', 'partition': 'PartitionName', 'name': 'TagName', 'release_date': 'ReleaseDate'}  # 'ReleaseDate' has the form of YYYYMMDD
          {'type': 'Type', 'name': 'TypeName'}  # 'Type' can be 'detector_type', 'reco_type' or 'sim_type' (e.g., {'type': 'detector_type', 'name': '2012'})
    Tip, idea It is usually useful to add a -d option to all the command lines above to see what exactly the tool is performing. For the full list of feature see AriadneAdmin.py -h.
Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2013-06-11 - IllyaShapoval
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback