Files
guru/sys-cluster/neutron/neutron-20.0.0.ebuild
chunhui ouyang ede48e1b88 sys-cluster/neutron: Fix ebuild spelling errors
Signed-off-by: chunhui ouyang <jack9603301@163.com>
2022-09-30 09:03:25 +08:00

225 lines
7.7 KiB
Bash

# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MYP="${P//_/}"
PYTHON_COMPAT=( python3_{8..9} )
inherit distutils-r1 linux-info systemd tmpfiles
DESCRIPTION="A virtual network service for Openstack"
HOMEPAGE="
https://launchpad.net/neutron
https://opendev.org/openstack/neutron
https://pypi.org/project/neutron/
"
SRC_URI="https://tarballs.openstack.org/${PN}/${MYP}.tar.gz"
S="${WORKDIR}/${MYP}"
KEYWORDS=""
LICENSE="Apache-2.0"
SLOT="0"
RDEPEND="
>=dev-python/pbr-4.0.0[${PYTHON_USEDEP}]
>=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
>=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
>=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
>=dev-python/debtcollector-1.19.0[${PYTHON_USEDEP}]
>=dev-python/decorator-4.1.0[${PYTHON_USEDEP}]
>=dev-python/eventlet-0.26.1[${PYTHON_USEDEP}]
>=dev-python/pecan-1.3.2[${PYTHON_USEDEP}]
>=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
>=dev-python/requests-2.18.0[${PYTHON_USEDEP}]
>=dev-python/jinja-2.10[${PYTHON_USEDEP}]
>=dev-python/keystonemiddleware-5.1.0[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
>=dev-python/neutron-lib-2.20.0[${PYTHON_USEDEP}]
>=dev-python/python-neutronclient-7.8.0[${PYTHON_USEDEP}]
>=dev-python/tenacity-6.0.0[${PYTHON_USEDEP}]
>=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
>=dev-python/keystoneauth-3.14.0[${PYTHON_USEDEP}]
>=dev-python/alembic-1.6.5[${PYTHON_USEDEP}]
>=dev-python/stevedore-2.0.1[${PYTHON_USEDEP}]
>=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
>=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
>=dev-python/oslo-config-8.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-2.22.0[${PYTHON_USEDEP}]
>=dev-python/oslo-db-4.44.0[${PYTHON_USEDEP}]
>=dev-python/oslo-i18n-3.20.0[${PYTHON_USEDEP}]
>=dev-python/oslo-log-4.5.0[${PYTHON_USEDEP}]
>=dev-python/oslo-messaging-7.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-3.10.1[${PYTHON_USEDEP}]
>=dev-python/oslo-privsep-2.3.0[${PYTHON_USEDEP}]
>=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
>=dev-python/oslo-rootwrap-5.15.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-2.25.0[${PYTHON_USEDEP}]
>=dev-python/oslo-service-2.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-upgradecheck-1.3.0[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-4.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-versionedobjects-1.35.1[${PYTHON_USEDEP}]
>=dev-python/osprofiler-2.3.0[${PYTHON_USEDEP}]
>=dev-python/os-ken-2.0.0[${PYTHON_USEDEP}]
>=dev-python/os-resource-classes-1.1.0[${PYTHON_USEDEP}]
>=dev-python/ovs-2.10.0[${PYTHON_USEDEP}]
>=dev-python/ovsdbapp-1.15.0[${PYTHON_USEDEP}]
>=dev-python/packaging-20.4[${PYTHON_USEDEP}]
>=dev-python/psutil-5.3.0[${PYTHON_USEDEP}]
>=dev-python/pyroute2-0.6.4[${PYTHON_USEDEP}]
>=dev-python/pyopenssl-17.1.0[${PYTHON_USEDEP}]
>=dev-python/python-novaclient-9.1.0[${PYTHON_USEDEP}]
>=dev-python/openstacksdk-0.31.2[${PYTHON_USEDEP}]
>=dev-python/python-designateclient-2.7.0[${PYTHON_USEDEP}]
>=dev-python/os-vif-1.15.1[${PYTHON_USEDEP}]
>=dev-python/futurist-1.2.0[${PYTHON_USEDEP}]
>=dev-python/tooz-1.58.0[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.3.23[${PYTHON_USEDEP}]
acct-group/neutron
acct-user/neutron
dev-python/pyudev[${PYTHON_USEDEP}]
net-misc/bridge-utils
net-misc/iputils[arping]
net-firewall/conntrack-tools
net-firewall/ebtables
net-firewall/ipset
net-firewall/iptables
sys-apps/iproute2
"
DEPEND="
${RDEPEND}
app-admin/sudo
"
BDEPEND="
test? (
>=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
>=dev-python/subunit-1.0.0[${PYTHON_USEDEP}]
>=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
>=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
>=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
>=dev-python/webtest-2.0.27[${PYTHON_USEDEP}]
>=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
>=dev-python/stestr-1.0.0[${PYTHON_USEDEP}]
>=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
pkg_pretend() {
linux-info_pkg_setup
CONFIG_CHECK_MODULES="VLAN_8021Q IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 NF_DEFRAG_IPV4 NF_NAT NF_CONNTRACK \
IP_NF_FILTER IP_NF_IPTABLES NETFILTER_XTABLES"
if linux_config_exists; then
for module in ${CONFIG_CHECK_MODULES}; do
linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
done
fi
}
pkg_config() {
fperms 0700 /var/log/neutron
fowners neutron:neutron /var/log neutron
}
src_prepare() {
sed -i '/^hacking/d' test-requirements.txt || die
# it's /bin/ip not /sbin/ip
sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/* || die
distutils-r1_python_prepare_all
}
python_compile_all() {
./tools/generate_config_file_samples.sh || die
oslopolicy-sample-generator --config-file=etc/oslo-policy-generator/policy.conf || die
}
python_install_all() {
distutils-r1_python_install_all
newinitd "${FILESDIR}/neutron.initd" "neutron-server"
newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
dosym ../../plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent"
newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent"
newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup"
newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup"
newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
for svc in {dhcp,l3,linuxbridge,metadata,metering}-agent {linuxbridge,netns,ovs}-cleanup server ; do
systemd_dounit "${FILESDIR}/openstack-neutron-${svc}.service"
done
diropts -m 755 -o neutron -g neutron
dodir /var/log/neutron /var/lib/neutron
keepdir /etc/neutron
insinto /etc/neutron
insopts -m 0640 -o neutron -g neutron
insinto /etc/neutron
doins etc/api-paste.ini
doins etc/policy.yaml.sample
for i in l3 dhcp metadata metering neutron_ovn_metadata ; do
doins "etc/${i}_agent.ini.sample"
done
doins "etc/neutron.conf.sample"
doins "etc/neutron/ovn.ini.sample"
doins -r "etc/neutron/plugins"
insopts -m 0640 -o root -g root
doins "etc/rootwrap.conf"
doins -r "etc/neutron/rootwrap.d"
newtmpfiles "${FILESDIR}/neutron.tmpfile" neutron.conf
insinto /etc/logrotate.d
newins "${FILESDIR}/neutron.logrotate" neutron.conf
#add sudoers definitions for user neutron
insinto /etc/sudoers.d/
insopts -m 0440 -o root -g root
newins "${FILESDIR}/neutron.sudoersd" neutron
# correcting perms
fowners neutron:neutron -R "/etc/neutron"
fperms o-rwx -R "/etc/neutron/"
#remove superfluous stuff
rm -R "${D}/usr/etc/"
}
python_install() {
distutils-r1_python_install
# copy migration conf file (not coppied on install via setup.py script)
python_moduleinto neutron/db/migration/alembic_migrations
python_domodule "neutron/db/migration/alembic_migrations/versions"
}
pkg_postinst() {
tmpfiles_process neutron.conf
elog
elog "neutron-server's conf.d file may need updating to include additional ini files"
elog "We currently assume the ml2 plugin will be used but do not make assumptions"
elog "on if you will use openvswitch or linuxbridge (or something else)"
elog
elog "Other conf.d files may need updating too, but should be good for the default use case"
elog
}