in setup.py [0:0]
def get_data_files(name, version, fullname): # pylint: disable=R0912
"""
Determine data_files according to distro name, version and init system type
"""
data_files = []
osutil = get_osutil()
systemd_dir_path = osutil.get_systemd_unit_file_install_path()
agent_bin_path = osutil.get_agent_bin_path()
if name in ('redhat', 'rhel', 'centos', 'almalinux', 'cloudlinux', 'rocky'):
if version.startswith("8") or version.startswith("9"):
# redhat8+ default to py3
set_bin_files(data_files, dest=agent_bin_path,
src=["bin/py3/waagent", "bin/waagent2.0"])
else:
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files)
set_logrotate_files(data_files)
set_udev_files(data_files)
if version.startswith("8") or version.startswith("9"):
# redhat 8+ uses systemd and python3
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/redhat/waagent.service",
"init/azure.slice",
"init/azure-vmextensions.slice"
])
elif version.startswith("6"):
set_sysv_files(data_files)
else:
# redhat7.0+ use systemd
set_systemd_files(data_files, dest=systemd_dir_path,
src=[
"init/redhat/py2/waagent.service",
"init/azure.slice",
"init/azure-vmextensions.slice"
])
if version.startswith("7.1"):
# TODO this is a mitigation to systemctl bug on 7.1
set_sysv_files(data_files)
elif name == 'arch':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/arch/waagent.conf"])
set_udev_files(data_files)
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/arch/waagent.service"])
elif name in ('coreos', 'flatcar'):
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, dest="/usr/share/oem",
src=["config/coreos/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
set_files(data_files, dest="/usr/share/oem",
src=["init/coreos/cloud-config.yml"])
elif "Clear Linux" in fullname:
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, dest="/usr/share/defaults/waagent",
src=["config/clearlinux/waagent.conf"])
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/clearlinux/waagent.service"])
elif name in ["mariner", "azurelinux"]:
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, dest="/etc",
src=["config/mariner/waagent.conf"])
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/mariner/waagent.service"])
set_logrotate_files(data_files)
set_udev_files(data_files)
elif name == 'ubuntu':
set_conf_files(data_files, src=["config/ubuntu/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
if version.startswith("12") or version.startswith("14"):
# Ubuntu12.04/14.04 - uses upstart
if version.startswith("12"):
set_bin_files(data_files, dest=agent_bin_path)
else:
set_bin_files(data_files, dest=agent_bin_path,
src=["bin/py3/waagent", "bin/waagent2.0"])
set_files(data_files, dest="/etc/init",
src=["init/ubuntu/walinuxagent.conf"])
set_files(data_files, dest='/etc/default',
src=['init/ubuntu/walinuxagent'])
else:
set_bin_files(data_files, dest=agent_bin_path,
src=["bin/py3/waagent", "bin/waagent2.0"])
# Ubuntu15.04+ uses systemd
set_systemd_files(data_files, dest=systemd_dir_path,
src=[
"init/ubuntu/walinuxagent.service",
"init/azure.slice",
"init/azure-vmextensions.slice"
])
elif name == 'suse' or name == 'opensuse': # pylint: disable=R1714
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/suse/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
if fullname == 'SUSE Linux Enterprise Server' and \
version.startswith('11') or \
fullname == 'openSUSE' and version.startswith(
'13.1'):
set_sysv_files(data_files, dest='/etc/init.d',
src=["init/suse/waagent"])
else:
# sles 12+ and openSUSE 13.2+ use systemd
set_systemd_files(data_files, dest=systemd_dir_path)
elif name == 'sles': # sles 15+ distro named as sles
set_bin_files(data_files, dest=agent_bin_path,
src=["bin/py3/waagent", "bin/waagent2.0"])
set_conf_files(data_files, src=["config/suse/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
# sles 15+ uses systemd and python3
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/sles/waagent.service"])
elif name == 'freebsd':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/freebsd/waagent.conf"])
set_freebsd_rc_files(data_files)
elif name == 'openbsd':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/openbsd/waagent.conf"])
set_openbsd_rc_files(data_files)
elif name == 'debian':
set_bin_files(data_files, dest=agent_bin_path,
src=["bin/py3/waagent", "bin/waagent2.0"])
set_conf_files(data_files, src=["config/debian/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files, dest="/lib/udev/rules.d")
if debian_has_systemd():
set_systemd_files(data_files, dest=systemd_dir_path)
elif name == 'devuan':
set_bin_files(data_files, dest=agent_bin_path,
src=["bin/py3/waagent", "bin/waagent2.0"])
set_files(data_files, dest="/etc/init.d",
src=['init/devuan/walinuxagent'])
set_files(data_files, dest="/etc/default",
src=['init/devuan/default/walinuxagent'])
set_conf_files(data_files, src=['config/devuan/waagent.conf'])
set_logrotate_files(data_files)
set_udev_files(data_files, dest="/lib/udev/rules.d")
elif name == 'iosxe':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/iosxe/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
set_systemd_files(data_files, dest=systemd_dir_path)
if version.startswith("7.1"):
# TODO this is a mitigation to systemctl bug on 7.1
set_sysv_files(data_files)
elif name == 'openwrt':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files)
set_logrotate_files(data_files)
set_sysv_files(data_files, dest='/etc/init.d', src=["init/openwrt/waagent"])
elif name == 'photonos':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/photonos/waagent.conf"])
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/photonos/waagent.service"])
elif name == 'fedora':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files)
set_logrotate_files(data_files)
set_udev_files(data_files)
set_systemd_files(data_files, dest=systemd_dir_path)
else:
# Use default setting
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files)
set_logrotate_files(data_files)
set_udev_files(data_files)
set_sysv_files(data_files)
return data_files