Hello community, here is the log from the commit of package python-pifpaf for openSUSE:Leap:15.2 checked in at 2020-03-09 18:10:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/python-pifpaf (Old) and /work/SRC/openSUSE:Leap:15.2/.python-pifpaf.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pifpaf" Mon Mar 9 18:10:19 2020 rev:19 rq:776914 version:2.2.2 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/python-pifpaf/python-pifpaf.changes 2020-01-15 15:51:33.847533275 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.python-pifpaf.new.26092/python-pifpaf.changes 2020-03-09 18:10:23.281112494 +0100 @@ -1,0 +2,44 @@ +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 + +------------------------------------------------------------------- +Tue Dec 4 12:51:31 UTC 2018 - Matej Cepl <[email protected]> + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Wed Nov 28 14:21:57 UTC 2018 - Dirk Mueller <[email protected]> + +- update to 2.1.2: + * Setup 2 partitions per topic + * pep8: enable flake8-logging-format + * fix py3 flake8 error + * gnocchi: Don't install outdated version + * tests: Remove s3srv testing + * ceph: Allow to delete pool + * Add .mergify.yml + +------------------------------------------------------------------- +Tue Sep 4 08:04:52 UTC 2018 - [email protected] + +- update to 2.1.1 + * ceph: allow to run luminuous + * various small bugfixes + +------------------------------------------------------------------- Old: ---- pifpaf-2.0.5.tar.gz New: ---- pifpaf-2.2.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pifpaf.spec ++++++ --- /var/tmp/diff_new_pack.55JN96/_old 2020-03-09 18:10:23.629112993 +0100 +++ /var/tmp/diff_new_pack.55JN96/_new 2020-03-09 18:10:23.629112993 +0100 @@ -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 @@ -12,21 +12,21 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pifpaf -Version: 2.0.5 +Version: 2.2.2 Release: 0 Summary: Suite of tools and fixtures to manage daemons for testing License: Apache-2.0 Group: Development/Languages/Python Url: https://github.com/jd/pifpaf Source: https://pypi.io/packages/source/p/pifpaf/pifpaf-%{version}.tar.gz -BuildRequires: %{python_module devel} BuildRequires: %{python_module pbr} +BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-Jinja2 Requires: python-click @@ -63,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 @@ -71,8 +72,8 @@ %python_uninstall_alternative pifpaf %files %{python_files} -%defattr(-,root,root,-) -%doc AUTHORS ChangeLog LICENSE README.rst +%license LICENSE +%doc ChangeLog README.rst %{python_sitelib}/* %python_alternative %{_bindir}/pifpaf ++++++ pifpaf-2.0.5.tar.gz -> pifpaf-2.2.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/.mergify.yml new/pifpaf-2.2.2/.mergify.yml --- old/pifpaf-2.0.5/.mergify.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/pifpaf-2.2.2/.mergify.yml 2019-01-07 16:58:34.000000000 +0100 @@ -0,0 +1,15 @@ +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.0.5/.travis.yml new/pifpaf-2.2.2/.travis.yml --- old/pifpaf-2.0.5/.travis.yml 2018-02-09 20:55:01.000000000 +0100 +++ new/pifpaf-2.2.2/.travis.yml 2019-01-07 16:58:34.000000000 +0100 @@ -5,27 +5,26 @@ - pip python: - 2.7 - - 3.5 - 3.6 before_install: # Always redownload tarball - find ~/.cache/pip -name '*.dev*' -delete - wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - - - echo deb https://download.ceph.com/debian-jewel/ trusty main | sudo tee /etc/apt/sources.list.d/ceph.list + - echo deb https://download.ceph.com/debian-luminous/ trusty main | sudo tee /etc/apt/sources.list.d/ceph.list - sudo apt-get -qq update - sudo apt-get purge -y mysql-server-5.6 mysql-server-core-5.6 mysql-client-core-5.6 mysql-client-5.6 postgresql* libpq* - sudo rm -rf /var/lib/mysql # FIXME(sileht): readd rabbitmq-server when https://github.com/travis-ci/travis-cookbooks/issues/964 and https://github.com/travis-ci/travis-ci/issues/8906 are fixed - sudo apt-get install -y mongodb-server mysql-server-5.5 redis-server zookeeper mongodb couchdb couchdb-bin nodejs npm ceph librados-dev python-dev gcc liberasurecode-dev liberasurecode1 postgresql libpq-dev # - sudo gem install fakes3 # NOTE(sileht): fakes3 looks not installed correctly - - sudo npm install s3rver -g + # - sudo npm install s3rver -g - wget https://dl.influxdata.com/influxdb/releases/influxdb_0.13.0_amd64.deb - 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.0.5/AUTHORS new/pifpaf-2.2.2/AUTHORS --- old/pifpaf-2.0.5/AUTHORS 2018-02-09 21:05:38.000000000 +0100 +++ new/pifpaf-2.2.2/AUTHORS 2019-01-07 17:06:04.000000000 +0100 @@ -1,7 +1,7 @@ -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]> +mergify[bot] <mergify[bot]@users.noreply.github.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/ChangeLog new/pifpaf-2.2.2/ChangeLog --- old/pifpaf-2.0.5/ChangeLog 2018-02-09 21:05:38.000000000 +0100 +++ new/pifpaf-2.2.2/ChangeLog 2019-01-07 17:06:04.000000000 +0100 @@ -1,6 +1,60 @@ 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 +----- + +* Setup 2 partitions per topic +* pep8: enable flake8-logging-format +* fix py3 flake8 error +* gnocchi: Don't install outdated version +* tests: Remove s3srv testing +* ceph: Allow to delete pool +* Add .mergify.yml + +2.1.1 +----- + +* Remove print statement + +2.1.0 +----- + +* ceph: allow to run luminuous + +2.0.7 +----- + +* Fix pep8 in test\_cli +* Fix command not found error in Python 3 + +2.0.6 +----- + +* make gnocchi use given port + 2.0.5 ----- @@ -104,78 +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 -* swift: start a dedicated memcached - -1.6.0 ------ - -* Disable elastic search tests -* Ensure xattr are available for swift -* swift: check we can upload file -* Use subprocess to kill process - -1.5.2 ------ - -* Fix decorator order - -1.5.1 ------ - -* Simplify retry logic -* Fix retry error catching - -1.5.0 ------ - -* Wait 10 seconds processes to end, them kill them - -1.4.11 ------- - -* Revert "gnocchi: use --reuse-port" - -1.4.10 ------- - -* gnocchi: use --reuse-port -* Do not use concurrency to run tests -* Fix conflicting port in Gnocchi test -* Use another port for test\_gnocchi\_with\_redis\_coordinator diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/PKG-INFO new/pifpaf-2.2.2/PKG-INFO --- old/pifpaf-2.0.5/PKG-INFO 2018-02-09 21:05:38.000000000 +0100 +++ new/pifpaf-2.2.2/PKG-INFO 2019-01-07 17:06:04.000000000 +0100 @@ -1,12 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pifpaf -Version: 2.0.5 +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 Author-email: [email protected] License: UNKNOWN -Description-Content-Type: UNKNOWN Description: ========== Pifpaf ========== @@ -178,6 +177,7 @@ 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 +Provides-Extra: gnocchi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/pifpaf/__main__.py new/pifpaf-2.2.2/pifpaf/__main__.py --- old/pifpaf-2.0.5/pifpaf/__main__.py 2018-02-09 20:55:01.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/__main__.py 2019-01-07 16:58:34.000000000 +0100 @@ -64,7 +64,7 @@ LOG.error("MultipleExceptions raised:") for n, (etype, value, tb) in enumerate(valid_excs): if debug: - LOG.error("- exception %d:" % n) + LOG.error("- exception %d:", n) LOG.error("".join( traceback.format_exception(etype, value, tb))) else: @@ -120,7 +120,7 @@ @main.command(name="list") -def list(): +def drivers_list(): for n in DAEMONS: click.echo(n) @@ -197,8 +197,8 @@ sys.exit(1) except Exception: LOG.error("Unable to start %s, " - "use --debug for more information" - % daemon, exc_info=True) + "use --debug for more information", + daemon, exc_info=True) sys.exit(1) pid = os.fork() if pid == 0: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/pifpaf/drivers/__init__.py new/pifpaf-2.2.2/pifpaf/drivers/__init__.py --- old/pifpaf-2.0.5/pifpaf/drivers/__init__.py 2018-02-09 20:55:01.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/__init__.py 2019-01-07 16:58:34.000000000 +0100 @@ -196,7 +196,7 @@ path=[], env=None, forbidden_line_after_start=None, allow_debug=True): - LOG.debug("executing: %s" % command) + LOG.debug("executing: %s", command) app = command[0] @@ -237,12 +237,12 @@ ) except OSError as e: raise RuntimeError( - "Unable to run command `%s': %s" % (b" ".join(command), e)) + "Unable to run command `%s': %s" % (" ".join(command), e)) self.addCleanup(self._kill, c) if stdin: - LOG.debug("%s input: %s" % (app, stdin)) + LOG.debug("%s input: %s", app, stdin) c.stdin.write(stdin) c.stdin.close() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/pifpaf/drivers/artemis.py new/pifpaf-2.2.2/pifpaf/drivers/artemis.py --- old/pifpaf-2.0.5/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.0.5/pifpaf/drivers/ceph.py new/pifpaf-2.2.2/pifpaf/drivers/ceph.py --- old/pifpaf-2.0.5/pifpaf/drivers/ceph.py 2018-02-09 20:55:01.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/ceph.py 2019-01-07 16:58:34.000000000 +0100 @@ -49,6 +49,22 @@ os.makedirs(mondir) os.makedirs(osddir) + _, version = self._exec(["ceph", "--version"], stdout=True) + version = version.decode("ascii").split()[2] + version = pkg_resources.parse_version(version) + + if version < pkg_resources.parse_version("12.0.0"): + extra = """ +mon_osd_nearfull_ratio = 1 +mon_osd_full_ratio = 1 +osd_failsafe_nearfull_ratio = 1 +osd_failsafe_full_ratio = 1 +""" + else: + extra = """ +mon_allow_pool_delete = true +""" + # FIXME(sileht): check availible space on /dev/shm # if os.path.exists("/dev/shm") and os.access('/dev/shm', os.W_OK): # journal_path = "/dev/shm/$cluster-$id-journal" @@ -89,11 +105,7 @@ filestore max sync interval = 10001 filestore min sync interval = 10000 -# Don't fail until it's really full -mon_osd_nearfull_ratio = 1 -mon_osd_full_ratio = 1 -osd_failsafe_nearfull_ratio = 1 -osd_failsafe_full_ratio = 1 +%(extra)s journal_aio = false journal_dio = false @@ -106,17 +118,14 @@ [mon.a] host = localhost mon addr = 127.0.0.1:%(port)d -""" % dict(fsid=fsid, tempdir=self.tempdir, port=self.port, journal_path=journal_path)) # noqa +""" % dict(fsid=fsid, tempdir=self.tempdir, port=self.port, + journal_path=journal_path, extra=extra)) # noqa ceph_opts = ["ceph", "-c", conffile] mon_opts = ["ceph-mon", "-c", conffile, "--id", "a", "-d"] osd_opts = ["ceph-osd", "-c", conffile, "--id", "0", "-d", "-m", "127.0.0.1:%d" % self.port] - _, version = self._exec(ceph_opts + ["--version"], stdout=True) - version = version.decode("ascii").split()[2] - version = pkg_resources.parse_version(version) - # Create and start monitor self._exec(mon_opts + ["--mkfs"]) self._touch(os.path.join(mondir, "done")) @@ -135,6 +144,11 @@ wait_for_line = "done with init" osd, _ = self._exec(osd_opts, wait_for_line=wait_for_line) + if version >= pkg_resources.parse_version("12.0.0"): + self._exec(ceph_opts + ["osd", "set-full-ratio", "0.95"]) + self._exec(ceph_opts + ["osd", "set-backfillfull-ratio", "0.95"]) + self._exec(ceph_opts + ["osd", "set-nearfull-ratio", "0.95"]) + # Wait it's ready out = b"" while b"HEALTH_OK" not in out: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/pifpaf/drivers/gnocchi.py new/pifpaf-2.2.2/pifpaf/drivers/gnocchi.py --- old/pifpaf-2.0.5/pifpaf/drivers/gnocchi.py 2018-02-09 20:55:01.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/gnocchi.py 2019-01-07 16:58:34.000000000 +0100 @@ -163,6 +163,9 @@ f.write("""[DEFAULT] debug = %s verbose = True +[api] +host = localhost +port = %s [storage] driver = %s %s @@ -176,6 +179,7 @@ project_id = admin [indexer] url = %s""" % (self.debug, + self.port, storage_driver, storage_config_string, statsd_resource_id, @@ -217,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.0.5/pifpaf/drivers/kafka.py new/pifpaf-2.2.2/pifpaf/drivers/kafka.py --- old/pifpaf-2.0.5/pifpaf/drivers/kafka.py 2018-02-09 20:55:01.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/drivers/kafka.py 2019-01-07 16:58:34.000000000 +0100 @@ -61,7 +61,7 @@ socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=%s -num.partitions=1 +num.partitions=2 num.recovery.threads.per.data.dir=1 log.retention.hours=168 log.segment.bytes=1073741824 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/pifpaf/drivers/postgresql.py new/pifpaf-2.2.2/pifpaf/drivers/postgresql.py --- old/pifpaf-2.0.5/pifpaf/drivers/postgresql.py 2018-02-09 20:55:01.000000000 +0100 +++ 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.0.5/pifpaf/drivers/qdrouterd.py new/pifpaf-2.2.2/pifpaf/drivers/qdrouterd.py --- old/pifpaf-2.0.5/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.0.5/pifpaf/drivers/templates/artemis/broker.xml new/pifpaf-2.2.2/pifpaf/drivers/templates/artemis/broker.xml --- old/pifpaf-2.0.5/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.0.5/pifpaf/drivers/templates/qdrouterd/broker_om.conf.inc new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/broker_om.conf.inc --- old/pifpaf-2.0.5/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.0.5/pifpaf/drivers/templates/qdrouterd/direct_om.conf.inc new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/direct_om.conf.inc --- old/pifpaf-2.0.5/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.0.5/pifpaf/drivers/templates/qdrouterd/qdrouterd.conf new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/qdrouterd.conf --- old/pifpaf-2.0.5/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.0.5/pifpaf/drivers/templates/qdrouterd/sasl_qdrouterd.conf new/pifpaf-2.2.2/pifpaf/drivers/templates/qdrouterd/sasl_qdrouterd.conf --- old/pifpaf-2.0.5/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.0.5/pifpaf/tests/test_cli.py new/pifpaf-2.2.2/pifpaf/tests/test_cli.py --- old/pifpaf-2.0.5/pifpaf/tests/test_cli.py 2018-02-09 20:55:01.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf/tests/test_cli.py 2019-01-07 16:58:34.000000000 +0100 @@ -16,6 +16,8 @@ import subprocess from distutils import spawn +import fixtures + import testtools @@ -144,3 +146,18 @@ self.assertEqual( b"\"memcached://localhost:11217;memcached://localhost:11218\";", env[b"export PIFPAF_URLS"]) + + def test_non_existing_command(self): + # Keep PATH to just the one set by tox to run pifpaf + self.useFixture(fixtures.EnvironmentVariable( + "PATH", os.getenv("PATH").split(":")[0])) + c = subprocess.Popen(["pifpaf", "run", "memcached"], + bufsize=0, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE) + (stdout, stderr) = c.communicate() + self.assertEqual(1, c.wait()) + self.assertIn( + b"ERROR [pifpaf] Unable to run command " + b"`memcached -p 11212': [Errno 2] No such file or directory", + stderr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/pifpaf/tests/test_drivers.py new/pifpaf-2.2.2/pifpaf/tests/test_drivers.py --- old/pifpaf-2.0.5/pifpaf/tests/test_drivers.py 2018-02-09 20:55:01.000000000 +0100 +++ 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.0.5/pifpaf.egg-info/PKG-INFO new/pifpaf-2.2.2/pifpaf.egg-info/PKG-INFO --- old/pifpaf-2.0.5/pifpaf.egg-info/PKG-INFO 2018-02-09 21:05:38.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf.egg-info/PKG-INFO 2019-01-07 17:06:04.000000000 +0100 @@ -1,12 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pifpaf -Version: 2.0.5 +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 Author-email: [email protected] License: UNKNOWN -Description-Content-Type: UNKNOWN Description: ========== Pifpaf ========== @@ -178,6 +177,7 @@ 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 +Provides-Extra: gnocchi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pifpaf-2.0.5/pifpaf.egg-info/SOURCES.txt new/pifpaf-2.2.2/pifpaf.egg-info/SOURCES.txt --- old/pifpaf-2.0.5/pifpaf.egg-info/SOURCES.txt 2018-02-09 21:05:38.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf.egg-info/SOURCES.txt 2019-01-07 17:06:04.000000000 +0100 @@ -1,3 +1,4 @@ +.mergify.yml .testr.conf .travis.yml AUTHORS @@ -21,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 @@ -35,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.0.5/pifpaf.egg-info/entry_points.txt new/pifpaf-2.2.2/pifpaf.egg-info/entry_points.txt --- old/pifpaf-2.0.5/pifpaf.egg-info/entry_points.txt 2018-02-09 21:05:38.000000000 +0100 +++ 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.0.5/pifpaf.egg-info/pbr.json new/pifpaf-2.2.2/pifpaf.egg-info/pbr.json --- old/pifpaf-2.0.5/pifpaf.egg-info/pbr.json 2018-02-09 21:05:38.000000000 +0100 +++ new/pifpaf-2.2.2/pifpaf.egg-info/pbr.json 2019-01-07 17:06:04.000000000 +0100 @@ -1 +1 @@ -{"git_version": "d094170", "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.0.5/setup.cfg new/pifpaf-2.2.2/setup.cfg --- old/pifpaf-2.0.5/setup.cfg 2018-02-09 21:05:38.000000000 +0100 +++ 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.0.5/tox.ini new/pifpaf-2.2.2/tox.ini --- old/pifpaf-2.0.5/tox.ini 2018-02-09 20:55:01.000000000 +0100 +++ new/pifpaf-2.2.2/tox.ini 2019-01-07 16:58:34.000000000 +0100 @@ -5,7 +5,7 @@ usedevelop = True sitepackages = False deps = .[test,ceph,gnocchi] - http://tarballs.openstack.org/gnocchi/gnocchi-master.tar.gz#egg=gnocchi[postgresql,file,ceph,ceph_recommended_lib,s3] + gnocchi[postgresql,file,ceph,ceph_recommended_lib,s3] http://tarballs.openstack.org/aodh/aodh-master.tar.gz#egg=aodh[postgresql] http://tarballs.openstack.org/swift/swift-master.tar.gz#egg=swift python-swiftclient @@ -29,7 +29,8 @@ basepython = python3.6 exclude = .tox,.eggs,doc show-source = true -ignore = D100,D101,D102,D103,D104 +ignore = D100,D101,D102,D103,D104,G200,G201,W503,W504 +enable-extensions=G application-import-names = pifpaf [travis]
