mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-23 16:49:10 -07:00
dev-python/elasticsearch-curator: Add missing dependencies
Add missing importlib_metadata and cx_Freeze dependencies Closes: https://bugs.gentoo.org/761325 Signed-off-by: Peter Vielberth <code@peter-vielberth.de> Package-Manager: Portage-3.0.14, Repoman-3.0.2 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
committed by
Sam James
parent
643fd3a04d
commit
9a71c61b3b
@@ -0,0 +1,165 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_7 )
|
||||
|
||||
MY_PN="curator"
|
||||
ES_VERSION="7.3.2"
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Tending time-series indices in Elasticsearch"
|
||||
HOMEPAGE="https://github.com/elastic/curator"
|
||||
SRC_URI="https://github.com/elastic/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
test? ( https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${ES_VERSION}-linux-x86_64.tar.gz )"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
# tests fail in chroot
|
||||
# https://github.com/elastic/elasticsearch/issues/12018
|
||||
RESTRICT="test"
|
||||
IUSE="doc test"
|
||||
|
||||
# vulnerable pyyaml
|
||||
# https://github.com/elastic/curator/issues/1415
|
||||
RDEPEND="
|
||||
>=dev-python/elasticsearch-py-7.0.4[${PYTHON_USEDEP}]
|
||||
<dev-python/elasticsearch-py-8.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/click-6.7[${PYTHON_USEDEP}]
|
||||
<dev-python/click-7.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/certifi-2019.9.11[${PYTHON_USEDEP}]
|
||||
>=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/urllib3-1.24.2[${PYTHON_USEDEP}]
|
||||
<dev-python/urllib3-1.26[${PYTHON_USEDEP}]
|
||||
>=dev-python/voluptuous-0.9.3[${PYTHON_USEDEP}]"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
>=dev-python/six-1.11.0[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/cx_Freeze[${PYTHON_USEDEP}]
|
||||
dev-python/importlib_metadata[${PYTHON_USEDEP}]
|
||||
test? ( ${RDEPEND}
|
||||
virtual/jre
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
dev-python/nose[${PYTHON_USEDEP}]
|
||||
dev-python/six[${PYTHON_USEDEP}] )"
|
||||
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
|
||||
python_prepare_all() {
|
||||
# avoid downloading from net
|
||||
sed -e '/^intersphinx_mapping/,+3d' -i docs/conf.py || die
|
||||
|
||||
# requests_aws4auth not in portage
|
||||
sed -e '/boto3/d' \
|
||||
-e '/requests_aws4auth/d' \
|
||||
-e 's/pyyaml==3.13/pyyaml/g' \
|
||||
-e '/tests_require/s/, "coverage", "nosexcover"//g' \
|
||||
-i setup.cfg setup.py || die
|
||||
|
||||
# Bug 713342
|
||||
sed -i 's/yaml.load/yaml.unsafe_load/g' curator/utils.py test/unit/* || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_compile_all() {
|
||||
emake -C docs -j1 man $(usex doc html "")
|
||||
}
|
||||
|
||||
# running tests in non-chroot environments:
|
||||
# FEATURES="test -usersandbox" emerge dev-python/elasticsearch-curator
|
||||
python_test_all() {
|
||||
# starts two ES instances (local,remote) and runs the tests
|
||||
# https://github.com/elastic/curator/blob/master/travis-run.sh
|
||||
local ES_INSTANCES="local remote"
|
||||
local ES_PATH="${WORKDIR}/elasticsearch-${ES_VERSION}"
|
||||
|
||||
declare -A ES_PORT
|
||||
ES_PORT[local]=9200
|
||||
ES_PORT[remote]=9201
|
||||
|
||||
local i transport
|
||||
declare -A ES_CONFIG_DIR ES_CONFIG_PATH ES_INSTANCE ES_LOG ES_PID
|
||||
for i in ${ES_INSTANCES}; do
|
||||
ES_CONFIG_DIR[$i]="${ES_PATH}/$i"
|
||||
ES_CONFIG_PATH[$i]="${ES_CONFIG_DIR[$i]}/elasticsearch.yml"
|
||||
ES_PID[$i]="${ES_PATH}/$i.pid"
|
||||
ES_LOG[$i]="${ES_PATH}/logs/$i.log"
|
||||
done
|
||||
|
||||
# configure ES instances
|
||||
for i in ${ES_INSTANCES}; do
|
||||
mkdir -p "${ES_CONFIG_DIR[$i]}" || die
|
||||
cp ${ES_PATH}/config/{jvm.options,log4j2.properties} "${ES_CONFIG_DIR[$i]}"/ || die
|
||||
echo 'network.host: 127.0.0.1' > "${ES_CONFIG_PATH[$i]}" || die
|
||||
echo "http.port: ${ES_PORT[$i]}" >> "${ES_CONFIG_PATH[$i]}" || die
|
||||
echo "cluster.name: $i" >> "${ES_CONFIG_PATH[$i]}" || die
|
||||
echo "node.name: $i" >> "${ES_CONFIG_PATH[$i]}" || die
|
||||
echo 'node.max_local_storage_nodes: 2' >> "${ES_CONFIG_PATH[$i]}" || die
|
||||
transport=$((${ES_PORT[$i]}+100))
|
||||
echo "transport.port: ${transport}" >> "${ES_CONFIG_PATH[$i]}" || die
|
||||
echo "discovery.seed_hosts: [\"localhost:${transport}\"]" >> "${ES_CONFIG_PATH[$i]}" || die
|
||||
echo "discovery.type: single-node" >> "${ES_CONFIG_PATH[$i]}" || die
|
||||
done
|
||||
|
||||
echo 'path.repo: /' >> "${ES_CONFIG_PATH[local]}" || die
|
||||
echo "reindex.remote.whitelist: localhost:${ES_PORT[remote]}" >> "${ES_CONFIG_PATH[local]}" || die
|
||||
|
||||
# start ES instances
|
||||
for i in ${ES_INSTANCES}; do
|
||||
ES_PATH_CONF=${ES_CONFIG_DIR[$i]} "${ES_PATH}/bin/elasticsearch" -d -p "${ES_PID[$i]}" || die
|
||||
|
||||
local j
|
||||
local es_started=0
|
||||
for j in {1..30}; do
|
||||
grep -q "started" "${ES_LOG[$i]}" 2> /dev/null
|
||||
if [[ $? -eq 0 ]]; then
|
||||
einfo "Elasticsearch $i started"
|
||||
es_started=1
|
||||
eend 0
|
||||
break
|
||||
elif grep -q 'BindException\[Address already in use\]' "${ES_LOG[$i]}" 2>/dev/null; then
|
||||
eend 1
|
||||
eerror "Elasticsearch $i already running"
|
||||
die "Cannot start Elasticsearch $i for tests"
|
||||
else
|
||||
einfo "Waiting for Elasticsearch $i"
|
||||
eend 1
|
||||
sleep 2
|
||||
continue
|
||||
fi
|
||||
done
|
||||
|
||||
[[ $es_started -eq 0 ]] && die "Elasticsearch failed to start"
|
||||
done
|
||||
|
||||
export TEST_ES_SERVER="localhost:${ES_PORT[local]}"
|
||||
export REMOTE_ES_SERVER="localhost:${ES_PORT[remote]}"
|
||||
|
||||
# run tests
|
||||
nosetests -v || die
|
||||
|
||||
for i in ${ES_INSTANCES}; do
|
||||
pkill -F ${ES_PID[$i]}
|
||||
done
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
use doc && local HTML_DOCS=( docs/_build/html/. )
|
||||
doman docs/_build/man/*
|
||||
distutils-r1_python_install_all
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
ewarn ""
|
||||
ewarn "For Python 3 support information please read: http://click.pocoo.org/latest/python3/"
|
||||
ewarn ""
|
||||
ewarn "Example usage on Python 3:"
|
||||
ewarn "export LC_ALL=en_US.UTF-8"
|
||||
ewarn "export LANG=en_US.UTF-8"
|
||||
ewarn "curator ..."
|
||||
}
|
||||
Reference in New Issue
Block a user