Project

General

Profile

Actions

Feature #2964

closed

infoedit: configuration editor

Added by Junxiao Shi over 9 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Integration Tests
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
3.00 h

Description

Develop infoedit, a programmatic INFO-format configuration file editor for use in IntegrationTests.

Background

Many scenario requires editing the NFD configuration file.
There are two approaches:

  • Embed a complete NFD configuration file in the scenario code.
    • Benefit: The complete configuration file is visible.
    • Drawback: It's not obvious what are the significant changes that differ from the default configuration.
    • Drawback: When NFD configuration file introduces a backwards-incompatible change, scenarios designed in this way will be broken.
  • Use an awk or sed script to modify the default configuration file.
    • Benefit: It's easy to see what changes are needed.
    • Drawback: To perform a complex modification, the script gets tricky and becomes unreadable.
    • Drawback: Neither awk nor sed understands INFO format, so the script isn't robust to formatting changes.

Feature

This feature is to develop infoedit, a command line utility that programmatically edits a configuration file.

Command line options:

  • -f file: specifies a file to edit
  • -s path: specifies a property-tree path to modify
  • -v value: used with -s path, sets the value at the path
  • -d path: deletes all subtrees matching the path
  • -a path: adds a subtree at the path; the subtree is read from stdin
  • -r path: replaces a subtree at the path; equivalent to -d path followed by -a path

Every invocation performs one edit.
The file is modified in place.
To perform multiple edits, invoke the utility multiple times on the same file.

Sample command lines:

./infoedit -f nfd.conf -s general.user -v ndn.user
./infoedit -f nfd.conf -s tables.strategy_choice./site -v /localhost/nfd/strategy/broadcast
./infoedit -f nfd.conf -d tables.strategy_choice./
./infoedit -f nfd.conf -d authorizations
./infoedit -f nfd.conf -a rib.localhost_security <<<EOT
  trust-anchor
  {
    type any
  }
EOT

Placement

infoedit design is tailored to integration tests.
It should live in integration-tests repository, and compiled in a step of install_apps.py.


Related issues 2 (0 open2 closed)

Blocks NFD - Feature #2201: Remote prefix registration test scenarioClosedYanbiao Li

Actions
Blocks NFD - Feature #3387: infoedit: install from GitHubClosedJunxiao Shi

Actions
Actions

Also available in: Atom PDF