Hello community, here is the log from the commit of package python-pifpaf for openSUSE:Factory checked in at 2019-04-08 20:53:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pifpaf (Old) and /work/SRC/openSUSE:Factory/.python-pifpaf.new.3908 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pifpaf" Mon Apr 8 20:53:59 2019 rev:9 rq:692280 version:2.2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pifpaf/python-pifpaf.changes 2018-12-24 11:41:10.701463499 +0100 +++ /work/SRC/openSUSE:Factory/.python-pifpaf.new.3908/python-pifpaf.changes 2019-04-08 20:54:02.322590491 +0200 @@ -1,0 +2,20 @@ +Mon Apr 8 12:05:42 UTC 2019 - Thomas Bechtold <[email protected]> + +- Add fdupes + +------------------------------------------------------------------- +Mon Apr 8 12:03:27 UTC 2019 - Thomas Bechtold <[email protected]> + +- update to 2.2.2: + * postgresql: fix encoding of pgctl path + * stdin expecting bytes instead of str + * Implements apache qpid-dispatch-router driver + * tests: switch to kafka 1.0.2 + * postgresql: add a --sync/--no-sync option + * Update to Mergify v2 + * gnocchi: fix escape sequence + * Remove Python 3.5 support + * pep8: disable W503 and W504 + * Implements apache artemis driver + +------------------------------------------------------------------- Old: ---- pifpaf-2.1.2.tar.gz New: ---- pifpaf-2.2.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pifpaf.spec ++++++ --- /var/tmp/diff_new_pack.Q3BTKH/_old 2019-04-08 20:54:03.490591348 +0200 +++ /var/tmp/diff_new_pack.Q3BTKH/_new 2019-04-08 20:54:03.514591366 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-pifpaf # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pifpaf -Version: 2.1.2 +Version: 2.2.2 Release: 0 Summary: Suite of tools and fixtures to manage daemons for testing License: Apache-2.0 @@ -26,6 +26,7 @@ Url: https://github.com/jd/pifpaf Source: https://pypi.io/packages/source/p/pifpaf/pifpaf-%{version}.tar.gz BuildRequires: %{python_module pbr} +BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-Jinja2 Requires: python-click @@ -62,6 +63,7 @@ export LC_ALL=en_US.utf8 %python_install %python_clone -a %{buildroot}%{_bindir}/pifpaf +%python_expand %fdupes %{buildroot}%{$python_sitelib} %post %python_install_alternative pifpaf ++++++ pifpaf-2.1.2.tar.gz -> pifpaf-2.2.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/.mergify.yml new/pifpaf-2.2.2/.mergify.yml --- old/pifpaf-2.1.2/.mergify.yml 2018-10-03 16:25:47.000000000 +0200 +++ new/pifpaf-2.2.2/.mergify.yml 2019-01-07 16:58:34.000000000 +0100 @@ -1,9 +1,15 @@ -rules: - default: - protection: - required_status_checks: - strict: True - contexts: - - continuous-integration/travis-ci - required_pull_request_reviews: - required_approving_review_count: 1 +pull_request_rules: + - name: automatic merge + conditions: + - base=master + - status-success=continuous-integration/travis-ci/pr + - "#approved-reviews-by>=1" + - label!=work-in-progress + actions: + merge: + strict: "smart" + method: rebase + - name: dismiss reviews + conditions: [] + actions: + dismiss_reviews: {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/.travis.yml new/pifpaf-2.2.2/.travis.yml --- old/pifpaf-2.1.2/.travis.yml 2018-10-03 16:25:47.000000000 +0200 +++ new/pifpaf-2.2.2/.travis.yml 2019-01-07 16:58:34.000000000 +0100 @@ -5,7 +5,6 @@ - pip python: - 2.7 - - 3.5 - 3.6 before_install: # Always redownload tarball @@ -23,9 +22,9 @@ - sudo dpkg -i influxdb_0.13.0_amd64.deb # zkEnv.sh can't be overriden with the deb version of zookeeper, this workaround that - sudo chmod 777 /var/log/zookeeper - - wget http://www.apache.org/dist/kafka/1.0.0/kafka_2.12-1.0.0.tgz -O /opt/kafka.tar.gz + - wget http://www.apache.org/dist/kafka/1.0.2/kafka_2.12-1.0.2.tgz -O /opt/kafka.tar.gz - tar -xzf /opt/kafka.tar.gz -C /opt - - ln -s /opt/kafka_2.12-1.0.0 /opt/kafka + - ln -s /opt/kafka_2.12-1.0.2 /opt/kafka install: # The install requirements in travis virtualenv that will be cached - pip install tox-travis .[test,ceph] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/AUTHORS new/pifpaf-2.2.2/AUTHORS --- old/pifpaf-2.1.2/AUTHORS 2018-10-03 16:35:16.000000000 +0200 +++ new/pifpaf-2.2.2/AUTHORS 2019-01-07 17:06:04.000000000 +0100 @@ -1,7 +1,6 @@ -Davanum Srinivas <[email protected]> -Felix Yan <[email protected]> +Andy Smith <[email protected]> +David Douard <[email protected]> Julien Danjou <[email protected]> -Mehdi ABAAKOUK <[email protected]> Mehdi Abaakouk <[email protected]> ajssmith <[email protected]> gord chung <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/ChangeLog new/pifpaf-2.2.2/ChangeLog --- old/pifpaf-2.1.2/ChangeLog 2018-10-03 16:35:16.000000000 +0200 +++ new/pifpaf-2.2.2/ChangeLog 2019-01-07 17:06:04.000000000 +0100 @@ -1,6 +1,28 @@ CHANGES ======= +2.2.2 +----- + +* postgresql: fix encoding of pgctl path + +2.2.1 +----- + +* stdin expecting bytes instead of str + +2.2.0 +----- + +* Implements apache qpid-dispatch-router driver +* tests: switch to kafka 1.0.2 +* postgresql: add a --sync/--no-sync option +* Update to Mergify v2 +* gnocchi: fix escape sequence +* Remove Python 3.5 support +* pep8: disable W503 and W504 +* Implements apache artemis driver + 2.1.2 ----- @@ -136,44 +158,3 @@ ------ * Fix process cleanup - -1.10.0 ------- - -* Ensure pifpaf kill all processes -* Fix compatibility with Redis 4.0 - -1.9.2 ------ - -* Revert "Ensure pifpaf kill all processes" - -1.9.1 ------ - -* Ensure pifpaf kill all processes - -1.9.0 ------ - -* Add a new driver for Vault - -1.8.1 ------ - -* Fix logging in \_kill - -1.8.0 ------ - -* memcached: don't read stdout -* swift: fix configuration typo - -1.7.0 ------ - -* swiftclient default auth to 2.0 - -1.6.0 ------ - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/PKG-INFO new/pifpaf-2.2.2/PKG-INFO --- old/pifpaf-2.1.2/PKG-INFO 2018-10-03 16:35:16.000000000 +0200 +++ new/pifpaf-2.2.2/PKG-INFO 2019-01-07 17:06:04.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pifpaf -Version: 2.1.2 +Version: 2.2.2 Summary: Suite of tools and fixtures to manage daemons for testing Home-page: https://github.com/jd/pifpaf Author: Julien Danjou @@ -177,7 +177,6 @@ Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Software Development :: Testing Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/artemis.py new/pifpaf-2.2.2/pifpaf/drivers/artemis.py --- old/pifpaf-2.1.2/pifpaf/drivers/artemis.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/artemis.py 2019-01-07 16:58:34.000000000 +0100 @@ -0,0 +1,91 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +from pifpaf import drivers + + +class ArtemisDriver(drivers.Driver): + DEFAULT_PORT = 5673 + DEFAULT_USERNAME = "pifpaf" + DEFAULT_PASSWORD = "secrete" + + def __init__(self, port=DEFAULT_PORT, + username=DEFAULT_USERNAME, + password=DEFAULT_PASSWORD, + require_login=False, + **kwargs): + """Create a new Artemis instance.""" + super(ArtemisDriver, self).__init__(templatedir="artemis", + **kwargs) + self.port = port + self.username = username + self.password = password + self.require_login = require_login + self.login = "--require-login" if self.require_login \ + else "--allow-anonymous" + self._path = ["/usr/lib/apache-artemis/bin"] + + @classmethod + def get_options(cls): + return [ + {"param_decls": ["--port"], + "type": int, + "default": cls.DEFAULT_PORT, + "help": "port to use for Artemis"}, + {"param_decls": ["--username"], + "default": cls.DEFAULT_USERNAME, + "help": "Artemis broker username"}, + {"param_decls": ["--password"], + "default": cls.DEFAULT_PASSWORD, + "help": "Artemis broker password"}, + {"param_decls": ["--require_login"], + "is_flag": True, + "help": "Disable anonymous users"}, + ] + + def _setUp(self): + super(ArtemisDriver, self)._setUp() + + brokerdir = os.path.join(self.tempdir, "broker") + brokerbin = os.path.join(brokerdir, "bin") + os.makedirs(brokerdir) + + self._exec(["artemis", "create", + "--user", self.username, + "--password", self.password, + self.login, + brokerdir], + path=self._path, + wait_for_line='You can now start the broker by executing:') + + template_env = { + "TMP_DIR": self.tempdir, + "PORT": self.port, + } + + self.template("broker.xml", + template_env, + os.path.join(brokerdir, "etc/broker.xml")) + + c, _ = self._exec(["%s/artemis" % brokerbin, "run"], + path=self._path, + wait_for_port=self.port) + + self.addCleanup(self._exec, ["%s/artemis" % brokerbin, "stop"], + ignore_failure=True) + + self.putenv("ARTEMIS_PORT", str(self.port)) + self.putenv("ARTEMIS_URL", "amqp://localhost:%s" % self.port) + self.putenv("URL", "amqp://localhost:%s" % self.port) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/gnocchi.py new/pifpaf-2.2.2/pifpaf/drivers/gnocchi.py --- old/pifpaf-2.1.2/pifpaf/drivers/gnocchi.py 2018-10-03 16:25:47.000000000 +0200 +++ new/pifpaf-2.2.2/pifpaf/drivers/gnocchi.py 2019-01-07 16:58:34.000000000 +0100 @@ -221,7 +221,7 @@ args = ["gnocchi-api", "--config-file=%s" % conffile] c, _ = self._exec(args, - wait_for_line="WSGI app 0 \(mountpoint=''\) ready") + wait_for_line=r"WSGI app 0 \(mountpoint=''\) ready") self.addCleanup(self._kill, c) self.http_url = "http://localhost:%d" % self.port diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/postgresql.py new/pifpaf-2.2.2/pifpaf/drivers/postgresql.py --- old/pifpaf-2.1.2/pifpaf/drivers/postgresql.py 2018-10-03 16:25:47.000000000 +0200 +++ new/pifpaf-2.2.2/pifpaf/drivers/postgresql.py 2019-01-07 16:58:34.000000000 +0100 @@ -20,6 +20,7 @@ DEFAULT_PORT = 9824 DEFAULT_HOST = "" + DEFAULT_SYNC = False @classmethod def get_options(cls): @@ -31,14 +32,18 @@ {"param_decls": ["--host"], "default": cls.DEFAULT_HOST, "help": "host to listen on"}, + {"param_decls": ["--sync/--no-sync"], + "default": cls.DEFAULT_SYNC, + "help": "Make pg as fast as possible"}, ] def __init__(self, port=DEFAULT_PORT, host=DEFAULT_HOST, - **kwargs): + sync=DEFAULT_SYNC, **kwargs): """Create a new PostgreSQL instance.""" super(PostgreSQLDriver, self).__init__(**kwargs) self.port = port self.host = host + self.sync = sync def _setUp(self): super(PostgreSQLDriver, self)._setUp() @@ -47,8 +52,14 @@ self.putenv("PGDATA", self.tempdir, True) self.putenv("PGDATABASE", "postgres", True) _, pgbindir = self._exec(["pg_config", "--bindir"], stdout=True) - pgctl = os.path.join(pgbindir.strip(), b"pg_ctl") + pgctl = os.path.join(pgbindir.strip().decode(), "pg_ctl") self._exec([pgctl, "-o", "'-A trust'", "initdb"]) + if not self.sync: + cfgfile = os.path.join(self.tempdir, 'postgresql.conf') + with open(cfgfile, 'a') as cfg: + for key in ('fsync', 'synchronous_commit', 'full_page_writes'): + cfg.write('{} = off\n'.format(key)) + self._exec([pgctl, "-w", "-o", "-k %s -p %d -h \"%s\"" % (self.tempdir, self.port, self.host), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/qdrouterd.py new/pifpaf-2.2.2/pifpaf/drivers/qdrouterd.py --- old/pifpaf-2.1.2/pifpaf/drivers/qdrouterd.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/qdrouterd.py 2019-01-07 16:58:34.000000000 +0100 @@ -0,0 +1,117 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +from pifpaf import drivers + + +class QdrouterdDriver(drivers.Driver): + DEFAULT_PORT = 5672 + DEFAULT_ARTEMIS_PORT = 5673 + DEFAULT_USERNAME = "pifpaf" + DEFAULT_PASSWORD = "secrete" + DEFAULT_DOMAIN = "localhost" + + def __init__(self, port=DEFAULT_PORT, + artemis_port=DEFAULT_ARTEMIS_PORT, + username=DEFAULT_USERNAME, + password=DEFAULT_PASSWORD, + domain=DEFAULT_DOMAIN, + mesh=False, + direct_notify=False, + **kwargs): + """Create a new Qdrouterd instance.""" + super(QdrouterdDriver, self).__init__(templatedir="qdrouterd", + **kwargs) + self.port = port + self.artemis_port = artemis_port + self.username = username + self.password = password + self.domain = domain + self.mesh = mesh + self.direct_notify = direct_notify + + @classmethod + def get_options(cls): + return [ + {"param_decls": ["--port"], + "type": int, + "default": cls.DEFAULT_PORT, + "help": "port to use for Qdrouterd"}, + {"param_decls": ["--artemis_port"], + "type": int, + "default": cls.DEFAULT_ARTEMIS_PORT, + "help": "port to use for broker link"}, + {"param_decls": ["--mesh"], + "is_flag": True, + "help": "TODO: Create a 3 HA node mesh"}, + {"param_decls": ["--direct_notify"], + "is_flag": True, + "help": "direct message notify and do not attach to broker"}, + {"param_decls": ["--username"], + "default": cls.DEFAULT_USERNAME, + "help": "sasl username"}, + {"param_decls": ["--password"], + "default": cls.DEFAULT_PASSWORD, + "help": "sasl password"}, + {"param_decls": ["--domain"], + "default": cls.DEFAULT_DOMAIN, + "help": "sasl domain"}, + ] + + def saslpasswd2(self, username, password, sasl_db): + self._exec(["saslpasswd2", "-c", "-p", "-f", + sasl_db, username], stdin=password.encode()) + + def _setUp(self): + super(QdrouterdDriver, self)._setUp() + + # setup log, etc used by qdrouterd + logdir = os.path.join(self.tempdir, "log") + os.makedirs(logdir) + etcdir = os.path.join(self.tempdir, "etc") + os.makedirs(etcdir) + sasldir = os.path.join(etcdir, "sasl2") + os.makedirs(sasldir) + logfile = os.path.join(logdir, "qdrouterd.log") + + template_env = { + "TMP_DIR": self.tempdir, + "PORT": self.port, + "ARTEMIS_PORT": self.artemis_port, + "SASL_DIR": sasldir, + "LOG_FILE": logfile, + "DIRECT_NOTIFY": self.direct_notify, + } + + qdr_cfg = os.path.join(etcdir, "qdrouterd.conf") + self.template("qdrouterd.conf", + template_env, + qdr_cfg) + + sasl_cfg = os.path.join(sasldir, "sasl_qdrouterd.conf") + self.template("sasl_qdrouterd.conf", + template_env, + sasl_cfg) + + sasl_db = os.path.join(sasldir, "qdrouterd.sasldb") + self.saslpasswd2(self.username, self.password, sasl_db) + + c, _ = self._exec(["qdrouterd", "-c", qdr_cfg], + wait_for_port=self.port) + + self.putenv("QDROUTERD_PORT", str(self.port)) + self.putenv("QDROUTERD_URL", "amqp://localhost:%s" % self.port) + self.putenv("URL", "amqp://%s:%s@localhost:%s" % ( + self.username, self.password, self.port)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/templates/artemis/broker.xml new/pifpaf-2.2.2/pifpaf/drivers/templates/artemis/broker.xml --- old/pifpaf-2.1.2/pifpaf/drivers/templates/artemis/broker.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/templates/artemis/broker.xml 2019-01-07 16:58:34.000000000 +0100 @@ -0,0 +1,140 @@ +<?xml version='1.0'?> + +<configuration xmlns="urn:activemq" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:xi="http://www.w3.org/2001/XInclude" + xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd"> + + <core xmlns="urn:activemq:core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="urn:activemq:core "> + + <name>0.0.0.0</name> + + + <persistence-enabled>true</persistence-enabled> + + <journal-type>ASYNCIO</journal-type> + + <paging-directory>data/paging</paging-directory> + + <bindings-directory>data/bindings</bindings-directory> + + <journal-directory>data/journal</journal-directory> + + <large-messages-directory>data/large-messages</large-messages-directory> + + <journal-datasync>true</journal-datasync> + + <journal-min-files>2</journal-min-files> + + <journal-pool-files>10</journal-pool-files> + + <journal-file-size>10M</journal-file-size> + + <journal-buffer-timeout>52000</journal-buffer-timeout> + + <journal-max-io>4096</journal-max-io> + + <disk-scan-period>5000</disk-scan-period> + + <max-disk-usage>90</max-disk-usage> + + <critical-analyzer>true</critical-analyzer> + + <critical-analyzer-timeout>120000</critical-analyzer-timeout> + + <critical-analyzer-check-period>60000</critical-analyzer-check-period> + + <critical-analyzer-policy>HALT</critical-analyzer-policy> + + <acceptors> + + <!-- Acceptor for every supported protocol --> + <acceptor name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor> + + <!-- AMQP Acceptor. Listens on default AMQP port for AMQP traffic.--> + <acceptor name="amqp">tcp://0.0.0.0:{{ PORT }}?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor> + + <!-- STOMP Acceptor. --> + <acceptor name="stomp">tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true</acceptor> + + <!-- HornetQ Compatibility Acceptor. Enables HornetQ Core and STOMP for legacy HornetQ clients. --> + <acceptor name="hornetq">tcp://0.0.0.0:5445?anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;protocols=HORNETQ,STOMP;useEpoll=true</acceptor> + + <!-- MQTT Acceptor --> + <acceptor name="mqtt">tcp://0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true</acceptor> + + </acceptors> + + + <security-settings> + <security-setting match="#"> + <permission type="createNonDurableQueue" roles="amq"/> + <permission type="deleteNonDurableQueue" roles="amq"/> + <permission type="createDurableQueue" roles="amq"/> + <permission type="deleteDurableQueue" roles="amq"/> + <permission type="createAddress" roles="amq"/> + <permission type="deleteAddress" roles="amq"/> + <permission type="consume" roles="amq"/> + <permission type="browse" roles="amq"/> + <permission type="send" roles="amq"/> + <!-- we need this otherwise ./artemis data imp wouldn't work --> + <permission type="manage" roles="amq"/> + </security-setting> + </security-settings> + + <address-settings> + <address-setting match="activemq.management#"> + <dead-letter-address>DLQ</dead-letter-address> + <expiry-address>ExpiryQueue</expiry-address> + <redelivery-delay>0</redelivery-delay> + <max-size-bytes>-1</max-size-bytes> + <message-counter-history-day-limit>10</message-counter-history-day-limit> + <address-full-policy>PAGE</address-full-policy> + <auto-create-queues>true</auto-create-queues> + <auto-create-addresses>true</auto-create-addresses> + <auto-create-jms-queues>true</auto-create-jms-queues> + <auto-create-jms-topics>true</auto-create-jms-topics> + </address-setting> + + <address-setting match="#"> + <dead-letter-address>DLQ</dead-letter-address> + <expiry-address>ExpiryQueue</expiry-address> + <redelivery-delay>0</redelivery-delay> + <max-size-bytes>-1</max-size-bytes> + <message-counter-history-day-limit>10</message-counter-history-day-limit> + <address-full-policy>PAGE</address-full-policy> + <auto-create-queues>true</auto-create-queues> + <auto-create-addresses>true</auto-create-addresses> + <auto-create-jms-queues>true</auto-create-jms-queues> + <auto-create-jms-topics>true</auto-create-jms-topics> + </address-setting> + </address-settings> + + <addresses> + <address name="DLQ"> + <anycast> + <queue name="DLQ" /> + </anycast> + </address> + <address name="ExpiryQueue"> + <anycast> + <queue name="ExpiryQueue" /> + </anycast> + </address> + </addresses> + + <broker-plugins> + <broker-plugin class-name="org.apache.activemq.artemis.core.server.plugin.impl.LoggingActiveMQServerPlugin"> + <property key="LOG_ALL_EVENTS" value="true"/> + <property key="LOG_CONNECTION_EVENTS" value="true"/> + <property key="LOG_SESSION_EVENTS" value="true"/> + <property key="LOG_CONSUMER_EVENTS" value="true"/> + <property key="LOG_DELIVERING_EVENTS" value="true"/> + <property key="LOG_SENDING_EVENTS" value="true"/> + <property key="LOG_INTERNAL_EVENTS" value="true"/> + </broker-plugin> + </broker-plugins> + + </core> +</configuration> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/templates/qdrouterd/broker_om.conf.inc new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/broker_om.conf.inc --- old/pifpaf-2.1.2/pifpaf/drivers/templates/qdrouterd/broker_om.conf.inc 1970-01-01 01:00:00.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/broker_om.conf.inc 2019-01-07 16:58:34.000000000 +0100 @@ -0,0 +1,51 @@ +connector { + name: broker + role: route-container + host: 0.0.0.0 + port: {{ ARTEMIS_PORT }} + sasl-mechanisms: ANONYMOUS + linkCapacity: 1000 + stripAnnotations:no +} + +address { + prefix: unicast + distribution: closest +} + +address { + prefix: exclusive + distribution: closest +} + +address { + prefix: broadcast + distribution: multicast +} + +address { + prefix: openstack.org/om/rpc/multicast + distribution: multicast +} + +address { + prefix: openstack.org/om/rpc/unicast + distribution: closest +} + +address { + prefix: openstack.org/om/rpc/anycast + distribution: balanced +} + +linkRoute { + prefix: openstack.org/om/notify + connection: broker + dir: in +} + +linkRoute { + prefix: openstack.org/om/notify + connection: broker + dir: out +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/templates/qdrouterd/direct_om.conf.inc new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/direct_om.conf.inc --- old/pifpaf-2.1.2/pifpaf/drivers/templates/qdrouterd/direct_om.conf.inc 1970-01-01 01:00:00.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/direct_om.conf.inc 2019-01-07 16:58:34.000000000 +0100 @@ -0,0 +1,44 @@ +address { + prefix: unicast + distribution: closest +} + +address { + prefix: exclusive + distribution: closest +} + +address { + prefix: broadcast + distribution: multicast +} + +address { + prefix: openstack.org/om/rpc/multicast + distribution: multicast +} + +address { + prefix: openstack.org/om/rpc/unicast + distribution: closest +} + +address { + prefix: openstack.org/om/rpc/anycast + distribution: balanced +} + +address { + prefix: openstack.org/om/notify/multicast + distribution: multicast +} + +address { + prefix: openstack.org/om/notify/unicast + distribution: closest +} + +address { + prefix: openstack.org/om/notify/anycast + distribution: balanced +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/templates/qdrouterd/qdrouterd.conf new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/qdrouterd.conf --- old/pifpaf-2.1.2/pifpaf/drivers/templates/qdrouterd/qdrouterd.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/qdrouterd.conf 2019-01-07 16:58:34.000000000 +0100 @@ -0,0 +1,28 @@ +router { + mode: standalone + id: Router.A + workerThreads: 4 + saslConfigPath: {{ SASL_DIR }} + saslConfigName: sasl_qdrouterd +} + +listener { + host: 0.0.0.0 + port: {{ PORT }} + role: normal + sasl-mechanisms: PLAIN ANONYMOUS + stripAnnotations: no + authenticatePeer: no +} + +{% if DIRECT_NOTIFY %} +{% include 'direct_om.conf.inc' %} +{% else %} +{% include 'broker_om.conf.inc' %} +{% endif %} + +log { + module: DEFAULT + enable: trace+ + output: {{ LOG_FILE }} +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/drivers/templates/qdrouterd/sasl_qdrouterd.conf new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/sasl_qdrouterd.conf --- old/pifpaf-2.1.2/pifpaf/drivers/templates/qdrouterd/sasl_qdrouterd.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/sasl_qdrouterd.conf 2019-01-07 16:58:34.000000000 +0100 @@ -0,0 +1,4 @@ +pwcheck_method: auxprop +auxprop_plugin: sasldb +sasldb_path: {{ SASL_DIR }}/qdrouterd.sasldb +mech_list: PLAIN ANONYMOUS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf/tests/test_drivers.py new/pifpaf-2.2.2/pifpaf/tests/test_drivers.py --- old/pifpaf-2.1.2/pifpaf/tests/test_drivers.py 2018-10-03 16:25:47.000000000 +0200 +++ new/pifpaf-2.2.2/pifpaf/tests/test_drivers.py 2019-01-07 16:58:34.000000000 +0100 @@ -30,6 +30,7 @@ from pifpaf import drivers from pifpaf.drivers import aodh +from pifpaf.drivers import artemis from pifpaf.drivers import ceph from pifpaf.drivers import consul from pifpaf.drivers import couchdb @@ -44,6 +45,7 @@ from pifpaf.drivers import mongodb from pifpaf.drivers import mysql from pifpaf.drivers import postgresql +from pifpaf.drivers import qdrouterd from pifpaf.drivers import rabbitmq from pifpaf.drivers import redis from pifpaf.drivers import s3rver @@ -244,6 +246,17 @@ os.getenv("PIFPAF_URL")) self._run("psql template1 -c 'CREATE TABLE FOOBAR();'") + @testtools.skipUnless(spawn.find_executable("pg_config"), + "pg_config not found") + def test_postgresql_async(self): + port = 9825 + f = self.useFixture(postgresql.PostgreSQLDriver(port=port, sync=False)) + self.assertEqual( + "postgresql://localhost/postgres?host=%s&port=%d" + % (f.tempdir, port), + os.getenv("PIFPAF_URL")) + self._run("psql template1 -c 'CREATE TABLE FOOBAR();'") + @testtools.skipUnless(spawn.find_executable("redis-server"), "redis-server not found") def test_redis(self): @@ -469,6 +482,27 @@ r = requests.get("http://localhost:%d/" % port) self.assertEqual(r.json()["couchdb"], "Welcome") + @testtools.skipUnless(spawn.find_executable("artemis"), + "Artemis not found") + def test_artemis(self): + self.useFixture(artemis.ArtemisDriver(port=54321)) + self.assertEqual("amqp://localhost:54321", + os.getenv("PIFPAF_URL")) + self.assertEqual("54321", os.getenv("PIFPAF_ARTEMIS_PORT")) + self.assertEqual("amqp://localhost:54321", + os.getenv("PIFPAF_ARTEMIS_URL")) + + @testtools.skipUnless(spawn.find_executable("qdrouterd"), + "Qdrouterd not found") + def test_qdrouterd(self): + a = self.useFixture(qdrouterd.QdrouterdDriver(port=54321)) + self.assertEqual("amqp://%s:%s@localhost:54321" % (a.username, + a.password), + os.getenv("PIFPAF_URL")) + self.assertEqual("54321", os.getenv("PIFPAF_QDROUTERD_PORT")) + self.assertEqual("amqp://localhost:54321", + os.getenv("PIFPAF_QDROUTERD_URL")) + @testtools.skipUnless(spawn.find_executable("kafka-server-start.sh"), "Kafka not found") def test_kafka(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf.egg-info/PKG-INFO new/pifpaf-2.2.2/pifpaf.egg-info/PKG-INFO --- old/pifpaf-2.1.2/pifpaf.egg-info/PKG-INFO 2018-10-03 16:35:16.000000000 +0200 +++ new/pifpaf-2.2.2/pifpaf.egg-info/PKG-INFO 2019-01-07 17:06:04.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pifpaf -Version: 2.1.2 +Version: 2.2.2 Summary: Suite of tools and fixtures to manage daemons for testing Home-page: https://github.com/jd/pifpaf Author: Julien Danjou @@ -177,7 +177,6 @@ Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Software Development :: Testing Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf.egg-info/SOURCES.txt new/pifpaf-2.2.2/pifpaf.egg-info/SOURCES.txt --- old/pifpaf-2.1.2/pifpaf.egg-info/SOURCES.txt 2018-10-03 16:35:16.000000000 +0200 +++ new/pifpaf-2.2.2/pifpaf.egg-info/SOURCES.txt 2019-01-07 17:06:04.000000000 +0100 @@ -22,6 +22,7 @@ pifpaf.egg-info/top_level.txt pifpaf/drivers/__init__.py pifpaf/drivers/aodh.py +pifpaf/drivers/artemis.py pifpaf/drivers/ceph.py pifpaf/drivers/consul.py pifpaf/drivers/couchdb.py @@ -36,12 +37,18 @@ pifpaf/drivers/mongodb.py pifpaf/drivers/mysql.py pifpaf/drivers/postgresql.py +pifpaf/drivers/qdrouterd.py pifpaf/drivers/rabbitmq.py pifpaf/drivers/redis.py pifpaf/drivers/s3rver.py pifpaf/drivers/swift.py pifpaf/drivers/vault.py pifpaf/drivers/zookeeper.py +pifpaf/drivers/templates/artemis/broker.xml +pifpaf/drivers/templates/qdrouterd/broker_om.conf.inc +pifpaf/drivers/templates/qdrouterd/direct_om.conf.inc +pifpaf/drivers/templates/qdrouterd/qdrouterd.conf +pifpaf/drivers/templates/qdrouterd/sasl_qdrouterd.conf pifpaf/drivers/templates/swift/account.conf pifpaf/drivers/templates/swift/common.conf.inc pifpaf/drivers/templates/swift/container-sync-realms.conf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf.egg-info/entry_points.txt new/pifpaf-2.2.2/pifpaf.egg-info/entry_points.txt --- old/pifpaf-2.1.2/pifpaf.egg-info/entry_points.txt 2018-10-03 16:35:16.000000000 +0200 +++ new/pifpaf-2.2.2/pifpaf.egg-info/entry_points.txt 2019-01-07 17:06:04.000000000 +0100 @@ -3,6 +3,7 @@ [pifpaf.daemons] aodh = pifpaf.drivers.aodh:AodhDriver +artemis = pifpaf.drivers.artemis:ArtemisDriver ceph = pifpaf.drivers.ceph:CephDriver consul = pifpaf.drivers.consul:ConsulDriver couchdb = pifpaf.drivers.couchdb:CouchDBDriver @@ -17,6 +18,7 @@ mongodb = pifpaf.drivers.mongodb:MongoDBDriver mysql = pifpaf.drivers.mysql:MySQLDriver postgresql = pifpaf.drivers.postgresql:PostgreSQLDriver +qdrouterd = pifpaf.drivers.qdrouterd:QdrouterdDriver rabbitmq = pifpaf.drivers.rabbitmq:RabbitMQDriver redis = pifpaf.drivers.redis:RedisDriver s3rver = pifpaf.drivers.s3rver:S3rverDriver diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/pifpaf.egg-info/pbr.json new/pifpaf-2.2.2/pifpaf.egg-info/pbr.json --- old/pifpaf-2.1.2/pifpaf.egg-info/pbr.json 2018-10-03 16:35:16.000000000 +0200 +++ new/pifpaf-2.2.2/pifpaf.egg-info/pbr.json 2019-01-07 17:06:04.000000000 +0100 @@ -1 +1 @@ -{"git_version": "0f49ddc", "is_release": true} \ No newline at end of file +{"git_version": "19420b3", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/setup.cfg new/pifpaf-2.2.2/setup.cfg --- old/pifpaf-2.1.2/setup.cfg 2018-10-03 16:35:16.000000000 +0200 +++ new/pifpaf-2.2.2/setup.cfg 2019-01-07 17:06:04.000000000 +0100 @@ -13,7 +13,6 @@ Programming Language :: Python :: 2 Programming Language :: Python :: 2.7 Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 Programming Language :: Python :: 3.6 Topic :: Software Development :: Testing @@ -34,6 +33,7 @@ [entry_points] pifpaf.daemons = aodh = pifpaf.drivers.aodh:AodhDriver + artemis = pifpaf.drivers.artemis:ArtemisDriver consul = pifpaf.drivers.consul:ConsulDriver couchdb = pifpaf.drivers.couchdb:CouchDBDriver elasticsearch = pifpaf.drivers.elasticsearch:ElasticsearchDriver @@ -49,6 +49,7 @@ mongodb = pifpaf.drivers.mongodb:MongoDBDriver mysql = pifpaf.drivers.mysql:MySQLDriver postgresql = pifpaf.drivers.postgresql:PostgreSQLDriver + qdrouterd = pifpaf.drivers.qdrouterd:QdrouterdDriver rabbitmq = pifpaf.drivers.rabbitmq:RabbitMQDriver redis = pifpaf.drivers.redis:RedisDriver s3rver = pifpaf.drivers.s3rver:S3rverDriver diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.1.2/tox.ini new/pifpaf-2.2.2/tox.ini --- old/pifpaf-2.1.2/tox.ini 2018-10-03 16:25:47.000000000 +0200 +++ new/pifpaf-2.2.2/tox.ini 2019-01-07 16:58:34.000000000 +0100 @@ -29,7 +29,7 @@ basepython = python3.6 exclude = .tox,.eggs,doc show-source = true -ignore = D100,D101,D102,D103,D104,G200,G201 +ignore = D100,D101,D102,D103,D104,G200,G201,W503,W504 enable-extensions=G application-import-names = pifpaf
