nodl_to_policy repository

Repository Summary

Checkout URI https://github.com/osrf/nodl_to_policy.git
VCS Type git
VCS Version master
Last Updated 2021-08-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
nodl_to_policy 1.0.0

README

nodl_to_policy

License Build status

This repository contains tooling to generate a ROS 2 Access Control Policy from the Node Interface Definition Language (NoDL) description of a ROS system (or that of a specific package), primarily to be used in conjunction with the SROS2 utilities.

Note: This package targets ROS 2 Galactic Geochelone.

Building

  • Clone this repository to a ROS workspace: git clone git@github.com:osrf/nodl_to_policy.git <ws/src>/nodl_to_policy
  • Install required dependencies: rosdep install -yri --from-paths <ws/src> --rosdistro=galactic
  • Build with: colcon build --symlink-install

Usage

CLI

The nodl_to_policy package extends the ROS 2 CLI by adding a nodl_to_policy command, with an associated convert verb. The expected use is as follows:

ros2 nodl_to_policy convert <path-to-NoDL-file (*.nodl.xml)>

Invoking the convert verb as above dumps the resulting access control policy in the console standard output. If desired, this output can be redirected (>) to <output>.policy.xml.

API

The NoDL → policy conversion method simply takes a NoDL description (type: List[nodl.Node]). As such, the conversion API could be used programmatically as follows:

from nodl_to_python.policy import convert_to_policy

# obtain a NoDL description, either through `nodl.parse(<nodl_file_path>)` or otherwise

policy = convert_to_policy(nodl_description)  # type(nodl_description) == List[nodl.Node]

# use policy, and/or output it using `nodl.dump_policy(policy, <output_stream>)`

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).


Repository Summary

Checkout URI https://github.com/osrf/nodl_to_policy.git
VCS Type git
VCS Version master
Last Updated 2021-08-11
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
nodl_to_policy 1.0.0

README

nodl_to_policy

License Build status

This repository contains tooling to generate a ROS 2 Access Control Policy from the Node Interface Definition Language (NoDL) description of a ROS system (or that of a specific package), primarily to be used in conjunction with the SROS2 utilities.

Note: This package targets ROS 2 Galactic Geochelone.

Building

  • Clone this repository to a ROS workspace: git clone git@github.com:osrf/nodl_to_policy.git <ws/src>/nodl_to_policy
  • Install required dependencies: rosdep install -yri --from-paths <ws/src> --rosdistro=galactic
  • Build with: colcon build --symlink-install

Usage

CLI

The nodl_to_policy package extends the ROS 2 CLI by adding a nodl_to_policy command, with an associated convert verb. The expected use is as follows:

ros2 nodl_to_policy convert <path-to-NoDL-file (*.nodl.xml)>

Invoking the convert verb as above dumps the resulting access control policy in the console standard output. If desired, this output can be redirected (>) to <output>.policy.xml.

API

The NoDL → policy conversion method simply takes a NoDL description (type: List[nodl.Node]). As such, the conversion API could be used programmatically as follows:

from nodl_to_python.policy import convert_to_policy

# obtain a NoDL description, either through `nodl.parse(<nodl_file_path>)` or otherwise

policy = convert_to_policy(nodl_description)  # type(nodl_description) == List[nodl.Node]

# use policy, and/or output it using `nodl.dump_policy(policy, <output_stream>)`

CONTRIBUTING

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).