aliasrobotics / aztarna

aztarna, a footprinting tool for robots.
https://aliasrobotics.com
GNU General Public License v3.0
89 stars 27 forks source link

Daemon implementations #36

Closed vmayoral closed 4 years ago

vmayoral commented 4 years ago

This PR builds upon the ideas developed today by @LanderU and @vmayoral and further improves the previous capabilities using ros2cli daemon. Moreover, this PR also aims to capture the ROS 2 abtractions in a more complete set of helper classes (created a new script helper2.py for that purpose).

Some pending items are left as a TODO in the code and should be addressed before merging.

LanderU commented 4 years ago

Working on the implementation, I'll ping you when is ready for review @vmayoral.

LanderU commented 4 years ago

The output is this:

root@alias:/aztarna# aztarna -t ros2 --daemon -d 0
Scanning the network...
Exploring ROS_DOMAIN_ID: 0
Exploring ROS_DOMAIN_ID for topics: 0
Exploring ROS_DOMAIN_ID for services: 0
Nodes: 
    /_ros2cli_daemon_0
         domain: 0
         subscribers: []
         publishers: [Topic(name=/parameter_events
         types=[rcl_interfaces/msg/ParameterEvent])
         Topic(name=/rosout
         types=[rcl_interfaces/msg/Log])]
         services: []
         actionservers: []
         actionclient: []
    /talker
         domain: 0
         subscribers: [Topic(name=/parameter_events
         types=[rcl_interfaces/msg/ParameterEvent])]
         publishers: [Topic(name=/chatter
         types=[std_msgs/msg/String])
         Topic(name=/parameter_events
         types=[rcl_interfaces/msg/ParameterEvent])
         Topic(name=/rosout
         types=[rcl_interfaces/msg/Log])]
         services: [Topic(name=/talker/describe_parameters
         types=[rcl_interfaces/srv/DescribeParameters])
         Topic(name=/talker/get_parameter_types
         types=[rcl_interfaces/srv/GetParameterTypes])
         Topic(name=/talker/get_parameters
         types=[rcl_interfaces/srv/GetParameters])
         Topic(name=/talker/list_parameters
         types=[rcl_interfaces/srv/ListParameters])
         Topic(name=/talker/set_parameters
         types=[rcl_interfaces/srv/SetParameters])
         Topic(name=/talker/set_parameters_atomically
         types=[rcl_interfaces/srv/SetParametersAtomically])]
         actionservers: []
         actionclient: []
    /_ros2cli_daemon_0
         domain: 0
         subscribers: []
         publishers: [Topic(name=/parameter_events
         types=[rcl_interfaces/msg/ParameterEvent])
         Topic(name=/rosout
         types=[rcl_interfaces/msg/Log])]
         services: []
         actionservers: []
         actionclient: []
    /talker
         domain: 0
         subscribers: [Topic(name=/parameter_events
         types=[rcl_interfaces/msg/ParameterEvent])]
         publishers: [Topic(name=/chatter
         types=[std_msgs/msg/String])
         Topic(name=/parameter_events
         types=[rcl_interfaces/msg/ParameterEvent])
         Topic(name=/rosout
         types=[rcl_interfaces/msg/Log])]
         services: [Topic(name=/talker/describe_parameters
         types=[rcl_interfaces/srv/DescribeParameters])
         Topic(name=/talker/get_parameter_types
         types=[rcl_interfaces/srv/GetParameterTypes])
         Topic(name=/talker/get_parameters
         types=[rcl_interfaces/srv/GetParameters])
         Topic(name=/talker/list_parameters
         types=[rcl_interfaces/srv/ListParameters])
         Topic(name=/talker/set_parameters
         types=[rcl_interfaces/srv/SetParameters])
         Topic(name=/talker/set_parameters_atomically
         types=[rcl_interfaces/srv/SetParametersAtomically])]
         actionservers: []
         actionclient: []
Topics: 
    /chatter
         domain: 0
         type: "std_msgs/msg/String"
         publishers: 1
         subscriber: 0
Services: 
    /talker/describe_parameters
         domain: 0
         type: "rcl_interfaces/srv/DescribeParameters"
    /talker/get_parameter_types
         domain: 0
         type: "rcl_interfaces/srv/GetParameterTypes"
    /talker/get_parameters
         domain: 0
         type: "rcl_interfaces/srv/GetParameters"
    /talker/list_parameters
         domain: 0
         type: "rcl_interfaces/srv/ListParameters"
    /talker/set_parameters
         domain: 0
         type: "rcl_interfaces/srv/SetParameters"
    /talker/set_parameters_atomically
         domain: 0
         type: "rcl_interfaces/srv/SetParametersAtomically"
vmayoral commented 4 years ago

Looks we're going in the right direction. Comment:

LanderU commented 4 years ago

Mmm, not sure. I'll review it again.

LanderU commented 4 years ago
root@alias:/aztarna# aztarna -t ros2 --daemon -d 0
Scanning the network...
Exploring ROS_DOMAIN_ID: 0 for nodes
Exploring ROS_DOMAIN_ID: 0 for topics
Exploring ROS_DOMAIN_ID: 0 for services
Nodes: 
    /talker
         domain: 0
         subscribers: [Topic(name=/parameter_events
         types=[rcl_interfaces/msg/ParameterEvent])]
         publishers: [Topic(name=/chatter
         types=[std_msgs/msg/String])
         Topic(name=/parameter_events
         types=[rcl_interfaces/msg/ParameterEvent])
         Topic(name=/rosout
         types=[rcl_interfaces/msg/Log])]
         services: [Topic(name=/talker/describe_parameters
         types=[rcl_interfaces/srv/DescribeParameters])
         Topic(name=/talker/get_parameter_types
         types=[rcl_interfaces/srv/GetParameterTypes])
         Topic(name=/talker/get_parameters
         types=[rcl_interfaces/srv/GetParameters])
         Topic(name=/talker/list_parameters
         types=[rcl_interfaces/srv/ListParameters])
         Topic(name=/talker/set_parameters
         types=[rcl_interfaces/srv/SetParameters])
         Topic(name=/talker/set_parameters_atomically
         types=[rcl_interfaces/srv/SetParametersAtomically])]
         actionservers: []
         actionclient: []
Topics: 
    /chatter
         domain: 0
         type: "std_msgs/msg/String"
         publishers: 1
         subscriber: 0
Services: 
    /talker/describe_parameters
         domain: 0
         type: "rcl_interfaces/srv/DescribeParameters"
    /talker/get_parameter_types
         domain: 0
         type: "rcl_interfaces/srv/GetParameterTypes"
    /talker/get_parameters
         domain: 0
         type: "rcl_interfaces/srv/GetParameters"
    /talker/list_parameters
         domain: 0
         type: "rcl_interfaces/srv/ListParameters"
    /talker/set_parameters
         domain: 0
         type: "rcl_interfaces/srv/SetParameters"
    /talker/set_parameters_atomically
         domain: 0
         type: "rcl_interfaces/srv/SetParametersAtomically"

Fixed! Wrong indentation :sleeping:

vmayoral commented 4 years ago
root@48807626eafa:/tmp/aztarna# aztarna -t ros2 -d 0 --daemon --hidden
Scanning the network...
Exploring ROS_DOMAIN_ID: 0 for nodes
Exploring ROS_DOMAIN_ID: 0 for topics
Exploring ROS_DOMAIN_ID: 0 for services
Nodes:
    /listener
        domain: 0
        subscribers: []
        publishers: [Topic(name='/parameter_events', types=['rcl_interfaces/msg/ParameterEvent']), Topic(name='/rosout', types=['rcl_interfaces/msg/Log'])]
        services: []
        actionservers: []
        actionclient: []
    /talker
        domain: 0
        subscribers: []
        publishers: [Topic(name='/chatter', types=['std_msgs/msg/String']), Topic(name='/parameter_events', types=['rcl_interfaces/msg/ParameterEvent']), Topic(name='/rosout', types=['rcl_interfaces/msg/Log'])]
        services: []
        actionservers: []
        actionclient: []
Topics:
    /chatter
         domain: 0
         type: "std_msgs/msg/String"
         publishers: 1
         subscriber: 0
Services:
    /listener/describe_parameters
         domain: 0
         type: "rcl_interfaces/srv/DescribeParameters"
    /listener/get_parameter_types
         domain: 0
         type: "rcl_interfaces/srv/GetParameterTypes"
    /listener/get_parameters
         domain: 0
         type: "rcl_interfaces/srv/GetParameters"
    /listener/list_parameters
         domain: 0
         type: "rcl_interfaces/srv/ListParameters"
    /listener/set_parameters
         domain: 0
         type: "rcl_interfaces/srv/SetParameters"
    /listener/set_parameters_atomically
         domain: 0
         type: "rcl_interfaces/srv/SetParametersAtomically"
    /talker/describe_parameters
         domain: 0
         type: "rcl_interfaces/srv/DescribeParameters"
    /talker/get_parameter_types
         domain: 0
         type: "rcl_interfaces/srv/GetParameterTypes"
    /talker/get_parameters
         domain: 0
         type: "rcl_interfaces/srv/GetParameters"
    /talker/list_parameters
         domain: 0
         type: "rcl_interfaces/srv/ListParameters"
    /talker/set_parameters
         domain: 0
         type: "rcl_interfaces/srv/SetParameters"
    /talker/set_parameters_atomically
         domain: 0
         type: "rcl_interfaces/srv/SetParametersAtomically"