Package: magnum Version: 6.0.1-2 Severity: normal Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu cosmic ubuntu-patch
Dear Maintainer, In Ubuntu, the attached patch was applied to achieve the following: * Merge from Debian unstable. Remaining changes: - d/control, d/rules: Add Python 2.7 support and python-magnum package. - d/control: Support Python 2.7 first and Python 3.x as alternative. magnum-common depends on python-magnum by default and python3-magnum as alternative. magnum-api does the same for python-openstackclient. - d/control: Drop ${python3:Depends} from magnum-* binary packages as it's covered in python3-magnum. - d/control: move python(3)-openstackclient dependency from magnum-api Depends to python(3)-magnum Depends. - d/control: Enable autopkgtest-pkg-python testsuite. - d/rules: Add Python 2.7 support. - d/rules: Install to package build directories rather than debian/tmp. - d/rules: Use pkgos-dh_auto_install instead of python setup.py install. This helps name binaries for update-alternatives. - d/python(3)-magnum.post*, d/python(3)-magnum.prerm: update-alternatives is used to enable correct shebangs for Python binaries. - d/python3-magnum.install: Dropped. Not needed. - d/tests/*: Add autopkgtests for magnum daemons and shebangs. - d/watch: Get tarball from tarballs.openstack.org. Thanks for considering the patch. -- System Information: Debian Release: buster/sid APT prefers cosmic APT policy: (500, 'cosmic'), (500, 'bionic-security') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.15.0-22-generic (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
diff -Nru magnum-6.0.1/debian/control magnum-6.0.1/debian/control --- magnum-6.0.1/debian/control 2018-03-06 17:28:24.000000000 -0500 +++ magnum-6.0.1/debian/control 2018-06-06 10:32:46.000000000 -0400 @@ -9,6 +9,9 @@ dh-python, openstack-pkg-tools (>= 70~), po-debconf, + python-all, + python-pbr (>= 2.0.0), + python-setuptools (>= 24.0.0), python3-all, python3-pbr (>= 2.0.0), python3-setuptools (>= 24.0.0), @@ -16,6 +19,64 @@ Build-Depends-Indep: alembic (>= 0.8.10), bandit, + python-babel, + python-barbicanclient (>= 4.0.0), + python-cliff (>= 2.8.0), + python-coverage, + python-cryptography (>= 1.9), + python-decorator (>= 3.4.0), + python-doc8, + python-docker (>= 2.4.2), + python-eventlet, + python-fixtures, + python-glanceclient (>= 1:2.8.0), + python-hacking (>= 0.10.0), + python-heatclient (>= 1.10.0), + python-iso8601 (>= 0.1.11), + python-jsonpatch (>= 1.19+really1.16), + python-keystoneauth1 (>= 3.3.0), + python-keystoneclient (>= 3.8.0), + python-keystonemiddleware (>= 4.17.0), + python-kubernetes (>= 4.0.0), + python-marathon (>= 0.8.6), + python-mock, + python-netaddr (>= 0.7.13), + python-neutronclient (>= 1:6.3.0), + python-novaclient (>= 2:9.1.0), + python-openstackdocstheme (>= 1.17.0), + python-os-api-ref (>= 1.4.0), + python-os-testr (>= 1.0.0), + python-oslo.concurrency (>= 3.20.0), + python-oslo.config (>= 1:5.1.0), + python-oslo.context (>= 2.19.2), + python-oslo.db (>= 4.27.0), + python-oslo.i18n (>= 3.15.3), + python-oslo.log (>= 3.30.0), + python-oslo.messaging (>= 5.29.0), + python-oslo.middleware (>= 3.31.0), + python-oslo.policy (>= 1.30.0), + python-oslo.reports (>= 1.18.0), + python-oslo.serialization (>= 2.18.0), + python-oslo.service (>= 1.24.0), + python-oslo.utils (>= 3.33.0), + python-oslo.versionedobjects (>= 1.28.0), + python-oslotest (>= 1:1.10.0), + python-osprofiler (>= 1.4.0), + python-pecan, + python-pep8, + python-pycadf (>= 1.1.0), + python-requests (>= 2.14.2), + python-six, + python-sqlalchemy, + python-stevedore (>= 1.20.0), + python-taskflow (>= 2.7.0), + python-testscenarios, + python-testtools (>= 2.2.0), + python-tz, + python-webob (>= 1.7.1), + python-werkzeug, + python-wsme (>= 0.8), + python-yaml, python3-babel, python3-barbicanclient (>= 4.0.0), python3-cliff (>= 2.8.0), @@ -77,20 +138,19 @@ subunit, testrepository, Standards-Version: 4.1.3 Vcs-Browser: https://salsa.debian.org/openstack-team/services/magnum Vcs-Git: https://salsa.debian.org/openstack-team/services/magnum.git Homepage: https://github.com/openstack/magnum +Testsuite: autopkgtest-pkg-python Package: magnum-api Architecture: all Depends: adduser, magnum-common (= ${binary:Version}), - python3-openstackclient, q-text-as-data, ${misc:Depends}, ${ostack-lsb-base}, - ${python3:Depends}, Description: OpenStack containers as a service Magnum is an OpenStack project which offers container orchestration engines for deploying and managing containers as first class resources in OpenStack. @@ -109,9 +169,8 @@ adduser, dbconfig-common, debconf, - python3-magnum (= ${binary:Version}), + python-magnum (= ${binary:Version}) | python3-magnum (= ${binary:Version}), ${misc:Depends}, - ${python3:Depends}, Description: OpenStack containers as a service - API server Magnum is an OpenStack project which offers container orchestration engines for deploying and managing containers as first class resources in OpenStack. @@ -131,7 +190,6 @@ magnum-common (= ${binary:Version}), ${misc:Depends}, ${ostack-lsb-base}, - ${python3:Depends}, Description: OpenStack containers as a service - conductor Magnum is an OpenStack project which offers container orchestration engines for deploying and managing containers as first class resources in OpenStack. @@ -144,6 +202,74 @@ . This package contains the conductor server. +Package: python-magnum +Section: python +Architecture: all +Depends: + alembic (>= 0.8.10), + python-babel, + python-barbicanclient (>= 4.0.0), + python-cliff (>= 2.8.0), + python-cryptography (>= 1.9), + python-decorator (>= 3.4.0), + python-docker (>= 2.4.2), + python-eventlet, + python-glanceclient (>= 1:2.8.0), + python-heatclient (>= 1.10.0), + python-iso8601 (>= 0.1.11), + python-jsonpatch (>= 1.19+really1.16), + python-keystoneauth1 (>= 3.3.0), + python-keystoneclient (>= 3.8.0), + python-keystonemiddleware (>= 4.17.0), + python-kubernetes (>= 4.0.0), + python-marathon (>= 0.8.6), + python-netaddr (>= 0.7.13), + python-neutronclient (>= 1:6.3.0), + python-novaclient (>= 2:9.1.0), + python-openstackclient, + python-oslo.concurrency (>= 3.20.0), + python-oslo.config (>= 1:5.1.0), + python-oslo.context (>= 2.19.2), + python-oslo.db (>= 4.27.0), + python-oslo.i18n (>= 3.15.3), + python-oslo.log (>= 3.30.0), + python-oslo.messaging (>= 5.29.0), + python-oslo.middleware (>= 3.31.0), + python-oslo.policy (>= 1.30.0), + python-oslo.reports (>= 1.18.0), + python-oslo.serialization (>= 2.18.0), + python-oslo.service (>= 1.24.0), + python-oslo.utils (>= 3.33.0), + python-oslo.versionedobjects (>= 1.28.0), + python-pbr (>= 2.0.0), + python-pecan, + python-pycadf (>= 1.1.0), + python-requests (>= 2.14.2), + python-setuptools (>= 24.0.0), + python-six, + python-sqlalchemy, + python-stevedore (>= 1.20.0), + python-taskflow (>= 2.7.0), + python-webob (>= 1.7.1), + python-werkzeug, + python-wsme (>= 0.8), + python-yaml, + ${misc:Depends}, + ${python:Depends}, +Conflicts: + python3-magnum, +Description: OpenStack containers as a service - Python 2.7 library + Magnum is an OpenStack project which offers container orchestration engines + for deploying and managing containers as first class resources in OpenStack. + It features: + * Abstractions for bays, containers, nodes, pods, replication controllers, + and services + * Integration with Kubernetes and Docker for backend container technology + * Integration with Keystone for multi-tenant security + * Integration with Neutron for Kubernetes multi-tenancy network security + . + This package contains the Python 2.7 code. + Package: python3-magnum Section: python Architecture: all @@ -168,6 +294,7 @@ python3-netaddr (>= 0.7.13), python3-neutronclient (>= 1:6.3.0), python3-novaclient (>= 2:9.1.0), + python3-openstackclient, python3-oslo.concurrency (>= 3.20.0), python3-oslo.config (>= 1:5.1.0), python3-oslo.context (>= 2.19.2), @@ -199,7 +326,7 @@ ${python3:Depends}, Conflicts: python-magnum, -Description: OpenStack containers as a service - Python library +Description: OpenStack containers as a service - Python 3.x library Magnum is an OpenStack project which offers container orchestration engines for deploying and managing containers as first class resources in OpenStack. It features: @@ -209,4 +336,4 @@ * Integration with Keystone for multi-tenant security * Integration with Neutron for Kubernetes multi-tenancy network security . - This package contains the Python code. + This package contains the Python 3.x code. diff -Nru magnum-6.0.1/debian/python3-magnum.postinst magnum-6.0.1/debian/python3-magnum.postinst --- magnum-6.0.1/debian/python3-magnum.postinst 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/python3-magnum.postinst 2018-06-02 05:52:18.000000000 -0400 @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ] ; then + update-alternatives --install /usr/bin/magnum-api magnum-api /usr/bin/python3-magnum-api 200 + update-alternatives --install /usr/bin/magnum-conductor magnum-conductor /usr/bin/python3-magnum-conductor 200 + update-alternatives --install /usr/bin/magnum-db-manage magnum-db-manage /usr/bin/python3-magnum-db-manage 200 + update-alternatives --install /usr/bin/magnum-driver-manage magnum-driver-manage /usr/bin/python3-magnum-driver-manage 200 +fi + +#DEBHELPER# + +exit 0 diff -Nru magnum-6.0.1/debian/python3-magnum.postrm magnum-6.0.1/debian/python3-magnum.postrm --- magnum-6.0.1/debian/python3-magnum.postrm 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/python3-magnum.postrm 2018-05-31 20:36:52.000000000 -0400 @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "$1" = "remove" ] || [ "$1" = "disappear" ] ; then + update-alternatives --remove magnum-api /usr/bin/python3-magnum-api + update-alternatives --remove magnum-conductor /usr/bin/python3-magnum-conductor + update-alternatives --remove magnum-db-manage /usr/bin/python3-magnum-db-manage + update-alternatives --remove magnum-driver-manage /usr/bin/python3-magnum-driver-manage +fi + +#DEBHELPER# + +exit 0 diff -Nru magnum-6.0.1/debian/python3-magnum.prerm magnum-6.0.1/debian/python3-magnum.prerm --- magnum-6.0.1/debian/python3-magnum.prerm 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/python3-magnum.prerm 2018-05-31 20:38:18.000000000 -0400 @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "$1" = "remove" ] ; then + update-alternatives --remove magnum-api /usr/bin/python3-magnum-api + update-alternatives --remove magnum-conductor /usr/bin/python3-magnum-conductor + update-alternatives --remove magnum-db-manage /usr/bin/python3-magnum-db-manage + update-alternatives --remove magnum-driver-manage /usr/bin/python3-magnum-driver-manage +fi + +#DEBHELPER# + +exit 0 diff -Nru magnum-6.0.1/debian/python-magnum.postinst magnum-6.0.1/debian/python-magnum.postinst --- magnum-6.0.1/debian/python-magnum.postinst 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/python-magnum.postinst 2018-06-02 05:52:08.000000000 -0400 @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ] ; then + update-alternatives --install /usr/bin/magnum-api magnum-api /usr/bin/python2-magnum-api 200 + update-alternatives --install /usr/bin/magnum-conductor magnum-conductor /usr/bin/python2-magnum-conductor 200 + update-alternatives --install /usr/bin/magnum-db-manage magnum-db-manage /usr/bin/python2-magnum-db-manage 200 + update-alternatives --install /usr/bin/magnum-driver-manage magnum-driver-manage /usr/bin/python2-magnum-driver-manage 200 +fi + +#DEBHELPER# + +exit 0 diff -Nru magnum-6.0.1/debian/python-magnum.postrm magnum-6.0.1/debian/python-magnum.postrm --- magnum-6.0.1/debian/python-magnum.postrm 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/python-magnum.postrm 2018-05-31 20:36:26.000000000 -0400 @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "$1" = "remove" ] || [ "$1" = "disappear" ] ; then + update-alternatives --remove magnum-api /usr/bin/python2-magnum-api + update-alternatives --remove magnum-conductor /usr/bin/python2-magnum-conductor + update-alternatives --remove magnum-db-manage /usr/bin/python2-magnum-db-manage + update-alternatives --remove magnum-driver-manage /usr/bin/python2-magnum-driver-manage +fi + +#DEBHELPER# + +exit 0 diff -Nru magnum-6.0.1/debian/python-magnum.prerm magnum-6.0.1/debian/python-magnum.prerm --- magnum-6.0.1/debian/python-magnum.prerm 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/python-magnum.prerm 2018-05-31 20:37:55.000000000 -0400 @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "$1" = "remove" ] ; then + update-alternatives --remove magnum-api /usr/bin/python2-magnum-api + update-alternatives --remove magnum-conductor /usr/bin/python2-magnum-conductor + update-alternatives --remove magnum-db-manage /usr/bin/python2-magnum-db-manage + update-alternatives --remove magnum-driver-manage /usr/bin/python2-magnum-driver-manage +fi + +#DEBHELPER# + +exit 0 diff -Nru magnum-6.0.1/debian/rules magnum-6.0.1/debian/rules --- magnum-6.0.1/debian/rules 2018-03-06 17:28:24.000000000 -0500 +++ magnum-6.0.1/debian/rules 2018-06-06 10:02:41.000000000 -0400 @@ -3,7 +3,7 @@ include /usr/share/openstack-pkg-tools/pkgos.make %: - dh $@ --buildsystem=python_distutils --with python3,systemd,sphinxdoc + dh $@ --buildsystem=python_distutils --with python2,python3,systemd,sphinxdoc override_dh_clean: rm -f debian/magnum-common.config debian/magnum-common.postinst debian/magnum-api.config debian/magnum-api.postinst @@ -13,6 +13,7 @@ echo "Do nothing..." override_dh_auto_clean: + python2 setup.py clean python3 setup.py clean override_dh_auto_test: @@ -27,18 +28,17 @@ pkgos-merge-templates magnum-common magnum db rabbit ksat override_dh_install: - for i in $(PYTHON3S) ; do \ - python$$i setup.py install --install-layout=deb --root=$(CURDIR)/debian/tmp ; \ - done - rm -rf $(CURDIR)/debian/tmp/usr/etc + pkgos-dh_auto_install + rm -rf $(CURDIR)/debian/python-magnum/usr/etc + rm -rf $(CURDIR)/debian/python3-magnum/usr/etc ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) - pkgos-dh_auto_test --no-py2 + pkgos-dh_auto_test endif dh_install --fail-missing mkdir -p $(CURDIR)/debian/magnum-common/usr/share/magnum-common - PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages python3-oslo-config-generator \ + PYTHONPATH=$(CURDIR)/debian/python3-magnum/usr/lib/python3/dist-packages python3-oslo-config-generator \ --output-file $(CURDIR)/debian/magnum-common/usr/share/magnum-common/magnum.conf \ --namespace magnum.conf \ --namespace oslo.concurrency \ @@ -61,7 +61,7 @@ pkgos-fix-config-default $(CURDIR)/debian/magnum-common/usr/share/magnum-common/magnum.conf api host 0.0.0.0 - PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages python3-oslopolicy-sample-generator \ + PYTHONPATH=$(CURDIR)/debian/python3-magnum/usr/lib/python3/dist-packages python3-oslopolicy-sample-generator \ --output-file $(CURDIR)/debian/magnum-common/usr/share/magnum-common/policy.json \ --format json \ --namespace magnum diff -Nru magnum-6.0.1/debian/tests/control magnum-6.0.1/debian/tests/control --- magnum-6.0.1/debian/tests/control 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/tests/control 2018-06-04 22:19:48.000000000 -0400 @@ -0,0 +1,7 @@ +Tests: magnum-daemons, magnum-shebangs-py2 +Depends: magnum-common, magnum-api, magnum-conductor +Restrictions: needs-root + +Tests: magnum-daemons, magnum-shebangs-py3 +Depends: python3-magnum, magnum-common, magnum-api, magnum-conductor +Restrictions: needs-root diff -Nru magnum-6.0.1/debian/tests/magnum-daemons magnum-6.0.1/debian/tests/magnum-daemons --- magnum-6.0.1/debian/tests/magnum-daemons 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/tests/magnum-daemons 2018-06-05 09:45:06.000000000 -0400 @@ -0,0 +1,29 @@ +#!/bin/bash +#--------------------- +# Testing magnum-daemons +#--------------------- +set -e + +DAEMONS=('magnum-api' 'magnum-conductor') + +ret=0 + +for daemon in "${DAEMONS[@]}"; do + TIMEOUT=50 + while [ "$TIMEOUT" -gt 0 ]; do + if systemctl is-active $daemon > /dev/null; then + echo "OK" + break + fi + TIMEOUT=$((TIMEOUT - 1)) + sleep 0.1 + done + + if [ "$TIMEOUT" -le 0 ]; then + echo "ERROR: ${daemon} IS NOT RUNNING" + ret=1 + fi +done + +exit $ret + diff -Nru magnum-6.0.1/debian/tests/magnum-shebangs-py2 magnum-6.0.1/debian/tests/magnum-shebangs-py2 --- magnum-6.0.1/debian/tests/magnum-shebangs-py2 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/tests/magnum-shebangs-py2 2018-06-06 09:34:51.000000000 -0400 @@ -0,0 +1,17 @@ +#!/bin/bash +#--------------------- +# Testing /usr/bin/magnum-* shebangs +#--------------------- +set -e + +BINARIES=('magnum-api' 'magnum-conductor' 'magnum-db-manage' 'magnum-driver-manage') + +ret=0 + +for binary in "${BINARIES[@]}"; do + if ! `dirname $0`/test-shebang.py $binary python2.7; then + ret=1 + fi +done + +exit $ret diff -Nru magnum-6.0.1/debian/tests/magnum-shebangs-py3 magnum-6.0.1/debian/tests/magnum-shebangs-py3 --- magnum-6.0.1/debian/tests/magnum-shebangs-py3 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/tests/magnum-shebangs-py3 2018-06-06 09:34:44.000000000 -0400 @@ -0,0 +1,17 @@ +#!/bin/bash +#--------------------- +# Testing /usr/bin/magnum-* shebangs +#--------------------- +set -e + +BINARIES=('magnum-api' 'magnum-conductor' 'magnum-db-manage' 'magnum-driver-manage') + +ret=0 + +for binary in "${BINARIES[@]}"; do + if ! `dirname $0`/test-shebang.py $binary python3; then + ret=1 + fi +done + +exit $ret diff -Nru magnum-6.0.1/debian/tests/test-shebang.py magnum-6.0.1/debian/tests/test-shebang.py --- magnum-6.0.1/debian/tests/test-shebang.py 1969-12-31 19:00:00.000000000 -0500 +++ magnum-6.0.1/debian/tests/test-shebang.py 2018-06-06 08:46:36.000000000 -0400 @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +""" +Test Python shebang in /usr/bin/ binary +""" +import sys + +ret = 0 +bin_path = "/usr/bin/{}".format(sys.argv[1]) +shebang = "#!/usr/bin/{}".format(sys.argv[2]) + +with open(bin_path) as f: + first_line = f.readline().rstrip().replace(" ", "") + if first_line != shebang: + print("ERROR: shebang '{}' not found in {}".format(shebang, bin_path)) + ret = 1 + else: + print("OK") + +sys.exit(ret) diff -Nru magnum-6.0.1/debian/watch magnum-6.0.1/debian/watch --- magnum-6.0.1/debian/watch 2018-03-06 17:28:24.000000000 -0500 +++ magnum-6.0.1/debian/watch 2018-05-31 16:55:48.000000000 -0400 @@ -1,3 +1,3 @@ version=3 opts="uversionmangle=s/\.(b|rc)/~$1/" \ -https://github.com/openstack/magnum/tags .*/(\d[\d\.]+)\.tar\.gz +http://tarballs.openstack.org/magnum magnum-(\d.*)\.tar\.gz