From 40d0930727300c21ac24a9799078aa7a25e8a268 Mon Sep 17 00:00:00 2001
From: Christian Breunig <christian@breunig.cc>
Date: Sun, 9 Jul 2023 20:44:27 +0200
Subject: T3355: remove legacy code and migrate remains to vyos-1x repo

---
 scripts/init/vyos-config                 |  16 --
 scripts/init/vyos-router                 | 421 -------------------------------
 scripts/system-generators/vyos-generator |  94 -------
 3 files changed, 531 deletions(-)
 delete mode 100755 scripts/init/vyos-config
 delete mode 100755 scripts/init/vyos-router
 delete mode 100755 scripts/system-generators/vyos-generator

(limited to 'scripts')

diff --git a/scripts/init/vyos-config b/scripts/init/vyos-config
deleted file mode 100755
index 3564270..0000000
--- a/scripts/init/vyos-config
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-while [ ! -f /tmp/vyos-config-status ]
-do
-  sleep 1
-done
-
-status=$(cat /tmp/vyos-config-status)
-
-if [ -z "$1" ]; then
-  if [ $status -ne 0 ]; then
-    echo "Configuration error"
-  else
-    echo "Configuration success"
-  fi
-fi
diff --git a/scripts/init/vyos-router b/scripts/init/vyos-router
deleted file mode 100755
index 7b752b8..0000000
--- a/scripts/init/vyos-router
+++ /dev/null
@@ -1,421 +0,0 @@
-#!/bin/bash
-# Copyright (C) 2021 VyOS maintainers and contributors
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 or later as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-. /lib/lsb/init-functions
-
-: ${vyatta_env:=/etc/default/vyatta}
-source $vyatta_env
-
-declare progname=${0##*/}
-declare action=$1; shift
-
-declare -x BOOTFILE=$vyatta_sysconfdir/config/config.boot
-
-# If vyos-config= boot option is present, use that file instead
-for x in $(cat /proc/cmdline); do
-    [[ $x = vyos-config=* ]] || continue
-    VYOS_CONFIG="${x#vyos-config=}"
-done
-
-if [ ! -z "$VYOS_CONFIG" ]; then
-    if [ -r "$VYOS_CONFIG" ]; then
-        echo "Config selected manually: $VYOS_CONFIG"
-        declare -x BOOTFILE="$VYOS_CONFIG"
-    else
-        echo "WARNING: Could not read selected config file, using default!"
-    fi
-fi
-
-declare -a subinit
-declare -a all_subinits=( firewall )
-
-if [ $# -gt 0 ] ; then
-    for s in $@ ; do
-        [ -x ${vyatta_sbindir}/${s}.init ] && subinit[${#subinit}]=$s
-    done
-else
-    for s in ${all_subinits[@]} ; do
-        [ -x ${vyatta_sbindir}/${s}.init ] && subinit[${#subinit}]=$s
-    done
-fi
-
-GROUP=vyattacfg
-
-# easy way to make empty file without any command
-empty()
-{
-    >$1
-}
-
-# check if bootup of this portion is disabled
-disabled () {
-    grep -q -w no-vyos-$1 /proc/cmdline
-}
-
-# if necessary, provide initial config
-init_bootfile () {
-    if [ ! -r $BOOTFILE ] ; then
-        if [ -f $vyatta_sysconfdir/config.boot.default ]; then
-            cp $vyatta_sysconfdir/config.boot.default $BOOTFILE
-        else
-            $vyos_libexec_dir/system-versions-foot.py > $BOOTFILE
-        fi
-        chgrp ${GROUP} $BOOTFILE
-        chmod 660 $BOOTFILE
-    fi
-}
-
-# if necessary, migrate initial config
-migrate_bootfile ()
-{
-    if [ -x $vyos_libexec_dir/run-config-migration.py ]; then
-        log_progress_msg migrate
-        sg ${GROUP} -c "$vyos_libexec_dir/run-config-migration.py $BOOTFILE"
-    fi
-}
-
-# load the initial config
-load_bootfile ()
-{
-    log_progress_msg configure
-    (
-        if [ -f /etc/default/vyatta-load-boot ]; then
-            # build-specific environment for boot-time config loading
-            source /etc/default/vyatta-load-boot
-        fi
-        if [ -x $vyos_libexec_dir/vyos-boot-config-loader.py ]; then
-            sg ${GROUP} -c "$vyos_libexec_dir/vyos-boot-config-loader.py $BOOTFILE"
-        fi
-    )
-}
-
-# execute the pre-config script
-run_preconfig_script ()
-{
-    if [ -x $vyatta_sysconfdir/config/scripts/vyos-preconfig-bootup.script ]; then
-        $vyatta_sysconfdir/config/scripts/vyos-preconfig-bootup.script
-    fi
-}
-
-# execute the post-config scripts
-run_postconfig_scripts ()
-{
-    if [ -x $vyatta_sysconfdir/config/scripts/vyatta-postconfig-bootup.script ]; then
-        $vyatta_sysconfdir/config/scripts/vyatta-postconfig-bootup.script
-    fi
-    if [ -x $vyatta_sysconfdir/config/scripts/vyos-postconfig-bootup.script ]; then
-        $vyatta_sysconfdir/config/scripts/vyos-postconfig-bootup.script
-    fi
-}
-
-run_postupgrade_script ()
-{
-    if [ -f $vyatta_sysconfdir/config/.upgraded ]; then
-        # Run the system script
-        /usr/libexec/vyos/system/post-upgrade
-
-        # Run user scripts
-        if [ -d $vyatta_sysconfdir/config/scripts/post-upgrade.d ]; then
-            run-parts $vyatta_sysconfdir/config/scripts/post-upgrade.d
-        fi
-        rm -f $vyatta_sysconfdir/config/.upgraded
-    fi
-}
-
-#
-# On image booted machines, we need to mount /boot from the image-specific
-# boot directory so that kernel package installation will put the
-# files in the right place.  We also have to mount /boot/grub from the
-# system-wide grub directory so that tools that edit the grub.cfg
-# file will find it in the expected location.
-#
-bind_mount_boot ()
-{
-    persist_path=$(/opt/vyatta/sbin/vyos-persistpath)
-    if [ $? == 0 ]; then
-        if [ -e $persist_path/boot ]; then
-            image_name=$(cat /proc/cmdline | sed -e s+^.*vyos-union=/boot/++ | sed -e 's/ .*$//')
-
-            if [ -n "$image_name" ]; then
-                mount --bind $persist_path/boot/$image_name /boot
-                if [ $? -ne 0 ]; then
-                    echo "Couldn't bind mount /boot"
-                fi
-
-                if [ ! -d /boot/grub ]; then
-                    mkdir /boot/grub
-                fi
-
-                mount --bind $persist_path/boot/grub /boot/grub
-                if [ $? -ne 0 ]; then
-                    echo "Couldn't bind mount /boot/grub"
-                fi
-            fi
-        fi
-    fi
-}
-
-clear_or_override_config_files ()
-{
-    for conf in snmp/snmpd.conf snmp/snmptrapd.conf snmp/snmp.conf \
-        keepalived/keepalived.conf cron.d/vyos-crontab \
-        ipvsadm.rules default/ipvsadm resolv.conf
-    do
-    if [ -s /etc/$conf ] ; then
-        empty /etc/$conf
-        chmod 0644 /etc/$conf
-    fi
-    done
-}
-
-update_interface_config ()
-{
-    if [ -d /run/udev/vyos ]; then
-        $vyos_libexec_dir/vyos-interface-rescan.py $BOOTFILE
-    fi
-}
-
-cleanup_post_commit_hooks () {
-    # Remove links from the post-commit hooks directory.
-    # note that this approach only supports hooks that are "configured",
-    # i.e., it does not support hooks that need to always be present.
-    cpostdir=$(cli-shell-api getPostCommitHookDir)
-    # exclude commits hooks from vyatta-cfg
-    excluded="10vyatta-log-commit.pl 99vyos-user-postcommit-hooks"
-    if [ -d "$cpostdir" ]; then
-	    for f in $cpostdir/*; do
-	        if [[ ! $excluded =~ $(basename $f) ]]; then
-		        rm -f $cpostdir/$(basename $f)
-	        fi
-	    done
-    fi
-}
-
-# These are all the default security setting which are later
-# overridden when configuration is read. These are the values the
-# system defaults.
-security_reset ()
-{
-    # restore PAM back to virgin state (no radius/tacacs services)
-    pam-auth-update --package --remove radius
-    rm -f /etc/pam_radius_auth.conf
-    pam-auth-update --package --remove tacplus
-    rm -f /etc/tacplus_nss.conf /etc/tacplus_servers
-
-    # Certain configuration files are re-generated by the configuration
-    # subsystem and must reside under /etc and can not easily be moved to /run.
-    # So on every boot we simply delete any remaining files and let the CLI
-    # regenearte them.
-
-    # PPPoE
-    rm -f /etc/ppp/peers/pppoe* /etc/ppp/peers/wlm*
-
-    # IPSec
-    rm -rf /etc/ipsec.conf /etc/ipsec.secrets
-    find /etc/swanctl -type f | xargs rm -f
-
-    # limit cleanup
-    rm -f /etc/security/limits.d/10-vyos.conf
-
-    # iproute2 cleanup
-    rm -f /etc/iproute2/rt_tables.d/vyos-*.conf
-
-    # Container
-    rm -f /etc/containers/storage.conf /etc/containers/registries.conf /etc/containers/containers.conf
-    # Clean all networks and re-create them from our CLI
-    rm -f /etc/containers/networks/*
-
-    # System Options (SSH/cURL)
-    rm -f /etc/ssh/ssh_config.d/*vyos*.conf
-    rm -f /etc/curlrc
-}
-
-# XXX: T3885 - generate persistend DHCPv6 DUID (Type4 - UUID based)
-gen_duid ()
-{
-    DUID_FILE="/var/lib/dhcpv6/dhcp6c_duid"
-    UUID_FILE="/sys/class/dmi/id/product_uuid"
-    UUID_FILE_ALT="/sys/class/dmi/id/product_serial"
-    if [ ! -f ${UUID_FILE} ] && [ ! -f ${UUID_FILE_ALT} ]; then
-        return 1
-    fi
-
-    # DUID is based on the BIOS/EFI UUID. We omit additional - characters
-    if [ -f ${UUID_FILE} ]; then
-        UUID=$(cat ${UUID_FILE} | tr -d -)
-    fi
-    if [ -z ${UUID} ]; then
-        UUID=$(uuidgen --sha1 --namespace @dns --name $(cat ${UUID_FILE_ALT}) | tr -d -)
-    fi
-    # Add DUID type4 (UUID) information
-    DUID_TYPE="0004"
-
-    # The length-information (as per RFC6355 UUID is 128 bits long) is in big-endian
-    # format - beware when porting to ARM64. The length field consists out of the
-    # UUID (128 bit + 16 bits DUID type) resulting in hex 12.
-    DUID_LEN="0012"
-    if [ "$(echo -n I | od -to2 | head -n1 | cut -f2 -d" " | cut -c6 )" -eq 1 ]; then
-        # true on little-endian (x86) systems
-        DUID_LEN="1200"
-    fi
-
-    for i in $(echo -n ${DUID_LEN}${DUID_TYPE}${UUID} | sed 's/../& /g'); do
-        echo -ne "\x$i"
-    done > ${DUID_FILE}
-}
-
-start ()
-{
-    # reset and clean config files
-    security_reset || log_failure_msg "security reset failed"
-
-    # some legacy directories migrated over from old rl-system.init
-    mkdir -p /var/run/vyatta /var/log/vyatta
-    chgrp vyattacfg /var/run/vyatta /var/log/vyatta
-    chmod 775 /var/run/vyatta /var/log/vyatta
-
-    log_daemon_msg "Waiting for NICs to settle down"
-    # On boot time udev migth take a long time to reorder nic's, this will ensure that
-    # all udev activity is completed and all nics presented at boot-time will have their
-    # final name before continuing with vyos-router initialization.
-    SECONDS=0
-    udevadm settle
-    STATUS=$?
-    log_progress_msg "settled in ${SECONDS}sec."
-    log_end_msg ${STATUS}
-
-    # mountpoint for bpf maps required by xdp
-    mount -t bpf none /sys/fs/bpf
-
-    # Clear out Debian APT source config file
-    empty /etc/apt/sources.list
-
-    # Generate DHCPv6 DUID
-    gen_duid || log_failure_msg "could not generate DUID"
-
-    # Mount a temporary filesystem for container networks.
-    # Configuration should be loaded from VyOS cli.
-    cni_dir="/etc/cni/net.d"
-    [ ! -d ${cni_dir} ] && mkdir -p ${cni_dir}
-    mount -t tmpfs none ${cni_dir}
-
-    # Init firewall
-    nfct helper add rpc inet tcp
-    nfct helper add rpc inet udp
-    nfct helper add tns inet tcp
-    nft -f /usr/share/vyos/vyos-firewall-init.conf || log_failure_msg "could not initiate firewall rules"
-
-    rm -f /etc/hostname
-    ${vyos_conf_scripts_dir}/host_name.py || log_failure_msg "could not reset host-name"
-    systemctl start frr.service
-
-    # As VyOS does not execute commands that are not present in the CLI we call
-    # the script by hand to have a single source for the login banner and MOTD
-    ${vyos_conf_scripts_dir}/system_console.py || log_failure_msg "could not reset serial console"
-    ${vyos_conf_scripts_dir}/system-login.py || log_failure_msg "could not reset system login"
-    ${vyos_conf_scripts_dir}/system-login-banner.py || log_failure_msg "could not reset motd and issue files"
-    ${vyos_conf_scripts_dir}/system-option.py || log_failure_msg "could not reset system option files"
-    ${vyos_conf_scripts_dir}/conntrack.py || log_failure_msg "could not reset conntrack subsystem"
-    ${vyos_conf_scripts_dir}/container.py || log_failure_msg "could not reset container subsystem"
-
-    clear_or_override_config_files || log_failure_msg "could not reset config files"
-
-    # enable some debugging before loading the configuration
-    if grep -q vyos-debug /proc/cmdline; then
-        log_action_begin_msg "Enable runtime debugging options"
-        touch /tmp/vyos.container.debug
-        touch /tmp/vyos.ifconfig.debug
-        touch /tmp/vyos.frr.debug
-        touch /tmp/vyos.container.debug
-    fi
-
-    log_action_begin_msg "Mounting VyOS Config"
-    # ensure the vyatta_configdir supports a large number of inodes since
-    # the config hierarchy is often inode-bound (instead of size).
-    # impose a minimum and then scale up dynamically with the actual size
-    # of the system memory.
-    local tmem=$(sed -n 's/^MemTotal: \+\([0-9]\+\) kB$/\1/p' /proc/meminfo)
-    local tpages
-    local tmpfs_opts="nosuid,nodev,mode=775,nr_inodes=0" #automatically allocate inodes
-    mount -o $tmpfs_opts -t tmpfs none ${vyatta_configdir} \
-      && chgrp ${GROUP} ${vyatta_configdir}
-    log_action_end_msg $?
-
-    disabled bootfile || init_bootfile
-
-    cleanup_post_commit_hooks
-
-    log_daemon_msg "Starting VyOS router"
-    disabled migrate || migrate_bootfile
-
-    run_preconfig_script
-
-    run_postupgrade_script
-
-    update_interface_config
-
-    for s in ${subinit[@]} ; do
-    if ! disabled $s; then
-        log_progress_msg $s
-        if ! ${vyatta_sbindir}/${s}.init start
-        then log_failure_msg
-         exit 1
-        fi
-    fi
-    done
-
-    bind_mount_boot
-
-    disabled configure || load_bootfile
-    log_end_msg $?
-
-    telinit q
-    chmod g-w,o-w /
-
-    run_postconfig_scripts
-}
-
-stop()
-{
-    local -i status=0
-    log_daemon_msg "Stopping VyOS router"
-    for ((i=${#sub_inits[@]} - 1; i >= 0; i--)) ; do
-    s=${subinit[$i]}
-    log_progress_msg $s
-    ${vyatta_sbindir}/${s}.init stop
-    let status\|=$?
-    done
-    log_end_msg $status
-    log_action_begin_msg "Un-mounting VyOS Config"
-    umount ${vyatta_configdir}
-    log_action_end_msg $?
-
-    systemctl stop frr.service
-}
-
-case "$action" in
-    start) start ;;
-    stop)  stop ;;
-    restart|force-reload) stop && start ;;
-    *)  log_failure_msg "usage: $progname [ start|stop|restart ] [ subinit ... ]" ;
-    false ;;
-esac
-
-exit $?
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 4
-# End:
diff --git a/scripts/system-generators/vyos-generator b/scripts/system-generators/vyos-generator
deleted file mode 100755
index 34faab6..0000000
--- a/scripts/system-generators/vyos-generator
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/sh
-set -f
-
-LOG=""
-DEBUG_LEVEL=1
-LOG_D="/run/vyos-router"
-ENABLE="enabled"
-DISABLE="disabled"
-FOUND="found"
-NOTFOUND="notfound"
-RUN_ENABLED_FILE="$LOG_D/$ENABLE"
-VYOS_SYSTEM_TARGET="/lib/systemd/system/vyos.target"
-VYOS_TARGET_NAME="vyos.target"
-
-debug() {
-    local lvl="$1"
-    shift
-    [ "$lvl" -gt "$DEBUG_LEVEL" ] && return
-    if [ -z "$LOG" ]; then
-        local log="$LOG_D/${0##*/}.log"
-        { [ -d "$LOG_D" ] || mkdir -p "$LOG_D"; } &&
-            { : > "$log"; } >/dev/null 2>&1 && LOG="$log" ||
-            LOG="/dev/kmsg"
-    fi
-    echo "$@" >> "$LOG"
-}
-
-default() {
-    _RET="$ENABLE"
-}
-
-main() {
-    local normal_d="$1" early_d="$2" late_d="$3"
-    local target_name="multi-user.target" gen_d="$early_d"
-    local link_path="$gen_d/${target_name}.wants/${VYOS_TARGET_NAME}"
-    local ds="$NOTFOUND"
-
-    debug 1 "$0 normal=$normal_d early=$early_d late=$late_d"
-    debug 2 "$0 $*"
-
-    local search result="error" ret=""
-    for search in default; do
-        if $search; then
-            debug 1 "$search found $_RET"
-            [ "$_RET" = "$ENABLE" -o "$_RET" = "$DISABLE" ] &&
-                result=$_RET && break
-        else
-            ret=$?
-            debug 0 "search $search returned $ret"
-        fi
-    done
-
-    # enable AND ds=found == enable
-    # enable AND ds=notfound == disable
-    # disable || <any> == disabled
-    if [ "$result" = "$ENABLE" ]; then
-        if [ -e "$link_path" ]; then
-                debug 1 "already enabled: no change needed"
-        else
-            [ -d "${link_path%/*}" ] || mkdir -p "${link_path%/*}" ||
-                debug 0 "failed to make dir $link_path"
-            if ln -snf "$VYOS_SYSTEM_TARGET" "$link_path"; then
-                debug 1 "enabled via $link_path -> $VYOS_SYSTEM_TARGET"
-            else
-                ret=$?
-                debug 0 "[$ret] enable failed:" \
-                    "ln $VYOS_SYSTEM_TARGET $link_path"
-            fi
-        fi
-        : > "$RUN_ENABLED_FILE"
-    elif [ "$result" = "$DISABLE" ]; then
-        if [ -f "$link_path" ]; then
-            if rm -f "$link_path"; then
-                debug 1 "disabled. removed existing $link_path"
-            else
-                ret=$?
-                debug 0 "[$ret] disable failed, remove $link_path"
-            fi
-        else
-            debug 1 "already disabled: no change needed [no $link_path]"
-        fi
-        if [ -e "$RUN_ENABLED_FILE" ]; then
-            rm -f "$RUN_ENABLED_FILE"
-        fi
-    else
-        debug 0 "unexpected result '$result' 'ds=$ds'"
-        ret=3
-    fi
-    return $ret
-}
-
-main "$@"
-
-# vi: ts=4 expandtab
-- 
cgit v1.2.3