Salt: [BUG] [RC1 Sodium] network.arp cmd does not work on Ubuntu 20

Created on 1 Jun 2020  路  7Comments  路  Source: saltstack/salt

Description
On 3001rc1 on Ubuntu 20 network.arp command does not work.

https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.network.html#salt.modules.network.arp

Fails with this error

Command required for 'network.arp' not found: The 'arp' binary was not found in $PATH.

Setup
Install 3001rc1 on a Ubuntu 20 machine.

Steps to Reproduce the behavior
Run salt '*' network.arp

ubu20:
    Command required for 'network.arp' not found: The 'arp' binary was not found in $PATH.
ERROR: Minions returned with non-zero exit code

Expected behavior

ubu18:
    ----------
    00:00:0c:9f:f0:01:
        104.239.135.1
    18:8b:45:d9:71:41:
        104.239.135.3

Versions Report

Salt Version:
           Salt: 3001rc1

Dependency Versions:
           cffi: Not Installed
       cherrypy: unknown
       dateutil: 2.7.3
      docker-py: Not Installed
          gitdb: 2.0.6
      gitpython: 3.0.7
         Jinja2: 2.10.1
        libgit2: Not Installed
       M2Crypto: Not Installed
           Mako: Not Installed
   msgpack-pure: Not Installed
 msgpack-python: 0.6.2
   mysql-python: Not Installed
      pycparser: Not Installed
       pycrypto: 2.6.1
   pycryptodome: 3.6.1
         pygit2: Not Installed
         Python: 3.8.2 (default, Mar 13 2020, 10:14:16)
   python-gnupg: 0.4.5
         PyYAML: 5.3.1
          PyZMQ: 18.1.1
          smmap: 2.0.5
        timelib: Not Installed
        Tornado: 4.5.3
            ZMQ: 4.3.2

System Versions:
           dist: ubuntu 20.04 focal
         locale: utf-8
        machine: x86_64
        release: 5.4.0-26-generic
         system: Linux
        version: Ubuntu 20.04 focal
Bug Z Release Sodium severity-low

Most helpful comment

For replacing net-tools' functionality, instead of using iproute2's CLI I feel like it might make sense to consider using pyroute2 instead, which is most likely far more performant, since it doesn't shell-out for every function but uses a native Python netlink implementation instead and also eliminates the issue of having to rely on parsing a command's output.

All 7 comments

It's in the obsolete package net-tools, which is no longer part of the default installation.
That package has been deprecated for a while (nine years ago).
Replacement commands are as follows:

old | new
-- | --
arp | ip neighbor
ifconfig | ip addr, ip link, ip -stats
iptunnel | ip tunnel
iwconfig | iw
nameif | ip link
netstat | ss
route | ip route

There's probably a wider issue here for all the linux networking functions.

The plan is to add a Recommends dependency on net-tools to Ubuntu 20.04 for the actual release.

For replacing net-tools' functionality, instead of using iproute2's CLI I feel like it might make sense to consider using pyroute2 instead, which is most likely far more performant, since it doesn't shell-out for every function but uses a native Python netlink implementation instead and also eliminates the issue of having to rely on parsing a command's output.

Keeping open 57541 and closing this as changes were made in salt-pack-py3 repo for the Sodium release

@bryceml the 3001 release package has net-tools as a required dependency instead of a recommendation.

Can this be fixed?

It is a recommends dependency, not a required one. We could potentially change it to a suggests dependency. I would want more community input on that. We went with recommends because it would "just work" for people, and they could still remove it if they wanted to.

Was this page helpful?
0 / 5 - 0 ratings