*/*: restore openstack

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro-Barbieri
2021-06-20 05:14:53 +02:00
committed by Alessandro Barbieri
parent ee38810829
commit 5c8b17906e
229 changed files with 5430 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
DIST cinder-17.1.0.tar.gz 5823116 BLAKE2B 08f8c4e9acdd46d27ad5e35b8602dc7722ff0f08f577183860138f9085f6744abeccf6943d556419cc7584504c3245c19cfd4f17db4164cc8a4c144aa8c112bd SHA512 f3e91945e81e5bb7edefba62050d3750ae5ab870903e55f46e8f0a5d3c140eada1df466d5fcc6623df8ad9688cad3c6519c712494cd20b8cfeb4b992e8f516cc
DIST cinder.conf.sample-17.1.0 186451 BLAKE2B efc75cf3c5e852d411d9c2ed2080eb554a5f81c9b39a2ee9cf44add21842c05ea5b03cc66747da2182d2efc73d83b55323cecd4aa34db99369bf62b5ed1795bc SHA512 ee60a62ec8490a38c995f9c4a9ede8eeec631745bdbc9bc6e1d195370687de5d99aa8754ea017f23e6a9542b987842c7ffd7cf203bfed37f2a7ddbe61a82d517

View File

@@ -0,0 +1,191 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 python3_8 )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1 linux-info
DESCRIPTION="Cinder is the OpenStack Block storage service, a spin out of nova-volumes"
HOMEPAGE="https://launchpad.net/cinder"
if [[ ${PV} == *9999 ]];then
inherit git-r3
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/cinder/victoria/cinder.conf.sample -> cinder.conf.sample-${PV}"
EGIT_REPO_URI="https://github.com/openstack/cinder.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/cinder/victoria/cinder.conf.sample -> cinder.conf.sample-${PV}
https://tarballs.openstack.org/${PN}/${P}.tar.gz"
KEYWORDS="amd64 ~arm64 x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="+api +scheduler +volume infiniband iscsi lvm mysql +memcached postgres rdma sqlite +tcp test +tgt"
RESTRICT="!test? ( test )"
REQUIRED_USE="|| ( mysql postgres sqlite ) iscsi? ( tgt ) infiniband? ( rdma )"
DEPEND=">=dev-python/pbr-5.4.1[${PYTHON_USEDEP}]
app-admin/sudo"
# >=dev-python/oauth2client-1.5.0[${PYTHON_USEDEP}] # do not include, upstream depricated
RDEPEND="
>=dev-python/pbr-5.4.1[${PYTHON_USEDEP}]
>=dev-python/decorator-4.1.0[${PYTHON_USEDEP}]
>=dev-python/eventlet-0.26.0[${PYTHON_USEDEP}]
>=dev-python/greenlet-0.4.15[${PYTHON_USEDEP}]
>=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
>=dev-python/importlib_metadata-1.7.0[${PYTHON_USEDEP}]
>=dev-python/iso8601-0.1.12[${PYTHON_USEDEP}]
>=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
>=dev-python/keystoneauth-3.14.0[${PYTHON_USEDEP}]
>=dev-python/keystonemiddleware-4.21.0[${PYTHON_USEDEP}]
>=dev-python/lxml-4.2.0[${PYTHON_USEDEP}]
>=dev-python/oslo-config-6.11.0[${PYTHON_USEDEP}]
>=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-2.23.0[${PYTHON_USEDEP}]
>=dev-python/oslo-db-6.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-log-3.44.0[${PYTHON_USEDEP}]
>=dev-python/oslo-messaging-6.4.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-1.44.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.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-2.25.0[${PYTHON_USEDEP}]
>=dev-python/oslo-service-2.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-upgradecheck-0.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-3.40.2[${PYTHON_USEDEP}]
>=dev-python/oslo-versionedobjects-1.31.2[${PYTHON_USEDEP}]
>=dev-python/osprofiler-1.4.0[${PYTHON_USEDEP}]
>=dev-python/packaging-20.4[${PYTHON_USEDEP}]
>=dev-python/paramiko-2.7.1[${PYTHON_USEDEP}]
>=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
>=dev-python/pastedeploy-1.5.0[${PYTHON_USEDEP}]
>=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
>=dev-python/pyparsing-2.2.1[${PYTHON_USEDEP}]
>=dev-python/python-barbicanclient-4.9.0[${PYTHON_USEDEP}]
>=dev-python/python-glanceclient-2.15.0[${PYTHON_USEDEP}]
>=dev-python/python-keystoneclient-3.15.0[${PYTHON_USEDEP}]
>=dev-python/python-novaclient-9.1.0[${PYTHON_USEDEP}]
>=dev-python/python-swiftclient-3.2.0[${PYTHON_USEDEP}]
>=dev-python/pytz-2015.7[${PYTHON_USEDEP}]
>=dev-python/requests-2.18.0[${PYTHON_USEDEP}]
!~dev-python/requests-2.20.0[${PYTHON_USEDEP}]
>=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
>=dev-python/taskflow-3.8.0[${PYTHON_USEDEP}]
>=dev-python/rtslib-fb-2.1.65[${PYTHON_USEDEP}]
>=dev-python/six-1.11.0[${PYTHON_USEDEP}]
sqlite? (
>=dev-python/sqlalchemy-1.3.0[sqlite,${PYTHON_USEDEP}]
)
mysql? (
>=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
!~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.3.0[sqlite,${PYTHON_USEDEP}]
)
postgres? (
>=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.3.0[sqlite,${PYTHON_USEDEP}]
)
>=dev-python/sqlalchemy-migrate-0.13.0[${PYTHON_USEDEP}]
>=dev-python/stevedore-1.31.0[${PYTHON_USEDEP}]
>=dev-python/tabulate-0.8.5[${PYTHON_USEDEP}]
>=dev-python/tenacity-6.1.0[${PYTHON_USEDEP}]
>=dev-python/webob-1.7.1[${PYTHON_USEDEP}]
>=dev-python/oslo-i18n-3.24.0[${PYTHON_USEDEP}]
>=dev-python/oslo-vmware-2.35.0[${PYTHON_USEDEP}]
>=dev-python/os-brick-4.0.1[${PYTHON_USEDEP}]
>=dev-python/os-win-4.2.0[${PYTHON_USEDEP}]
>=dev-python/tooz-1.58.0[${PYTHON_USEDEP}]
>=dev-python/google-api-python-client-1.4.2[${PYTHON_USEDEP}]
>=dev-python/castellan-1.3.0[${PYTHON_USEDEP}]
>=dev-python/cryptography-2.1.4[${PYTHON_USEDEP}]
>=dev-python/cursive-0.2.1[${PYTHON_USEDEP}]
>=dev-python/zstd-1.4.5.0[${PYTHON_USEDEP}]
iscsi? (
tgt? ( sys-block/tgt )
sys-block/open-iscsi
)
lvm? ( sys-fs/lvm2 )
memcached? ( net-misc/memcached )
app-emulation/qemu
sys-fs/sysfsutils
acct-user/cinder
acct-group/cinder"
# qemu is needed for image conversion
#PATCHES=(
#)
pkg_pretend() {
linux-info_pkg_setup
CONFIG_CHECK_MODULES=""
if use tcp; then
CONFIG_CHECK_MODULES+="SCSI_ISCSI_ATTRS ISCSI_TCP "
fi
if use rdma; then
CONFIG_CHECK_MODULES+="INFINIBAND_ISER "
fi
if use infiniband; then
CONFIG_CHECK_MODULES+="INFINIBAND_IPOIB INFINIBAND_USER_MAD INFINIBAND_USER_ACCESS"
fi
if linux_config_exists; then
for module in ${CONFIG_CHECK_MODULES}; do
linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled"
done
fi
}
python_prepare_all() {
sed -i '/^hacking/d' test-requirements.txt || die
# only used for docs
sed -i '/^sphinx-feature-classification/d' requirements.txt || die
distutils-r1_python_prepare_all
}
python_test() {
# Let's track progress of this # https://bugs.launchpad.net/swift/+bug/1249727
nosetests -I test_wsgi.py cinder/tests/ || die "tests failed under python2.7"
}
python_install_all() {
distutils-r1_python_install_all
keepdir /etc/cinder
dodir /etc/cinder/rootwrap.d
for svc in api scheduler volume; do
newinitd "${FILESDIR}/cinder.initd" cinder-${svc}
done
insinto /etc/cinder
insopts -m0640 -o cinder -g cinder
doins "etc/cinder/api-httpd.conf"
doins "etc/cinder/logging_sample.conf"
doins "etc/cinder/rootwrap.conf"
doins "etc/cinder/api-paste.ini"
doins "etc/cinder/resource_filters.json"
newins "${DISTDIR}/cinder.conf.sample-${PV}" "cinder.conf.sample"
insinto /etc/cinder/rootwrap.d
doins "etc/cinder/rootwrap.d/volume.filters"
dodir /var/log/cinder
fowners cinder:cinder /var/log/cinder
#add sudoers definitions for user nova
insinto /etc/sudoers.d/
insopts -m 0440 -o root -g root
newins "${FILESDIR}/cinder.sudoersd" cinder
# stupid python
rm -r "${ED}"/usr/etc
}
pkg_postinst() {
if use iscsi ; then
elog "Cinder needs tgtd to be installed and running to work with iscsi"
elog "it also needs 'include /var/lib/cinder/volumes/*' in /etc/tgt/targets.conf"
fi
}

View File

@@ -0,0 +1,17 @@
#!/sbin/openrc-run
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
description="Starts ${SVCNAME} service for OpenStack"
command=/usr/bin/${SVCNAME}
command_background=yes
command_args="--config-file /etc/cinder/cinder.conf --log-file ${CINDER_LOGDIR:-/var/log/cinder}/${SVCNAME}.log"
command_user="${CINDER_USER:-cinder}"
pidfile=/run/${SVCNAME}.pid
required_files=/etc/cinder/cinder.conf
retry="SIGTERM/30"
depend() {
need net
}

View File

@@ -0,0 +1,4 @@
Defaults:cinder !requiretty
cinder ALL = (root) NOPASSWD: /usr/bin/cinder-rootwrap

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<use>
<flag name="api">Installs the initscripts for the cinder api service</flag>
<flag name="iscsi">Allow using an iSCSI remote storage server as pool for disk image storage</flag>
<flag name="lvm">Allow using the Logical Volume Manager (<pkg>sys-fs/lvm2</pkg>) as pool for disk image storage</flag>
<flag name="memcached">Installs the memcached server</flag>
<flag name="rdma">Enable rdma storage backend support</flag>
<flag name="scheduler">Installs the initscripts for the cinder scheduler service</flag>
<flag name="tcp">Enables tcp support for the iscsi backend</flag>
<flag name="tgt">Enable tgt storage backend support</flag>
<flag name="volume">Installs the initscripts for the cinder volume service</flag>
</use>
<upstream>
<remote-id type="launchpad">cinder</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,2 @@
DIST heat.conf.sample-15.0.0 77233 BLAKE2B 4c15a617a667aa72af08038d90a3935e68298fd240a2aef6fd877843a1c9a149315cda2a6c322762d57edb8f9c189407fe71ee2f30fde57aa40a6d7f8c132249 SHA512 4d7a31c171849451475e1fcfb4961051ad88472ab5e13c2e8809386889f00a73200d2f6e7155aa59d1bd00eb28e43e94987e7bc1e496d1c9f2ed003f0a8d96e2
DIST openstack-heat-15.0.0.tar.gz 2391827 BLAKE2B 50e7881a4114ba2ed6ba9067a7879382b5b3d61e2db8f113190a6194f8d34d1b06734a1e3b532805cfad23999ed233ea9c8fc369e1b269828653f346e28ddff7 SHA512 dd17f5cabadd90ab88adea3782a29802b0b4467c46c40dbd41ce68c08e2425b2eec362833b79cb739e16e6d5b137256cc4955afd5bd143e3a2e613d3b428dd5d

View File

@@ -0,0 +1,16 @@
#!/sbin/openrc-run
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
description="Starts ${SVCNAME} service for OpenStack"
command=/usr/bin/${SVCNAME}
command_user="${HEAT_USER:-heat}"
command_background=yes
command_args="--config-file /etc/heat/heat.conf --log-file ${HEAT_LOGDIR:-/var/log/heat}/${SVCNAME}.log"
pidfile=/run/${SVCNAME}.pid
required_files=/etc/heat/heat.conf
depend() {
need net
}

View File

@@ -0,0 +1,163 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 python3_8 )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1 linux-info
DESCRIPTION="A CloudFormation-compatible openstack-native cloud orchestration engine."
HOMEPAGE="https://launchpad.net/heat"
if [[ ${PV} == *9999 ]];then
inherit git-r3
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/heat/heat.conf.sample.victoria -> heat.conf.sample-${PV}"
EGIT_REPO_URI="https://github.com/openstack/heat.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/heat/heat.conf.sample.victoria -> heat.conf.sample-${PV}
https://tarballs.openstack.org/${PN}/openstack-${P}.tar.gz"
KEYWORDS="amd64 ~arm64 x86"
S="${WORKDIR}/openstack-${P}"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="+mysql +memcached postgres sqlite"
REQUIRED_USE="|| ( mysql postgres sqlite )"
DEPEND="
>=dev-python/pbr-5.4.0[${PYTHON_USEDEP}]
app-admin/sudo
"
RDEPEND="
>=dev-python/pbr-5.4.0[${PYTHON_USEDEP}]
>=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
!~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
>=dev-python/croniter-0.3.4[${PYTHON_USEDEP}]
>=dev-python/cryptography-1.2.1[${PYTHON_USEDEP}]
>=dev-python/debtcollector-1.19.0[${PYTHON_USEDEP}]
>=dev-python/eventlet-0.20.0[${PYTHON_USEDEP}]
!~dev-python/eventlet-0.20.1[${PYTHON_USEDEP}]
!~dev-python/eventlet-0.21.0[${PYTHON_USEDEP}]
!~dev-python/eventlet-0.23.0[${PYTHON_USEDEP}]
!~dev-python/eventlet-0.25.0[${PYTHON_USEDEP}]
>=dev-python/keystoneauth-3.18.0[${PYTHON_USEDEP}]
>=dev-python/keystonemiddleware-4.17.0[${PYTHON_USEDEP}]
>=dev-python/lxml-4.5.0[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/neutron-lib-1.14.0[${PYTHON_USEDEP}]
>=dev-python/openstacksdk-0.11.2[${PYTHON_USEDEP}]
>=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
>=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
>=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
>=dev-python/oslo-db-6.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
>=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
>=dev-python/oslo-messaging-5.29.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-1.30.0[${PYTHON_USEDEP}]
>=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-2.18.0[${PYTHON_USEDEP}]
!~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
>=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
!~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
>=dev-python/oslo-upgradecheck-0.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-3.37.0[${PYTHON_USEDEP}]
>=dev-python/osprofiler-1.4.0[${PYTHON_USEDEP}]
>=dev-python/oslo-versionedobjects-1.31.2[${PYTHON_USEDEP}]
>=dev-python/pastedeploy-1.5.0[${PYTHON_USEDEP}]
>=dev-python/aodhclient-0.9.0[${PYTHON_USEDEP}]
>=dev-python/python-barbicanclient-4.5.2[${PYTHON_USEDEP}]
>=dev-python/python-blazarclient-1.0.1[${PYTHON_USEDEP}]
>=dev-python/python-cinderclient-3.3.0[${PYTHON_USEDEP}]
>=dev-python/python-designateclient-2.7.0[${PYTHON_USEDEP}]
>=dev-python/python-glanceclient-2.8.0[${PYTHON_USEDEP}]
>=dev-python/python-heatclient-1.10.0[${PYTHON_USEDEP}]
>=dev-python/python-ironicclient-2.8.0[${PYTHON_USEDEP}]
>=dev-python/python-keystoneclient-3.8.0[${PYTHON_USEDEP}]
>=dev-python/python-magnumclient-2.3.0[${PYTHON_USEDEP}]
>=dev-python/python-manilaclient-1.16.0[${PYTHON_USEDEP}]
>=dev-python/python-mistralclient-3.1.0[${PYTHON_USEDEP}]
!~dev-python/python-mistralclient-3.2.0[${PYTHON_USEDEP}]
>=dev-python/python-monascaclient-1.12.0[${PYTHON_USEDEP}]
>=dev-python/python-neutronclient-6.14.0[${PYTHON_USEDEP}]
>=dev-python/python-novaclient-9.1.0[${PYTHON_USEDEP}]
>=dev-python/python-octaviaclient-1.8.0[${PYTHON_USEDEP}]
>=dev-python/python-openstackclient-3.12.0[${PYTHON_USEDEP}]
>=dev-python/python-saharaclient-1.4.0[${PYTHON_USEDEP}]
>=dev-python/python-swiftclient-3.2.0[${PYTHON_USEDEP}]
>=dev-python/python-troveclient-2.2.0[${PYTHON_USEDEP}]
>=dev-python/python-vitrageclient-2.7.0[${PYTHON_USEDEP}]
>=dev-python/python-zaqarclient-1.3.0[${PYTHON_USEDEP}]
>=dev-python/python-zunclient-3.4.0[${PYTHON_USEDEP}]
>=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.13.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
>=dev-python/tenacity-6.1.0[${PYTHON_USEDEP}]
>=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
sqlite? (
>=dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.5[sqlite,${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.6[sqlite,${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.7[sqlite,${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.8[sqlite,${PYTHON_USEDEP}]
)
mysql? (
>=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
!~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}]
)
postgres? (
>=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}]
!~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}]
)
>=dev-python/sqlalchemy-migrate-0.13.0[${PYTHON_USEDEP}]
>=dev-python/stevedore-3.1.0[${PYTHON_USEDEP}]
>=dev-python/webob-1.7.1[${PYTHON_USEDEP}]
>=dev-python/yaql-1.1.3[${PYTHON_USEDEP}]
acct-user/heat
acct-group/heat"
PATCHES=(
)
python_prepare_all() {
sed -i '/^hacking/d' test-requirements.txt || die
distutils-r1_python_prepare_all
}
python_install_all() {
distutils-r1_python_install_all
diropts -m0750 -o heat -g heat
keepdir /etc/heat
dodir /etc/heat/environment.d
dodir /etc/heat/templates
for svc in api api-cfn engine; do
newinitd "${FILESDIR}/heat.initd" heat-${svc}
done
insinto /etc/heat
insopts -m0640 -o heat -g heat
newins "${DISTDIR}/heat.conf.sample-${PV}" "heat.conf.sample"
doins "etc/heat/api-paste.ini"
insinto /etc/heat/templates
doins "etc/heat/templates/"*
insinto /etc/heat/environment.d
doins "etc/heat/environment.d/default.yaml"
dodir /var/log/heat
fowners heat:heat /var/log/heat
rm -r "${ED}"/usr/etc
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<longdescription lang="en">
Heat is a service to orchestrate multiple composite cloud applications using
templates, through both an OpenStack-native REST API and a
CloudFormation-compatible Query API.
</longdescription>
<use>
<flag name="memcached">Installs the memcached server</flag>
</use>
<upstream>
<remote-id type="launchpad">heat</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,6 @@
DIST neutron-17.1.1.tar.gz 12925243 BLAKE2B f95068d1a85a508e447fc5de28ef6555252fdfe3deb8b0dd94a2e20f28663dc610bbb5e32fb69e0d80fbe9917c387b0c095fb43370ddfe2bbb05327553cb8e58 SHA512 cd707d4adaa6a6b606940370606fcef61a35af0d1f1108f24891d2f88611f4f2812c061d3b7a9540d4b6df882615a9366d39273184a791a911775e7c9f4402b8
DIST neutron-17.1.2.tar.gz 12930231 BLAKE2B 865e849fb811b3abf8b589ea5752c9305962ed24bcd69a4998425a1d56abcadd87f224e883269b780655f252d40dd050805782080385d94163b5488ffbdbf52a SHA512 1320c96ba5b3b2de5feb313b564baa7308b3b964c628afa57e60ed8f541549b11ddaa0ea1e4025dc0265ad1d962f0961fdc93924fcdde98c9b7c3c23728a3ebd
DIST neutron-configs-17.1.1.tar.gz 30314 BLAKE2B 885d00259fde0200f6a52d91b18e884012c04cb06e5e4ba6c72b77fbb0a8df30d50efd6db16faa009328eac9b7c5fb31854feb81595a542b4ac5d8172c8056b6 SHA512 cf85a563c417e1fb01f7d329c7021c20782fe67f64c5dfd542deed07e09d6a717e472976df8f1f4c3bb4a6a10e8d8b8300f18e1a3759358b3db12f77dad7bd5b
DIST neutron-configs-17.1.2.tar.gz 30314 BLAKE2B 885d00259fde0200f6a52d91b18e884012c04cb06e5e4ba6c72b77fbb0a8df30d50efd6db16faa009328eac9b7c5fb31854feb81595a542b4ac5d8172c8056b6 SHA512 cf85a563c417e1fb01f7d329c7021c20782fe67f64c5dfd542deed07e09d6a717e472976df8f1f4c3bb4a6a10e8d8b8300f18e1a3759358b3db12f77dad7bd5b
DIST neutron-ml2-plugins-17.1.1.tar.gz 9011 BLAKE2B d9f8cb4d26699ca44a4cf4cd422bd88b9bb5a2138a80fec469021491d87b158502801c2ce79316f52a900877f7706dc93c2a5a5a33c868918effeaa6b65a7931 SHA512 a225310f0f54991a079d515512189b3c08de22c5b13d58960ef24498401fc54b0878ed879d895e696b789e703a0bb3f4a184eccbbfb9ac9fe9447086cb952b37
DIST neutron-ml2-plugins-17.1.2.tar.gz 9011 BLAKE2B d9f8cb4d26699ca44a4cf4cd422bd88b9bb5a2138a80fec469021491d87b158502801c2ce79316f52a900877f7706dc93c2a5a5a33c868918effeaa6b65a7931 SHA512 a225310f0f54991a079d515512189b3c08de22c5b13d58960ef24498401fc54b0878ed879d895e696b789e703a0bb3f4a184eccbbfb9ac9fe9447086cb952b37

View File

@@ -0,0 +1,2 @@
NEUTRON_CONFS=("/etc/neutron/neutron.conf" "/etc/neutron/dhcp_agent.ini")

View File

@@ -0,0 +1,2 @@
NEUTRON_CONFS=("/etc/neutron/neutron.conf" "/etc/neutron/l3_agent.ini")

View File

@@ -0,0 +1 @@
NEUTRON_CONFS=("/etc/neutron/neutron.conf" "/etc/neutron/plugins/ml2/ml2_conf.ini" "/etc/neutron/plugins/ml2/linuxbridge_agent.ini")

View File

@@ -0,0 +1,2 @@
NEUTRON_CONFS=("/etc/neutron/neutron.conf" "/etc/neutron/metadata_agent.ini")

View File

@@ -0,0 +1 @@
NEUTRON_CONFS=("/etc/neutron/neutron.conf" "/etc/neutron/plugins/ml2/ml2_conf.ini" "/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini")

View File

@@ -0,0 +1 @@
NEUTRON_CONFS=("/etc/neutron/neutron.conf" "/etc/neutron/plugin.ini")

View File

@@ -0,0 +1,17 @@
#!/sbin/openrc-run
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
description="Starts ${SVCNAME} service for OpenStack"
command=/usr/bin/"${SVCNAME}"
command_background=yes
command_user="${NEUTRON_USER:-neutron}"
pidfile=/run/"${SVCNAME}".pid
required_files=(${NEUTRON_CONFS[@]:-/etc/neutron/neutron.conf})
command_args="${required_files[@]/#/--config-file } --log-file ${NEUTRON_LOGDIR:-/var/log/neutron}/${SVCNAME#*-}.log"
retry="SIGTERM/15"
depend() {
need net
}

View File

@@ -0,0 +1,4 @@
Defaults:neutron !requiretty
neutron ALL = (root) NOPASSWD: /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf *

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<maintainer type="project">
<email>openstack@gentoo.org</email>
<name>Openstack</name>
</maintainer>
<longdescription lang="en">
Just like OpenStack Nova provides an API to dynamically request and
configure virtual servers, Neutron provides an API to dynamically request
and configure virtual networks. These networks connect "interfaces" from
other OpenStack services (e.g., vNICs from Nova VMs). The Neutron API
supports extensions to provide advanced network capabilities
(e.g., QoS, ACLs, network monitoring, etc).
</longdescription>
<use>
<flag name="compute-only">Only install things needed on compute hosts</flag>
<flag name="dhcp">Installs the initscripts for the neutron dhcp service</flag>
<flag name="haproxy">haproxy backend support</flag>
<flag name="l3">Installs the initscripts for the neutron l3 agent service</flag>
<flag name="metadata">Installs the initscripts for the neutron metadata agent service</flag>
<flag name="openvswitch">Installs the initscripts for the neutron openvswitch agent service</flag>
<flag name="linuxbridge">Installs the initscripts for the neutron linuxbridge agent service</flag>
<flag name="server">Installs the initscripts for the neutron server service</flag>
</use>
<upstream>
<remote-id type="launchpad">neutron</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,227 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 python3_8 )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1 linux-info
DESCRIPTION="A virtual network service for Openstack"
HOMEPAGE="https://launchpad.net/neutron"
if [[ ${PV} == *9999 ]];then
inherit git-r3
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/configs.tar.gz -> neutron-configs-${PV}.tar.gz
https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz"
EGIT_REPO_URI="https://github.com/openstack/neutron.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/configs.tar.gz -> neutron-configs-${PV}.tar.gz
https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz
https://tarballs.openstack.org/${PN}/${P}.tar.gz"
KEYWORDS="amd64 ~arm64 x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server sqlite +mysql postgres"
REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) )
compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server
|| ( openvswitch linuxbridge ) )"
DEPEND="
>=dev-python/pbr-4.0.0[${PYTHON_USEDEP}]
app-admin/sudo
"
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-3.4.0[${PYTHON_USEDEP}]
>=dev-python/eventlet-0.21.0[${PYTHON_USEDEP}]
>=dev-python/pecan-1.3.2[${PYTHON_USEDEP}]
>=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
>=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
>=dev-python/jinja-2.10[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
>=dev-python/neutron-lib-2.6.0[${PYTHON_USEDEP}]
>=dev-python/python-neutronclient-6.3.0[${PYTHON_USEDEP}]
>=dev-python/tenacity-6.0.0[${PYTHON_USEDEP}]
compute-only? (
>=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
)
sqlite? (
>=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
)
mysql? (
>=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
!~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
)
postgres? (
>=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
)
>=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
>=dev-python/keystoneauth-3.14.0[${PYTHON_USEDEP}]
>=dev-python/alembic-0.8.10[${PYTHON_USEDEP}]
>=dev-python/stevedore-1.20.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-5.2.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-2.20.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.2.1[${PYTHON_USEDEP}]
>=dev-python/oslo-messaging-7.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-1.30.0[${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.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-2.25.0[${PYTHON_USEDEP}]
>=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
!~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
>=dev-python/oslo-upgradecheck-0.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-4.4.0[${PYTHON_USEDEP}]
>=dev-python/oslo-versionedobjects-1.35.1[${PYTHON_USEDEP}]
>=dev-python/osprofiler-2.3.0[${PYTHON_USEDEP}]
>=dev-python/os-ken-0.3.0[${PYTHON_USEDEP}]
>=dev-python/ovs-2.8.0[${PYTHON_USEDEP}]
>=dev-python/ovsdbapp-1.3.0[${PYTHON_USEDEP}]
>=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
>=dev-python/pyroute2-0.5.13[${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-xenapi-0.3.1[${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/pyudev[${PYTHON_USEDEP}]
sys-apps/iproute2
net-misc/iputils[arping]
net-misc/bridge-utils
net-firewall/ipset
net-firewall/iptables
net-firewall/ebtables
net-firewall/conntrack-tools
haproxy? ( net-proxy/haproxy )
openvswitch? ( net-misc/openvswitch )
ipv6? (
net-misc/radvd
>=net-misc/dibbler-1.0.1
)
dhcp? ( net-dns/dnsmasq[dhcp-tools] )
acct-group/neutron
acct-user/neutron"
#PATCHES=(
#)
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_install_all() {
distutils-r1_python_install_all
if use server; then
newinitd "${FILESDIR}/neutron.initd" "neutron-server"
newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
dosym ../../plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
fi
if use dhcp; then
newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
fi
if use l3; then
newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
fi
if use metadata; then
newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
fi
if use openvswitch; then
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"
fi
if use linuxbridge; then
newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
fi
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
doins etc/*
# stupid renames
insinto /etc/neutron
doins -r "etc/neutron/plugins"
insopts -m 0640 -o root -g root
doins "etc/rootwrap.conf"
doins -r "etc/neutron/rootwrap.d"
#add sudoers definitions for user neutron
insinto /etc/sudoers.d/
insopts -m 0440 -o root -g root
newins "${FILESDIR}/neutron.sudoersd" neutron
# add generated configs
cd "${D}/etc/neutron" || die
unpack "neutron-configs-${PV}.tar.gz"
cd "${D}/etc/neutron/plugins/ml2" || die
unpack "neutron-ml2-plugins-${PV}.tar.gz"
# 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() {
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
}

View File

@@ -0,0 +1,227 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 python3_8 )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1 linux-info
DESCRIPTION="A virtual network service for Openstack"
HOMEPAGE="https://launchpad.net/neutron"
if [[ ${PV} == *9999 ]];then
inherit git-r3
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/configs.tar.gz -> neutron-configs-${PV}.tar.gz
https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz"
EGIT_REPO_URI="https://github.com/openstack/neutron.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/configs.tar.gz -> neutron-configs-${PV}.tar.gz
https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz
https://tarballs.openstack.org/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~arm64 ~x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server sqlite +mysql postgres"
REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) )
compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server
|| ( openvswitch linuxbridge ) )"
DEPEND="
>=dev-python/pbr-4.0.0[${PYTHON_USEDEP}]
app-admin/sudo
"
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-3.4.0[${PYTHON_USEDEP}]
>=dev-python/eventlet-0.21.0[${PYTHON_USEDEP}]
>=dev-python/pecan-1.3.2[${PYTHON_USEDEP}]
>=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
>=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
>=dev-python/jinja-2.10[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
>=dev-python/neutron-lib-2.6.0[${PYTHON_USEDEP}]
>=dev-python/python-neutronclient-6.3.0[${PYTHON_USEDEP}]
>=dev-python/tenacity-6.0.0[${PYTHON_USEDEP}]
compute-only? (
>=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
)
sqlite? (
>=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
)
mysql? (
>=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
!~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
)
postgres? (
>=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
)
>=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
>=dev-python/keystoneauth-3.14.0[${PYTHON_USEDEP}]
>=dev-python/alembic-0.8.10[${PYTHON_USEDEP}]
>=dev-python/stevedore-1.20.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-5.2.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-2.20.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.2.1[${PYTHON_USEDEP}]
>=dev-python/oslo-messaging-7.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-1.30.0[${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.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-2.25.0[${PYTHON_USEDEP}]
>=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
!~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
>=dev-python/oslo-upgradecheck-0.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-4.4.0[${PYTHON_USEDEP}]
>=dev-python/oslo-versionedobjects-1.35.1[${PYTHON_USEDEP}]
>=dev-python/osprofiler-2.3.0[${PYTHON_USEDEP}]
>=dev-python/os-ken-0.3.0[${PYTHON_USEDEP}]
>=dev-python/ovs-2.8.0[${PYTHON_USEDEP}]
>=dev-python/ovsdbapp-1.3.0[${PYTHON_USEDEP}]
>=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
>=dev-python/pyroute2-0.5.13[${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-xenapi-0.3.1[${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/pyudev[${PYTHON_USEDEP}]
sys-apps/iproute2
net-misc/iputils[arping]
net-misc/bridge-utils
net-firewall/ipset
net-firewall/iptables
net-firewall/ebtables
net-firewall/conntrack-tools
haproxy? ( net-proxy/haproxy )
openvswitch? ( net-misc/openvswitch )
ipv6? (
net-misc/radvd
>=net-misc/dibbler-1.0.1
)
dhcp? ( net-dns/dnsmasq[dhcp-tools] )
acct-group/neutron
acct-user/neutron"
#PATCHES=(
#)
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_install_all() {
distutils-r1_python_install_all
if use server; then
newinitd "${FILESDIR}/neutron.initd" "neutron-server"
newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
dosym ../../plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
fi
if use dhcp; then
newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
fi
if use l3; then
newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
fi
if use metadata; then
newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
fi
if use openvswitch; then
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"
fi
if use linuxbridge; then
newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
fi
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
doins etc/*
# stupid renames
insinto /etc/neutron
doins -r "etc/neutron/plugins"
insopts -m 0640 -o root -g root
doins "etc/rootwrap.conf"
doins -r "etc/neutron/rootwrap.d"
#add sudoers definitions for user neutron
insinto /etc/sudoers.d/
insopts -m 0440 -o root -g root
newins "${FILESDIR}/neutron.sudoersd" neutron
# add generated configs
cd "${D}/etc/neutron" || die
unpack "neutron-configs-${PV}.tar.gz"
cd "${D}/etc/neutron/plugins/ml2" || die
unpack "neutron-ml2-plugins-${PV}.tar.gz"
# 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() {
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
}

View File

@@ -0,0 +1,4 @@
DIST nova-22.2.0.tar.gz 9271449 BLAKE2B c7b52f4d7e819152971c67f5f0a9f2b191e0235917efd04c799413ebfbf44500c64bae9ddd6082ef7b347c500d346f46fd07bad45a7fc4e5c397713867681dbe SHA512 acb9745b2bebd669f919a2d3d73e9dc5dad5aa3de49690daddd779fb6467139f857d67c6d8af3761f12db9bf6c5120d1af7bee3e73b3c0e0c44d6b41cafe7883
DIST nova-22.2.1.tar.gz 9274586 BLAKE2B fb44f5cbd544c08d92aef48ef2858806245f1f36f2edc1a86a03189b460431add656d00dea830bf4fd324c79bf0d0e057b06836b25f554eea6416af3c2821bce SHA512 59df339bb00d4a7e087cc9caf6d6efcb1e5205ea8889502d00c4c22eb4acc6c0f19383de76f260382d56e145fad01088c3fd28f41d26441303e13b3b839ddcce
DIST nova.conf.sample-22.2.0 187107 BLAKE2B e577126b67f2cc1aa6597f89b1632007f726ad85875d5f27041d0f9ac88923b944fe7f45ae2b3332157713b5f93034dad4da2860917b025649a52d7d71986612 SHA512 4149f8f19a573e8717f521183ba330853742bb6731f0e9ef02842d3be1c188ea3a2cdbeb6043086869360b9b1174a17e221c4ad1f543f74220c46cf31b1ca970
DIST nova.conf.sample-22.2.1 187107 BLAKE2B e577126b67f2cc1aa6597f89b1632007f726ad85875d5f27041d0f9ac88923b944fe7f45ae2b3332157713b5f93034dad4da2860917b025649a52d7d71986612 SHA512 4149f8f19a573e8717f521183ba330853742bb6731f0e9ef02842d3be1c188ea3a2cdbeb6043086869360b9b1174a17e221c4ad1f543f74220c46cf31b1ca970

View File

@@ -0,0 +1,4 @@
[DEFAULT]
# mkisofs_cmd is needed as the default provider for the binary was remvoed as
# a package from Gentoo.
mkisofs_cmd = /usr/bin/mkisofs

View File

@@ -0,0 +1,3 @@
Defaults:nova !requiretty
nova ALL = (root) NOPASSWD: /usr/bin/nova-rootwrap

View File

@@ -0,0 +1,25 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="Starts ${SVCNAME} service for OpenStack"
command="/usr/bin/${SVCNAME}"
command_args="--config-file /etc/nova/nova.conf"
pidfile=/run/${SVCNAME}.pid
command_background=true
required_files=/etc/nova/nova.conf
if [ "$SVCNAME" = nova-compute ]; then
required_files="${required_files} /etc/nova/nova-compute.conf"
command_args="${command_args} --config-file /etc/nova/nova-compute.conf"
fi
start_stop_daemon_args="-u ${NOVA_USER:-nova}"
retry="SIGTERM/15"
depend() {
use net
}
start_pre() {
checkpath --directory --owner "${NOVA_USER:-nova}":"${NOVA_GROUP:-nova}" --mode 0775 "${NOVA_RUN:-/var/lock/nova}"
}

View File

@@ -0,0 +1,2 @@
KERNEL=="sd*", SUBSYSTEM=="block", ENV{ID_BUS}=="scsi", PROGRAM="/etc/nova/scsi-openscsi-link.sh %b $id", SYMLINK+="disk/by-path/%c"

View File

@@ -0,0 +1,93 @@
#!/bin/bash
# Author: Geaaru
# Date: October 23, 2014
# Version: 0.1.0
# License: GPL 2.0
# Description: Script for udev symlink creation of
# scsi disk attached and visible under
# /dev/disk/by-path/ with name convention
# used in openstack LVM iscsi driver.
#
# Requirements: lsscsi (for retrieve LUN ID, I don't know how can i do that from udev/iscsiadm)
# Rules for UDEV must in this format:
# KERNEL=="sd*", BUS=="scsi", PROGRAM="/etc/nova/scsi-openscsi-link.sh %b",SYMLINK+="disk/by-path/%c"
# NOTE: it seems that input params %b or others are not passed to script.
# I try to retrieve it from environment variables.
if [[ -z "$DEVTYPE" || -z "$ID_BUS" ]] ; then
exit 1
fi
echo "--------------------" >> /tmp/udev.log
echo "ENV => `env`" >> /tmp/udev.log
echo "--------------------" >> /tmp/udev.log
if [[ $DEVTYPE != "disk" || $ID_BUS != "scsi" ]]; then
echo "EXIT 1" >> /tmp/udev.log
exit 1
fi
# ID_SCSI variable what identify ?
HOST=`echo "$DEVPATH" | awk '{ split($0, word, "/"); print substr(word[4], 5); }'`
# Bins
iscsiadm=/usr/sbin/iscsiadm
lsscsi=/usr/bin/lsscsi
[ -e /sys/class/iscsi_host ] || exit 1
# Create file path like this:
# /sys/class/iscsi_host/host11/device/session3/iscsi_session/session3/targetname
file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/session*/targetname"
target_iqn=$(cat ${file})
if [ -z "${target_iqn}" ] ; then
echo "EXIT 2" >> /tmp/udev.log
exit 1
fi
# Retrieve target_port because I can't retrieve it with iscsi_id
# /lib/udev/scsi_id -g -x /dev/sdg
# ID_SCSI=1
# ID_VENDOR=IET
# ID_VENDOR_ENC=IET\x20\x20\x20\x20\x20
# ID_MODEL=VIRTUAL-DISK
# ID_MODEL_ENC=VIRTUAL-DISK
# ID_REVISION=0001
# ID_TYPE=disk
# ID_SERIAL=1IET_00010001
# ID_SERIAL_SHORT=IET_00010001
# ID_SCSI_SERIAL= beaf11a
# iscsiadm -m node | grep --colour=none iqn.2014-09.org.openstack:vol-cinder-f48f0a69-e871-4c47-9cd3-3ccb8c811363 | cut -d',' -f 1
tp_ispresent=$(${iscsiadm} -m node | grep --colour=none ${target_iqn} | wc -l)
if [ x$tp_ispresent = x0 ] ; then
# Target is not present. Ignore it.
echo "EXIT 3" >> /tmp/udev.log
exit 1
fi
target_portal=$(${iscsiadm} -m node | grep --colour=none ${target_iqn} | cut -d',' -f 1)
#target=$(${iscsiadm} -m node | grep --colour=none ${target_iqn} | cut -d' ' -f 1)
#target_portal=$(echo ${target} | cut -d',' -f 1)
target_lun=$(${lsscsi} | grep $DEVNAME | sed 's/.[0-9]*:[0-9]*:[0-9]*:\([0-9]*\).*/\1/')
echo "TARGET_PORTAL=$target_portal" >> /tmp/udev.log
echo "TARGET_LUN=$target_lun" >> /tmp/udev.log
linkname="ip-${target_portal}-iscsi-${target_iqn}-lun-${target_lun}"
echo "RETURN ${linkname}" >> /tmp/udev.log
echo "${linkname}"
exit 0

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<maintainer type="project">
<email>openstack@gentoo.org</email>
<name>Openstack</name>
</maintainer>
<longdescription lang="en">
Nova is a cloud computing fabric controller
(the main part of an IaaS system). It is written in Python.
</longdescription>
<use>
<flag name="compute">Installs the initscripts for the nova volume service</flag>
<flag name="compute-only">only install stuff needed for a compute host</flag>
<flag name="iscsi">Installs iscsi helper udev scripts</flag>
<flag name="memcached">Installs the memcached server</flag>
<flag name="novncproxy">Installs the initscripts for the nova novncproxy service</flag>
<flag name="openvswitch">Installs openvswitch for the neutron openvswitch support</flag>
<flag name="rabbitmq">Installs the rabbitmq server</flag>
</use>
<upstream>
<remote-id type="launchpad">nova</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,213 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 python3_8 )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1 linux-info multilib udev
DESCRIPTION="Cloud computing fabric controller"
HOMEPAGE="https://launchpad.net/nova"
if [[ ${PV} == *9999 ]];then
inherit git-r3
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/victoria/nova.conf.sample -> nova.conf.sample-${PV}"
EGIT_REPO_URI="https://github.com/openstack/nova.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/victoria/nova.conf.sample -> nova.conf.sample-${PV}
https://tarballs.openstack.org/${PN}/${P}.tar.gz"
KEYWORDS="amd64 ~arm64 x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="+compute compute-only iscsi +memcached +mysql +novncproxy openvswitch postgres +rabbitmq sqlite"
REQUIRED_USE="
!compute-only? ( || ( mysql postgres sqlite ) )
compute-only? ( compute !rabbitmq !memcached !mysql !postgres !sqlite )"
CDEPEND="
>=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
!~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
DEPEND="
${CDEPEND}
app-admin/sudo"
RDEPEND="
${CDEPEND}
compute-only? (
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
sqlite? (
>=dev-python/sqlalchemy-1.2.19[sqlite,${PYTHON_USEDEP}]
)
mysql? (
>=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
!~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
postgres? (
>=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
>=dev-python/decorator-4.1.0[${PYTHON_USEDEP}]
>=dev-python/eventlet-0.22.0[${PYTHON_USEDEP}]
>=dev-python/jinja-2.10[${PYTHON_USEDEP}]
>=dev-python/keystonemiddleware-4.17.0[${PYTHON_USEDEP}]
>=dev-python/lxml-4.5.0[${PYTHON_USEDEP}]
>=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
>=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
>=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
>=dev-python/greenlet-0.4.15[${PYTHON_USEDEP}]
>=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
>=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
>=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
<dev-python/prettytable-0.8[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-migrate-0.13.0[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
>=dev-python/paramiko-2.7.1[${PYTHON_USEDEP}]
>=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
>=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
>=dev-python/python-cinderclient-3.3.0[${PYTHON_USEDEP}]
!~dev-python/python-cinderclient-4.0.0[${PYTHON_USEDEP}]
>=dev-python/keystoneauth-3.16.0[${PYTHON_USEDEP}]
>=dev-python/python-neutronclient-6.7.0[${PYTHON_USEDEP}]
>=dev-python/python-glanceclient-2.8.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.23.0[${PYTHON_USEDEP}]
>=dev-python/six-1.11.0[${PYTHON_USEDEP}]
>=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
>=dev-python/websockify-0.9.0[${PYTHON_USEDEP}]
>=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
>=dev-python/oslo-concurrency-3.29.0[${PYTHON_USEDEP}]
>=dev-python/oslo-config-6.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-2.22.0[${PYTHON_USEDEP}]
>=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
>=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-1.21.0[${PYTHON_USEDEP}]
>=dev-python/oslo-upgradecheck-0.1.1[${PYTHON_USEDEP}]
!~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-4.5.0[${PYTHON_USEDEP}]
>=dev-python/oslo-db-4.44.0[${PYTHON_USEDEP}]
>=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-messaging-10.3.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-3.4.0[${PYTHON_USEDEP}]
>=dev-python/oslo-privsep-1.33.2[${PYTHON_USEDEP}]
>=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
>=dev-python/oslo-service-1.40.1[${PYTHON_USEDEP}]
>=dev-python/rfc3986-1.2.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
>=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
>=dev-python/oslo-versionedobjects-1.35.0[${PYTHON_USEDEP}]
>=dev-python/os-brick-3.1.0[${PYTHON_USEDEP}]
>=dev-python/os-resource-classes-0.4.0[${PYTHON_USEDEP}]
>=dev-python/os-traits-2.4.0[${PYTHON_USEDEP}]
>=dev-python/os-vif-1.14.0[${PYTHON_USEDEP}]
>=dev-python/os-win-4.2.0[${PYTHON_USEDEP}]
>=dev-python/castellan-0.16.0[${PYTHON_USEDEP}]
>=dev-python/microversion-parse-0.2.1[${PYTHON_USEDEP}]
>=dev-python/os-xenapi-0.3.4[${PYTHON_USEDEP}]
>=dev-python/tooz-1.58.0[${PYTHON_USEDEP}]
>=dev-python/cursive-0.2.1[${PYTHON_USEDEP}]
>=dev-python/pypowervm-1.1.15[${PYTHON_USEDEP}]
>=dev-python/retrying-1.3.3[${PYTHON_USEDEP}]
>=dev-python/os-service-types-1.7.0[${PYTHON_USEDEP}]
>=dev-python/taskflow-3.8.0[${PYTHON_USEDEP}]
>=dev-python/python-dateutil-2.5.3[${PYTHON_USEDEP}]
>=dev-python/zVMCloudConnector-1.3.0[${PYTHON_USEDEP}]
>=dev-python/openstacksdk-0.35.0[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
dev-python/libvirt-python[${PYTHON_USEDEP}]
app-emulation/libvirt[iscsi?]
app-emulation/spice-html5
novncproxy? ( www-apps/novnc )
sys-apps/iproute2
openvswitch? ( net-misc/openvswitch )
rabbitmq? ( net-misc/rabbitmq-server )
memcached? (
net-misc/memcached
>=dev-python/python-memcached-1.58
)
sys-fs/sysfsutils
sys-fs/multipath-tools
net-misc/bridge-utils
compute? (
app-cdr/cdrtools
sys-fs/dosfstools
app-emulation/qemu
)
iscsi? (
sys-fs/lsscsi
>=sys-block/open-iscsi-2.0.873-r1
)
acct-user/nova
acct-group/nova"
#PATCHES=(
#)
pkg_setup() {
linux-info_pkg_setup
CONFIG_CHECK_MODULES="BLK_DEV_NBD VHOST_NET IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 IP_NF_FILTER IP_NF_IPTABLES \
NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 NF_NAT_IPV4 NF_NAT NF_CONNTRACK NETFILTER_XTABLES \
ISCSI_TCP SCSI_DH DM_MULTIPATH DM_SNAPSHOT"
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
}
python_prepare_all() {
sed -i '/^hacking/d' test-requirements.txt || die
distutils-r1_python_prepare_all
}
python_install_all() {
distutils-r1_python_install_all
if use !compute-only; then
for svc in api conductor consoleauth network scheduler spicehtml5proxy xvpvncproxy; do
newinitd "${FILESDIR}/nova.initd" "nova-${svc}"
done
fi
use compute && newinitd "${FILESDIR}/nova.initd" "nova-compute"
use novncproxy && newinitd "${FILESDIR}/nova.initd" "nova-novncproxy"
diropts -m 0750 -o nova -g qemu
dodir /var/log/nova /var/lib/nova/instances
diropts -m 0750 -o nova -g nova
insinto /etc/nova
insopts -m 0640 -o nova -g nova
newins "${DISTDIR}/nova.conf.sample-${PV}" "nova.conf.sample"
doins "${FILESDIR}/nova-compute.conf"
doins "${S}/etc/nova/"*
# rootwrap filters
insopts -m 0644
insinto /etc/nova/rootwrap.d
doins "etc/nova/rootwrap.d/compute.filters"
# add sudoers definitions for user nova
insinto /etc/sudoers.d/
insopts -m 0600 -o root -g root
doins "${FILESDIR}/nova-sudoers"
if use iscsi ; then
# Install udev rules for handle iscsi disk with right links under /dev
udev_newrules "${FILESDIR}/openstack-scsi-disk.rules" 60-openstack-scsi-disk.rules
insinto /etc/nova/
doins "${FILESDIR}/scsi-openscsi-link.sh"
fi
rm -r "${ED}/usr/etc"
}
pkg_postinst() {
if use iscsi ; then
elog "iscsid needs to be running if you want cinder to connect"
fi
}

View File

@@ -0,0 +1,213 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 python3_8 )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1 linux-info multilib udev
DESCRIPTION="Cloud computing fabric controller"
HOMEPAGE="https://launchpad.net/nova"
if [[ ${PV} == *9999 ]];then
inherit git-r3
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/victoria/nova.conf.sample -> nova.conf.sample-${PV}"
EGIT_REPO_URI="https://github.com/openstack/nova.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/victoria/nova.conf.sample -> nova.conf.sample-${PV}
https://tarballs.openstack.org/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~arm64 ~x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="+compute compute-only iscsi +memcached +mysql +novncproxy openvswitch postgres +rabbitmq sqlite"
REQUIRED_USE="
!compute-only? ( || ( mysql postgres sqlite ) )
compute-only? ( compute !rabbitmq !memcached !mysql !postgres !sqlite )"
CDEPEND="
>=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
!~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
DEPEND="
${CDEPEND}
app-admin/sudo"
RDEPEND="
${CDEPEND}
compute-only? (
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
sqlite? (
>=dev-python/sqlalchemy-1.2.19[sqlite,${PYTHON_USEDEP}]
)
mysql? (
>=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
!~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
postgres? (
>=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
>=dev-python/decorator-4.1.0[${PYTHON_USEDEP}]
>=dev-python/eventlet-0.22.0[${PYTHON_USEDEP}]
>=dev-python/jinja-2.10[${PYTHON_USEDEP}]
>=dev-python/keystonemiddleware-4.17.0[${PYTHON_USEDEP}]
>=dev-python/lxml-4.5.0[${PYTHON_USEDEP}]
>=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
>=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
>=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
>=dev-python/greenlet-0.4.15[${PYTHON_USEDEP}]
>=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
>=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
>=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
<dev-python/prettytable-0.8[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-migrate-0.13.0[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
>=dev-python/paramiko-2.7.1[${PYTHON_USEDEP}]
>=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
>=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
>=dev-python/python-cinderclient-3.3.0[${PYTHON_USEDEP}]
!~dev-python/python-cinderclient-4.0.0[${PYTHON_USEDEP}]
>=dev-python/keystoneauth-3.16.0[${PYTHON_USEDEP}]
>=dev-python/python-neutronclient-6.7.0[${PYTHON_USEDEP}]
>=dev-python/python-glanceclient-2.8.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.23.0[${PYTHON_USEDEP}]
>=dev-python/six-1.11.0[${PYTHON_USEDEP}]
>=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
>=dev-python/websockify-0.9.0[${PYTHON_USEDEP}]
>=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
>=dev-python/oslo-concurrency-3.29.0[${PYTHON_USEDEP}]
>=dev-python/oslo-config-6.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-2.22.0[${PYTHON_USEDEP}]
>=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
>=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-1.21.0[${PYTHON_USEDEP}]
>=dev-python/oslo-upgradecheck-0.1.1[${PYTHON_USEDEP}]
!~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-4.5.0[${PYTHON_USEDEP}]
>=dev-python/oslo-db-4.44.0[${PYTHON_USEDEP}]
>=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-messaging-10.3.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-3.4.0[${PYTHON_USEDEP}]
>=dev-python/oslo-privsep-1.33.2[${PYTHON_USEDEP}]
>=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
>=dev-python/oslo-service-1.40.1[${PYTHON_USEDEP}]
>=dev-python/rfc3986-1.2.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
>=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
>=dev-python/oslo-versionedobjects-1.35.0[${PYTHON_USEDEP}]
>=dev-python/os-brick-3.1.0[${PYTHON_USEDEP}]
>=dev-python/os-resource-classes-0.4.0[${PYTHON_USEDEP}]
>=dev-python/os-traits-2.4.0[${PYTHON_USEDEP}]
>=dev-python/os-vif-1.14.0[${PYTHON_USEDEP}]
>=dev-python/os-win-4.2.0[${PYTHON_USEDEP}]
>=dev-python/castellan-0.16.0[${PYTHON_USEDEP}]
>=dev-python/microversion-parse-0.2.1[${PYTHON_USEDEP}]
>=dev-python/os-xenapi-0.3.4[${PYTHON_USEDEP}]
>=dev-python/tooz-1.58.0[${PYTHON_USEDEP}]
>=dev-python/cursive-0.2.1[${PYTHON_USEDEP}]
>=dev-python/pypowervm-1.1.15[${PYTHON_USEDEP}]
>=dev-python/retrying-1.3.3[${PYTHON_USEDEP}]
>=dev-python/os-service-types-1.7.0[${PYTHON_USEDEP}]
>=dev-python/taskflow-3.8.0[${PYTHON_USEDEP}]
>=dev-python/python-dateutil-2.5.3[${PYTHON_USEDEP}]
>=dev-python/zVMCloudConnector-1.3.0[${PYTHON_USEDEP}]
>=dev-python/openstacksdk-0.35.0[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
dev-python/libvirt-python[${PYTHON_USEDEP}]
app-emulation/libvirt[iscsi?]
app-emulation/spice-html5
novncproxy? ( www-apps/novnc )
sys-apps/iproute2
openvswitch? ( net-misc/openvswitch )
rabbitmq? ( net-misc/rabbitmq-server )
memcached? (
net-misc/memcached
>=dev-python/python-memcached-1.58
)
sys-fs/sysfsutils
sys-fs/multipath-tools
net-misc/bridge-utils
compute? (
app-cdr/cdrtools
sys-fs/dosfstools
app-emulation/qemu
)
iscsi? (
sys-fs/lsscsi
>=sys-block/open-iscsi-2.0.873-r1
)
acct-user/nova
acct-group/nova"
#PATCHES=(
#)
pkg_setup() {
linux-info_pkg_setup
CONFIG_CHECK_MODULES="BLK_DEV_NBD VHOST_NET IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 IP_NF_FILTER IP_NF_IPTABLES \
NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 NF_NAT_IPV4 NF_NAT NF_CONNTRACK NETFILTER_XTABLES \
ISCSI_TCP SCSI_DH DM_MULTIPATH DM_SNAPSHOT"
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
}
python_prepare_all() {
sed -i '/^hacking/d' test-requirements.txt || die
distutils-r1_python_prepare_all
}
python_install_all() {
distutils-r1_python_install_all
if use !compute-only; then
for svc in api conductor consoleauth network scheduler spicehtml5proxy xvpvncproxy; do
newinitd "${FILESDIR}/nova.initd" "nova-${svc}"
done
fi
use compute && newinitd "${FILESDIR}/nova.initd" "nova-compute"
use novncproxy && newinitd "${FILESDIR}/nova.initd" "nova-novncproxy"
diropts -m 0750 -o nova -g qemu
dodir /var/log/nova /var/lib/nova/instances
diropts -m 0750 -o nova -g nova
insinto /etc/nova
insopts -m 0640 -o nova -g nova
newins "${DISTDIR}/nova.conf.sample-${PV}" "nova.conf.sample"
doins "${FILESDIR}/nova-compute.conf"
doins "${S}/etc/nova/"*
# rootwrap filters
insopts -m 0644
insinto /etc/nova/rootwrap.d
doins "etc/nova/rootwrap.d/compute.filters"
# add sudoers definitions for user nova
insinto /etc/sudoers.d/
insopts -m 0600 -o root -g root
doins "${FILESDIR}/nova-sudoers"
if use iscsi ; then
# Install udev rules for handle iscsi disk with right links under /dev
udev_newrules "${FILESDIR}/openstack-scsi-disk.rules" 60-openstack-scsi-disk.rules
insinto /etc/nova/
doins "${FILESDIR}/scsi-openscsi-link.sh"
fi
rm -r "${ED}/usr/etc"
}
pkg_postinst() {
if use iscsi ; then
elog "iscsid needs to be running if you want cinder to connect"
fi
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<use>
<flag name="keystone">Installs Openstack Keystone</flag>
<flag name="swift">Installs Openstack Swift</flag>
<flag name="glance">Installs Openstack Glance</flag>
<flag name="cinder">Installs Openstack Cinder</flag>
<flag name="neutron">Installs Openstack Neutron</flag>
<flag name="nova">Installs Openstack Nova</flag>
<flag name="heat">Installs Openstack Heat</flag>
<flag name="placement">Installs Openstack Placement</flag>
<!-- <flag name="horizon">Installs Openstack Horizon</flag> -->
</use>
</pkgmetadata>

View File

@@ -0,0 +1,35 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="A openstack meta-package for installing the various openstack pieces"
HOMEPAGE="https://openstack.org"
LICENSE="Apache-2.0"
SLOT="0"
IUSE="cinder glance heat keystone neutron nova placement swift"
if [[ ${PV} != *9999 ]];then
KEYWORDS="~amd64 ~arm64 ~x86"
fi
DEPEND=""
RDEPEND="
keystone? ( >=sys-auth/keystone-17.0.0
<sys-auth/keystone-18 )
swift? ( >=sys-cluster/swift-2.25.0
<sys-cluster/swift-2.26.0 )
neutron? ( >=sys-cluster/neutron-16.0.0
<sys-cluster/neutron-17 )
glance? ( >=app-admin/glance-20.0.0
<app-admin/glance-21 )
cinder? ( >=sys-cluster/cinder-16.0.0
<sys-cluster/cinder-17 )
nova? ( >=sys-cluster/nova-21.0.0
<sys-cluster/nova-22 )
heat? ( >=sys-cluster/heat-14.0.0
<sys-cluster/heat-15 )
placement? ( >=sys-cluster/placement-3.0.0
<sys-cluster/placement-4 )
"

View File

@@ -0,0 +1,35 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="A openstack meta-package for installing the various openstack pieces"
HOMEPAGE="https://openstack.org"
LICENSE="Apache-2.0"
SLOT="0"
IUSE="cinder glance heat keystone neutron nova placement swift"
if [[ ${PV} != *9999 ]];then
KEYWORDS="~amd64 ~arm64 ~x86"
fi
DEPEND=""
RDEPEND="
keystone? ( >=sys-auth/keystone-18.0.0
<sys-auth/keystone-19 )
swift? ( >=sys-cluster/swift-2.26.0
<sys-cluster/swift-2.27.0 )
neutron? ( >=sys-cluster/neutron-17.0.0
<sys-cluster/neutron-18 )
glance? ( >=app-admin/glance-21.0.0
<app-admin/glance-22 )
cinder? ( >=sys-cluster/cinder-17.0.0
<sys-cluster/cinder-18 )
nova? ( >=sys-cluster/nova-22.0.0
<sys-cluster/nova-23 )
heat? ( >=sys-cluster/heat-15.0.0
<sys-cluster/heat-16 )
placement? ( >=sys-cluster/placement-4.0.0
<sys-cluster/placement-5 )
"

View File

@@ -0,0 +1,2 @@
DIST openstack-placement-4.0.0.tar.gz 502434 BLAKE2B 9c769d2ef78bad37ef6ac823c9b0fa29128bfea94626f6a4e9cd1ffa6e1e4d441e4b20353e97282823bc1638ee25499fa840b9d34600b1928271627d412c93cc SHA512 32ff30f7216ea56b073582c2e1c4b501229d941f3c6fc501245ab92544234774df63a9b9674ba5f1225d462ab205b2512185907e309e4135e01e1776d554b293
DIST placement.conf.sample-4.0.0 26306 BLAKE2B 037ce73d52066fc2f2fe0542c10e3879c513ca23f127a03cd575cca0d21f7b2f4f36491c238897cacd962072797d9d2fd50be054c3ae09f95f5417ab9758b289 SHA512 640329729d0964b67a25837692f0db0f5e9682aff6bd1f3e124657c4bc0de7f6a9f65a5c17889cd6c0a0584d471c880865a59b939262ed8beac2ae452d0ea02a

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<maintainer type="project">
<email>openstack@gentoo.org</email>
<name>Openstack</name>
</maintainer>
<longdescription lang="en">
OpenStack Placement provides an HTTP service for managing, selecting, and claiming providers of classes of inventory representing available resources in a cloud.
</longdescription>
</pkgmetadata>

View File

@@ -0,0 +1,77 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 python3_8 )
inherit distutils-r1
DESCRIPTION="A HTTP service for managing, selecting, and claiming cloud resources."
HOMEPAGE="https://github.com/openstack/placement"
if [[ ${PV} == *9999 ]];then
inherit git-r3
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/placement/victoria/placement.conf.sample -> placement.conf.sample-${PV}"
EGIT_REPO_URI="https://github.com/openstack/placement.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/placement/victoria/placement.conf.sample -> placement.conf.sample-${PV}
https://tarballs.openstack.org/${PN}/openstack-${P}.tar.gz"
KEYWORDS="amd64 ~arm64 x86"
S="${WORKDIR}/openstack-${P}"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="mysql postgres sqlite"
REQUIRED_USE="|| ( mysql postgres sqlite )"
DEPEND=">=dev-python/pbr-5.0.0[${PYTHON_USEDEP}]"
RDEPEND="
>=dev-python/pbr-5.0.0[${PYTHON_USEDEP}]
sqlite? (
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
mysql? (
>=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
!~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
postgres? (
>=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
>=dev-python/sqlalchemy-1.2.19[${PYTHON_USEDEP}]
)
>=dev-python/keystonemiddleware-4.18.0[${PYTHON_USEDEP}]
>=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
>=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
>=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
>=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
>=dev-python/oslo-config-6.7.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
>=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}]
!~dev-python/oslo-serialization-1.19.1[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-3.37.0[${PYTHON_USEDEP}]
>=dev-python/oslo-db-4.40.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-1.35.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
>=dev-python/oslo-upgradecheck-0.2.0[${PYTHON_USEDEP}]
>=dev-python/os-resource-classes-0.5.0[${PYTHON_USEDEP}]
>=dev-python/os-traits-2.4.0[${PYTHON_USEDEP}]
>=dev-python/microversion-parse-0.2.1[${PYTHON_USEDEP}]
acct-user/placement
acct-group/placement"
BDEPEND=""
python_install_all() {
distutils-r1_python_install_all
diropts -m 0750 -o placement -g placement
insinto /etc/placement
insopts -m 0640 -o placement -g placement
newins "${DISTDIR}/placement.conf.sample-${PV}" placement.conf.sample
dobin tools/mysql-migrate-db.sh
dobin tools/postgresql-migrate-db.sh
}

View File

@@ -0,0 +1,2 @@
DIST swift-2.26.0.tar.gz 3235050 BLAKE2B 33b46ebc3bd57b6ca6ccb65e96dd11a754fa1b4d314c60eafd23ad8b6bb7b8fee42ce26ccf0f388ad33599520a049a2d36832ba3d1ea01b0a07a8bee3f803569 SHA512 5e4620831bfc75f231fa468ce68438a23ad7b013eef4173aa596fd2e42bd4eb7e6b4182026fa71b6f4dd31d2cfccc4e70480a42a77f93b15bf6e50e9287ea460
DIST swift-2.27.0.tar.gz 3464571 BLAKE2B 9495abc39b150615a8f7f1900573c643b4f2edd5c187c4d525c4ad7d7e0c2d54eeec0f9b3d8711ed2028cf4d606dee532bd8e4af4b3e1527f3cee5bcc8e62835 SHA512 c9abfa16cfb4964bd774a3dd50c847bf1912e5f87edc8693746e2dcb5863289b9afd2b69b0cc0940aa3fbb49694851b0b6418462367078d0c40d2b724b135467

View File

@@ -0,0 +1,35 @@
#!/sbin/openrc-run
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
COMMAND=/usr/bin/swift-init
PIDFILE=/run/swift/account-server.pid
depend() {
after net
}
checkconfig() {
if [ ! -r /etc/swift/swift.conf ]; then
eerror "Missing required config file: /etc/swift/swift.conf"
return 1
fi
if [ ! -r /etc/swift/account-server.conf ]; then
eerror "Missing required config file: /etc/swift/account-server.conf"
return 1
fi
return 0
}
start() {
checkconfig || return $?
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- account start
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- account stop
eend $?
}

View File

@@ -0,0 +1,35 @@
#!/sbin/openrc-run
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
COMMAND=/usr/bin/swift-init
PIDFILE=/run/swift/container-server.pid
depend() {
after net
}
checkconfig() {
if [ ! -r /etc/swift/swift.conf ]; then
eerror "Missing required config file: /etc/swift/swift.conf"
return 1
fi
if [ ! -r /etc/swift/container-server.conf ]; then
eerror "Missing required config file: /etc/swift/container-server.conf"
return 1
fi
return 0
}
start() {
checkconfig || return $?
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- container start
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- container stop
eend $?
}

View File

@@ -0,0 +1,35 @@
#!/sbin/openrc-run
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
COMMAND=/usr/bin/swift-init
PIDFILE=/run/swift/object-server.pid
depend() {
after net
}
checkconfig() {
if [ ! -r /etc/swift/swift.conf ]; then
eerror "Missing required config file: /etc/swift/swift.conf"
return 1
fi
if [ ! -r /etc/swift/object-server.conf ]; then
eerror "Missing required config file: /etc/swift/object-server.conf"
return 1
fi
return 0
}
start() {
checkconfig || return $?
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- object start
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- object stop
eend $?
}

View File

@@ -0,0 +1,56 @@
#!/sbin/openrc-run
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
COMMAND=/usr/bin/swift-init
PIDFILE=/run/swift/proxy-server.pid
depend() {
after net
}
opts="reload"
checkconfig() {
if [ ! -r /etc/swift/swift.conf ]; then
eerror "Missing required config file: /etc/swift/swift.conf"
return 1
fi
if [ ! -r /etc/swift/proxy-server.conf ]; then
eerror "Missing required config file: /etc/swift/proxy-server.conf"
return 1
fi
return 0
}
start() {
checkconfig || return $?
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- proxy start
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- proxy stop
eend $?
}
reload() {
checkconfig || return $?
ebegin "Reloading ${SVCNAME}"
start-stop-daemon --quiet -i ${COMMAND} -- proxy reload
eend $? "Failed to reload ${SVCNAME}"
}
restart() {
checkconfig || return $?
ebegin "Restarting ${SVCNAME}"
start-stop-daemon --quiet -i --pidfile ${PIDFILE} ${COMMAND} -- proxy restart
eend $? "Failed to restart ${SVCNAME}"
}
status() {
start-stop-daemon --quiet -i ${COMMAND} -- proxy status
eend $? "Failed to get status for ${SVCNAME}"
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<use>
<flag name="account">adds swift account support</flag>
<flag name="container">adds swift container support</flag>
<flag name="memcached">adds memcached support</flag>
<flag name="object">adds swift object support</flag>
<flag name="proxy">adds swift proxy support</flag>
</use>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<maintainer type="project">
<email>openstack@gentoo.org</email>
<name>Openstack</name>
</maintainer>
<upstream>
<remote-id type="launchpad">swift</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,111 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 python3_8 )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1 linux-info
DESCRIPTION="A highly available, distributed, and eventually consistent object/blob store"
HOMEPAGE="https://launchpad.net/swift"
if [[ ${PV} == *9999 ]];then
inherit git-r3
EGIT_REPO_URI="https://github.com/openstack/swift.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://tarballs.openstack.org/${PN}/${P}.tar.gz"
KEYWORDS="amd64 ~arm64 x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="account container doc +memcached +object proxy"
REQUIRED_USE="|| ( proxy account container object )"
CDEPEND=">=dev-python/pbr-1.8.0[${PYTHON_USEDEP}]"
DEPEND="${CDEPEND}"
RDEPEND="
${CDEPEND}
>=dev-python/eventlet-0.25.0[${PYTHON_USEDEP}]
>=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]
>=dev-python/netifaces-0.8[${PYTHON_USEDEP}]
!~dev-python/netifaces-0.10.0[${PYTHON_USEDEP}]
!~dev-python/netifaces-0.10.1[${PYTHON_USEDEP}]
>=dev-python/pastedeploy-1.3.3[${PYTHON_USEDEP}]
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
dev-python/pyxattr[${PYTHON_USEDEP}]
>=dev-python/PyECLib-1.3.1[${PYTHON_USEDEP}]
>=dev-python/cryptography-2.0.2[${PYTHON_USEDEP}]
memcached? ( net-misc/memcached )
net-misc/rsync[xattr]
acct-user/swift
acct-group/swift"
pkg_pretend() {
linux-info_pkg_setup
CONFIG_CHECK="~EXT3_FS_XATTR ~SQUASHFS_XATTR ~CIFS_XATTR ~JFFS2_FS_XATTR
~TMPFS_XATTR ~UBIFS_FS_XATTR ~EXT2_FS_XATTR ~REISERFS_FS_XATTR ~EXT4_FS_XATTR
~ZFS"
if linux_config_exists; then
for module in ${CONFIG_CHECK}; do
linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled"
done
fi
}
src_prepare() {
sed -i 's/xattr/pyxattr/g' requirements.txt || die
sed -i '/^hacking/d' test-requirements.txt || die
distutils-r1_python_prepare_all
}
python_install_all() {
distutils-r1_python_install_all
keepdir /etc/swift
insinto /etc/swift
newins "etc/swift.conf-sample" "swift.conf"
newins "etc/rsyncd.conf-sample" "rsyncd.conf"
newins "etc/mime.types-sample" "mime.types-sample"
newins "etc/memcache.conf-sample" "memcache.conf-sample"
newins "etc/drive-audit.conf-sample" "drive-audit.conf-sample"
newins "etc/dispersion.conf-sample" "dispersion.conf-sample"
if use proxy; then
newinitd "${FILESDIR}/swift-proxy.initd" "swift-proxy"
newins "etc/proxy-server.conf-sample" "proxy-server.conf"
if use memcached; then
sed -i '/depend/a\ need memcached' "${D}/etc/init.d/swift-proxy"
fi
fi
if use account; then
newinitd "${FILESDIR}/swift-account.initd" "swift-account"
newins "etc/account-server.conf-sample" "account-server.conf"
fi
if use container; then
newinitd "${FILESDIR}/swift-container.initd" "swift-container"
newins "etc/container-server.conf-sample" "container-server.conf"
fi
if use object; then
newinitd "${FILESDIR}/swift-object.initd" "swift-object"
newins "etc/object-server.conf-sample" "object-server.conf"
newins "etc/object-expirer.conf-sample" "object-expirer.conf"
fi
if use doc; then
doman doc/manpages/*
dodoc -r doc/{s3api,saio,source}
fi
fowners root:swift "/etc/swift"
fperms 0750 /etc/swift
}
pkg_postinst() {
elog "Openstack swift will default to using insecure http unless a"
elog "certificate is created in /etc/swift/cert.crt and the associated key"
elog "in /etc/swift/cert.key. These can be created with the following:"
elog " * cd /etc/swift"
elog " * openssl req -new -x509 -nodes -out cert.crt -keyout cert.key"
}

View File

@@ -0,0 +1,113 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_8 python3_9 )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1 linux-info
DESCRIPTION="A highly available, distributed, and eventually consistent object/blob store"
HOMEPAGE="https://launchpad.net/swift"
if [[ ${PV} == *9999 ]];then
inherit git-r3
EGIT_REPO_URI="https://github.com/openstack/swift.git"
EGIT_BRANCH="stable/victoria"
else
SRC_URI="https://tarballs.openstack.org/${PN}/${P}.tar.gz"
KEYWORDS="amd64 ~arm64 x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="account container doc +memcached +object proxy"
REQUIRED_USE="|| ( proxy account container object )"
CDEPEND=">=dev-python/pbr-1.8.0[${PYTHON_USEDEP}]"
DEPEND="${CDEPEND}"
RDEPEND="
${CDEPEND}
>=dev-python/eventlet-0.25.0[${PYTHON_USEDEP}]
>=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]
>=dev-python/netifaces-0.8[${PYTHON_USEDEP}]
!~dev-python/netifaces-0.10.0[${PYTHON_USEDEP}]
!~dev-python/netifaces-0.10.1[${PYTHON_USEDEP}]
>=dev-python/pastedeploy-1.3.3[${PYTHON_USEDEP}]
>=dev-python/lxml-3.4.1[${PYTHON_USEDEP}]
>=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
dev-python/pyxattr[${PYTHON_USEDEP}]
>=dev-python/PyECLib-1.3.1[${PYTHON_USEDEP}]
>=dev-python/cryptography-2.0.2[${PYTHON_USEDEP}]
memcached? ( net-misc/memcached )
net-misc/rsync[xattr]
acct-user/swift
acct-group/swift"
pkg_pretend() {
linux-info_pkg_setup
CONFIG_CHECK="~EXT3_FS_XATTR ~SQUASHFS_XATTR ~CIFS_XATTR ~JFFS2_FS_XATTR
~TMPFS_XATTR ~UBIFS_FS_XATTR ~EXT2_FS_XATTR ~REISERFS_FS_XATTR ~EXT4_FS_XATTR
~ZFS"
if linux_config_exists; then
for module in ${CONFIG_CHECK}; do
linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled"
done
fi
}
src_prepare() {
sed -i 's/xattr/pyxattr/g' requirements.txt || die
sed -i '/^hacking/d' test-requirements.txt || die
distutils-r1_python_prepare_all
}
python_install_all() {
distutils-r1_python_install_all
keepdir /etc/swift
insinto /etc/swift
newins "etc/swift.conf-sample" "swift.conf"
newins "etc/rsyncd.conf-sample" "rsyncd.conf"
newins "etc/mime.types-sample" "mime.types-sample"
newins "etc/memcache.conf-sample" "memcache.conf-sample"
newins "etc/drive-audit.conf-sample" "drive-audit.conf-sample"
newins "etc/dispersion.conf-sample" "dispersion.conf-sample"
if use proxy; then
newinitd "${FILESDIR}/swift-proxy.initd" "swift-proxy"
newins "etc/proxy-server.conf-sample" "proxy-server.conf"
if use memcached; then
sed -i '/depend/a\ need memcached' "${D}/etc/init.d/swift-proxy"
fi
fi
if use account; then
newinitd "${FILESDIR}/swift-account.initd" "swift-account"
newins "etc/account-server.conf-sample" "account-server.conf"
fi
if use container; then
newinitd "${FILESDIR}/swift-container.initd" "swift-container"
newins "etc/container-server.conf-sample" "container-server.conf"
fi
if use object; then
newinitd "${FILESDIR}/swift-object.initd" "swift-object"
newins "etc/object-server.conf-sample" "object-server.conf"
newins "etc/object-expirer.conf-sample" "object-expirer.conf"
fi
if use doc; then
doman doc/manpages/*
dodoc -r doc/{s3api,saio,source}
fi
fowners root:swift "/etc/swift"
fperms 0750 /etc/swift
}
pkg_postinst() {
elog "Openstack swift will default to using insecure http unless a"
elog "certificate is created in /etc/swift/cert.crt and the associated key"
elog "in /etc/swift/cert.key. These can be created with the following:"
elog " * cd /etc/swift"
elog " * openssl req -new -x509 -nodes -out cert.crt -keyout cert.key"
}