add update_boot_info

This commit is contained in:
Konano 2023-11-27 12:51:15 +08:00
parent 5544cbd7c7
commit edbe0279bc
2 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,52 @@
from functools import partial
from operator import itemgetter
from netifaces import AF_INET, AF_INET6
from twisted.internet.defer import succeed
from landscape.lib.network import get_active_device_info
class Network_Simple(object):
"""Show information about active network interfaces.
@param get_device_info: Optionally, a function that returns information
about network interfaces. Defaults to L{get_active_device_info}.
"""
def __init__(self, get_device_info=None):
if get_device_info is None:
get_device_info = partial(get_active_device_info, extended=True)
self._get_device_info = get_device_info
def register(self, sysinfo):
"""Register this plugin with the sysinfo system.
@param sysinfo: The sysinfo registry.
"""
self._sysinfo = sysinfo
def run(self):
"""
Gather information about network interfaces and write it to the
sysinfo output.
@return: A succeeded C{Deferred}.
"""
device_info = self._get_device_info()
for info in sorted(device_info, key=itemgetter('interface')):
interface = info["interface"]
if interface.startswith('br-'):
continue
if interface.startswith('docker'):
continue
ipv4_addresses = info["ip_addresses"].get(AF_INET, [])
ipv6_addresses = info["ip_addresses"].get(AF_INET6, [])
for addr in ipv4_addresses:
self._sysinfo.add_header(
"IPv4 address for %s" % interface, addr['addr'])
for addr in ipv6_addresses:
self._sysinfo.add_header(
"IPv6 address for %s" % interface, addr['addr'])
return succeed(None)

View File

@ -170,6 +170,20 @@ configure_timedate() {
fi
}
configure_boot_info() {
[ -d /etc/update-motd.d/disable ] && return
if confirm_action "要修改 启动信息 吗?" "Y"; then
sudo mkdir /etc/update-motd.d/disable
sudo mv /etc/update-motd.d/10-help-text /etc/update-motd.d/disable/
sudo mv /etc/update-motd.d/50-motd-news /etc/update-motd.d/disable/
if [ -d /usr/lib/python3/dist-packages/landscape/sysinfo ]; then
sudo sed -i 's/"Network"/"Network_Simple"/g' /usr/lib/python3/dist-packages/landscape/sysinfo/deployment.py
sudo cp $scriptdir/files/sysinfo_network_simple.py /usr/lib/python3/dist-packages/landscape/sysinfo/network_simple.py
fi
fi
}
# ============================================================
configure_tuna
@ -184,3 +198,4 @@ configure_fail2ban
configure_iptables
configure_hostname
configure_timedate
configure_boot_info